2015-03-03 16:45:39 +00: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 18:49:37 +01:00
|
|
|
|
|
|
|
# overflow because rhs of >> is being converted to machine int
|
|
|
|
try:
|
|
|
|
1 >> 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')
|
2015-10-01 22:48:48 +01:00
|
|
|
|
|
|
|
try:
|
|
|
|
i // 0
|
|
|
|
except ZeroDivisionError:
|
|
|
|
print('ZeroDivisionError')
|
|
|
|
|
|
|
|
try:
|
|
|
|
i % 0
|
|
|
|
except ZeroDivisionError:
|
|
|
|
print('ZeroDivisionError')
|