gmpy/test/test_pack.py
2014-08-14 04:26:29 +00:00

30 lines
860 B
Python

from __future__ import print_function
import gmpy2
def test(repeat=1):
"""Test gmpy2.pack and gmpy2.unpack."""
r = gmpy2.random_state(42)
try:
for counter in range(repeat):
for t in (10, 30, 60, 500, 1000, 2000, 10000, 100000):
v = gmpy2.mpz_rrandomb(r, t)
for b in range(1, max(1001,t)):
temp = gmpy2.unpack(v, b)
u = gmpy2.pack(temp, b)
if u != v:
raise ValueError
return True
except ValueError:
return False
if __name__ == "__main__":
import sys
try:
repeat = abs(int(sys.argv[1]))
except:
repeat = 1
print("Testing pack/unpack for a large number of values.")
print("This test may take a few minutes.")
test(repeat)
print("Test successful.")