1 #include "chesswrappedtest.h"
2 #include "prototype/tagua_wrapped.h"
3 #include "prototype/chess/variant.h"
5 CPPUNIT_TEST_SUITE_REGISTRATION(ChessWrappedTest
);
7 typedef HLVariant::Chess::Variant Chess
;
8 typedef Chess::LegalityCheck LegalityCheck
;
9 typedef LegalityCheck::GameState GameState
;
10 typedef GameState::Move ChessMove
;
12 void ChessWrappedTest::setUp() {
13 m_pos
= PositionPtr(new HLVariant::WrappedPosition
<Chess
>(GameState()));
16 void ChessWrappedTest::tearDown() {
20 void ChessWrappedTest::test_setup() {
23 CPPUNIT_ASSERT(m_pos
->get(Point(4, 6)));
24 CPPUNIT_ASSERT(m_pos
->get(Point(4, 6))->name() == "white_pawn");
26 CPPUNIT_ASSERT(!m_pos
->get(Point(5, 5)));
28 CPPUNIT_ASSERT(m_pos
->get(Point(0, 0)));
29 CPPUNIT_ASSERT(m_pos
->get(Point(0, 0))->name() == "black_rook");
32 void ChessWrappedTest::test_move() {
35 MovePtr
move(new HLVariant::WrappedMove
<Chess
>(ChessMove(Point(4, 6), Point(4, 4))));
36 CPPUNIT_ASSERT(m_pos
->testMove(move
));
40 CPPUNIT_ASSERT(!m_pos
->get(Point(4, 6)));
41 CPPUNIT_ASSERT(m_pos
->get(Point(4, 4))->name() == "white_pawn");
44 void ChessWrappedTest::test_movable() {
48 CPPUNIT_ASSERT_EQUAL(NoAction
, m_pos
->movable(test
, Point(4, 6)));
49 CPPUNIT_ASSERT_EQUAL(NoAction
, m_pos
->droppable(test
, 0));
51 test
.setSimplePolicy(0, true);
52 CPPUNIT_ASSERT_EQUAL(Moving
, m_pos
->movable(test
, Point(4, 6)));
53 CPPUNIT_ASSERT_EQUAL(NoAction
, m_pos
->movable(test
, Point(5, 5)));
54 CPPUNIT_ASSERT_EQUAL(NoAction
, m_pos
->movable(test
, Point(7, 1)));
56 CPPUNIT_ASSERT_EQUAL(Moving
, m_pos
->droppable(test
, 0));
57 CPPUNIT_ASSERT_EQUAL(NoAction
, m_pos
->droppable(test
, 1));
59 test
.setSimplePolicy(1, true);
60 CPPUNIT_ASSERT_EQUAL(Premoving
, m_pos
->movable(test
, Point(6, 0)));
63 void ChessWrappedTest::test_san1() {
66 MovePtr
move(new HLVariant::WrappedMove
<Chess
>(ChessMove(Point(4, 6), Point(4, 4))));
67 CPPUNIT_ASSERT_EQUAL(QString("e4"), move
->SAN(m_pos
));