# Path: pokemonterminal/filters.py
# class Filter(Action):
#     POKEMON_LIST = Database().get_all()
#     filtered_list = [p for p in POKEMON_LIST]
#     FILTERS = []
#     EXAMPLE_VAL = None
# 
#     def matches(self, pokemon, value):
#         raise NotImplementedError
# 
#     def __init_subclass__(cls, **kwargs):
#         Filter.FILTERS.append(cls)
# 
#     def __call__(self, parser, namespace, value, option_string=None):
#         Filter.filtered_list = [pkmn for pkmn in Filter.filtered_list
#                                 if self.matches(pkmn, value)]


from pokemonterminal.filters import Filter
import pytest


def test_basic_loading():
    assert len(Filter.POKEMON_LIST) >= 493
    assert len(Filter.filtered_list) == len(Filter.POKEMON_LIST)


def test_filters_infrastructure():
    inst = Filter(None, None)
    with pytest.raises(NotImplementedError):
        inst.matches(None, None)

# Path: pokemonterminal/filters.py
# class Filter(Action):
#     POKEMON_LIST = Database().get_all()
#     filtered_list = [p for p in POKEMON_LIST]
#     FILTERS = []
#     EXAMPLE_VAL = None
# 
#     def matches(self, pokemon, value):
#         raise NotImplementedError
# 
#     def __init_subclass__(cls, **kwargs):
#         Filter.FILTERS.append(cls)
# 
#     def __call__(self, parser, namespace, value, option_string=None):
#         Filter.filtered_list = [pkmn for pkmn in Filter.filtered_list
#                                 if self.matches(pkmn, value)]


# Path: tests/test_filters.py
from pokemonterminal.filters import Filter
import pytest



def test_basic_loading():
    assert len(Filter.POKEMON_LIST) >= 493
    assert len(Filter.filtered_list) == len(Filter.POKEMON_LIST)


def test_filters_infrastructure():
    inst = Filter(None, None)
    with pytest.raises(NotImplementedError):
        inst.matches(None, None)

    for fltr in Filter.FILTERS: