X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Ftests%2Ftest_player.py;fp=naja%2Ftests%2Ftest_player.py;h=d45c09eadcdad3957862611d5f337b41919c4f56;hb=aac1783aa9c84031bb37d74616ee72a7b32ebeac;hp=1d11637b3cf9df8638617b24c23fdf21791a028e;hpb=d2d864e01ddcf38536812f37b8bffb3ee3227d4f;p=naja.git diff --git a/naja/tests/test_player.py b/naja/tests/test_player.py index 1d11637..d45c09e 100644 --- a/naja/tests/test_player.py +++ b/naja/tests/test_player.py @@ -96,67 +96,27 @@ class TestPlayer(TestCase): player = Player.import_player({ 'bits': 0xaa, 'position': [1, 2], + 'movement_mode': MOVES.CASTLE, }) self.assertEqual(player.bits.bits, 0xaa) self.assertEqual(player.position, (1, 2)) + self.assertEqual(player.movement_mode, MOVES.CASTLE) def test_export_player(self): - player = Player(0xaa, (1, 2)) + player = Player(0xaa, (1, 2), MOVES.CASTLE) self.assertEqual(player.export(), { 'bits': 0xaa, 'position': [1, 2], + 'movement_mode': MOVES.CASTLE, }) - def test_move(self): - player = Player(0x0f, (2, 2)) - self.assertEqual(player.move(BITS.NORTH), True) - self.assertEqual(player.position, (2, 1)) - - player = Player(0x0f, (2, 2)) - self.assertEqual(player.move(BITS.SOUTH), True) - self.assertEqual(player.position, (2, 3)) - - player = Player(0x0f, (2, 2)) - self.assertEqual(player.move(BITS.WEST), True) - self.assertEqual(player.position, (1, 2)) - - player = Player(0x0f, (2, 2)) - self.assertEqual(player.move(BITS.EAST), True) - self.assertEqual(player.position, (3, 2)) - - def test_move_flags_clear(self): - player = Player(0x00, (2, 2)) - self.assertEqual(player.move(BITS.NORTH), False) - self.assertEqual(player.position, (2, 2)) - - player = Player(0x00, (2, 2)) - self.assertEqual(player.move(BITS.SOUTH), False) - self.assertEqual(player.position, (2, 2)) - - player = Player(0x00, (2, 2)) - self.assertEqual(player.move(BITS.WEST), False) - self.assertEqual(player.position, (2, 2)) - - player = Player(0x00, (2, 2)) - self.assertEqual(player.move(BITS.EAST), False) - self.assertEqual(player.position, (2, 2)) - - def test_move_flags_edges(self): - player = Player(0x0f, (2, 0)) - self.assertEqual(player.move(BITS.NORTH), False) - self.assertEqual(player.position, (2, 0)) - - player = Player(0x0f, (2, 4)) - self.assertEqual(player.move(BITS.SOUTH), False) - self.assertEqual(player.position, (2, 4)) - - player = Player(0x0f, (0, 2)) - self.assertEqual(player.move(BITS.WEST), False) - self.assertEqual(player.position, (0, 2)) - - player = Player(0x0f, (4, 2)) - self.assertEqual(player.move(BITS.EAST), False) - self.assertEqual(player.position, (4, 2)) + def test_export_player_default_movement_mode(self): + player = Player(0xaa, (1, 2)) + self.assertEqual(player.export(), { + 'bits': 0xaa, + 'position': [1, 2], + 'movement_mode': MOVES.ADJACENT, + }) def test_legal_moves_all_available(self): player = Player(0x0f, (2, 2)) @@ -167,3 +127,22 @@ class TestPlayer(TestCase): player = Player(0x0f, (0, 2)) player.bits.clear_bit(BITS.NORTH) self.assertEqual(player.legal_moves(), [(0, 2), (0, 3), (1, 2)]) + + def test_legal_moves_castle(self): + player = Player(0x0f, (1, 3), MOVES.CASTLE) + self.assertEqual(player.legal_moves(), [(0, 3), (1, 0), (1, 1), (1, 2), + (1, 3), (1, 4), (2, 3), (3, 3), (4, 3)]) + + def test_legal_moves_bishop(self): + player = Player(0x0f, (1, 3), MOVES.BISHOP) + self.assertEqual(player.legal_moves(), [(0, 2), (0, 4), (1, 3), (2, 2), + (2, 4), (3, 1), (3, 4), (4, 0)]) + + def test_legal_moves_knight(self): + player = Player(0x0f, (1, 3), MOVES.KNIGHT) + self.assertEqual(player.legal_moves(), [(0, 1), (2, 1), (3, 2), (3, 4)]) + + def test_set_position(self): + player = Player(0x0f, (3, 3), MOVES.BISHOP) + player.set_position((4, 4)) + self.assertEqual(player.movement_mode, MOVES.ADJACENT)