tests: Add some tests for bigint hash, float hash and float parsing.
Following outcome of recent fuzz testing and sanitizing by @jepler.
This commit is contained in:
parent
95e43efc99
commit
1ad0013dec
|
@ -8,3 +8,6 @@ class F:
|
|||
def __hash__(self):
|
||||
return 1 << 70 | 1
|
||||
print(hash(F()) != 0)
|
||||
|
||||
# this had a particular error with internal integer arithmetic of hash function
|
||||
print(hash(6699999999999999999999999999999999999999999999999999999999999999999999) != 0)
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
# these should hash to an integer with a specific value
|
||||
for val in (
|
||||
'0.0',
|
||||
'-0.0',
|
||||
'1.0',
|
||||
'2.0',
|
||||
'-12.0',
|
||||
|
@ -15,6 +16,7 @@ for val in (
|
|||
'0.1',
|
||||
'-0.1',
|
||||
'10.3',
|
||||
'0.4e3',
|
||||
'1e16',
|
||||
'inf',
|
||||
'-inf',
|
||||
|
|
|
@ -24,3 +24,9 @@ print(float('.' + '0' * 60 + '9e40') == float('9e-21'))
|
|||
print(float('1.00000000000000000000e-37'))
|
||||
print(float('10.0000000000000000000e-38'))
|
||||
print(float('100.000000000000000000e-39'))
|
||||
|
||||
# very large exponent literal
|
||||
print(float('1e4294967301'))
|
||||
print(float('1e-4294967301'))
|
||||
print(float('1e18446744073709551621'))
|
||||
print(float('1e-18446744073709551621'))
|
||||
|
|
Loading…
Reference in New Issue