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)