Пример #1
0
 def testFloatTypePrecisionLossWarning(self, *unused_mocks):
     instance = standard_artifacts.Float()
     # TODO(b/156776413): with self.assertWarnsRegex('lost precision'):
     self.assertAlmostEqual(instance.decode(_TEST_FLOAT128_RAW),
                            _TEST_FLOAT128)
     # Lost precision warning
     absl.logging.warning.assert_called_once()
Пример #2
0
    def testSpecialFloatValues(self):
        coder = standard_artifacts.Float()
        positive_infinity_float = float('inf')
        negative_infinity_float = float('-inf')
        nan_float = float('nan')

        encoded_positive_infinity = coder.encode(positive_infinity_float)
        encoded_negative_infinity = coder.encode(negative_infinity_float)
        encoded_nan = coder.encode(nan_float)

        decoded_positive_infinity = coder.decode(encoded_positive_infinity)
        decoded_negative_infinity = coder.decode(encoded_negative_infinity)
        decoded_nan = coder.decode(encoded_nan)

        self.assertEqual(encoded_positive_infinity, b'Infinity')
        self.assertEqual(encoded_negative_infinity, b'-Infinity')
        self.assertEqual(encoded_nan, b'NaN')

        self.assertEqual(decoded_positive_infinity, positive_infinity_float)
        self.assertEqual(decoded_negative_infinity, negative_infinity_float)

        self.assertTrue(math.isinf(decoded_positive_infinity))
        self.assertTrue(math.isinf(decoded_negative_infinity))
        self.assertTrue(math.isnan(decoded_nan))
Пример #3
0
 def testFloatType(self):
     instance = standard_artifacts.Float()
     self.assertEqual(_TEST_FLOAT_RAW, instance.encode(_TEST_FLOAT_DECODED))
     self.assertAlmostEqual(_TEST_FLOAT_DECODED,
                            instance.decode(_TEST_FLOAT_RAW))
Пример #4
0
 def testFloatInfNanEncodingWarning(self, *unused_mocks):
     instance = standard_artifacts.Float()
     instance.encode(float('inf'))
     # Non-portable encoding warning
     absl.logging.warning.assert_called_once()