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')
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')])
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')))
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))
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)