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