You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
717 B
42 lines
717 B
4 years ago
|
# test errors operating on bignum
|
||
|
|
||
|
i = 1 << 65
|
||
|
|
||
|
try:
|
||
|
i << -1
|
||
|
except ValueError:
|
||
|
print("ValueError")
|
||
|
|
||
|
try:
|
||
|
len(i)
|
||
|
except TypeError:
|
||
|
print("TypeError")
|
||
|
|
||
|
try:
|
||
|
1 in i
|
||
|
except TypeError:
|
||
|
print("TypeError")
|
||
|
|
||
|
# overflow because arg of bytearray is being converted to machine int
|
||
|
try:
|
||
|
bytearray(i)
|
||
|
except OverflowError:
|
||
|
print('OverflowError')
|
||
|
|
||
|
# to test conversion of negative mpz to machine int
|
||
|
# (we know << will convert to machine int, even though it fails to do the shift)
|
||
|
try:
|
||
|
i << (-(i >> 40))
|
||
|
except ValueError:
|
||
|
print('ValueError')
|
||
|
|
||
|
try:
|
||
|
i // 0
|
||
|
except ZeroDivisionError:
|
||
|
print('ZeroDivisionError')
|
||
|
|
||
|
try:
|
||
|
i % 0
|
||
|
except ZeroDivisionError:
|
||
|
print('ZeroDivisionError')
|