f
This commit is contained in:
@@ -3,8 +3,9 @@ Tests for Tarot deck and card classes.
|
||||
"""
|
||||
|
||||
import pytest
|
||||
from src.tarot.deck import Deck, Card, MajorCard, MinorCard, PipCard, AceCard, CourtCard
|
||||
from src.tarot.attributes import Meaning, Suit, CardImage
|
||||
|
||||
from src.tarot.attributes import CardImage, Meaning, Suit
|
||||
from src.tarot.deck import AceCard, Card, CourtCard, Deck, MajorCard, MinorCard, PipCard
|
||||
|
||||
|
||||
class TestCard:
|
||||
@@ -30,7 +31,7 @@ class TestMajorCard:
|
||||
name="The Magician",
|
||||
meaning=Meaning("Upright", "Reversed"),
|
||||
arcana="Major",
|
||||
kabbalistic_number=1
|
||||
kabbalistic_number=1,
|
||||
)
|
||||
assert card.number == 1
|
||||
assert card.arcana == "Major"
|
||||
@@ -42,7 +43,7 @@ class TestMajorCard:
|
||||
name="Test",
|
||||
meaning=Meaning("Up", "Rev"),
|
||||
arcana="Major",
|
||||
kabbalistic_number=-1
|
||||
kabbalistic_number=-1,
|
||||
)
|
||||
|
||||
def test_major_card_invalid_high(self):
|
||||
@@ -52,16 +53,13 @@ class TestMajorCard:
|
||||
name="Test",
|
||||
meaning=Meaning("Up", "Rev"),
|
||||
arcana="Major",
|
||||
kabbalistic_number=22
|
||||
kabbalistic_number=22,
|
||||
)
|
||||
|
||||
def test_major_card_valid_range(self):
|
||||
for i in range(22):
|
||||
card = MajorCard(
|
||||
number=i,
|
||||
name=f"Card {i}",
|
||||
meaning=Meaning("Up", "Rev"),
|
||||
arcana="Major"
|
||||
number=i, name=f"Card {i}", meaning=Meaning("Up", "Rev"), arcana="Major"
|
||||
)
|
||||
assert card.number == i
|
||||
|
||||
@@ -75,7 +73,7 @@ class TestMinorCard:
|
||||
meaning=Meaning("Upright", "Reversed"),
|
||||
arcana="Minor",
|
||||
suit=suit,
|
||||
pip=1
|
||||
pip=1,
|
||||
)
|
||||
assert card.number == 1
|
||||
assert card.suit.name == "Cups"
|
||||
@@ -90,7 +88,7 @@ class TestMinorCard:
|
||||
meaning=Meaning("Up", "Rev"),
|
||||
arcana="Minor",
|
||||
suit=suit,
|
||||
pip=0
|
||||
pip=0,
|
||||
)
|
||||
|
||||
def test_minor_card_invalid_pip_high(self):
|
||||
@@ -102,7 +100,7 @@ class TestMinorCard:
|
||||
meaning=Meaning("Up", "Rev"),
|
||||
arcana="Minor",
|
||||
suit=suit,
|
||||
pip=15
|
||||
pip=15,
|
||||
)
|
||||
|
||||
def test_minor_card_valid_pips(self):
|
||||
@@ -114,7 +112,7 @@ class TestMinorCard:
|
||||
meaning=Meaning("Up", "Rev"),
|
||||
arcana="Minor",
|
||||
suit=suit,
|
||||
pip=i
|
||||
pip=i,
|
||||
)
|
||||
assert card.pip == i
|
||||
|
||||
@@ -137,10 +135,10 @@ class TestDeck:
|
||||
def test_deck_shuffle(self):
|
||||
deck1 = Deck()
|
||||
cards_before = [c.name for c in deck1.cards]
|
||||
|
||||
|
||||
deck1.shuffle()
|
||||
cards_after = [c.name for c in deck1.cards]
|
||||
|
||||
|
||||
# After shuffle, order should change (with high probability)
|
||||
# We don't assert they're different since shuffle could randomly give same order
|
||||
assert len(cards_after) == 78
|
||||
@@ -148,18 +146,18 @@ class TestDeck:
|
||||
def test_deck_draw_single(self):
|
||||
deck = Deck()
|
||||
initial_count = len(deck.cards)
|
||||
|
||||
|
||||
drawn = deck.draw(1)
|
||||
|
||||
|
||||
assert len(drawn) == 1
|
||||
assert len(deck.cards) == initial_count - 1
|
||||
|
||||
def test_deck_draw_multiple(self):
|
||||
deck = Deck()
|
||||
initial_count = len(deck.cards)
|
||||
|
||||
|
||||
drawn = deck.draw(5)
|
||||
|
||||
|
||||
assert len(drawn) == 5
|
||||
assert len(deck.cards) == initial_count - 5
|
||||
|
||||
@@ -177,28 +175,28 @@ class TestDeck:
|
||||
deck = Deck()
|
||||
deck.draw(5)
|
||||
assert len(deck.cards) < 78
|
||||
|
||||
|
||||
deck.reset()
|
||||
assert len(deck.cards) == 78
|
||||
|
||||
def test_deck_remaining(self):
|
||||
deck = Deck()
|
||||
assert deck.remaining() == 78
|
||||
|
||||
|
||||
deck.draw(1)
|
||||
assert deck.remaining() == 77
|
||||
|
||||
def test_deck_len(self):
|
||||
deck = Deck()
|
||||
assert len(deck) == 78
|
||||
|
||||
|
||||
deck.draw(1)
|
||||
assert len(deck) == 77
|
||||
|
||||
def test_deck_repr(self):
|
||||
deck = Deck()
|
||||
assert "78 cards" in repr(deck)
|
||||
|
||||
|
||||
deck.draw(1)
|
||||
assert "77 cards" in repr(deck)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user