示例#1
0
 def test_value_greater_equal_than_value(self):
     val1 = Value(19, 0.4)
     val2 = Value(19, 0.5)
     val3 = Value(17, 0.5)
     self.assertTrue(val2 >= val1)
     self.assertTrue(val1 <= val2)
     self.assertTrue(val2 >= val3)
示例#2
0
 def test_can_add_values(self):
     val1 = Value(23, 5)
     val2 = Value(19, 1)
     val3 = val1 + val2
     self.assertIsInstance(val3, Value)
     self.assertEqual(val3._value, 42)
     self.assertAlmostEqual(val3._error, 5.1, delta=0.05)
示例#3
0
 def test_error_requires_numbers(self):
     Value(23, 1)
     Value(23, 0.5)
     with self.assertRaises(TypeError):
         Value(23, "100")
     with self.assertRaises(TypeError):
         Value(23, True)
示例#4
0
 def test_value_requires_numbers(self):
     Value(23)
     Value(23.5)
     with self.assertRaises(TypeError):
         Value("100")
     with self.assertRaises(TypeError):
         Value(True)
示例#5
0
 def test_can_divide_negative_values(self, mock_err):
     mock_err.side_effect = (4, 3)
     val1 = Value(12, 48)
     val2 = Value(-4, 12)
     val3 = val1 / val2
     self.assertIsInstance(val3, Value)
     self.assertEqual(val3._value, -3)
     self.assertEqual(val3._error, 15)
示例#6
0
 def test_can_multiply_negative_values(self, mock_err):
     mock_err.side_effect = (0.025, 0.06)
     val1 = Value(-2, 0.08)
     val2 = Value(3, 0.05)
     val3 = val1 * val2
     self.assertIsInstance(val3, Value)
     self.assertEqual(val3._value, -6)
     self.assertAlmostEqual(val3._error, 0.39)
示例#7
0
 def test_can_get_consistency_with_non_value(self):
     val1 = Value(9.87, 0.09)
     val2 = 9.81
     self.assertTrue(val1.consistent_with(val2))
     val2 = 9.78
     self.assertTrue(val1.consistent_with(val2))
     val2 = 9.7799
     self.assertFalse(val1.consistent_with(val2))
示例#8
0
 def test_can_create_value_from_value(self):
     value = Mock(Value)
     value._value = 10
     value._error = 2
     val = Value(value)
     self.assertEqual(val._value, 10)
     self.assertEqual(val._error, 0)
示例#9
0
 def test_can_add_number_to_value(self):
     val1 = 23
     val2 = Value(19, 0.4)
     val3 = val1 + val2
     self.assertIsInstance(val3, Value)
     self.assertEqual(val3._value, 42)
     self.assertEqual(val3._error, 0.4)
示例#10
0
 def test_can_subtract_value_from_number(self):
     val1 = Value(23, 0.5)
     val2 = 19.0
     val3 = val2 - val1
     self.assertIsInstance(val3, Value)
     self.assertEqual(val3._value, -4)
     self.assertEqual(val3._error, 0.5)
示例#11
0
 def test_can_add_value_to_number(self):
     val1 = Value(23, 0.5)
     val2 = 19.0
     val3 = val1 + val2
     self.assertIsInstance(val3, Value)
     self.assertEqual(val3._value, 42)
     self.assertEqual(val3._error, 0.5)
示例#12
0
 def test_can_subtract_number_from_value(self):
     val1 = 23
     val2 = Value(19, 0.4)
     val3 = val2 - val1
     self.assertIsInstance(val3, Value)
     self.assertEqual(val3._value, -4)
     self.assertEqual(val3._error, 0.4)
示例#13
0
 def test_can_raise_value_to_negative_power(self, mock_err):
     mock_err.return_value = 0.01
     val1 = Value(2, 0.02)
     val = val1**-2
     self.assertIsInstance(val, Value)
     self.assertEqual(val._value, 0.25)
     self.assertEqual(val._error, 0.005)
示例#14
0
 def test_can_divide_value_by_number(self, mock_err):
     mock_err.return_value = 0.025
     val1 = Value(12, 48)
     val2 = 4.0
     val3 = val1 / val2
     self.assertIsInstance(val3, Value)
     self.assertEqual(val3._value, 3)
     self.assertAlmostEqual(val3._error, 0.075, delta=0.000005)
示例#15
0
 def test_can_divide_number_by_value(self, mock_err):
     mock_err.return_value = 0.06
     val1 = 12
     val2 = Value(4, 12)
     val3 = val1 / val2
     self.assertIsInstance(val3, Value)
     self.assertEqual(val3._value, 3)
     self.assertAlmostEqual(val3._error, 0.18, delta=0.000005)
示例#16
0
 def test_can_raise_value_to_power(self, mock_err):
     mock_err.return_value = 0.01
     val1 = Value(2, 0.02)
     val2 = 3
     val3 = val1**val2
     self.assertIsInstance(val3, Value)
     self.assertEqual(val3._value, 8)
     self.assertEqual(val3._error, 0.24)
示例#17
0
 def test_can_multiply_number_with_value(self, mock_err):
     mock_err.return_value = 0.06
     val1 = 2
     val2 = Value(3, 0.05)
     val3 = val1 * val2
     self.assertIsInstance(val3, Value)
     self.assertEqual(val3._value, 6)
     self.assertAlmostEqual(val3._error, 0.36)
示例#18
0
 def test_can_multiply_value_with_number(self, mock_err):
     mock_err.return_value = 0.025
     val1 = Value(2, 0.08)
     val2 = 3
     val3 = val1 * val2
     self.assertIsInstance(val3, Value)
     self.assertEqual(val3._value, 6)
     self.assertAlmostEqual(val3._error, 0.15)
示例#19
0
 def test_can_raise_negative_value_to_power(self, mock_err):
     mock_err.return_value = 0.01
     val1 = Value(-2, 0.02)
     val = val1**2
     self.assertIsInstance(val, Value)
     self.assertEqual(val._value, 4)
     self.assertEqual(val._error, 0.08)
     val = val1**3
     self.assertIsInstance(val, Value)
     self.assertEqual(val._value, -8)
     self.assertEqual(val._error, 0.24)
示例#20
0
 def test_repr_with_error(self):
     val = Value(23, 0.5)
     self.assertEqual(str(val), '23 ± 0.5')
示例#21
0
 def test_cannot_get_consistency_with_non_number(self):
     val1 = Value(9.87, 0.09)
     with self.assertRaises(TypeError):
         val1.consistent_with("value")
示例#22
0
 def test_can_create_simple_value(self):
     val = Value(10)
     self.assertEqual(val._value, 10)
     self.assertEqual(val._error, 0)
示例#23
0
 def test_repr_with_no_error(self):
     val = Value(23)
     self.assertEqual(str(val), '23')
示例#24
0
 def test_can_ignore_non_numbers(self):
     s = "value"
     val = Value.create(s, 0.2)
     self.assertIs(val, s)
示例#25
0
 def test_can_get_error_value_safely(self):
     val = Value.create(10.5, 0.2)
     self.assertIsInstance(val, Value)
     self.assertEqual(val._value, 10.5)
     self.assertEqual(val._error, 0.2)
示例#26
0
 def test_can_get_simple_value_safely(self):
     val = Value.create(10)
     self.assertIsInstance(val, Value)
     self.assertEqual(val._value, 10)
     self.assertEqual(val._error, 0)
示例#27
0
 def test_can_get_consistent_results(self):
     val1 = Value(3.3, 0.2)
     val2 = Mock(Value)
     val2.value.return_value = 3.1
     val2.error.return_value = 0.1
     self.assertTrue(val1.consistent_with(val2))
示例#28
0
 def test_can_get_inconsistent_results(self):
     val1 = Value(3.30001, 0.2)
     val2 = Mock(Value)
     val2.value.return_value = 3.0
     val2.error.return_value = 0.1
     self.assertFalse(val1.consistent_with(val2))
示例#29
0
 def test_can_get_error_range(self):
     val = Value(100, 2)
     self.assertEqual(val.error_range(), (98, 102))
示例#30
0
 def test_error_must_be_positive(self):
     with self.assertRaises(ValueError):
         Value(23, -0.01)