This commit is contained in:
2025-09-24 16:54:52 +08:00
parent 45f86ba95e
commit 57a7e9216e
22 changed files with 1647 additions and 102 deletions

View File

@@ -52,39 +52,39 @@ class TestCard:
def test_from_string_valid(self):
"""Test creating card from valid string"""
card = Card.createCard("As")
card = Card.create_card("As")
assert card.rank == Rank.ACE
assert card.suit == Suit.SPADES
card2 = Card.createCard("Kh")
card2 = Card.create_card("Kh")
assert card2.rank == Rank.KING
assert card2.suit == Suit.HEARTS
card3 = Card.createCard("2c")
card3 = Card.create_card("2c")
assert card3.rank == Rank.TWO
assert card3.suit == Suit.CLUBS
card4 = Card.createCard("Td")
card4 = Card.create_card("Td")
assert card4.rank == Rank.TEN
assert card4.suit == Suit.DIAMONDS
def test_from_string_invalid(self):
"""Test creating card from invalid string"""
with pytest.raises(ValueError):
Card.createCard("A") # Too short
Card.create_card("A") # Too short
with pytest.raises(ValueError):
Card.createCard("Asx") # Too long
Card.create_card("Asx") # Too long
with pytest.raises(ValueError):
Card.createCard("Xs") # Invalid rank
Card.create_card("Xs") # Invalid rank
with pytest.raises(ValueError):
Card.createCard("Ax") # Invalid suit
Card.create_card("Ax") # Invalid suit
def test_parse_cards_valid(self):
"""Test parsing multiple cards from string"""
cards = Card.parseCards("AsKs AhAdAc6s7s")
cards = Card.parse_cards("AsKs AhAdAc6s7s")
assert len(cards) == 7
assert str(cards[0]) == "As"
assert str(cards[1]) == "Ks"
@@ -93,23 +93,23 @@ class TestCard:
def test_parse_cards_with_spaces(self):
"""Test parsing cards with various spacing"""
cards = Card.parseCards("As Ks Ah Ad Ac 6s 7s")
cards = Card.parse_cards("As Ks Ah Ad Ac 6s 7s")
assert len(cards) == 7
assert str(cards[0]) == "As"
assert str(cards[6]) == "7s"
def test_parse_cards_empty(self):
"""Test parsing empty string"""
cards = Card.parseCards("")
cards = Card.parse_cards("")
assert len(cards) == 0
cards = Card.parseCards(" ")
cards = Card.parse_cards(" ")
assert len(cards) == 0
def test_parse_cards_invalid(self):
"""Test parsing invalid card strings"""
with pytest.raises(ValueError):
Card.parseCards("AsKs A") # Incomplete card
Card.parse_cards("AsKs A") # Incomplete card
with pytest.raises(ValueError):
Card.parseCards("AsKs Ax") # Invalid suit
Card.parse_cards("AsKs Ax") # Invalid suit