added tests
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
[tool.pytest.ini_options]
|
||||
|
||||
pythonpath="src"
|
||||
testpaths="tests"
|
||||
|
||||
0
tests/__init__.py
Normal file
0
tests/__init__.py
Normal file
52
tests/test_card.py
Normal file
52
tests/test_card.py
Normal file
@@ -0,0 +1,52 @@
|
||||
import pytest
|
||||
|
||||
from pyjack.card import Card
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def cards():
|
||||
cards = [
|
||||
Card("diamonds", "2"),
|
||||
Card("hearts", "A"),
|
||||
Card("clubs", "9"),
|
||||
Card("spades", "Q"),
|
||||
]
|
||||
return cards
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def expected_values():
|
||||
values = [2, 11, 9, 10]
|
||||
return values
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def expected_strings():
|
||||
strings = [
|
||||
"2 of diamonds",
|
||||
"A of hearts",
|
||||
"9 of clubs",
|
||||
"Q of spades",
|
||||
]
|
||||
return strings
|
||||
|
||||
|
||||
def test_get_value(cards, expected_values):
|
||||
"""tests if the correct value is returned by the function"""
|
||||
results = []
|
||||
for card in cards:
|
||||
results.append(card.get_value())
|
||||
|
||||
# The zip() function takes multiple iterable objects (like lists
|
||||
# or tuples) and combines them element-wise, creating an iterator
|
||||
# of tuples. Each tuple contains one element from each input
|
||||
# iterable at the corresponding index.
|
||||
# It effectively allows for parallel iteration.
|
||||
for expected_value, result in zip(expected_values, results):
|
||||
assert expected_value == result
|
||||
|
||||
|
||||
def test_default_return_value(cards, expected_strings):
|
||||
"""Tests if the __str__ method returns the correct value"""
|
||||
|
||||
assert expected_strings == [card.__str__() for card in cards]
|
||||
26
tests/test_deck.py
Normal file
26
tests/test_deck.py
Normal file
@@ -0,0 +1,26 @@
|
||||
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_shuffle_deck(default_deck):
|
||||
"""Tests if the deck is randomized after method call"""
|
||||
assert default_deck != default_deck.shuffle()
|
||||
|
||||
|
||||
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
|
||||
Reference in New Issue
Block a user