X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Ftests%2Ftest_player.py;h=cbae8cc23c03580a14f26f9f9043a90ba124b680;hb=2e101a5b1f6b271358fc2dbb56fc1fe6d0d53f37;hp=c748c7295827b9e1355c6cb3f0e6182f049585b2;hpb=b3db4400695249420f5f941744c2a2692a1bad98;p=naja.git diff --git a/naja/tests/test_player.py b/naja/tests/test_player.py index c748c72..cbae8cc 100644 --- a/naja/tests/test_player.py +++ b/naja/tests/test_player.py @@ -106,3 +106,64 @@ class TestPlayer(TestCase): 'bits': 0xaa, 'position': [1, 2], }) + + 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_legal_moves_all_available(self): + player = Player(0x0f, (2, 2)) + self.assertEqual( + player.legal_moves(), [(2, 1), (2, 3), (3, 2), (1, 2)]) + + def test_legal_moves_some_unavailable(self): + player = Player(0x0f, (0, 2)) + player.bits.clear_bit(BITS.NORTH) + self.assertEqual(player.legal_moves(), [(0, 3), (1, 2)])