bpo-31373: remove overly strict float range checks (#3486)

This undoes a853a8ba78 except for the pytime.c
parts. We want to continue to allow IEEE 754 doubles larger than FLT_MAX to be
rounded into finite floats. Tests were added to very this behavior.
This commit is contained in:
Benjamin Peterson 2017-09-10 23:50:46 -07:00 committed by GitHub
parent 252033d50e
commit 2bb69a5b4e
4 changed files with 14 additions and 6 deletions

View file

@ -617,6 +617,12 @@ class IEEEFormatTestCase(unittest.TestCase):
('<f', LE_FLOAT_NAN)]:
struct.unpack(fmt, data)
@support.requires_IEEE_754
def test_serialized_float_rounding(self):
from _testcapi import FLT_MAX
self.assertEqual(struct.pack("<f", 3.40282356e38), struct.pack("<f", FLT_MAX))
self.assertEqual(struct.pack("<f", -3.40282356e38), struct.pack("<f", -FLT_MAX))
class FormatTestCase(unittest.TestCase):
def test_format(self):