예제 #1
0
    def testUnparse(self):
        s = Scalar(2)

        self.assertEqual(s.unparse(s.parse('')), '')
        self.assertEqual(s.unparse(s.parse('kg^2')), 'kg^2')
        self.assertEqual(s.unparse(s.parse('N*m')), 'N*m')
        self.assertEqual(s.unparse(s.parse('J*K/A*s')), 'J*K/A*s')
예제 #2
0
    def testParse(self):
        s = Scalar(2)

        self.assertEqual(s.parse(''), [Unit('')])
        self.assertEqual(s.parse('kg^2'), [Unit('kg^2')])
        self.assertEqual(s.parse('kg^2*m^3/s^4'),
                         [Unit('kg^2'),
                          Unit('m^3'), Unit('s^-4')])
예제 #3
0
    def testIsTemperature(self):
        s = Scalar(2, 'K')

        self.assertTrue(s.isTemperature(s.parse('K')))
        self.assertTrue(s.isTemperature(s.parse('°C')))
        self.assertTrue(s.isTemperature(s.parse('°F')))

        self.assertFalse(s.isTemperature(s.parse('kg')))
        self.assertFalse(s.isTemperature(s.parse('K/s')))
예제 #4
0
    def testSimplify(self):
        s = Scalar(2)

        # Without converting to base units
        self.assertTupleEqual(s.simplify(s.parse('mm^2')),
                              ([Unit('mm^2')], 1e0))
        self.assertTupleEqual(s.simplify(s.parse('kg*m/m')),
                              ([Unit('kg')], 1e0))
        self.assertTupleEqual(s.simplify(s.parse('kg*m^3/m')),
                              ([Unit('kg'), Unit('m^2')], 1e0))
        self.assertTupleEqual(s.simplify(s.parse('kg*s/ms^2')),
                              ([Unit('kg'), Unit('s^-1')], 1e6))

        # With converting to base units
        self.assertTupleEqual(s.simplify(s.parse('mm^2'), base=True),
                              ([Unit('m^2')], 1e-6))
        self.assertTupleEqual(s.simplify(s.parse('N*s^2'), base=True),
                              ([Unit('kg'), Unit('m')], 1e0))
        self.assertTupleEqual(
            s.simplify(s.parse('N*m'), base=True),
            ([Unit('kg'), Unit('m^2'), Unit('s^-2')], 1e0))
        self.assertTupleEqual(s.simplify(s.parse('N/mm'), base=True),
                              ([Unit('kg'), Unit('s^-2')], 1e3))
예제 #5
0
    def testConvertTemperature(self):
        # Conversion from kelvin
        s = Scalar(2, 'K')

        self.assertEqual(s.convertTemperature(s.parse('K'), s.parse('°C')),
                         -271.15)
        self.assertEqual(s.convertTemperature(s.parse('K'), s.parse('°F')),
                         -456.07)

        # Conversion from celsius
        s = Scalar(2, '°C')

        self.assertEqual(s.convertTemperature(s.parse('°C'), s.parse('K')),
                         275.15)
        self.assertEqual(s.convertTemperature(s.parse('°C'), s.parse('°F')),
                         35.6)

        # Conversion from fahrenheit
        s = Scalar(2, '°F')

        self.assertAlmostEqual(
            s.convertTemperature(s.parse('°F'), s.parse('K')), 256.4833333)
        self.assertAlmostEqual(
            s.convertTemperature(s.parse('°F'), s.parse('°C')), -16.6666667)