Esempio n. 1
0
    def test_bug_case_00(self) -> None:
        """
        Situation:
         - All in player is winner
         - Next best player collects rest

         Total pot = 28
         All in player received:    24 :: (24)
         Next best player received: 28 :: (4)
        """
        table = Table(create_dummy_classes(3))

        player_1 = table._players
        player_2 = table._players.next
        player_3 = table._players.next.next

        table._community_cards = [
            Card('9', 'Heart', 8),
            Card('Jack', 'Spade', 10),
            Card('5', 'Heart', 4),
            Card('Ace', 'Diamond', 13),
            Card('10', 'Diamond', 9)
        ]

        player_1._basic_player._hand = [
            Card('2', 'Spade', 1),
            Card('Queen', 'Spade', 11)
        ]
        player_2._basic_player._hand = [
            Card('King', 'Spade', 12),
            Card('King', 'Diamond', 12)
        ]
        player_3._basic_player._hand = [
            Card('8', 'Spade', 7),
            Card('6', 'Spade', 5)
        ]

        table._pot = 28

        player_1.total_bet = 10
        player_1.current_move = Moves.CHECK
        player_1._basic_player._chips = 71

        player_2.total_bet = 8
        player_2.current_move = Moves.ALL_IN
        player_2._basic_player._chips = 0

        player_3.total_bet = 10
        player_3.current_move = Moves.CHECK
        player_3._basic_player._chips = 51

        table._init_showdown_phase()
        table._init_pot_collection_phase()

        self.assertEqual(75, player_1.get_amount_of_chips())
        self.assertEqual(24, player_2.get_amount_of_chips())
        self.assertEqual(51, player_3.get_amount_of_chips())
Esempio n. 2
0
    def test_bug_case_01(self) -> None:
        """
        Situation:
        4 players. All in player & another not all in player split the pot.

        Total pot: 14
        All in player received:     5 : (4)
        Not all in player received: 9 : (10)
        """
        #
        table = Table(create_dummy_classes(4))
        table.INIT_CHIPS = 100

        player_1 = table._players
        player_2 = player_1.next
        player_3 = player_2.next
        player_4 = player_3.next

        table._community_cards = [
            Card('Queen', 'Spade', 11),
            Card('10', 'Club', 9),
            Card('Jack', 'Spade', 10),
            Card('Jack', 'Diamond', 10),
            Card('8', 'Spade', 7)
        ]

        player_1.receive_cards(
            [Card('Jack', 'Heart', 10),
             Card('8', 'Diamond', 7)])
        player_2.receive_cards(
            [Card('4', 'Club', 3),
             Card('Queen', 'Club', 11)])
        player_3.receive_cards(
            [Card('6', 'Diamond', 5),
             Card('Ace', 'Spade', 13)])
        player_4.receive_cards(
            [Card('2', 'Heart', 1),
             Card('Queen', 'Diamond', 11)])

        table._pot = 14

        player_1.total_bet = 4
        player_1.current_move = Moves.FOLD
        player_1._basic_player._chips = 38

        player_2.total_bet = 6
        player_2.current_move = Moves.RAISE
        player_2._basic_player._chips = 164

        player_3.total_bet = 2
        player_3.current_move = Moves.FOLD
        player_3._basic_player._chips = 34

        player_4.total_bet = 2
        player_4.current_move = Moves.ALL_IN
        player_4._basic_player._chips = 0

        table._init_showdown_phase()
        table._init_pot_collection_phase()

        self.assertEqual(38, player_1.get_amount_of_chips())
        self.assertEqual(174, player_2.get_amount_of_chips())
        self.assertEqual(34, player_3.get_amount_of_chips())
        self.assertEqual(4, player_4.get_amount_of_chips())