Пример #1
0
 def test_binary_comprehension(self):
     """Test binary number comprehension."""
     self.assertEqual(ucal.evaluate('0B0'), '0')
     self.assertEqual(ucal.evaluate('0b0'), '0')
     self.assertEqual(ucal.evaluate('0b11'), '3')
     self.assertEqual(ucal.evaluate('0b1111'), '15')
     self.assertRaises(ucal.ParserError, ucal.evaluate, '0b')
Пример #2
0
 def test_factorial(self):
     """Test the factorial postfix operator."""
     self.assertEqual(ucal.evaluate('0!'), '1')
     self.assertEqual(ucal.evaluate('1!'), '1')
     self.assertEqual(ucal.evaluate('2!'), '2')
     self.assertEqual(ucal.evaluate('5!'), '120')
     self.assertEqual(ucal.evaluate('18!'), '6402373705728000')
Пример #3
0
 def test_output_number_formatting(self):
     """Test for desired output format for numbers."""
     self.assertEqual(ucal.evaluate('0.1234567890'), '0.123456789')
     self.assertEqual(ucal.evaluate('1e9'), '1000000000')
     self.assertEqual(ucal.evaluate('+1e+9'), '1000000000')
     self.assertEqual(ucal.evaluate('-1e-3'), '-0.001')
     self.assertEqual(ucal.evaluate('1E6'), '1000000')
Пример #4
0
 def test_arithmetic(self):
     """Test basic arithmetic operations."""
     self.assertEqual(ucal.evaluate('1+2'), '3')
     self.assertEqual(ucal.evaluate('1-2'), '-1')
     self.assertEqual(ucal.evaluate('3*4'), '12')
     self.assertEqual(ucal.evaluate('8/2'), '4')
     self.assertEqual(ucal.evaluate('--1'), '1')
Пример #5
0
 def test_hexadecimal_comprehension(self):
     """Test hexadecimal number comprehension."""
     self.assertEqual(ucal.evaluate('0x0'), '0')
     self.assertEqual(ucal.evaluate('0X0'), '0')
     self.assertEqual(ucal.evaluate('0x123'), '291')
     self.assertEqual(ucal.evaluate('0xAbCdEf'), '11259375')
     self.assertRaises(ucal.ParserError, ucal.evaluate, '0x')
     self.assertRaises(ucal.ParserError, ucal.evaluate, '0xAG')
Пример #6
0
 def test_basic_value_comprehension(self):
     """Test for valid value definitions."""
     self.assertEqual(ucal.evaluate('1'), '1')
     self.assertEqual(ucal.evaluate('123457890'), '123457890')
     self.assertEqual(ucal.evaluate('001'), '1')
     self.assertEqual(ucal.evaluate('.1'), '0.1')
     self.assertEqual(ucal.evaluate('+1'), '1')
     self.assertEqual(ucal.evaluate('-1'), '-1')
     self.assertEqual(ucal.evaluate('1e3'), '1000')
Пример #7
0
 def test_function_log10(self):
     """Test log10 function."""
     self.assertEqual(ucal.evaluate('log10(1)'), '0')
     self.assertEqual(ucal.evaluate('log10(10)'), '1')
     self.assertEqual(ucal.evaluate('log10(100)'), '2')
     self.assertRaises(ucal.QuantityError, ucal.evaluate, 'log10(1m)')
Пример #8
0
 def test_function_ln(self):
     """Test ln function."""
     self.assertEqual(ucal.evaluate('ln(exp(1))'), '1')
     self.assertEqual(ucal.evaluate('ln(1)'), '0')
     self.assertRaises(ucal.QuantityError, ucal.evaluate, 'ln(1m)')
Пример #9
0
 def test_function_abs(self):
     """Test abs function."""
     self.assertEqual(ucal.evaluate('abs(1)'), '1')
     self.assertEqual(ucal.evaluate('abs(-1)'), '1')
     self.assertEqual(ucal.evaluate('abs(0)'), '0')
     self.assertEqual(ucal.evaluate('abs(1 m)'), '1 m')
Пример #10
0
 def test_evaluate_to_units(self):
     """Test ucal.get_measure."""
     self.assertEqual(ucal.evaluate('1ft', units='ft'), ('1', 'ft'))
     self.assertRaises(ucal.ParserError, ucal.evaluate, '1ft', units='s')
Пример #11
0
 def test_implicit_multiplication(self):
     """Test for valid implicit multiplication."""
     self.assertEqual(ucal.evaluate('1 m'), '1 m')
     self.assertEqual(ucal.evaluate('m m'), '1 m^2')
     self.assertEqual(ucal.evaluate('(1) m'), '1 m')
     self.assertEqual(ucal.evaluate('(1)(1)'), '1')
Пример #12
0
 def test_balanced_parentheses(self):
     """Test for balanced parentheses."""
     self.assertEqual(ucal.evaluate('(1)'), '1')
     self.assertEqual(ucal.evaluate('((1))'), '1')
     self.assertEqual(ucal.evaluate('(((((1)))))'), '1')
Пример #13
0
 def test_percent(self):
     """Test percentage evaluation."""
     self.assertEqual(ucal.evaluate('100%'), '1')
     self.assertEqual(ucal.evaluate('50%'), '0.5')
     self.assertEqual(ucal.evaluate('25%'), '0.25')
Пример #14
0
 def test_output_units(self):
     """Test automatic output conversions."""
     self.assertEqual(ucal.evaluate('1A*Ohm'), '1 V')
     self.assertEqual(ucal.evaluate('1/s'), '1 Hz')
Пример #15
0
 def test_mod(self):
     """Test __mod__ function."""
     self.assertEqual(ucal.evaluate('1 % 7'), '1')
     self.assertEqual(ucal.evaluate('7 % 1'), '0')
     self.assertEqual(ucal.evaluate('4 % 2.5'), '1.5')
     self.assertRaises(ucal.QuantityError, ucal.evaluate, '(1m) % 2')
Пример #16
0
 def test_pow(self):
     """Test __pow__ function."""
     self.assertEqual(ucal.evaluate('1 ^ 7'), '1')
     self.assertEqual(ucal.evaluate('2 ^ 5'), '32')
     self.assertRaises(ucal.QuantityError, ucal.evaluate, '1 ^ (1m)')
Пример #17
0
 def test_power_evaluation_order(self):
     """Test order of power evaluation."""
     self.assertEqual(ucal.evaluate('3^3^3'), '7625597484987')
Пример #18
0
 def test_string_conversion(self):
     """Test errors when converting to a string."""
     self.assertEqual(str(ucal.evaluate('1/m')), '1 m^-1')
     self.assertEqual(str(ucal.evaluate('m^2')), '1 m^2')
     self.assertEqual(str(ucal.evaluate('m^1.5')), '1 m^1.5')
Пример #19
0
 def test_evaluation_order_2(self):
     """Test order of power/factorial evaluations."""
     self.assertEqual(ucal.evaluate('3^2!'), '9')
Пример #20
0
 def test_nested_prefix_comprehension(self):
     """Test for valid value definitions."""
     self.assertEqual(ucal.evaluate('1+-2'), '-1')
Пример #21
0
 def test_function_sqrt(self):
     """Test sqrt function."""
     self.assertEqual(ucal.evaluate('sqrt(4)'), '2')
Пример #22
0
 def test_function_exp(self):
     """Test exp function."""
     self.assertEqual(ucal.evaluate('exp(0)'), '1')
     self.assertRaises(ucal.QuantityError, ucal.evaluate, 'exp(1m)')
Пример #23
0
 def test_decimal_comprehension(self):
     """Test decimal number comprehension."""
     self.assertEqual(ucal.evaluate('0'), '0')
     self.assertEqual(ucal.evaluate('0123'), '123')
     self.assertEqual(ucal.evaluate('+1e555'), '1e555')
     self.assertEqual(ucal.evaluate('1e-67'), '1e-67')