Source code for pint.testsuite.test_infer_base_unit

from pint import Quantity as Q
from pint.testsuite import QuantityTestCase
from pint.util import infer_base_unit


[docs]class TestInferBaseUnit(QuantityTestCase): def test_infer_base_unit(self): from pint.util import infer_base_unit self.assertEqual( infer_base_unit(Q(1, "millimeter * nanometer")), Q(1, "meter**2").units ) def test_units_adding_to_zero(self): self.assertEqual(infer_base_unit(Q(1, "m * mm / m / um * s")), Q(1, "s").units) def test_to_compact(self): r = Q(1000000000, "m") * Q(1, "mm") / Q(1, "s") / Q(1, "ms") compact_r = r.to_compact() expected = Q(1000.0, "kilometer**2 / second**2") self.assertQuantityAlmostEqual(compact_r, expected) r = (Q(1, "m") * Q(1, "mm") / Q(1, "m") / Q(2, "um") * Q(2, "s")).to_compact() self.assertQuantityAlmostEqual(r, Q(1000, "s")) def test_volts(self): from pint.util import infer_base_unit r = Q(1, "V") * Q(1, "mV") / Q(1, "kV") b = infer_base_unit(r) self.assertEqual(b, Q(1, "V").units) self.assertQuantityAlmostEqual(r, Q(1, "uV"))