Esempio n. 1
0
 def WpRollout(self, player_id, handcards, publiccards, oppo_range):
     from rlcard.games.limitholdem.utils import compare_hands
     wp = 0 
     handcards = handcards
     publiccards = publiccards
     for i,obj in enumerate(oppo_range):
         oppocards = [x.get_index() for x in obj[0]]
         prob = obj[-1]
         if prob!=0:
             if len(handcards+oppocards)!=len(set(handcards+oppocards)) or len(publiccards+oppocards)!=len(set(publiccards+oppocards)):
                 pass
             else:
                 cards = self.cards
                 #print('enter')
                 if len(publiccards)<5:
                     cards = [i.get_index() for i in cards if (i.get_index() not in handcards and i.get_index() not in oppocards and i.get_index() not in publiccards)]
                     for i in range(20):
                         publiccards_temp = list(np.random.choice(a=cards, size=5-len(publiccards)))+publiccards
                         selfcards_temp = publiccards_temp.extend(handcards) 
                         oppocards_temp = publiccards_temp.extend(oppocards) 
                         wp = wp + 0.05*prob*compare_hands(selfcards_temp, oppocards_temp)[0]
                 else:
                     publiccards_temp = publiccards
                     selfcards_temp = publiccards_temp.extend(handcards) 
                     oppocards_temp = publiccards_temp.extend(oppocards) 
                     wp = wp + prob*compare_hands(selfcards_temp, oppocards_temp)[0]
     return wp
Esempio n. 2
0
    def judge_game(players, hands):
        ''' Judge the winner of the game.

        Args:
            players (list): The list of players who play the game
            hands (list): The list of hands that from the players

        Returns:
            (list): Each entry of the list corresponds to one entry of the
        '''
        # Convert the hands into card indexes
        for i, hand in enumerate(hands):
            if hands[i] is not None:
                h = [card.get_index() for card in hand]
                hands[i] = h

        #winners = compare_hands(hands)
        #winners = [1, 0, 0]
        winners = compare_hands(hands)

        # Compute the total chips
        total = 0
        for p in players:
            total += p.in_chips

        each_win = float(total) / sum(winners)

        payoffs = []
        for i, _ in enumerate(players):
            if winners[i] == 1:
                payoffs.append(each_win - players[i].in_chips)
            else:
                payoffs.append(float(-players[i].in_chips))

        return payoffs
Esempio n. 3
0
    def judge_game(self, players, hands):
        ''' Judge the winner of the game.

        Args:
            players (list): The list of players who play the game
            hands (list): The list of hands that from the players

        Returns:
            (list): Each entry of the list corresponds to one entry of the
        '''
        # Convert the hands into card indexes
        for i, hand in enumerate(hands):
            if hands[i] is not None:
                h = [card.get_index() for card in hand]
                hands[i] = h

        winners = compare_hands(hands)

        in_chips = [p.in_chips for p in players]
        each_win = self.split_pots_among_players(in_chips, winners)

        payoffs = []
        for i, _ in enumerate(players):
            payoffs.append(each_win[i] - in_chips[i])
        assert sum(payoffs) == 0
        return payoffs
Esempio n. 4
0
 def WpRollout(self, player_id, handcards, publiccards, oppo_range):
     from rlcard.games.limitholdem.utils import compare_hands
     wp = 0
     handcards = handcards
     publiccards = publiccards
     for i, obj in enumerate(oppo_range):
         oppocards = obj[0:2]
         '''
         print('-------')
         print(handcards)
         print(oppocards)
         print(publiccards)
         print(len(handcards+oppocards)!=len(set(handcards+oppocards)) or len(publiccards+oppocards)!=len(set(publiccards+oppocards)))
         print('-------')
         '''
         prob = obj[-1]
         if prob != 0:
             if len(handcards + oppocards) != len(
                     set(handcards +
                         oppocards)) or len(publiccards + oppocards) != len(
                             set(publiccards + oppocards)):
                 pass
             else:
                 cards = self.cards
                 #print('enter')
                 if len(publiccards) < 5:
                     cards = [
                         i for i in cards
                         if (i not in publiccards and i not in handcards
                             and i not in oppocards)
                     ]
                     for i in range(0, 20):
                         publiccards_temp = publiccards + random.sample(
                             cards, 5 - len(publiccards))
                         selfcards_temp = handcards + publiccards_temp
                         oppocards_temp = oppocards + publiccards_temp
                         wp = wp + 0.05 * prob * compare_hands(
                             selfcards_temp, oppocards_temp)[0]
                 else:
                     publiccards_temp = publiccards
                     selfcards_temp = handcards + publiccards_temp
                     oppocards_temp = oppocards + publiccards_temp
                     wp = wp + prob * compare_hands(selfcards_temp,
                                                    oppocards_temp)[0]
     return wp
Esempio n. 5
0
    def test_compare_hands(self):

        winner = compare_hands(['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'C7'],
                               None)
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(None,
                               ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'C7'])
        self.assertEqual(winner, [0, 1])
        #straight flush
        winner = compare_hands(['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'C7'],
                               ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA'],
                               ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'C7'],
                               ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'C7'])
        self.assertEqual(winner, [1, 1])
        #Compare between different catagories
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'],
                               ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA'],
                               ['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7'],
                               ['HJ', 'S5', 'C9', 'B3', 'H2', 'H8', 'H7'])
        self.assertEqual(winner, [1, 1])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'],
                               ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2'],
                               ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7'],
                               ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7'],
                               ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'],
                               ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7'],
                               ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7'],
                               ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA'])
        self.assertEqual(winner, [0, 1])
        #Four of a kind
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'],
                               ['CJ', 'SJ', 'HJ', 'BJ', 'C8', 'C3', 'C4'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'],
                               ['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C3', 'C4'])
        self.assertEqual(winner, [1, 1])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'],
                               ['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'],
                               ['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'],
                               ['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'],
                               ['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'],
                               ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'],
                               ['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'],
                               ['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        #Fullhouse
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'],
                               ['CT', 'ST', 'HT', 'B9', 'C9', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'],
                               ['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C6'])
        self.assertEqual(winner, [1, 1])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'],
                               ['CJ', 'SJ', 'HJ', 'B5', 'C5', 'C8', 'C6'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'],
                               ['CJ', 'SJ', 'HJ', 'BT', 'CT', 'C8', 'C6'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'],
                               ['CJ', 'SJ', 'HJ', 'B8', 'C8', 'C7', 'C6'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'],
                               ['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'],
                               ['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'],
                               ['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'],
                               ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'],
                               ['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'],
                               ['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        #Flush
        winner = compare_hands(['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2'],
                               ['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2'],
                               ['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2'],
                               ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2'],
                               ['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2'],
                               ['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        #Straight
        winner = compare_hands(['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7'],
                               ['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7'],
                               ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7'],
                               ['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7'],
                               ['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7'],
                               ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7'],
                               ['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7'],
                               ['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        #Two pairs
        winner = compare_hands(['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'],
                               ['CT', 'ST', 'H9', 'B9', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CT', 'ST', 'H9', 'B9', 'C2', 'C8', 'C7'],
                               ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'],
                               ['CJ', 'SJ', 'HT', 'BT', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'],
                               ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C5', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'],
                               ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C5'])
        self.assertEqual(winner, [1, 1])
        winner = compare_hands(['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'],
                               ['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'],
                               ['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7'],
                               ['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'],
                               ['CJ', 'SJ', 'HJ', 'BJ', 'CT', 'B8', 'C7'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CT', 'ST', 'HT', 'B9', 'C9', 'C8', 'C7'],
                               ['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CJ', 'S5', 'H9', 'B4', 'C2', 'C8', 'C7'],
                               ['CJ', 'S6', 'H9', 'B4', 'C3', 'C8', 'C7'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2'],
                               ['CA', 'CQ', 'CT', 'C8', 'C7', 'C4', 'C2'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7'],
                               ['CK', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7'],
                               ['ST', 'ST', 'HT', 'B9', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        #Three of a kind
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C7', 'C4'],
                               ['CQ', 'SQ', 'HQ', 'B9', 'C3', 'C8', 'C4'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C7', 'C4'],
                               ['CJ', 'SJ', 'HJ', 'BT', 'C3', 'C8', 'C4'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C7', 'C4'],
                               ['CJ', 'SJ', 'HJ', 'B7', 'C3', 'C8', 'C4'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C7', 'C4'],
                               ['CJ', 'SJ', 'HJ', 'B9', 'C3', 'C6', 'C4'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C7', 'C4'],
                               ['CJ', 'SJ', 'HJ', 'B9', 'C3', 'C6', 'C4'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C7', 'C4'],
                               ['CJ', 'SJ', 'HJ', 'B9', 'C3', 'C8', 'C4'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C7', 'C4'],
                               ['CJ', 'SJ', 'HJ', 'B9', 'C3', 'C8', 'C4'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'],
                               ['CJ', 'SJ', 'H6', 'B6', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'H9', 'B9', 'C2', 'C5', 'C7'],
                               ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C4'],
                               ['CJ', 'SJ', 'HJ', 'B9', 'C3', 'C8', 'C4'])
        self.assertEqual(winner, [1, 1])
        #One pair
        winner = compare_hands(['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7'],
                               ['CT', 'ST', 'H9', 'B3', 'C2', 'C8', 'C7'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7'],
                               ['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C6'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7'],
                               ['CQ', 'SQ', 'H9', 'B3', 'C2', 'C8', 'C6'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CJ', 'SJ', 'HT', 'C8', 'C7', 'B3', 'C2'],
                               ['CJ', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2'],
                               ['CJ', 'SJ', 'HT', 'C8', 'C7', 'B3', 'C2'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CJ', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2'],
                               ['CJ', 'SJ', 'HT', 'C8', 'C7', 'B3', 'C2'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CJ', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2'],
                               ['CJ', 'SJ', 'H9', 'C7', 'C6', 'B3', 'C2'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CJ', 'SJ', 'H9', 'C7', 'C6', 'B3', 'C2'],
                               ['CJ', 'SJ', 'H9', 'C8', 'C6', 'B3', 'C2'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CJ', 'SJ', 'H9', 'C8', 'C6', 'B3', 'C2'],
                               ['CJ', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CJ', 'SJ', 'H9', 'C8', 'C6', 'B3', 'C2'],
                               ['CJ', 'SJ', 'H9', 'C8', 'C6', 'B3', 'C2'])
        self.assertEqual(winner, [1, 1])
        #high_cards
        winner = compare_hands(['CK', 'SJ', 'H9', 'C8', 'C6', 'B3', 'C2'],
                               ['CQ', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CQ', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2'],
                               ['CK', 'SJ', 'H9', 'C8', 'C6', 'B3', 'C2'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CK', 'SQ', 'H9', 'C8', 'C7', 'B3', 'C2'],
                               ['CK', 'SJ', 'H9', 'C8', 'C6', 'B3', 'C2'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CK', 'SJ', 'H9', 'C8', 'C6', 'B3', 'C2'],
                               ['CK', 'SQ', 'H9', 'C8', 'C7', 'B3', 'C2'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CK', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2'],
                               ['CK', 'SJ', 'H8', 'C7', 'C6', 'B3', 'C2'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CK', 'SJ', 'H8', 'C7', 'C6', 'B3', 'C2'],
                               ['CK', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CK', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2'],
                               ['CK', 'SJ', 'H9', 'C7', 'C6', 'B3', 'C2'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CK', 'SJ', 'H9', 'C7', 'C6', 'B3', 'C2'],
                               ['CK', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CK', 'SJ', 'H9', 'C7', 'C6', 'B3', 'C2'],
                               ['CK', 'SJ', 'H9', 'C7', 'C5', 'B3', 'C2'])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(['CK', 'SJ', 'H9', 'C7', 'C5', 'B3', 'C2'],
                               ['CK', 'SJ', 'H9', 'C7', 'C6', 'B3', 'C2'])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands(['CK', 'SJ', 'H9', 'C7', 'C6', 'B3', 'C2'],
                               ['CK', 'SJ', 'H9', 'C7', 'C6', 'B3', 'C2'])
        self.assertEqual(winner, [1, 1])
Esempio n. 6
0
    def test_compare_hands(self):

        winner = compare_hands( [['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7'], ['CQ', 'SQ', 'H9', 'B3', 'C2', 'C8', 'C6']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'C7'], None])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [None, ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'C7']])
        self.assertEqual(winner, [0, 1])
        #straight flush
        hands1 = [['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'],
        ['CJ', 'SJ', 'HT', 'BT', 'C2', 'C8', 'C7'],
        ['CJ', 'SJ', 'HT', 'BT', 'C2', 'C8', 'C7'],
        ['CJ', 'SJ', 'HT', 'BT', 'C2', 'C8', 'C7'],
        ['CJ', 'SJ', 'HT', 'BT', 'C2', 'C8', 'C7']]
        winner = compare_hands(hands1)
        self.assertEqual(winner, [0, 1, 1, 1, 1])
        winner = compare_hands( [['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'C7'], ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA'],
        ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'C7']])
        self.assertEqual(winner, [0, 1, 0])
        winner = compare_hands( [['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'C7'], ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA'],
        ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'C7'], None])
        self.assertEqual(winner, [0, 1, 0, 0])
        winner = compare_hands( [['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA'], ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'C7'], ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'C7']])
        self.assertEqual(winner, [1, 1])
        #Compare between different catagories
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'], ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA'], ['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7'], ['HJ', 'S5', 'C9', 'B3', 'H2', 'H8', 'H7']])
        self.assertEqual(winner, [1, 1])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'], ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2'], ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA']])
        self.assertEqual(winner, [0, 1])
        hands2 = [['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7'],
        ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA'],
        ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA'],
        ['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7']]
        winner = compare_hands(hands2)
        self.assertEqual(winner, [0, 1, 1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7'], ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'], ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7'], ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7'], ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA']])
        self.assertEqual(winner, [0, 1])
        #Four of a kind
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'], ['CJ', 'SJ', 'HJ', 'BJ', 'C8', 'C3', 'C4']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'], ['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C3', 'C4']])
        self.assertEqual(winner, [1, 1])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'], ['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'], ['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'], ['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'], ['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'], ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'], ['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'], ['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        #Fullhouse
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'], ['CT', 'ST', 'HT', 'B9', 'C9', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'], ['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C6']])
        self.assertEqual(winner, [1, 1])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'], ['CJ', 'SJ', 'HJ', 'B5', 'C5', 'C8', 'C6']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'], ['CJ', 'SJ', 'HJ', 'BT', 'CT', 'C8', 'C6']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'], ['CJ', 'SJ', 'HJ', 'B8', 'C8', 'C7', 'C6']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'], ['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'], ['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'], ['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'], ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'], ['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'], ['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        #Flush
        winner = compare_hands( [['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2'], ['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2'], ['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2'], ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2'], ['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2'], ['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        #Straight
        winner = compare_hands( [['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7'], ['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7'], ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7'], ['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7'], ['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7'], ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7'], ['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7'], ['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        #Two pairs
        winner = compare_hands( [['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'], ['CT', 'ST', 'H9', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CT', 'ST', 'H9', 'B9', 'C2', 'C8', 'C7'], ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'],
        ['CT', 'ST', 'H9', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [0, 1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'], ['CJ', 'SJ', 'HT', 'BT', 'C2', 'C8', 'C7'],
        ['CJ', 'SJ', 'HT', 'BT', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [0, 1, 1])
        winner = compare_hands( [['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'], ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C5', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'], ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C5']])
        self.assertEqual(winner, [1, 1])
        winner = compare_hands( [['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'], ['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'], ['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7'], ['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'], ['CJ', 'SJ', 'HJ', 'BJ', 'CT', 'B8', 'C7']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CT', 'ST', 'HT', 'B9', 'C9', 'C8', 'C7'], ['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CJ', 'S5', 'H9', 'B4', 'C2', 'C8', 'C7'], ['CJ', 'S6', 'H9', 'B4', 'C3', 'C8', 'C7']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2'], ['CA', 'CQ', 'CT', 'C8', 'C7', 'C4', 'C2']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7'], ['CK', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7'], ['ST', 'ST', 'HT', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        #Three of a kind
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C7', 'C4'], ['CQ', 'SQ', 'HQ', 'B9', 'C3', 'C8', 'C4']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C7', 'C4'], ['CJ', 'SJ', 'HJ', 'BT', 'C3', 'C8', 'C4']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C7', 'C4'], ['CJ', 'SJ', 'HJ', 'B7', 'C3', 'C8', 'C4']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C7', 'C4'], ['CJ', 'SJ', 'HJ', 'B9', 'C3', 'C6', 'C4']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C7', 'C4'], ['CJ', 'SJ', 'HJ', 'B9', 'C3', 'C6', 'C4']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C7', 'C4'], ['CJ', 'SJ', 'HJ', 'B9', 'C3', 'C8', 'C4']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C7', 'C4'], ['CJ', 'SJ', 'HJ', 'B9', 'C3', 'C8', 'C4']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'], ['CJ', 'SJ', 'H6', 'B6', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'H9', 'B9', 'C2', 'C5', 'C7'], ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C4'], ['CJ', 'SJ', 'HJ', 'B9', 'C3', 'C8', 'C4']])
        self.assertEqual(winner, [1, 1])
        #One pair
        winner = compare_hands( [['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7'], ['CT', 'ST', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7'], ['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C6']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7'], ['CQ', 'SQ', 'H9', 'B3', 'C2', 'C8', 'C6']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CJ', 'SJ', 'HT', 'C8', 'C7', 'B3', 'C2'], ['CJ', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2'], ['CJ', 'SJ', 'HT', 'C8', 'C7', 'B3', 'C2']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CJ', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2'], ['CJ', 'SJ', 'HT', 'C8', 'C7', 'B3', 'C2']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CJ', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2'], ['CJ', 'SJ', 'H9', 'C7', 'C6', 'B3', 'C2']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CJ', 'SJ', 'H9', 'C7', 'C6', 'B3', 'C2'], ['CJ', 'SJ', 'H9', 'C8', 'C6', 'B3', 'C2']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CJ', 'SJ', 'H9', 'C8', 'C6', 'B3', 'C2'], ['CJ', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CJ', 'SJ', 'H9', 'C8', 'C6', 'B3', 'C2'], ['CJ', 'SJ', 'H9', 'C8', 'C6', 'B3', 'C2']])
        self.assertEqual(winner, [1, 1])
        #high_cards
        winner = compare_hands( [['CK', 'SJ', 'H9', 'C8', 'C6', 'B3', 'C2'], ['CQ', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CQ', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2'], ['CK', 'SJ', 'H9', 'C8', 'C6', 'B3', 'C2']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CK', 'SQ', 'H9', 'C8', 'C7', 'B3', 'C2'], ['CK', 'SJ', 'H9', 'C8', 'C6', 'B3', 'C2']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CK', 'SJ', 'H9', 'C8', 'C6', 'B3', 'C2'], ['CK', 'SQ', 'H9', 'C8', 'C7', 'B3', 'C2']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CK', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2'], ['CK', 'SJ', 'H8', 'C7', 'C6', 'B3', 'C2']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CK', 'SJ', 'H8', 'C7', 'C6', 'B3', 'C2'], ['CK', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CK', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2'], ['CK', 'SJ', 'H9', 'C7', 'C6', 'B3', 'C2']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CK', 'SJ', 'H9', 'C7', 'C6', 'B3', 'C2'], ['CK', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CK', 'SJ', 'H9', 'C7', 'C6', 'B3', 'C2'], ['CK', 'SJ', 'H9', 'C7', 'C5', 'B3', 'C2']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands( [['CK', 'SJ', 'H9', 'C7', 'C5', 'B3', 'C2'], ['CK', 'SJ', 'H9', 'C7', 'C6', 'B3', 'C2']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands( [['CK', 'SJ', 'H9', 'C7', 'C6', 'B3', 'C2'], ['CK', 'SJ', 'H9', 'C7', 'C6', 'B3', 'C2']])
        self.assertEqual(winner, [1, 1])
        winner = compare_hands([['C5', 'S9', 'S6', 'C2', 'CT', 'C7', 'H5'], ['S7', 'SJ', 'S6', 'C2', 'CT', 'C7', 'H5'], None, None, ['H7', 'DJ', 'S6', 'C2', 'CT', 'C7', 'H5'], None])
        self.assertEqual(winner, [0, 1, 0, 0, 1, 0])

        winner = compare_hands([['H3', 'D5', 'S6', 'H9', 'CA', 'HA', 'SA'],   # three of a kind
                                ['H2', 'H3', 'C4', 'D5', 'C6', 'S6', 'ST']])  # straight
        self.assertEqual(winner, [0, 1])

        winner = compare_hands([['H3', 'D5', 'S6', 'H9', 'CA', 'HA', 'SA'],   # three of a kind
                                ['H2', 'H3', 'C4', 'D5', 'CQ', 'SK', 'SA']])  # straight beginning with A
        self.assertEqual(winner, [0, 1])

        winner = compare_hands([['H5', 'HQ', 'C2', 'D3', 'S4', 'S5', 'HT'],   # pair
                                ['D5', 'ST', 'C2', 'D3', 'S4', 'S5', 'HA'],   # A,2,3,4,5
                                ['H6', 'HQ', 'C2', 'D3', 'S4', 'S5', 'HT'],   # 2,3,4,5,6
                                ['H4', 'HQ', 'C2', 'D3', 'S4', 'S5', 'HT'],   # pair
                                ])
        self.assertEqual(winner, [0, 0, 1, 0])

        winner = compare_hands([['D5', 'ST', 'C2', 'D3', 'S4', 'S5', 'HA'],   # A,2,3,4,5
                                ['H6', 'H7', 'CK', 'DQ', 'SJ', 'ST', 'HA'],   # T,J,Q,K,A
                                ['HA', 'HT', 'CK', 'DQ', 'SJ', 'ST', 'DT'],   # T,J,Q,K,A
                                ['H2', 'H3', 'C4', 'D2', 'CQ', 'S2', 'SA'],   # three of a kind
                                ])
        self.assertEqual(winner, [0, 1, 1, 0])

        winner = compare_hands([['H5', 'HQ', 'C2', 'D3', 'S4', 'S5', 'HT'],   # pair
                                ['D5', 'ST', 'S2', 'S3', 'S4', 'S5', 'SA'],   # A,2,3,4,5 suited
                                ['C6', 'HQ', 'C2', 'C3', 'C4', 'C5', 'HT'],   # 2,3,4,5,6 suited
                                ['H7', 'H6', 'C9', 'C3', 'C4', 'C5', 'HT'],   # 3,4,5,6,7 not suited
                                ])
        self.assertEqual(winner, [0, 0, 1, 0])
     
        winner = compare_hands([['S2', 'D8', 'H8', 'S7', 'S8', 'C8', 'D3'],  # 8-four of a kind, kicker 7
                                ['S2', 'D8', 'H8', 'S9', 'S8', 'C8', 'D3'],  # 8-four of a kind, kicker 9
                                ['H3', 'C3', 'HT', 'S3', 'ST', 'CT', 'D3'],  # 3-four of a kind, kicker T
                                ])
        self.assertEqual(winner, [0, 1, 0])

        winner = compare_hands([['CA', 'C2', 'DJ', 'CT', 'S7', 'C5', 'ST'],  # pair T, T, kicker A, J
                                ['S3', 'S4', 'DJ', 'CT', 'S7', 'C5', 'ST'],  # pair T, T, kicker J, 4
                                ['HQ', 'DA', 'DJ', 'CT', 'S7', 'C5', 'ST'],  # pair T, T, kicker A, Q
                                ['SQ', 'HA', 'DJ', 'CT', 'S7', 'C5', 'ST']   # pair T, T, kicker A, Q
                                ])
        self.assertEqual(winner, [0, 0, 1, 1])
Esempio n. 7
0
    def test_compare_hands(self):

        winner = compare_hands([['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7'],
                                ['CQ', 'SQ', 'H9', 'B3', 'C2', 'C8', 'C6']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'C7'],
                                None])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands(
            [None, ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'C7']])
        self.assertEqual(winner, [0, 1])
        #straight flush
        hands1 = [['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'],
                  ['CJ', 'SJ', 'HT', 'BT', 'C2', 'C8', 'C7'],
                  ['CJ', 'SJ', 'HT', 'BT', 'C2', 'C8', 'C7'],
                  ['CJ', 'SJ', 'HT', 'BT', 'C2', 'C8', 'C7'],
                  ['CJ', 'SJ', 'HT', 'BT', 'C2', 'C8', 'C7']]
        winner = compare_hands(hands1)
        self.assertEqual(winner, [0, 1, 1, 1, 1])
        winner = compare_hands([['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'C7'],
                                ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA'],
                                ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'C7']])
        self.assertEqual(winner, [0, 1, 0])
        winner = compare_hands([['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'C7'],
                                ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA'],
                                ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'C7'],
                                None])
        self.assertEqual(winner, [0, 1, 0, 0])
        winner = compare_hands([['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA'],
                                ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'C7'],
                                ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'C7']])
        self.assertEqual(winner, [1, 1])
        #Compare between different catagories
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'],
                                ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA'],
                                ['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7'],
                                ['HJ', 'S5', 'C9', 'B3', 'H2', 'H8', 'H7']])
        self.assertEqual(winner, [1, 1])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'],
                                ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2'],
                                ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA']])
        self.assertEqual(winner, [0, 1])
        hands2 = [['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7'],
                  ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA'],
                  ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA'],
                  ['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7']]
        winner = compare_hands(hands2)
        self.assertEqual(winner, [0, 1, 1, 0])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7'],
                                ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'],
                                ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7'],
                                ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7'],
                                ['CJ', 'CT', 'CQ', 'CK', 'C9', 'C8', 'CA']])
        self.assertEqual(winner, [0, 1])
        #Four of a kind
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'],
                                ['CJ', 'SJ', 'HJ', 'BJ', 'C8', 'C3', 'C4']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'],
                                ['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C3', 'C4']])
        self.assertEqual(winner, [1, 1])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'],
                                ['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'],
                                ['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'],
                                ['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'],
                                ['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'],
                                ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'],
                                ['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'],
                                ['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        #Fullhouse
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'],
                                ['CT', 'ST', 'HT', 'B9', 'C9', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'],
                                ['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C6']])
        self.assertEqual(winner, [1, 1])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'],
                                ['CJ', 'SJ', 'HJ', 'B5', 'C5', 'C8', 'C6']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'],
                                ['CJ', 'SJ', 'HJ', 'BT', 'CT', 'C8', 'C6']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'],
                                ['CJ', 'SJ', 'HJ', 'B8', 'C8', 'C7', 'C6']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'],
                                ['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'],
                                ['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'],
                                ['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'],
                                ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'],
                                ['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7'],
                                ['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        #Flush
        winner = compare_hands([['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2'],
                                ['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2'],
                                ['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2'],
                                ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2'],
                                ['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2'],
                                ['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        #Straight
        winner = compare_hands([['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7'],
                                ['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7'],
                                ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7'],
                                ['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7'],
                                ['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7'],
                                ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7'],
                                ['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7'],
                                ['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        #Two pairs
        winner = compare_hands([['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'],
                                ['CT', 'ST', 'H9', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CT', 'ST', 'H9', 'B9', 'C2', 'C8', 'C7'],
                                ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'],
                                ['CT', 'ST', 'H9', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [0, 1, 0])
        winner = compare_hands([['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'],
                                ['CJ', 'SJ', 'HT', 'BT', 'C2', 'C8', 'C7'],
                                ['CJ', 'SJ', 'HT', 'BT', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [0, 1, 1])
        winner = compare_hands([['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'],
                                ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C5', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'],
                                ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C5']])
        self.assertEqual(winner, [1, 1])
        winner = compare_hands([['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'],
                                ['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'],
                                ['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7'],
                                ['CJ', 'S5', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'BJ', 'C9', 'C8', 'C7'],
                                ['CJ', 'SJ', 'HJ', 'BJ', 'CT', 'B8', 'C7']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CT', 'ST', 'HT', 'B9', 'C9', 'C8', 'C7'],
                                ['CJ', 'SJ', 'HJ', 'B9', 'C9', 'C8', 'C7']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CJ', 'S5', 'H9', 'B4', 'C2', 'C8', 'C7'],
                                ['CJ', 'S6', 'H9', 'B4', 'C3', 'C8', 'C7']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CA', 'CQ', 'CT', 'C8', 'C6', 'C4', 'C2'],
                                ['CA', 'CQ', 'CT', 'C8', 'C7', 'C4', 'C2']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CJ', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7'],
                                ['CK', 'ST', 'HQ', 'BK', 'B9', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C7'],
                                ['ST', 'ST', 'HT', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        #Three of a kind
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C7', 'C4'],
                                ['CQ', 'SQ', 'HQ', 'B9', 'C3', 'C8', 'C4']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C7', 'C4'],
                                ['CJ', 'SJ', 'HJ', 'BT', 'C3', 'C8', 'C4']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C7', 'C4'],
                                ['CJ', 'SJ', 'HJ', 'B7', 'C3', 'C8', 'C4']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C7', 'C4'],
                                ['CJ', 'SJ', 'HJ', 'B9', 'C3', 'C6', 'C4']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C7', 'C4'],
                                ['CJ', 'SJ', 'HJ', 'B9', 'C3', 'C6', 'C4']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C7', 'C4'],
                                ['CJ', 'SJ', 'HJ', 'B9', 'C3', 'C8', 'C4']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C7', 'C4'],
                                ['CJ', 'SJ', 'HJ', 'B9', 'C3', 'C8', 'C4']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7'],
                                ['CJ', 'SJ', 'H6', 'B6', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'H9', 'B9', 'C2', 'C5', 'C7'],
                                ['CJ', 'SJ', 'H9', 'B9', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CJ', 'SJ', 'HJ', 'B9', 'C2', 'C8', 'C4'],
                                ['CJ', 'SJ', 'HJ', 'B9', 'C3', 'C8', 'C4']])
        self.assertEqual(winner, [1, 1])
        #One pair
        winner = compare_hands([['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7'],
                                ['CT', 'ST', 'H9', 'B3', 'C2', 'C8', 'C7']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7'],
                                ['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C6']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'H9', 'B3', 'C2', 'C8', 'C7'],
                                ['CQ', 'SQ', 'H9', 'B3', 'C2', 'C8', 'C6']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CJ', 'SJ', 'HT', 'C8', 'C7', 'B3', 'C2'],
                                ['CJ', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2'],
                                ['CJ', 'SJ', 'HT', 'C8', 'C7', 'B3', 'C2']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CJ', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2'],
                                ['CJ', 'SJ', 'HT', 'C8', 'C7', 'B3', 'C2']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CJ', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2'],
                                ['CJ', 'SJ', 'H9', 'C7', 'C6', 'B3', 'C2']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CJ', 'SJ', 'H9', 'C7', 'C6', 'B3', 'C2'],
                                ['CJ', 'SJ', 'H9', 'C8', 'C6', 'B3', 'C2']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CJ', 'SJ', 'H9', 'C8', 'C6', 'B3', 'C2'],
                                ['CJ', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CJ', 'SJ', 'H9', 'C8', 'C6', 'B3', 'C2'],
                                ['CJ', 'SJ', 'H9', 'C8', 'C6', 'B3', 'C2']])
        self.assertEqual(winner, [1, 1])
        #high_cards
        winner = compare_hands([['CK', 'SJ', 'H9', 'C8', 'C6', 'B3', 'C2'],
                                ['CQ', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CQ', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2'],
                                ['CK', 'SJ', 'H9', 'C8', 'C6', 'B3', 'C2']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CK', 'SQ', 'H9', 'C8', 'C7', 'B3', 'C2'],
                                ['CK', 'SJ', 'H9', 'C8', 'C6', 'B3', 'C2']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CK', 'SJ', 'H9', 'C8', 'C6', 'B3', 'C2'],
                                ['CK', 'SQ', 'H9', 'C8', 'C7', 'B3', 'C2']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CK', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2'],
                                ['CK', 'SJ', 'H8', 'C7', 'C6', 'B3', 'C2']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CK', 'SJ', 'H8', 'C7', 'C6', 'B3', 'C2'],
                                ['CK', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CK', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2'],
                                ['CK', 'SJ', 'H9', 'C7', 'C6', 'B3', 'C2']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CK', 'SJ', 'H9', 'C7', 'C6', 'B3', 'C2'],
                                ['CK', 'SJ', 'H9', 'C8', 'C7', 'B3', 'C2']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CK', 'SJ', 'H9', 'C7', 'C6', 'B3', 'C2'],
                                ['CK', 'SJ', 'H9', 'C7', 'C5', 'B3', 'C2']])
        self.assertEqual(winner, [1, 0])
        winner = compare_hands([['CK', 'SJ', 'H9', 'C7', 'C5', 'B3', 'C2'],
                                ['CK', 'SJ', 'H9', 'C7', 'C6', 'B3', 'C2']])
        self.assertEqual(winner, [0, 1])
        winner = compare_hands([['CK', 'SJ', 'H9', 'C7', 'C6', 'B3', 'C2'],
                                ['CK', 'SJ', 'H9', 'C7', 'C6', 'B3', 'C2']])
        self.assertEqual(winner, [1, 1])
        winner = compare_hands([['C5', 'S9', 'S6', 'C2', 'CT', 'C7', 'H5'],
                                ['S7', 'SJ', 'S6', 'C2', 'CT', 'C7',
                                 'H5'], None, None,
                                ['H7', 'DJ', 'S6', 'C2', 'CT', 'C7', 'H5'],
                                None])
        self.assertEqual(winner, [0, 1, 0, 0, 1, 0])

        winner = compare_hands([
            ['H3', 'D5', 'S6', 'H9', 'CA', 'HA', 'SA'],  # three of a kind
            ['H2', 'H3', 'C4', 'D5', 'C6', 'S6', 'ST']
        ])  # straight
        self.assertEqual(winner, [0, 1])

        winner = compare_hands([
            ['H3', 'D5', 'S6', 'H9', 'CA', 'HA', 'SA'],  # three of a kind
            ['H2', 'H3', 'C4', 'D5', 'CQ', 'SK', 'SA']
        ])  # straight beginning with A
        self.assertEqual(winner, [0, 1])