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)
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))
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))