def test_two_pair(self): ranker = HandRanker() cards = [ Card('S', 13), Card('H', 13), Card('D', 12), Card('C', 9), Card('S', 9) ] hand = Hand(cards) self.assertEqual(ranker.rank(hand), Rank.TWO_PAIR)
def test_straight(self): ranker = HandRanker() cards = [ Card('D', 13), Card('H', 12), Card('C', 11), Card('C', 10), Card('S', 9) ] hand = Hand(cards) self.assertEqual(ranker.rank(hand), Rank.STRAIGHT)
def test_three_of_a_kind(self): ranker = HandRanker() cards = [ Card('S', 13), Card('H', 13), Card('D', 13), Card('C', 11), Card('S', 9) ] hand = Hand(cards) self.assertEqual(ranker.rank(hand), Rank.THREE_OF_A_KIND)
def test_royal_flush(self): ranker = HandRanker() cards = [ Card('S', 14), Card('S', 13), Card('S', 12), Card('S', 11), Card('S', 10) ] hand = Hand(cards) self.assertEqual(ranker.rank(hand), Rank.ROYAL_FLUSH)
def test_flush(self): ranker = HandRanker() cards = [ Card('S', 13), Card('S', 12), Card('S', 11), Card('S', 3), Card('S', 9) ] hand = Hand(cards) self.assertEqual(ranker.rank(hand), Rank.FLUSH)
def test_full_house(self): ranker = HandRanker() cards = [ Card('S', 13), Card('H', 13), Card('D', 13), Card('C', 9), Card('S', 9) ] hand = Hand(cards) self.assertEqual(ranker.rank(hand), Rank.FULL_HOUSE)
def test_four_of_a_kind(self): ranker = HandRanker() cards = [ Card('S', 13), Card('H', 13), Card('D', 13), Card('C', 13), Card('S', 9) ] hand = Hand(cards) self.assertEqual(ranker.rank(hand), Rank.FOUR_OF_A_KIND)
def test_high_card(self): ranker = HandRanker() cards = [ Card('S', 13), Card('H', 11), Card('D', 3), Card('C', 10), Card('S', 9) ] hand = Hand(cards) self.assertEqual(ranker.rank(hand), Rank.HIGH_CARD)
def __init__(self, players, event_stream): self.state = GameStates.BEGIN if len(players) < 2: raise Error("") self.players = players self.event_stream = event_stream self.transition = { GameStates.BEGIN: GameStates.START_ROUND, GameStates.START_ROUND: GameStates.DEALING, GameStates.DEALING: GameStates.FIRST_BET, GameStates.FIRST_BET: GameStates.FLOP, GameStates.FLOP: GameStates.SECOND_BET, GameStates.SECOND_BET: GameStates.RIVER, GameStates.RIVER: GameStates.THIRD_BET, GameStates.THIRD_BET: GameStates.TURN, GameStates.TURN: GameStates.LAST_BET, GameStates.LAST_BET: GameStates.END_ROUND, GameStates.END_ROUND: GameStates.START_ROUND } self.state_action = { GameStates.START_ROUND: self.start_round, GameStates.DEALING: self.deal, GameStates.FIRST_BET: self.first_bet, GameStates.FLOP: self.flop, GameStates.SECOND_BET: self.second_bet, GameStates.RIVER: self.river, GameStates.THIRD_BET: self.third_bet, GameStates.TURN: self.turn, GameStates.LAST_BET: self.last_bet, GameStates.END_ROUND: self.end_round, GameStates.DONE: self.end_game } self.player_turn = self.players[0] self.player_consensus = 0 self.pot = 0 self.hand_ranker = HandRanker()