def test_GIVEN_a_block_with_an_arbitrary_object_as_its_value_THEN_when_formatted_to_prec_3_it_is_returned_unchanged( self): value = object() expected_formatted_value = str(value) self.assertEqual(format_block_value(value, 3), expected_formatted_value)
def test_GIVEN_a_block_with_a_number_that_does_not_fit_in_a_float_WHEN_formatted_to_prec_3_THEN_it_is_formatted_as_infinity( self): value = "5" * 10000 expected_formatted_value = "INF" self.assertEqual(format_block_value(value, 3), expected_formatted_value)
def test_GIVEN_a_block_with_a_large_negative_value_WHEN_formatted_to_prec_3_THEN_it_is_returned_in_exponential_notation_to_3_sf( self): value = "-12340000000000000" expected_formatted_value = "-1.23E+16" self.assertEqual(format_block_value(value, 3), expected_formatted_value)
def test_GIVEN_a_block_with_a_negative_INF_value_WHEN_formatted_to_prec_3_THEN_it_is_returned_unchanged( self): value = "-INF" expected_formatted_value = value self.assertEqual(format_block_value(value, 3), expected_formatted_value)
def test_GIVEN_a_block_with_a_medium_size_negative_value_WHEN_formatted_to_prec_3_THEN_it_is_returned_to_3_dp( self): value = "-327" expected_formatted_value = "-327.000" self.assertEqual(format_block_value(value, 3), expected_formatted_value)
def test_GIVEN_a_block_with_a_small_negative_value_WHEN_formatted_to_prec_3_THEN_it_is_returned_in_exponential_notation_to_3_sf( self): value = "-0.0000000567" expected_formatted_value = "-5.67E-08" self.assertEqual(format_block_value(value, 3), expected_formatted_value)
def test_GIVEN_a_block_with_a_medium_size_value_THEN_when_formatted_to_prec_0_THEN_it_is_returned_unchanged( self): value = "327" expected_formatted_value = value self.assertEqual(format_block_value(value, 0), expected_formatted_value)
def test_GIVEN_a_block_with_a_zero_value_WHEN_formatted_with_prec_3_THEN_it_is_returned_to_3_dp( self): value = "0.0" expected_formatted_value = "0.000" self.assertEqual(format_block_value(value, 3), expected_formatted_value)
def test_GIVEN_a_block_with_a_non_numeric_value_WHEN_formatted_with_no_prec_THEN_it_is_returned_unchanged( self): value = "this is a string" expected_formatted_value = value self.assertEqual(format_block_value(value, None), expected_formatted_value)
def get_description(self): """ Returns the full description of this BoolStr object. """ if self.should_format_value(): value = format_block_value(self.value, self.precision) else: value = self.value if self.units == u"": formatted_value = u"{}".format(value) else: formatted_value = u"{value} {units}".format(value=value, units=self.units) ans = { "status": self.status, "value": formatted_value, "alarm": self.alarm, "visibility": self.visibility } if RETURN_RC_VALUES: # add rc values if they're set if self.low is not None: ans["rc_low"] = self.low if self.high is not None: ans["rc_high"] = self.high if self.inrange is not None: ans["rc_inrange"] = self.inrange ans["rc_enabled"] = self.enabled return ans
def test_GIVEN_a_block_with_a_negative_zero_value_WHEN_formatted_to_prec_3_THEN_it_is_returned_to_3_dp( self): # Python does have a concept of "-0" so this is a test worth doing. value = "-0.0" expected_formatted_value = "-0.000" self.assertEqual(format_block_value(value, 3), expected_formatted_value)
def test_GIVEN_nonsense_precision_containing_unicode_WHEN_formatting_THEN_original_value_returned_unchanged( self): precision = u"ƀ Ɓ Ƃ ƃ Ƅ ƅ Ɔ Ƈ ƈ Ɖ Ɗ Ƌ ƌ ƍ Ǝ Ə Ɛ Ƒ ƒ Ɠ Ɣ ƕ Ɩ Ɨ Ƙ ƙ ƚ ƛ Ɯ Ɲ ƞ Ɵ Ơ ơ Ƣ ƣ Ƥ ƥ Ʀ Ƨ ƨ Ʃ ƪ ƫ Ƭ ƭ Ʈ" value = "12.345" self.assertEqual(format_block_value(value, precision), value)
def test_GIVEN_nonsense_precision_WHEN_formatting_THEN_original_value_returned_unchanged( self): precision = "this is clearly not a valid precision" value = "12.345" self.assertEqual(format_block_value(value, precision), value)
def test_GIVEN_negative_precision_WHEN_formatting_THEN_original_value_returned_unchanged( self): precision = -57 value = "12.345" self.assertEqual(format_block_value(value, precision), value)
def test_GIVEN_arbitrary_object_as_precision_WHEN_formatting_THEN_original_value_returned_unchanged( self): precision = object() value = "12.345" self.assertEqual(format_block_value(value, precision), value)