def test_is_two_pair(): hand = Hand() hand.receive(Card(9, 'heart')) hand.receive(Card(7, 'club')) hand.receive(Card(9, 'spade')) hand.receive(Card(7, 'diamond')) hand.receive(Card(8, 'heart')) assert is_two_pair(hand)
def test_is_straight(): hand = Hand() hand.receive(Card(12, 'club')) hand.receive(Card(8, 'heart')) hand.receive(Card(8, 'spade')) hand.receive(Card(8, 'club')) hand.receive(Card(11, 'spade')) assert not is_straight(hand)
def test_flush(): hand = Hand() hand.receive(Card(12, 'heart')) hand.receive(Card(10, 'heart')) hand.receive(Card(8, 'heart')) hand.receive(Card(6, 'heart')) hand.receive(Card(4, 'heart')) assert is_flush(hand)
def test_full_house(): hand = Hand() hand.receive(Card(9, 'heart')) hand.receive(Card(9, 'club')) hand.receive(Card(9, 'spade')) hand.receive(Card(7, 'diamond')) hand.receive(Card(7, 'heart')) assert is_full_house(hand)
def test_3_of_a_kind_is_not_full_house(): hand = Hand() hand.receive(Card(9, 'heart')) hand.receive(Card(9, 'club')) hand.receive(Card(9, 'spade')) hand.receive(Card(7, 'diamond')) hand.receive(Card(6, 'heart')) assert not is_full_house(hand)
def test_straight_flush(): hand = Hand() hand.receive(Card(12, 'heart')) hand.receive(Card(11, 'heart')) hand.receive(Card(10, 'heart')) hand.receive(Card(9, 'heart')) hand.receive(Card(8, 'heart')) assert is_straight_flush(hand)
def test_4_of_a_kind(): hand = Hand() hand.receive(Card(9, 'heart')) hand.receive(Card(9, 'club')) hand.receive(Card(9, 'spade')) hand.receive(Card(9, 'diamond')) hand.receive(Card(8, 'heart')) assert is_4_of_a_kind(hand)
def test_straight_starting_with_ace(): hand = Hand() hand.receive(Card(14, 'heart')) hand.receive(Card(2, 'spade')) hand.receive(Card(3, 'club')) hand.receive(Card(4, 'diamond')) hand.receive(Card(5, 'heart')) assert is_straight(hand)
def test_royal_flush(): hand = Hand() hand.receive(Card(14, 'heart')) hand.receive(Card(13, 'heart')) hand.receive(Card(12, 'heart')) hand.receive(Card(11, 'heart')) hand.receive(Card(10, 'heart')) assert is_royal_flush(hand)
def test__is_not_straight(): hand = Hand() hand.receive(Card(12, 'heart')) hand.receive(Card(11, 'spade')) hand.receive(Card(10, 'club')) hand.receive(Card(9, 'diamond')) hand.receive(Card(8, 'heart')) assert is_straight(hand)
def test_card_equality(): card0 = Card(2, 'heart') card1 = Card(2, 'heart') card2 = Card(2, 'club') card3 = Card(3, 'heart') card4 = Card(3, 'club') assert card0 == card1 assert card0 != card2 assert card0 != card3 assert card0 != card4
def test_nothing_is_nothing(): hand = Hand() hand.receive(Card(12, 'heart')) hand.receive(Card(10, 'club')) hand.receive(Card(8, 'diamond')) hand.receive(Card(6, 'spade')) hand.receive(Card(4, 'heart')) for score in SCORES: if score.get('name', '') != 'nothing': assert not score['tester'](hand) assert is_nothing(hand)
def test_invalid_rank_rejected(): with pytest.raises(ValueError): Card(1, 'club') Card(16, 'club')
def test_card_rank_setting(): card = Card(3, 'heart') card.set_rank(2) assert 2 == card.get_rank()
def test_invalid_suit_set_rejected(): card = Card(2, 'heart') with pytest.raises(ValueError): card.set_suit('he')
def test_cards_creation(): for suit in ['heart', 'diamond', 'spade', 'club']: for rank in range(2, 15): card = Card(rank, suit) assert rank == card.get_rank() assert suit == card.get_suit()
def test_invalid_rank_set_rejected(): card = Card(2, 'heart') with pytest.raises(ValueError): card.set_rank(16)
def test_invalid_suit_rejected(): with pytest.raises(ValueError): Card(2, 'nonheart') Card(2, 'hearts') Card(2, 'hear')
def init_cards(self): for suit in SUIT: for rank in range(2, 15): self.cards.append(Card(rank, suit))
def test_card_suit_setting(): card = Card(2, 'heart') card.set_suit('club') assert 'club' == card.get_suit()