Example #1
0
class BoardTestCase(unittest.TestCase):
    def setUp(self):
        self.board = Board(8)

    def test_board_size(self):
        self.assertEqual(len(self.board), 8)
        self.assertEqual(len(list.__getitem__(self.board, 0)), 8)

    def test_board_get(self):
        self.assertEqual(self.board[(0, 0)], EmptyCell())

    def test_board_block(self):
        self.board.block((0, 0))
        self.assertEqual(self.board[(0, 0)], BlockedCell())
        self.assertFalse(self.board.unblock((0, 1)))
        self.assertTrue(self.board.unblock((0, 0)))
        self.assertEqual(self.board[(0, 0)], EmptyCell())

    def test_get_area(self):
        full_test_area = self.board.get_area(3, (4, 4))
        partial_test_area = self.board.get_area(3, (0, 0))
        self.assertEqual(len(full_test_area), 25)
        self.assertEqual(len(partial_test_area), 10)

    def test_distance(self):
        self.assertEqual(self.board.distance((1, 0), (7, 0)), 6)

    def test_direction(self):
        tests = [(((4, 4), (4, 3)), (0, -1)), (((4, 4), (6, 2)), (1, -1)),
                 (((4, 4), (6, 4)), (1, 0)), (((4, 4), (5, 5)), (1, 1)),
                 (((4, 4), (4, 5)), (0, 1)), (((4, 4), (3, 5)), (-1, 1)),
                 (((4, 4), (3, 4)), (-1, 0)), (((4, 4), (3, 3)), (-1, -1))]
        for test_pos, result in tests:
            pos1, pos2 = test_pos
            self.assertEqual(self.board.direction(pos1, pos2), result)