def test_encode_player_without_holecard(self): player = setup_player() hsh = DataEncoder.encode_player(player) self.eq(player.name, hsh["name"]) self.eq(player.uuid, hsh["uuid"]) self.eq(player.stack, hsh["stack"]) self.eq("folded", hsh["state"]) self.false("hole_card" in hsh)
def test_encode_player_without_holecard(self): player = setup_player() hsh = DataEncoder.encode_player(player) self.eq(player.name, hsh['name']) self.eq(player.uuid, hsh['uuid']) self.eq(player.stack, hsh['stack']) self.eq('folded', hsh['state']) self.false('hole_card' in hsh)
def build_round_start_message(self, round_count, player_pos, seats): player = seats.players[player_pos] hole_card = DataEncoder.encode_player(player, holecard=True)["hole_card"] message = { "message_type": self.ROUND_START_MESSAGE, "round_count": round_count, "hole_card": hole_card } message.update(DataEncoder.encode_seats(seats)) return self.__build_notification_message(message)
def build_ask_message(self, player_pos, state): players = state["table"].seats.players player = players[player_pos] hole_card = DataEncoder.encode_player(player, holecard=True)["hole_card"] valid_actions = ActionChecker.legal_actions(players, player_pos, state["small_blind_amount"]) message = { "message_type" : self.ASK_MESSAGE, "hole_card": hole_card, "valid_actions": valid_actions, "round_state": DataEncoder.encode_round_state(state), "action_histories": DataEncoder.encode_action_histories(state["table"]) } return self.__build_ask_message(message)
def build_ask_message(self, player_pos, state): players = state["table"].seats.players player = players[player_pos] hole_card = DataEncoder.encode_player(player, holecard=True)["hole_card"] valid_actions = ActionChecker.legal_actions( players, player_pos, state["small_blind_amount"]) message = { "message_type": self.ASK_MESSAGE, "hole_card": hole_card, "valid_actions": valid_actions, "round_state": DataEncoder.encode_round_state(state), "action_histories": DataEncoder.encode_action_histories(state["table"]) } return self.__build_ask_message(message)
def build_ask_message(self, player_pos, state): players = state['table'].seats.players player = players[player_pos] hole_card = DataEncoder.encode_player(player, holecard=True)['hole_card'] valid_actions = ActionChecker.legal_actions( players, player_pos, state['small_blind_amount']) message = { 'message_type': self.ASK_MESSAGE, 'hole_card': hole_card, 'valid_actions': valid_actions, 'round_state': DataEncoder.encode_round_state(state), 'action_histories': DataEncoder.encode_action_histories(state['table']) } return self.__build_ask_message(message)
def test_encode_seats(self): seats = setup_seats() hsh = DataEncoder.encode_seats(seats) self.eq(3, len(hsh["seats"])) self.eq(DataEncoder.encode_player(seats.players[0]), hsh["seats"][0])
def test_encode_player_with_holecard(self): player = setup_player() hsh = DataEncoder.encode_player(player, holecard=True) self.eq([str(card) for card in player.hole_card], hsh["hole_card"])
def test_encode_winners(self): winners = [setup_player() for _ in range(2)] hsh = DataEncoder.encode_winners(winners) self.eq(2, len(hsh["winners"])) self.eq([DataEncoder.encode_player(p) for p in winners], hsh["winners"])