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"))
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) assert b == Q(1, "V").units helpers.assert_quantity_almost_equal(r, Q(1, "uV"))
def _simplify_units(units): units = infer_base_unit(units) weight = units_weight(units) found_simplification = True while weight > 1 and found_simplification: found_simplification = False for s in simplifications: test_units = units * s test_weight = units_weight(test_units) if test_weight < weight: units, weight, found_simplification = test_units, test_weight, True else: test_units = units / s test_weight = units_weight(test_units) if test_weight < weight: units, weight, found_simplification = test_units, test_weight, True return units
def acquire(self, row): # Cleanup row # Here we will keep numpy arrays as is for local copy, but change it to list for MongoDB if not row is None: restore_row = dict() for k, val in row.items(): if type(val) == Q_: base_unit = '*'.join('{} ** {}'.format(u, p) for u, p in infer_base_unit(val).items()) row[k] = row[k].to(Q_(base_unit)).m if type(val) == np.ndarray: restore_row[k] = row[k] row[k] = row[k].tolist() if type(val) in self.CASTING_DICT: row[k] = self.CASTING_DICT[type(val)](row[k]) self.col.insert_one(row) for k, val in restore_row.items(): row[k] = val self._data.append(row) if self._stop_flag: raise StopRunning
def __init__(self, parent=None, value=1.0, unit=None, **kwargs): self.unit = unit self.base_unit = None kwargs['dec'] = kwargs.pop('dec', True) kwargs['minStep'] = kwargs.pop('minStep', 0.1) kwargs['decimals'] = kwargs.pop('decimals', 8) kwargs['compactHeight'] = False if self.unit is not None: q = Q_(unit) base_units = infer_base_unit(q) base_unit = '*'.join('{} ** {}'.format(u, p) for u, p in base_units.items()) base_unit = base_unit if not base_unit == '' else 'dimensionless' q_base = Q_(base_unit) factor = (q / q_base).to_base_units().m self.base_unit = base_unit opts = { 'suffix': '{0.units:~}'.format(q_base), 'siPrefix': True, } kwargs.update(opts) value *= factor super().__init__(parent=parent, value=value, **kwargs) return
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_infer_base_unit(self): from pint.util import infer_base_unit self.assertEqual(infer_base_unit(Q(1, 'millimeter / second')), Q(1, 'meter / second').units) self.assertEqual(infer_base_unit(Q(1, 'millimeter * nanometer')), Q(1, 'meter**2').units)
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'))
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_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_infer_base_unit(self): from pint.util import infer_base_unit assert infer_base_unit(Q(1, "millimeter * nanometer")) == Q(1, "meter**2").units
def test_units_adding_to_zero(self): assert infer_base_unit(Q(1, "m * mm / m / um * s")) == Q(1, "s").units