Esempio n. 1
0
    def test_get_base_units_different_exponent(self):
        sysname = 'mysys3'

        ureg = UnitRegistry()

        g = ureg.get_group('test-imperial')
        g.add_units('inch', 'yard', 'pint')
        c = ureg.get_compatible_units('meter', 'test-imperial')

        lines = ['@system %s using test-imperial' % sysname,
                 'pint:meter',
                 ]

        s = System.from_lines(lines, ureg.get_base_units, g._groups_systems)

        # base_factor, destination_units
        c = ureg.get_base_units('inch', system=sysname)
        self.assertAlmostEqual(c[0], 0.326, places=3)
        self.assertEqual(c[1], {'pint': 1./3})

        c = ureg.get_base_units('cm', system=sysname)
        self.assertAlmostEqual(c[0], 0.1283, places=3)
        self.assertEqual(c[1], {'pint': 1./3})

        c = ureg.get_base_units('inch**2', system=sysname)
        self.assertAlmostEqual(c[0], 0.326**2, places=3)
        self.assertEqual(c[1], {'pint': 2./3})

        c = ureg.get_base_units('cm**2', system=sysname)
        self.assertAlmostEqual(c[0], 0.1283**2, places=3)
        self.assertEqual(c[1], {'pint': 2./3})
Esempio n. 2
0
    def test_get_base_units_different_exponent(self):
        sysname = 'mysys3'

        ureg = UnitRegistry()

        g = ureg.get_group('test-imperial')
        g.add_units('inch', 'yard', 'pint')
        c = ureg.get_compatible_units('meter', 'test-imperial')

        lines = [
            '@system %s using test-imperial' % sysname,
            'pint:meter',
        ]

        s = System.from_lines(lines, ureg.get_base_units, g._groups_systems)

        # base_factor, destination_units
        c = ureg.get_base_units('inch', system=sysname)
        self.assertAlmostEqual(c[0], 0.326, places=3)
        self.assertEqual(c[1], {'pint': 1. / 3})

        c = ureg.get_base_units('cm', system=sysname)
        self.assertAlmostEqual(c[0], 0.1283, places=3)
        self.assertEqual(c[1], {'pint': 1. / 3})

        c = ureg.get_base_units('inch**2', system=sysname)
        self.assertAlmostEqual(c[0], 0.326**2, places=3)
        self.assertEqual(c[1], {'pint': 2. / 3})

        c = ureg.get_base_units('cm**2', system=sysname)
        self.assertAlmostEqual(c[0], 0.1283**2, places=3)
        self.assertEqual(c[1], {'pint': 2. / 3})
Esempio n. 3
0
 def test_members_group(self):
     lines = ['@system mk',
              'meter',
              'kilogram',
              ]
     d = {}
     root = self._build_root(d)
     root.add_units('second')
     s = System.from_lines(lines, lambda x: x, d)
     self.assertEqual(s.members, frozenset(['second']))
Esempio n. 4
0
 def test_simple_using(self):
     lines = ['@system mks using g1',
              'meter',
              'kilogram',
              'second',
              ]
     d = {}
     root = self._build_root(d)
     s = System.from_lines(lines, lambda x: x, d)
     s._used_groups = set(['root', 'g1'])
Esempio n. 5
0
 def test_members_group(self):
     lines = [
         '@system mk',
         'meter',
         'kilogram',
     ]
     d = {}
     root = self._build_root(d)
     root.add_units('second')
     s = System.from_lines(lines, lambda x: x, d)
     self.assertEqual(s.members, frozenset(['second']))
Esempio n. 6
0
 def test_simple_using(self):
     lines = [
         '@system mks using g1',
         'meter',
         'kilogram',
         'second',
     ]
     d = {}
     root = self._build_root(d)
     s = System.from_lines(lines, lambda x: x, d)
     s._used_groups = set(['root', 'g1'])
Esempio n. 7
0
    def test_get_compatible_units(self):
        sysname = 'mysys1'
        ureg = UnitRegistry()

        g = ureg.get_group('test-imperial')

        g.add_units('inch', 'yard', 'pint')
        c = ureg.get_compatible_units('meter', 'test-imperial')
        self.assertEqual(c, frozenset([ureg.inch, ureg.yard]))

        lines = ['@system %s using test-imperial' % sysname,
                 'inch',
                 ]

        s = System.from_lines(lines, lambda x: x, g._groups_systems)
        c = ureg.get_compatible_units('meter', sysname)
        self.assertEqual(c, frozenset([ureg.inch, ureg.yard]))
Esempio n. 8
0
    def test_get_compatible_units(self):
        sysname = 'mysys1'
        ureg = UnitRegistry()

        g = ureg.get_group('test-imperial')

        g.add_units('inch', 'yard', 'pint')
        c = ureg.get_compatible_units('meter', 'test-imperial')
        self.assertEqual(c, frozenset([ureg.inch, ureg.yard]))

        lines = [
            '@system %s using test-imperial' % sysname,
            'inch',
        ]

        s = System.from_lines(lines, lambda x: x, g._groups_systems)
        c = ureg.get_compatible_units('meter', sysname)
        self.assertEqual(c, frozenset([ureg.inch, ureg.yard]))
Esempio n. 9
0
    def test_get_base_units_relation(self):
        sysname = 'mysys4'

        ureg = UnitRegistry()

        g = ureg.get_group('test-imperial')
        g.add_units('inch', 'yard', 'pint')

        lines = ['@system %s using test-imperial' % sysname,
                 'mph:meter',
                 ]

        s = System.from_lines(lines, ureg.get_base_units, g._groups_systems)

        # base_factor, destination_units
        c = ureg.get_base_units('inch', system=sysname)
        self.assertAlmostEqual(c[0], 0.0568, places=3)
        self.assertEqual(c[1], {'mph': 1, 'second': 1})

        c = ureg.get_base_units('kph', system=sysname)
        self.assertAlmostEqual(c[0], .6214, places=4)
        self.assertEqual(c[1], {'mph': 1})
Esempio n. 10
0
    def test_get_base_units(self):
        sysname = 'mysys2'

        ureg = UnitRegistry()

        g = ureg.get_group('test-imperial')
        g.add_units('inch', 'yard', 'pint')

        lines = ['@system %s using test-imperial' % sysname,
                 'inch',
                 ]

        s = System.from_lines(lines, ureg.get_base_units, g._groups_systems)

        # base_factor, destination_units
        c = ureg.get_base_units('inch', system=sysname)
        self.assertAlmostEqual(c[0], 1)
        self.assertEqual(c[1], {'inch': 1})

        c = ureg.get_base_units('cm', system=sysname)
        self.assertAlmostEqual(c[0], 1./2.54)
        self.assertEqual(c[1], {'inch': 1})
Esempio n. 11
0
    def test_get_base_units_relation(self):
        sysname = 'mysys4'

        ureg = UnitRegistry()

        g = ureg.get_group('test-imperial')
        g.add_units('inch', 'yard', 'pint')

        lines = [
            '@system %s using test-imperial' % sysname,
            'mph:meter',
        ]

        s = System.from_lines(lines, ureg.get_base_units, g._groups_systems)

        # base_factor, destination_units
        c = ureg.get_base_units('inch', system=sysname)
        self.assertAlmostEqual(c[0], 0.0568, places=3)
        self.assertEqual(c[1], {'mph': 1, 'second': 1})

        c = ureg.get_base_units('kph', system=sysname)
        self.assertAlmostEqual(c[0], .6214, places=4)
        self.assertEqual(c[1], {'mph': 1})
Esempio n. 12
0
    def test_get_base_units(self):
        sysname = 'mysys2'

        ureg = UnitRegistry()

        g = ureg.get_group('test-imperial')
        g.add_units('inch', 'yard', 'pint')

        lines = [
            '@system %s using test-imperial' % sysname,
            'inch',
        ]

        s = System.from_lines(lines, ureg.get_base_units, g._groups_systems)

        # base_factor, destination_units
        c = ureg.get_base_units('inch', system=sysname)
        self.assertAlmostEqual(c[0], 1)
        self.assertEqual(c[1], {'inch': 1})

        c = ureg.get_base_units('cm', system=sysname)
        self.assertAlmostEqual(c[0], 1. / 2.54)
        self.assertEqual(c[1], {'inch': 1})