Exemplo n.º 1
0
    def test_pairs(self):
        a = PokerHand()

        #case 1: make sure the empty hand doesn't contain two pair
        self.assertFalse(a.has_pairs())

        #case 2: sense two pair in four cards
        a.add_cards(['Ad', 'As', '4h', '4c'], None)
        self.assertFalse(a.is_trips())
        self.assertFalse(a.is_quads())
        self.assertFalse(a.is_straight())
        self.assertFalse(a.is_flush())
        out = a.has_pairs()
        self.assertTrue(out.type == HandValue.HV_TWO_PAIR)
        self.assertTrue(out.primary == Card.CV_ACE)
        self.assertTrue(out.secondary == Card.CV_FOUR)

        #case 3: add a kicker
        a.add_cards(['3d'], None)
        self.assertFalse(a.is_trips())
        self.assertFalse(a.is_quads())
        self.assertFalse(a.is_straight())
        self.assertFalse(a.is_flush())        
        out = a.has_pairs()
        self.assertTrue(out.type == HandValue.HV_TWO_PAIR)
        self.assertTrue(out.primary == Card.CV_ACE)
        self.assertTrue(out.secondary == Card.CV_FOUR)
        
        #case 4: add a better kicker, make sure comparison works
        a.add_cards(['Kd'], None)
        self.assertFalse(a.is_trips())
        self.assertFalse(a.is_quads())
        self.assertFalse(a.is_straight())
        self.assertFalse(a.is_flush())        
        out2 = a.has_pairs()
        self.assertTrue(out2.type == HandValue.HV_TWO_PAIR)
        self.assertTrue(out2.primary == Card.CV_ACE)
        self.assertTrue(out2.secondary == Card.CV_FOUR)
        self.assertTrue(out2.tertiary > out.tertiary)

        a = PokerHand()

        #case 5: sense a pair in two cards
        a.add_cards(['6d', '6s'], None)
        self.assertFalse(a.is_trips())
        self.assertFalse(a.is_quads())
        self.assertFalse(a.is_straight())
        self.assertFalse(a.is_flush())        
        out2 = a.has_pairs()
        self.assertTrue(out2.type == HandValue.HV_PAIR)
        self.assertTrue(out2.primary == Card.CV_SIX)

        #case 6: add cards, make sure outcome is the same
        a.add_cards(['8d'], None)
        self.assertFalse(a.is_trips())
        self.assertFalse(a.is_quads())
        self.assertFalse(a.is_straight())
        self.assertFalse(a.is_flush())        
        out = a.has_pairs()
        self.assertTrue(out.type == HandValue.HV_PAIR)
        self.assertTrue(out.primary == Card.CV_SIX)

        #case 7: improve the kicker, make sure hand improves
        a.add_cards(['9d'], None)
        self.assertFalse(a.is_trips())
        self.assertFalse(a.is_quads())
        self.assertFalse(a.is_straight())
        self.assertFalse(a.is_flush())        
        out2 = a.has_pairs()
        self.assertTrue(out2.type == HandValue.HV_PAIR)
        self.assertTrue(out2.primary == Card.CV_SIX)
        self.assertTrue(out2.tertiary > out.tertiary)