2024-10-04 02:57:54 +00:00
|
|
|
import pytest
|
2024-04-09 01:36:47 +00:00
|
|
|
|
2024-10-04 02:57:54 +00:00
|
|
|
from numpydantic.testing.cases import (
|
|
|
|
DTYPE_CASES,
|
|
|
|
DTYPE_IDS,
|
|
|
|
RGB_UNION,
|
|
|
|
)
|
2024-10-04 02:33:40 +00:00
|
|
|
from numpydantic.testing.helpers import ValidationCase
|
2024-04-23 02:31:56 +00:00
|
|
|
from tests.fixtures import *
|
2024-04-09 01:36:47 +00:00
|
|
|
|
|
|
|
|
2024-04-23 02:31:56 +00:00
|
|
|
def pytest_addoption(parser):
|
|
|
|
parser.addoption(
|
|
|
|
"--with-output",
|
|
|
|
action="store_true",
|
|
|
|
help="Keep test outputs in the __tmp__ directory",
|
|
|
|
)
|
2024-05-09 04:29:13 +00:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture(
|
2024-05-17 23:36:17 +00:00
|
|
|
scope="module",
|
2024-05-09 04:29:13 +00:00
|
|
|
params=[
|
|
|
|
ValidationCase(shape=(10, 10, 10), passes=True),
|
|
|
|
ValidationCase(shape=(10, 10), passes=False),
|
|
|
|
ValidationCase(shape=(10, 10, 10, 10), passes=False),
|
|
|
|
ValidationCase(shape=(11, 10, 10), passes=False),
|
|
|
|
ValidationCase(shape=(9, 10, 10), passes=False),
|
|
|
|
ValidationCase(shape=(10, 10, 9), passes=True),
|
|
|
|
ValidationCase(shape=(10, 10, 11), passes=True),
|
|
|
|
ValidationCase(annotation=RGB_UNION, shape=(5, 5), passes=True),
|
|
|
|
ValidationCase(annotation=RGB_UNION, shape=(5, 5, 3), passes=True),
|
|
|
|
ValidationCase(annotation=RGB_UNION, shape=(5, 5, 3, 4), passes=True),
|
|
|
|
ValidationCase(annotation=RGB_UNION, shape=(5, 5, 4), passes=False),
|
|
|
|
ValidationCase(annotation=RGB_UNION, shape=(5, 5, 3, 6), passes=False),
|
|
|
|
ValidationCase(annotation=RGB_UNION, shape=(5, 5, 4, 6), passes=False),
|
|
|
|
],
|
|
|
|
ids=[
|
|
|
|
"valid shape",
|
|
|
|
"missing dimension",
|
|
|
|
"extra dimension",
|
|
|
|
"dimension too large",
|
|
|
|
"dimension too small",
|
|
|
|
"wildcard smaller",
|
|
|
|
"wildcard larger",
|
|
|
|
"Union 2D",
|
|
|
|
"Union 3D",
|
|
|
|
"Union 4D",
|
|
|
|
"Union incorrect 3D",
|
|
|
|
"Union incorrect 4D",
|
|
|
|
"Union incorrect both",
|
|
|
|
],
|
|
|
|
)
|
|
|
|
def shape_cases(request) -> ValidationCase:
|
|
|
|
return request.param
|
|
|
|
|
|
|
|
|
2024-09-24 06:42:00 +00:00
|
|
|
@pytest.fixture(scope="module", params=DTYPE_CASES, ids=DTYPE_IDS)
|
2024-05-09 04:29:13 +00:00
|
|
|
def dtype_cases(request) -> ValidationCase:
|
|
|
|
return request.param
|