def test_find_flips_se(self): # Set up move validators for black and white board = Board(8) board.record_tile(Point(5, 3), 'white') board.record_tile(Point(5, 2), 'white') board.record_tile(Point(6, 1), 'black') board.record_tile(Point(6, 0), 'white') board.record_tile(Point(7, 5), 'white') flips_w = flipFinder(board.size, board.positions, 'white') flips_b = flipFinder(board.size, board.positions, 'black') # Test good input (1+ tiles flipped) one_flip = flips_w.find_flips_se(Point(3, 5)) three_flips = flips_b.find_flips_se(Point(2, 5)) self.assertEqual(one_flip, [Point(4, 4)]) self.assertEqual(three_flips, [Point(3, 4), Point(4, 3), Point(5, 2)]) # Test bad input (moves with no valid flips: # 1. Hits friendly tile without finding opposing tiles, or # 2. Hits edge of board or empty square without finding friendly tile # 3. Move is outside the board friendly_tile = flips_b.find_flips_se(Point(3, 5)) empty_space = flips_w.find_flips_se(Point(2, 4)) edge_south = flips_b.find_flips_se(Point(5, 1)) edge_east = flips_b.find_flips_se(Point(6, 6)) outside = flips_w.find_flips_se(Point(-100, 100)) self.assertEqual(friendly_tile, []) self.assertEqual(empty_space, []) self.assertEqual(edge_south, []) self.assertEqual(edge_east, []) self.assertEqual(outside, [])
def test_init(self): board = Board(4) finder = flipFinder(board.size, board.positions, 'white') self.assertEqual(finder.size, board.size) self.assertEqual(finder.positions, board.positions) self.assertEqual(finder.color, 'white') board = Board(8) finder = flipFinder(board.size, board.positions, 'black') self.assertEqual(finder.size, board.size) self.assertEqual(finder.positions, board.positions) self.assertEqual(finder.color, 'black')
def test_find_flips_all(self): # Set up a testable board board = Board(8) board.record_tile(Point(2, 2), 'white') board.record_tile(Point(5, 4), 'black') board.record_tile(Point(6, 5), 'black') board.record_tile(Point(7, 5), 'white') board.record_tile(Point(6, 6), 'white') board.record_tile(Point(5, 6), 'black') board.record_tile(Point(5, 7), 'black') board.record_tile(Point(4, 6), 'black') flips_b = flipFinder(board.size, board.positions, 'white') # Test good input (a move that results in a variety of flips or lack # thereof in each direction) test_move = flips_b.find_flips_all(Point(5, 5)) expected_outcome = [Point(6, 5), Point(4, 4), Point(3, 3)] self.assertEqual(test_move, expected_outcome) # Test behavior for a move outside of the board outside_board_test = flips_b.find_flips_all(Point(100, 100)) self.assertEqual(outside_board_test, [])