示例#1
0
    def test_untie_tree_of_a_kind(self):
        tree_of_a_kind1 = Hand([
            Card('2', 'C'),
            Card('2', 'D'),
            Card('2', 'H'),
            Card('5', 'S'),
            Card('6', 'S'),
        ])

        tree_of_a_kind2 = Hand([
            Card('2', 'C'),
            Card('2', 'D'),
            Card('2', 'H'),
            Card('5', 'S'),
            Card('6', 'S'),
        ])
        self.assertEquals(tree_of_a_kind1, tree_of_a_kind2)

        lower_tree_of_a_kind = Hand([
            Card('2', 'D'),
            Card('4', 'S'),
            Card('2', 'H'),
            Card('6', 'S'),
            Card('2', 'C'),
        ])

        higher_tree_of_a_kind = Hand([
            Card('2', 'D'),
            Card('5', 'S'),
            Card('2', 'H'),
            Card('6', 'S'),
            Card('2', 'C'),
        ])
        self.assertGreater(higher_tree_of_a_kind, lower_tree_of_a_kind)
示例#2
0
    def test_untie_flush(self):
        flush1 = Hand([
            Card('9', 'C'),
            Card('A', 'C'),
            Card('J', 'C'),
            Card('K', 'C'),
            Card('8', 'C'),
        ])

        flush2 = Hand([
            Card('9', 'C'),
            Card('A', 'C'),
            Card('J', 'C'),
            Card('K', 'C'),
            Card('8', 'C'),
        ])
        self.assertEquals(flush1, flush2)

        lower_flush = Hand([
            Card('9', 'C'),
            Card('A', 'C'),
            Card('J', 'C'),
            Card('K', 'C'),
            Card('5', 'C'),
        ])

        higher_flush = Hand([
            Card('9', 'C'),
            Card('A', 'C'),
            Card('J', 'C'),
            Card('K', 'C'),
            Card('8', 'C'),
        ])
        self.assertGreater(higher_flush, lower_flush)
示例#3
0
    def test_untie_straight_flush(self):
        straight_flush1 = Hand([
            Card('9', 'C'),
            Card('T', 'C'),
            Card('J', 'C'),
            Card('Q', 'C'),
            Card('K', 'C'),
        ])

        straight_flush2 = Hand([
            Card('9', 'D'),
            Card('T', 'D'),
            Card('J', 'D'),
            Card('Q', 'D'),
            Card('K', 'D'),
        ])
        self.assertEquals(straight_flush1, straight_flush2)

        lower_straight_flush = Hand([
            Card('8', 'C'),
            Card('9', 'C'),
            Card('T', 'C'),
            Card('J', 'C'),
            Card('Q', 'C'),
        ])

        higher_straight_flush = Hand([
            Card('9', 'D'),
            Card('T', 'D'),
            Card('J', 'D'),
            Card('Q', 'D'),
            Card('K', 'D'),
        ])
        self.assertGreater(higher_straight_flush, lower_straight_flush)
示例#4
0
    def test_untie_high_card(self):
        high_card1 = Hand([
            Card('A', 'C'),
            Card('2', 'D'),
            Card('7', 'H'),
            Card('5', 'S'),
            Card('6', 'S'),
        ])

        high_card2 = Hand([
            Card('A', 'C'),
            Card('2', 'D'),
            Card('7', 'H'),
            Card('5', 'S'),
            Card('6', 'S'),
        ])
        self.assertEquals(high_card1, high_card2)

        lower_high_card = Hand([
            Card('2', 'D'),
            Card('7', 'H'),
            Card('5', 'S'),
            Card('6', 'S'),
            Card('9', 'C'),
        ])

        higher_high_card = Hand([
            Card('7', 'H'),
            Card('5', 'S'),
            Card('A', 'D'),
            Card('6', 'S'),
            Card('9', 'C'),
        ])
        self.assertGreater(higher_high_card, lower_high_card)
示例#5
0
    def test_untie_straight(self):
        straight1 = Hand([
            Card('2', 'C'),
            Card('3', 'D'),
            Card('4', 'H'),
            Card('5', 'S'),
            Card('6', 'S'),
        ])

        straight2 = Hand([
            Card('2', 'C'),
            Card('3', 'D'),
            Card('4', 'H'),
            Card('5', 'S'),
            Card('6', 'S'),
        ])
        self.assertEquals(straight1, straight2)

        lower_straight = Hand([
            Card('2', 'C'),
            Card('3', 'D'),
            Card('4', 'H'),
            Card('5', 'S'),
            Card('6', 'S'),
        ])

        higher_straight = Hand([
            Card('3', 'D'),
            Card('4', 'H'),
            Card('5', 'S'),
            Card('6', 'S'),
            Card('7', 'C'),
        ])
        self.assertGreater(higher_straight, lower_straight)
示例#6
0
    def test_untie_royal_flush(self):
        royal_flush1 = Hand([
            Card('T', 'C'),
            Card('J', 'C'),
            Card('Q', 'C'),
            Card('K', 'C'),
            Card('A', 'C'),
        ])

        royal_flush2 = Hand([
            Card('T', 'D'),
            Card('J', 'D'),
            Card('Q', 'D'),
            Card('K', 'D'),
            Card('A', 'D'),
        ])

        self.assertEquals(royal_flush1, royal_flush2)
示例#7
0
 def test_is_straight_flush(self):
     hand = Hand([
         Card('T', 'D'),
         Card('J', 'D'),
         Card('Q', 'D'),
         Card('A', 'D'),
         Card('K', 'D'),
     ])
     self.assertTrue(PokerRules.is_royal_flush(hand))
示例#8
0
    def test_is_one_pair(self):
        hand = Hand([
            Card('2', 'C'),
            Card('T', 'D'),
            Card('6', 'S'),
            Card('4', 'D'),
            Card('2', 'H'),
        ])

        self.assertTrue(PokerRules.is_one_pair(hand))
示例#9
0
    def test_is_tree_of_a_kind(self):
        hand = Hand([
            Card('2', 'C'),
            Card('2', 'D'),
            Card('3', 'S'),
            Card('4', 'D'),
            Card('2', 'H'),
        ])

        self.assertTrue(PokerRules.is_tree_of_a_kind(hand))
示例#10
0
    def test_is_straight(self):
        hand = Hand([
            Card('2', 'C'),
            Card('3', 'D'),
            Card('6', 'D'),
            Card('4', 'H'),
            Card('5', 'S'),
        ])

        self.assertTrue(PokerRules.is_straight(hand))
示例#11
0
    def test_is_flush(self):
        hand = Hand([
            Card('A', 'D'),
            Card('2', 'D'),
            Card('3', 'D'),
            Card('4', 'D'),
            Card('5', 'D')
        ])

        self.assertTrue(PokerRules.is_flush(hand))
示例#12
0
    def test_is_full_house(self):
        hand = Hand([
            Card('2', 'C'),
            Card('3', 'S'),
            Card('2', 'D'),
            Card('3', 'D'),
            Card('2', 'H'),
        ])

        self.assertTrue(PokerRules.is_full_house(hand))
示例#13
0
    def test_is_high_card(self):
        hand = Hand([
            Card('2', 'C'),
            Card('T', 'D'),
            Card('6', 'S'),
            Card('4', 'D'),
            Card('8', 'H'),
        ])

        self.assertTrue(PokerRules.is_high_card(hand))

        hand = Hand([
            Card('2', 'C'),
            Card('2', 'D'),
            Card('6', 'S'),
            Card('4', 'D'),
            Card('8', 'H'),
        ])

        self.assertFalse(PokerRules.is_high_card(hand))
示例#14
0
    def test_check_for_winner(self):
        self.table.start_game()
        self.table.players[1].call()
        self.table.players[2].call()
        self.table.players[3].call()
        self.table.players[0].call()

        rank_players = []
        for index, player in enumerate(self.table.players):
            cards = self.table.players[index].cards + self.table.game.board
            hand = Hand(cards)
            self.table.players[index].hand = utils.rank_hand(hand)
            rank_players.append((self.table.players[index].hand.rank, player.player_name))
        
        winner = max(rank_players)[1]
        utils.check_for_winner(self.table)

        self.assertEqual(self.table.game_winners[0]['player_name'], winner)
示例#15
0
    def test_untie_four_of_a_kind(self):
        four_of_a_kind1 = Hand([
            Card('9', 'C'),
            Card('9', 'D'),
            Card('9', 'H'),
            Card('9', 'S'),
            Card('K', 'C'),
        ])

        four_of_a_kind2 = Hand([
            Card('9', 'C'),
            Card('9', 'D'),
            Card('9', 'H'),
            Card('9', 'S'),
            Card('K', 'C'),
        ])
        self.assertEquals(four_of_a_kind1, four_of_a_kind2)

        lower_four_of_a_kind = Hand([
            Card('8', 'C'),
            Card('8', 'D'),
            Card('8', 'H'),
            Card('8', 'S'),
            Card('K', 'C'),
        ])

        higher_four_of_a_kind = Hand([
            Card('9', 'C'),
            Card('9', 'D'),
            Card('9', 'H'),
            Card('9', 'S'),
            Card('A', 'C'),
        ])
        self.assertGreater(higher_four_of_a_kind, lower_four_of_a_kind)

        lower_four_of_a_kind1 = Hand([
            Card('9', 'C'),
            Card('9', 'D'),
            Card('9', 'H'),
            Card('9', 'S'),
            Card('K', 'C'),
        ])

        higher_four_of_a_kind1 = Hand([
            Card('9', 'C'),
            Card('9', 'D'),
            Card('9', 'H'),
            Card('9', 'S'),
            Card('A', 'C'),
        ])
        self.assertGreater(higher_four_of_a_kind1, lower_four_of_a_kind1)
示例#16
0
    def test_untie_full_house(self):
        full_house1 = Hand([
            Card('9', 'C'),
            Card('9', 'D'),
            Card('9', 'H'),
            Card('K', 'S'),
            Card('K', 'C'),
        ])

        full_house2 = Hand([
            Card('9', 'C'),
            Card('9', 'D'),
            Card('9', 'H'),
            Card('K', 'S'),
            Card('K', 'C'),
        ])
        self.assertEquals(full_house1, full_house2)

        lower_full_house = Hand([
            Card('7', 'C'),
            Card('7', 'D'),
            Card('7', 'H'),
            Card('K', 'S'),
            Card('K', 'C'),
        ])

        higher_full_house = Hand([
            Card('9', 'C'),
            Card('9', 'D'),
            Card('9', 'H'),
            Card('A', 'S'),
            Card('A', 'C'),
        ])
        self.assertGreater(higher_full_house, lower_full_house)

        lower_full_house1 = Hand([
            Card('9', 'C'),
            Card('9', 'D'),
            Card('9', 'H'),
            Card('K', 'S'),
            Card('K', 'C'),
        ])

        higher_full_house1 = Hand([
            Card('9', 'C'),
            Card('9', 'D'),
            Card('9', 'H'),
            Card('A', 'S'),
            Card('A', 'C'),
        ])
        self.assertGreater(higher_full_house1, lower_full_house1)
示例#17
0
    def test_untie_one_pair(self):
        one_pair1 = Hand([
            Card('2', 'C'),
            Card('2', 'D'),
            Card('7', 'H'),
            Card('5', 'S'),
            Card('6', 'S'),
        ])

        one_pair2 = Hand([
            Card('2', 'C'),
            Card('2', 'D'),
            Card('7', 'H'),
            Card('5', 'S'),
            Card('6', 'S'),
        ])
        self.assertEquals(one_pair1, one_pair2)

        lower_one_pair = Hand([
            Card('2', 'C'),
            Card('2', 'D'),
            Card('7', 'H'),
            Card('5', 'S'),
            Card('6', 'S'),
        ])

        higher_one_pair = Hand([
            Card('3', 'C'),
            Card('3', 'D'),
            Card('7', 'H'),
            Card('5', 'S'),
            Card('8', 'S'),
        ])
        self.assertGreater(higher_one_pair, lower_one_pair)

        lower_one_pair1 = Hand([
            Card('2', 'C'),
            Card('2', 'D'),
            Card('7', 'H'),
            Card('5', 'S'),
            Card('6', 'S'),
        ])

        higher_one_pair1 = Hand([
            Card('2', 'C'),
            Card('2', 'D'),
            Card('7', 'H'),
            Card('5', 'S'),
            Card('8', 'S'),
        ])
        self.assertGreater(higher_one_pair1, lower_one_pair1)
示例#18
0
    def test_amount_of_cards(self):
        hand = Hand()
        self.assertEquals(hand.amount_of_cards(), 0)

        hand.cards = self.expected_cards
        self.assertEquals(hand.amount_of_cards(), 5)
示例#19
0
 def test_from_string_check_the_amount_of_cards(self):
     with self.assertRaises(ValueError):
         Hand.from_string(self.cards_string[:3])
示例#20
0
 def test_from_string(self):
     hand = Hand.from_string(self.cards_string)
     self.assertIsInstance(hand, Hand)
示例#21
0
 def test_parse_cards_string(self):
     cards = Hand.parse_cards_string(self.cards_string)
     for index, card in enumerate(cards):
         expected_card = self.expected_cards[index]
         self.assertEquals(expected_card.suit, card.suit)
         self.assertEquals(expected_card.value, card.value)
示例#22
0
 def test__str__(self):
     hand = Hand(self.expected_cards)
     self.assertEquals(str(hand),
                       "<hand [4D, 4D, 4D, 7H, 8D], 'Tree of a Kind'>")
示例#23
0
 def test__init__(self):
     self.hand = Hand(self.expected_cards)
     self.assertEquals(self.hand.cards, self.expected_cards)
示例#24
0
    def test_has_correct_amount_of_cards(self):
        hand = Hand()
        self.assertFalse(hand.has_correct_amount_of_cards())

        hand.cards = self.expected_cards
        self.assertTrue(hand.has_correct_amount_of_cards())
示例#25
0
    def test_untie_two_pair(self):
        two_pair1 = Hand([
            Card('2', 'C'),
            Card('6', 'S'),
            Card('2', 'D'),
            Card('5', 'H'),
            Card('5', 'S'),
        ])

        two_pair2 = Hand([
            Card('2', 'C'),
            Card('6', 'S'),
            Card('5', 'H'),
            Card('2', 'D'),
            Card('5', 'S'),
        ])
        self.assertEquals(two_pair1, two_pair2)

        lower_two_pair = Hand([
            Card('2', 'C'),
            Card('2', 'D'),
            Card('5', 'S'),
            Card('5', 'H'),
            Card('9', 'S'),
        ])

        higher_two_pair = Hand([
            Card('2', 'C'),
            Card('2', 'D'),
            Card('6', 'H'),
            Card('6', 'S'),
            Card('4', 'S'),
        ])
        self.assertGreater(higher_two_pair, lower_two_pair)

        lower_two_pair1 = Hand([
            Card('2', 'C'),
            Card('2', 'D'),
            Card('5', 'S'),
            Card('5', 'H'),
            Card('6', 'S'),
        ])

        higher_two_pair1 = Hand([
            Card('2', 'C'),
            Card('2', 'D'),
            Card('5', 'H'),
            Card('5', 'S'),
            Card('7', 'S'),
        ])
        self.assertGreater(higher_two_pair1, lower_two_pair1)

        lower_two_pair1 = Hand([
            Card('2', 'C'),
            Card('2', 'D'),
            Card('6', 'S'),
            Card('6', 'H'),
            Card('9', 'S'),
        ])

        higher_two_pair1 = Hand([
            Card('3', 'C'),
            Card('3', 'D'),
            Card('6', 'H'),
            Card('6', 'S'),
            Card('7', 'S'),
        ])
        self.assertGreater(higher_two_pair1, lower_two_pair1)
示例#26
0
 def setUp(self):
     self.hand = Hand(['AS', 'QS', '2H', 'TD', '7C'])