-
Notifications
You must be signed in to change notification settings - Fork 502
Open
Description
Related to #1611, Pint+uncertainties creates some interesting interoperabilities between Measurements (which store nominal value and error terms along with units) and Quantity (which, with uncertainties, can store nominal_value and std_dev jointly as a UFloat magnitude). It is therefore logical that Quantities could be created from Measurements, and vice-versa. This issue provides a reference for a test case.
@helpers.requires_uncertainties
def test_issue1614():
from uncertainties import UFloat, ufloat
q = module_registry.Quantity(1.0, "m")
assert isinstance(q, module_registry.Quantity)
m = module_registry.Measurement(2.0, 0.3, "m")
assert isinstance(m, module_registry.Measurement)
u1 = ufloat(1.2, 3.4)
u2 = ufloat(5.6, 7.8)
q1_u = module_registry.Quantity(u1, "m")
m1 = module_registry.Measurement(q1_u)
assert m1.value.magnitude == u1.nominal_value
assert m1.error.magnitude == u1.std_dev
m2 = module_registry.Measurement(5.6, 7.8) # dimensionless
q2_u = module_registry.Quantity(m2)
assert isinstance(q2_u.magnitude, UFloat)
assert q2_u.magnitude.nominal_value == m2.value
assert q2_u.magnitude.nominal_value == u2.nominal_value
assert q2_u.magnitude.std_dev == m2.error
assert q2_u.magnitude.std_dev == u2.std_dev
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels