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
Example #2
0
    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)
Example #4
0
    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}])
Example #5
0
    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)
Example #7
0
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)