X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Ftests%2Ftest_player.py;h=1d11637b3cf9df8638617b24c23fdf21791a028e;hb=cfe014c380c8a5be0062f5bfcd37cc053dd6d56f;hp=c748c7295827b9e1355c6cb3f0e6182f049585b2;hpb=b3db4400695249420f5f941744c2a2692a1bad98;p=naja.git diff --git a/naja/tests/test_player.py b/naja/tests/test_player.py index c748c72..1d11637 100644 --- a/naja/tests/test_player.py +++ b/naja/tests/test_player.py @@ -54,35 +54,35 @@ class TestPlayerBits(TestCase): bits = PlayerBits(0x03) self.assertEqual(bits.check_bits([BITS.NORTH]), True) self.assertEqual(bits.check_bits([BITS.NORTH, BITS.SOUTH]), True) - self.assertEqual(bits.check_bits([BITS.CYAN]), False) - self.assertEqual(bits.check_bits([BITS.CYAN, BITS.MSB]), False) + self.assertEqual(bits.check_bits([BITS.BLUE]), False) + self.assertEqual(bits.check_bits([BITS.BLUE, BITS.MSB]), False) self.assertEqual( - bits.check_bits([BITS.NORTH, BITS.SOUTH, BITS.CYAN]), False) + bits.check_bits([BITS.NORTH, BITS.SOUTH, BITS.BLUE]), False) def test_set_bits(self): bits = PlayerBits(0x03) self.assertEqual(bits._bits, 0x03) - bits.set_bits([BITS.NORTH, BITS.CYAN]) + bits.set_bits([BITS.NORTH, BITS.BLUE]) self.assertEqual(bits._bits, 0x13) - bits.set_bits([BITS.NORTH, BITS.CYAN, BITS.MSB]) + bits.set_bits([BITS.NORTH, BITS.BLUE, BITS.MSB]) self.assertEqual(bits._bits, 0x93) def test_clear_bits(self): bits = PlayerBits(0x03) self.assertEqual(bits._bits, 0x03) - bits.clear_bits([BITS.NORTH, BITS.CYAN]) + bits.clear_bits([BITS.NORTH, BITS.BLUE]) self.assertEqual(bits._bits, 0x02) - bits.clear_bits([BITS.NORTH, BITS.CYAN, BITS.MSB]) + bits.clear_bits([BITS.NORTH, BITS.BLUE, BITS.MSB]) self.assertEqual(bits._bits, 0x02) def test_toggle_bits(self): bits = PlayerBits(0x03) self.assertEqual(bits._bits, 0x03) - bits.toggle_bits([BITS.NORTH, BITS.CYAN]) + bits.toggle_bits([BITS.NORTH, BITS.BLUE]) self.assertEqual(bits._bits, 0x12) - bits.toggle_bits([BITS.NORTH, BITS.CYAN]) + bits.toggle_bits([BITS.NORTH, BITS.BLUE]) self.assertEqual(bits._bits, 0x03) - bits.toggle_bits([BITS.NORTH, BITS.CYAN, BITS.MSB]) + bits.toggle_bits([BITS.NORTH, BITS.BLUE, BITS.MSB]) self.assertEqual(bits._bits, 0x92) @@ -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, 2), (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, 2), (0, 3), (1, 2)])