Merged revisions 77519,77530,77533 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r77519 | mark.dickinson | 2010-01-16 10:44:00 +0000 (Sat, 16 Jan 2010) | 5 lines
Issue #7632: Fix a serious wrong output bug for string -> float conversion.
Also remove some now unused variables, and add comments clarifying the
possible outputs of the parsing section of _Py_dg_strtod. Thanks
Eric Smith for reviewing.
........
r77530 | mark.dickinson | 2010-01-16 17:57:49 +0000 (Sat, 16 Jan 2010) | 3 lines
Issue #7632: Fix one more case of incorrect rounding for str -> float
conversion (see bug 5 in the issue tracker).
........
r77533 | mark.dickinson | 2010-01-16 18:06:17 +0000 (Sat, 16 Jan 2010) | 1 line
Fix multiple uses of variable 'L' in _Py_dg_strtod, where one use requires an unsigned long and the other a signed long. See also r77421.
........
diff --git a/Lib/test/test_strtod.py b/Lib/test/test_strtod.py
index 79cfc88..b5a630e 100644
--- a/Lib/test/test_strtod.py
+++ b/Lib/test/test_strtod.py
@@ -123,10 +123,6 @@
digits = m * 5**-e
exponent = e
s = '{}e{}'.format(digits, exponent)
-
- # for the moment, ignore errors from trailing zeros
- if digits % 10 == 0:
- continue
self.check_strtod(s)
# get expected answer via struct, to triple check
@@ -175,7 +171,8 @@
self.check_strtod(s)
def test_parsing(self):
- digits = tuple(map(str, range(10)))
+ # make '0' more likely to be chosen than other digits
+ digits = '000000123456789'
signs = ('+', '-', '')
# put together random short valid strings
@@ -257,7 +254,9 @@
'247032822920623295e-341',
# issue 7632 bug 5: the following 2 strings convert differently
'1000000000000000000000000000000000000000e-16',
- #'10000000000000000000000000000000000000000e-17',
+ '10000000000000000000000000000000000000000e-17',
+ # issue 7632 bug 8: the following produced 10.0
+ '10.900000000000000012345678912345678912345',
]
for s in test_strings:
self.check_strtod(s)