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.
|
|
|
# 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 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')
|
|
|
|
|
|
|
|
try:
|
|
|
|
i // 0
|
|
|
|
except ZeroDivisionError:
|
|
|
|
print('ZeroDivisionError')
|
|
|
|
|
|
|
|
try:
|
|
|
|
i % 0
|
|
|
|
except ZeroDivisionError:
|
|
|
|
print('ZeroDivisionError')
|