Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion tests/test_sequence.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,13 @@
import numpy as np
import pypulseq as pp
import pytest
from _pytest.python_api import ApproxBase
from pypulseq import Sequence

if hasattr(pytest, 'Approx'):
ApproxBase = pytest.Approx # public since pytest 9.2
else:
from _pytest.python_api import ApproxBase # older pytest

expected_output_path = Path(__file__).parent / 'expected_output'


Expand All @@ -21,6 +25,9 @@ class Approx(ApproxBase):
recursively within dicts, lists, tuples, and SimpleNamespace
"""

def __init__(self, expected, rel=None, abs=None, nan_ok=False): # noqa: A002
super().__init__(expected, rel=rel, abs=abs, nan_ok=nan_ok)

def __repr__(self):
return str(self.expected)

Expand All @@ -45,6 +52,8 @@ def __eq__(self, actual):
return True
elif isinstance(self.expected, SimpleNamespace):
return actual.__dict__ == Approx(self.expected.__dict__, rel=self.rel, abs=self.abs, nan_ok=self.nan_ok)
elif isinstance(self.expected, (str, bytes, bool, type(None))):
return actual == self.expected
else:
return actual == pytest.approx(self.expected, rel=self.rel, abs=self.abs, nan_ok=self.nan_ok)

Expand Down Expand Up @@ -76,6 +85,8 @@ def _repr_compare(self, actual):
return Approx(self.expected.__dict__, rel=self.rel, abs=self.abs, nan_ok=self.nan_ok)._repr_compare(
actual.__dict__
)
elif isinstance(self.expected, (str, bytes, bool, type(None))):
return [f'Values do not match: {actual!r} != {self.expected!r}']
else:
return pytest.approx(self.expected, rel=self.rel, abs=self.abs, nan_ok=self.nan_ok)._repr_compare(actual)

Expand Down
Loading