| import pytest | |
| from telltale.game.cards import Card, CardError, Deck | |
| def test_deck_has_52_unique_cards(): | |
| deck = Deck() | |
| assert len(deck) == 52 | |
| assert len(set(deck.cards)) == 52 | |
| def test_same_seed_creates_same_order(): | |
| assert Deck.shuffled(seed=7).to_strings() == Deck.shuffled(seed=7).to_strings() | |
| def test_different_seeds_usually_create_different_order(): | |
| assert Deck.shuffled(seed=7).to_strings() != Deck.shuffled(seed=8).to_strings() | |
| def test_drawing_reduces_deck_size(): | |
| deck = Deck() | |
| drawn = deck.draw() | |
| assert isinstance(drawn, Card) | |
| assert len(deck) == 51 | |
| def test_invalid_card_strings_fail_validation(value): | |
| with pytest.raises(CardError): | |
| Card.parse(value) | |
| def test_drawing_beyond_deck_length_raises_clear_error(): | |
| deck = Deck() | |
| with pytest.raises(CardError, match="cannot draw"): | |
| deck.draw(53) | |