3 from test_support
import vereq
, TestFailed
5 def check_conversion(num
):
7 vereq(int(mpz_num
), num
)
8 vereq(long(mpz_num
), num
)
9 vereq(str(mpz_num
), 'mpz(%s)' % `
int(num
)`
)
13 # FIXME: should check strings, but I'm not sure it works, this seems odd:
14 # mpz.mpz('10') == mpz(12337)
16 vereq(mpz
.divm(100, 200, 3), 2)
17 vereq(mpz
.divm(100L, 200, 3), 2)
18 vereq(mpz
.divm(100, 200L, 3), 2)
19 vereq(mpz
.divm(100L, 200L, 3), 2)
21 vereq(mpz
.gcd(100, 200), 100)
22 vereq(mpz
.gcd(100L, 200), 100)
23 vereq(mpz
.gcd(100, 200L), 100)
24 vereq(mpz
.gcd(100L, 200L), 100)
26 vereq(mpz
.gcdext(100, 200), (100, 1, 0))
27 vereq(mpz
.gcdext(100L, 200), (100, 1, 0))
28 vereq(mpz
.gcdext(100, 200L), (100, 1, 0))
29 vereq(mpz
.gcdext(100L, 200L), (100, 1, 0))
31 vereq(mpz
.powm(100, 0, 3), 1)
32 vereq(mpz
.powm(100L, 0, 3), 1)
33 vereq(mpz
.powm(100, 0L, 3), 1)
34 vereq(mpz
.powm(100L, 0L, 3), 1)
36 vereq(mpz
.powm(101, 5, 3333), 1616)
37 vereq(mpz
.powm(101L, 5, 3333), 1616)
38 vereq(mpz
.powm(101, 5L, 3333), 1616)
39 vereq(mpz
.powm(101L, 5L, 3333), 1616)
41 vereq(mpz
.sqrt(100), 10)
42 vereq(mpz
.sqrt(100L), 10)
43 vereq(mpz
.sqrt(200), 14)
44 vereq(mpz
.sqrt(200L), 14)
46 vereq(mpz
.sqrtrem(100), (10, 0))
47 vereq(mpz
.sqrtrem(100L), (10, 0))
48 vereq(mpz
.sqrtrem(200), (14, 4))
49 vereq(mpz
.sqrtrem(200L), (14, 4))
52 except TypeError: pass
53 else: raise TestFailed
, 'mpz(10.) should raise a TypeError'
56 except TypeError: pass
57 else: raise TestFailed
, 'powm(10.) should raise a TypeError'
59 try: mpz
.powm(100, 1, 0)
60 except ValueError: pass
61 else: raise TestFailed
, 'powm(100, 1, 0) should raise a ValueError'
64 except TypeError: pass
65 else: raise TestFailed
, 'divm(10, 10) should raise a TypeError'
67 try: mpz
.divm(10, 10, 10.)
68 except TypeError: pass
69 else: raise TestFailed
, 'divm(10, 10, 10.) should raise a TypeError'
72 except TypeError: pass
73 else: raise TestFailed
, 'gcd(10) should raise a TypeError'
76 except TypeError: pass
77 else: raise TestFailed
, 'gcd(10, 10.) should raise a TypeError'
80 except TypeError: pass
81 else: raise TestFailed
, 'gcdext(10) should raise a TypeError'
83 try: mpz
.gcdext(10, 10.)
84 except TypeError: pass
85 else: raise TestFailed
, 'gcdext(10, 10.) should raise a TypeError'
87 try: mpz
.mpz(-10).binary()
88 except ValueError: pass
89 else: raise TestFailed
, 'mpz(-10).binary() should raise a ValueError'