예제 #1
0
class PlayerTestCase(unittest.TestCase):
    def setUp(self):
        self.player1 = Player()
        self.player2 = Player()
        mini_board_array = [[1, 5], [2, 1], [1, 5]]
        self.mini_board = Board(3, 2)
        self.mini_board.create_board_from_json(mini_board_array)
        self.strategy = Strategy()
        self.in_player1 = PlayerData(Color.RED)
        self.in_player2 = PlayerData(Color.WHITE)
        self.players = [self.in_player1, self.in_player2]
        self.mini_state = State(self.players, self.mini_board)
        self.mini_tree = GameTree(self.mini_state)

    def test_choose_placement(self):
        self.assertEqual(self.player1.choose_placement(self.mini_state),
                         (0, 0))
        next_state = self.mini_state.place_penguin_for_player(
            Color.RED, (0, 0))
        self.assertEqual(self.player1.choose_placement(next_state), (0, 1))

    def test_choose_placement_wrap(self):
        next_state = self.mini_state.place_penguin_for_player(
            Color.RED, (0, 0))
        next_state = next_state.place_penguin_for_player(Color.RED, (0, 1))
        self.assertEqual(self.player1.choose_placement(next_state), (1, 0))

    def test_choose_next_move(self):
        next_state = self.mini_state.place_penguin_for_player(
            Color.RED, (0, 0))
        next_state = next_state.place_penguin_for_player(Color.WHITE, (0, 1))
        self.player1.set_state(next_state)
        self.assertEqual(self.player1.choose_next_move().print_json(),
                         [(0, 0), (2, 1)])

    def test_choose_next_move_no_moves(self):
        next_state = self.mini_state.place_penguin_for_player(
            Color.RED, (0, 0))
        next_state = next_state.place_penguin_for_player(Color.WHITE, (1, 0))
        next_state = next_state.place_penguin_for_player(Color.WHITE, (2, 0))
        self.player1.set_state(next_state)
        self.assertEqual(self.player1.choose_next_move().print_json(), False)

    def test_assign_color(self):
        self.assertEqual(self.player1.get_color(), None)
        self.player1.assign_color(Color.RED)
        self.assertEqual(self.player1.get_color(), Color.RED)

    def test_assign_color_twice(self):
        self.assertEqual(self.player1.get_color(), None)
        self.player1.assign_color(Color.RED)
        self.assertEqual(self.player1.get_color(), Color.RED)
        self.player1.assign_color(Color.WHITE)
        self.assertEqual(self.player1.get_color(), Color.WHITE)
예제 #2
0
 def test_create_board_json(self):
     tiles = [
         [1,     2,      3,      0],
         [4,     0,      0,      5],
         [1,     1,      0,      1]
     ]
     board = Board(3, 4)
     board.create_board_from_json(tiles)
     for r in range(0, len(tiles)):
         for c in range(0, len(tiles[r])):
             self.assertEqual(board.tiles[c][r].fish, tiles[r][c])
     self.assertEqual(board, Board.from_json(tiles))
예제 #3
0
 def test_create_board_json_short_row(self):
     tiles = [
         [1,     2],
         [4,     0,      0,      5],
         [1,     1,      0,      1]
     ]
     board = Board(3, 4)
     board.create_board_from_json(tiles)
     self.assertEqual(board.tiles[2][0].fish, 0)
     self.assertEqual(board.tiles[3][0].fish, 0)
     self.assertFalse(board.tiles[2][0].is_active)
     self.assertFalse(board.tiles[3][0].is_active)
     self.assertEqual(board, Board.from_json(tiles))