def test_poker_hand(): # Creates a poker table with 5 cards card1 = cardlib.NumberedCard(5, cardlib.Suits.Hearts) card2 = cardlib.NumberedCard(5, cardlib.Suits.Hearts) card3 = cardlib.AceCard(cardlib.Suits.Spades) card4 = cardlib.KingCard(cardlib.Suits.Clubs) card5 = cardlib.QueenCard(cardlib.Suits.Diamonds) poker_table = cardlib.Hand() poker_table.cards = [card1, card2, card3, card4, card5] # Creates two hands with two cards hand1 = cardlib.Hand() hand2 = cardlib.Hand() hand1.cards = [cardlib.NumberedCard(10, cardlib.Suits.Diamonds), cardlib.JackCard(cardlib.Suits.Hearts)] hand2.cards = [cardlib.NumberedCard(5, cardlib.Suits.Clubs), cardlib.NumberedCard(4, cardlib.Suits.Diamonds)] # Create two pokerhands using the hands cards and the poker_table cards pokerhand1 = hand1.best_poker_hand(poker_table.cards) # Should return poker hand 'Straight' pokerhand2 = hand2.best_poker_hand(poker_table.cards) # Should return poker hand 'Three of a kind' assert pokerhand1.poker_hand.name == 'Straight' assert pokerhand2.poker_hand.name == 'Threeofakind' # Testing < operand for the pokerhand comparison assert pokerhand2 < pokerhand1
def test_cards(): # Testing so that the card functions give the correct values assert cl.NumberedCard(cl.Rank(2), cl.Suit(0)).card[0].value == 2 assert cl.NumberedCard(cl.Rank(2), cl.Suit(0)).card[0].name == "Two" assert cl.NumberedCard(cl.Rank(2), cl.Suit(0)).card[1].value == 0 assert cl.NumberedCard(cl.Rank(2), cl.Suit(0)).card[1].name == "Clubs" assert cl.JackCard(cl.Suit(0)).give_value().value == 11 assert cl.QueenCard(cl.Suit(0)).give_value().value == 12 assert cl.KingCard(cl.Suit(0)).give_value().value == 13 assert cl.AceCard(cl.Suit(0)).give_value().value == 14
def test_queencard_creates_playingcard(): ''' Test to verify that the queencard method creates a Playing card with value 12 ''' QUEEN_VALUE = 12 for suit in cardlib.Suit: card = cardlib.QueenCard(suit) assert type(card.get_value()) == int assert card.get_value() == QUEEN_VALUE
def test_drop_cards_drop_correct_card_from_hand(): hand = cardlib.Hand() hand.add_new_card(cardlib.QueenCard(cardlib.Suit.DIAMONDS)) hand.add_new_card(cardlib.KingCard(cardlib.Suit.SPADES)) hand.add_new_card(cardlib.JackCard(cardlib.Suit.HEARTS)) dropped_cards = [hand.cards[0], hand.cards[1]] # copy topcard of deck hand.drop_cards([0, 1]) assert (dropped_cards[0] and dropped_cards[1]) not in hand.cards assert hand.cards[0] == cardlib.JackCard(cardlib.Suit.HEARTS)
def test_cards(): card_1 = num_card(2, cardlib.Suit.clubs) assert card_1.get_value() == 2 assert card_1.get_suit() == 0 card_2 = cardlib.JackCard(cardlib.Suit.diamonds) assert card_2.get_value() == 11 assert card_2.get_suit() == 1 card_3 = cardlib.QueenCard(cardlib.Suit.spades) assert card_3.get_value() == 12 assert card_3.get_suit() == 2 card_4 = cardlib.KingCard(cardlib.Suit.diamonds) assert card_4.get_value() == 13 assert card_4.get_suit() == 1 card_5 = cardlib.AceCard(cardlib.Suit.diamonds) assert card_5.get_value() == 14 assert card_5.get_suit() == 1
def test_less_and_greater_than_of_playingcards(): ''' Test the __lt__ and __gt__ methods between two playing cards (less than & greater than) ''' suit = cardlib.Suit.SPADES ace = cardlib.AceCard(suit) king = cardlib.KingCard(suit) queen = cardlib.QueenCard(suit) jack = cardlib.JackCard(suit) for value in range(2, 11): numberedcard = cardlib.NumberedCard(value, suit) assert ace > numberedcard assert king > numberedcard assert queen > numberedcard assert jack > numberedcard assert numberedcard < ace assert numberedcard < king assert numberedcard < queen assert numberedcard < jack assert ace > king assert ace > queen assert ace > jack assert king < ace assert king > queen assert king > jack assert queen < ace assert queen < king assert queen > jack assert jack < ace assert jack < king assert jack < queen