36 lines
900 B
Python
36 lines
900 B
Python
import skip_if
|
|
skip_if.no_bigint()
|
|
|
|
print((2**64).to_bytes(9, "little"))
|
|
print((-2**64).to_bytes(9, "little", signed=True))
|
|
print((2**64).to_bytes(9, "big"))
|
|
print((-2**64).to_bytes(9, "big", signed=True))
|
|
|
|
b = bytes(range(20))
|
|
|
|
il = int.from_bytes(b, "little")
|
|
ib = int.from_bytes(b, "big")
|
|
print(il)
|
|
print(ib)
|
|
print(il.to_bytes(20, "little"))
|
|
print(ib.to_bytes(20, "big"))
|
|
|
|
# check that extra zero bytes don't change the internal int value
|
|
print(int.from_bytes(b + bytes(10), "little") == int.from_bytes(b, "little"))
|
|
|
|
# too small buffer should raise an error
|
|
try:
|
|
(2**64).to_bytes(8, "little")
|
|
except OverflowError:
|
|
print("OverflowError")
|
|
|
|
# negative numbers should raise an error if signed=False
|
|
try:
|
|
(-2**64).to_bytes(9, "little")
|
|
except OverflowError:
|
|
print("OverflowError")
|
|
try:
|
|
(-2**64).to_bytes(9, "little", signed=False)
|
|
except OverflowError:
|
|
print("OverflowError")
|