# 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')