# Path: mau_mau/exceptions.py
# class MauMauException(Exception):
# class NoCardsLeft(MauMauException):
# class CardNotFound(MauMauException):
# 
# Path: mau_mau/objects.py
# class Stock(_CardCollection):
#     """technically not necessary but then it's clear what this represents"""
# 
# class Waste(_CardCollection):
#     """technically not necessary but then it's clear what this represents"""
# 
# class Card:
#     def __init__(self, value, suit):
#         self.value = value
#         self.suit = suit
# 
#     def __repr__(self):
#         name = self.__class__.__name__
#         return f"{name}('{self.value}', '{self.suit}')"


import pytest
from mau_mau import exceptions
from mau_mau.objects import Stock, Waste, Card



def test_fetch_card_from_empty_stock_raises():
    with pytest.raises(exceptions.NoCardsLeft):
        Stock().fetch()


def test_empty_stock():
    assert not Stock()


def test_non_empty_stock():

# Path: mau_mau/exceptions.py
# class MauMauException(Exception):
# class NoCardsLeft(MauMauException):
# class CardNotFound(MauMauException):
# 
# Path: mau_mau/objects.py
# class Stock(_CardCollection):
#     """technically not necessary but then it's clear what this represents"""
# 
# class Waste(_CardCollection):
#     """technically not necessary but then it's clear what this represents"""
# 
# class Card:
#     def __init__(self, value, suit):
#         self.value = value
#         self.suit = suit
# 
#     def __repr__(self):
#         name = self.__class__.__name__
#         return f"{name}('{self.value}', '{self.suit}')"


# Path: tests/test_objects.py
import pytest
from mau_mau import exceptions
from mau_mau.objects import Stock, Waste, Card




def test_fetch_card_from_empty_stock_raises():
    with pytest.raises(exceptions.NoCardsLeft):
        Stock().fetch()


def test_empty_stock():
    assert not Stock()


def test_non_empty_stock():

    assert Stock([0])