import pytest from pyjack.deck import Deck @pytest.fixture def default_deck() -> Deck: deck = Deck() return deck def test_deck_init(default_deck): """Tests if the right amount of cards is created""" assert len(default_deck.cards) == 52 def test_deck_shuffle_order_changes(default_deck): """Tests if the order of the cards have been changed.""" # saves a list of cards before shufflening ordered_cards = list(default_deck.cards) #shuffle cards default_deck.shuffle() assert default_deck.cards != ordered_cards def test_deck_shuffle_content_is_preserved(default_deck): # 1. Capture the unique cards of the original list (as a set) original_card_set = set(str(card) for card in default_deck.cards) # 2. Shuffle the deck default_deck.shuffle() # 3. Check if the number of cards is still 52 assert len(default_deck.cards) == 52 # 4. Check if the card contents are still identical (all 52 unique cards must be present) shuffled_card_set = set(str(card) for card in default_deck.cards) assert shuffled_card_set == original_card_set def test_card_dealing(default_deck): """Tests if the a card is correctly removed from the deck.""" default_deck.shuffle() removed_card = default_deck.deal_card() assert len(default_deck.cards) == 51 assert removed_card is not None