Added some legality checking tests.
[tagua/yd.git] / tests / hlvariants / chesslegalitytest.cpp
blob9d2635297854aa61cd129f71f2a020c3ecd104b8
1 #include "chesslegalitytest.h"
2 #include "prototype/chess/legalitycheck.h"
5 CPPUNIT_TEST_SUITE_REGISTRATION(ChessLegalityTest);
7 void ChessLegalityTest::setUp() {
8 m_state = new ChessGameState;
9 m_state->setup();
10 m_legality_check = new ChessLegalityCheck(*m_state);
13 void ChessLegalityTest::tearDown() {
14 delete m_state;
15 delete m_legality_check;
18 void ChessLegalityTest::test_simple_move() {
19 ChessMove e4(Point(4, 6), Point(4, 4));
20 CPPUNIT_ASSERT(m_legality_check->legal(e4));
22 ChessMove e3(Point(4, 6), Point(4, 3));
23 CPPUNIT_ASSERT(!m_legality_check->legal(e3));
25 ChessMove Nf3(Point(6, 7), Point(5, 5));
26 CPPUNIT_ASSERT(m_legality_check->legal(Nf3));
28 ChessMove Bc4(Point(5, 7), Point(2, 4));
29 CPPUNIT_ASSERT(!m_legality_check->legal(Bc4));
31 ChessMove tmp(Point(5, 7), Point(2, 4));
32 m_state->board().set(Point(4, 6), ChessPiece());
33 CPPUNIT_ASSERT(m_legality_check->legal(tmp));