Source code for pynxxas.tests.test_units

import pint
import numpy
from pydantic import TypeAdapter


from ..models import units


[docs] def test_pydantic_quantity(): ta = TypeAdapter(units.PydanticQuantity) _assert_quantity_equal(ta, 10) _assert_quantity_equal(ta, 10.5) _assert_quantity_equal(ta, 10.5, "eV") _assert_quantity_equal(ta, [10.5, 11.5]) _assert_quantity_equal(ta, [10.5, 11.5], "eV") _assert_quantity_equal(ta, [10.5, 11.5], None)
def _assert_quantity_equal(ta: TypeAdapter, *args): expected = units.as_quantity(args) validated = ta.validate_python(args) assert isinstance(expected, pint.Quantity) numpy.testing.assert_equal(validated.magnitude, expected.magnitude) assert str(validated.units) == str(expected.units) validated = ta.validate_python(expected)