2015-03-03 11:45:39 -05:00
|
|
|
# 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")
|
2015-10-01 13:49:37 -04:00
|
|
|
|
2018-08-17 01:43:47 -04:00
|
|
|
# overflow because arg of bytearray is being converted to machine int
|
2015-10-01 13:49:37 -04:00
|
|
|
try:
|
2018-08-17 01:43:47 -04:00
|
|
|
bytearray(i)
|
2015-10-01 13:49:37 -04:00
|
|
|
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')
|
2015-10-01 17:48:48 -04:00
|
|
|
|
|
|
|
try:
|
|
|
|
i // 0
|
|
|
|
except ZeroDivisionError:
|
|
|
|
print('ZeroDivisionError')
|
|
|
|
|
|
|
|
try:
|
|
|
|
i % 0
|
|
|
|
except ZeroDivisionError:
|
|
|
|
print('ZeroDivisionError')
|