def test_simple(self, caplog): # simple movement with caplog.at_level(logging.DEBUG): assert pi_theorem({ "V": "m/s", "T": "s", "L": "m" }) == [{ "V": 1, "T": 1, "L": -1 }] # pendulum assert pi_theorem({ "T": "s", "M": "grams", "L": "m", "g": "m/s**2" }) == [{ "g": 1, "T": 2, "L": -1 }] assert len(caplog.records) == 7
def test_simple(self): # simple movement self.assertEqual(pi_theorem({ 'V': 'm/s', 'T': 's', 'L': 'm' }), [{ 'V': 1, 'T': 1, 'L': -1 }]) # pendulum self.assertEqual( pi_theorem({ 'T': 's', 'M': 'grams', 'L': 'm', 'g': 'm/s**2' }), [{ 'g': 1, 'T': 2, 'L': -1 }])
def test_simple(self): # simple movement with self.capture_log() as buffer: self.assertEqual(pi_theorem({ 'V': 'm/s', 'T': 's', 'L': 'm' }), [{ 'V': 1, 'T': 1, 'L': -1 }]) # pendulum self.assertEqual( pi_theorem({ 'T': 's', 'M': 'grams', 'L': 'm', 'g': 'm/s**2' }), [{ 'g': 1, 'T': 2, 'L': -1 }]) self.assertEqual(len(buffer), 7)
def test_simple(self): # simple movement self.assertEqual(pi_theorem({'V': 'm/s', 'T': 's', 'L': 'm'}), [{'V': 1, 'T': 1, 'L': -1}]) # pendulum self.assertEqual(pi_theorem({'T': 's', 'M': 'grams', 'L': 'm', 'g': 'm/s**2'}), [{'g': 1, 'T': 2, 'L': -1}])
def test_simple(self): # simple movement with self.capture_log() as buffer: self.assertEqual(pi_theorem({'V': 'm/s', 'T': 's', 'L': 'm'}), [{'V': 1, 'T': 1, 'L': -1}]) # pendulum self.assertEqual(pi_theorem({'T': 's', 'M': 'grams', 'L': 'm', 'g': 'm/s**2'}), [{'g': 1, 'T': 2, 'L': -1}]) self.assertEqual(len(buffer), 7)
def test_simple(self): # simple movement with self.capture_log() as buffer: self.assertEqual( pi_theorem({"V": "m/s", "T": "s", "L": "m"}), [{"V": 1, "T": 1, "L": -1}], ) # pendulum self.assertEqual( pi_theorem({"T": "s", "M": "grams", "L": "m", "g": "m/s**2"}), [{"g": 1, "T": 2, "L": -1}], ) self.assertEqual(len(buffer), 7)
def to_dimensionless(quant, basis, dimensional=False): dim = lambda q: pint.formatter(q.dimensionality.items()) quantities = { '_': dim(quant) } for system, quantity in basis: quantities['{0}.{1}'.format(type(system).__name__, quantity)] = dim(system._asdict()[quantity]) powers = pint.pi_theorem(quantities)[0] power = powers.pop('_') expression = lambda sgn: pint.formatter([ (item[0], sgn*item[1]/power) for item in powers.items() ]) if args.verbose: print('\t\t{}'.format('=' if dimensional else '*'), expression(-1)) return eval(expression(-1 if dimensional else 1))*(ureg('') if dimensional else quant)