Files
blackjack/tests/test_deck.py

42 lines
1.3 KiB
Python
Raw Normal View History

2025-10-28 21:04:39 +01:00
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
2025-10-29 17:37:55 +01:00
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()
2025-10-28 21:04:39 +01:00
2025-10-29 17:37:55 +01:00
assert default_deck.cards != ordered_cards
2025-10-28 21:04:39 +01:00
2025-10-29 17:37:55 +01:00
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
2025-10-28 21:04:39 +01:00
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