tests/float: Adjust float-parsing tests to pass with only a small error.
Float parsing (both single and double precision) may have a relative error of order the floating point precision, so adjust tests to take this into account by not printing all of the digits of the answer.
This commit is contained in:
parent
4c2230add8
commit
6dad088569
@ -7,9 +7,8 @@ print(float('1234') - float('0.1234e4'))
|
||||
print(float('1.015625') - float('1015625e-6'))
|
||||
|
||||
# very large integer part with a very negative exponent should cancel out
|
||||
print(float('9' * 60 + 'e-60'))
|
||||
print(float('9' * 60 + 'e-40'))
|
||||
print(float('9' * 60 + 'e-20') == float('1e40'))
|
||||
print('%.4e' % float('9' * 60 + 'e-60'))
|
||||
print('%.4e' % float('9' * 60 + 'e-40'))
|
||||
|
||||
# many fractional digits
|
||||
print(float('.' + '9' * 70))
|
||||
|
@ -11,9 +11,9 @@ print(float('.' + '9' * 400 + 'e100'))
|
||||
print(float('.' + '9' * 400 + 'e-100'))
|
||||
|
||||
# tiny fraction with large exponent
|
||||
print(float('.' + '0' * 400 + '9e100'))
|
||||
print(float('.' + '0' * 400 + '9e200'))
|
||||
print(float('.' + '0' * 400 + '9e400'))
|
||||
print('%.14e' % float('.' + '0' * 400 + '9e100'))
|
||||
print('%.14e' % float('.' + '0' * 400 + '9e200'))
|
||||
print('%.14e' % float('.' + '0' * 400 + '9e400'))
|
||||
|
||||
# ensure that accuracy is retained when value is close to a subnormal
|
||||
print(float('1.00000000000000000000e-307'))
|
||||
|
Loading…
x
Reference in New Issue
Block a user