Esempio n. 1
0
    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, [])
Esempio n. 2
0
    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')
Esempio n. 3
0
    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, [])