/ test / test_mpz_create.txt
test_mpz_create.txt
  1  MPZ Functionality
  2  =================
  3  
  4  Test the creation of mpz objects.
  5  
  6  >>> from gmpy2 import mpz, mpq, mpfr, mpc, xmpz
  7  >>> from decimal import Decimal as D
  8  >>> from fractions import Fraction as F
  9  >>> import gmpy2 as G
 10  
 11  >>> mpz()
 12  mpz(0)
 13  >>> mpz(0)
 14  mpz(0)
 15  >>> mpz(1)
 16  mpz(1)
 17  >>> mpz(-1)
 18  mpz(-1)
 19  >>> mpz(2**15-2)
 20  mpz(32766)
 21  >>> mpz(2**15-1)
 22  mpz(32767)
 23  >>> mpz(2**15)
 24  mpz(32768)
 25  >>> mpz(2**15+1)
 26  mpz(32769)
 27  >>> mpz(2**15+2)
 28  mpz(32770)
 29  >>> mpz(2**30-2)
 30  mpz(1073741822)
 31  >>> mpz(2**30-1)
 32  mpz(1073741823)
 33  >>> mpz(2**30)
 34  mpz(1073741824)
 35  >>> mpz(2**30+1)
 36  mpz(1073741825)
 37  >>> mpz(2**30+2)
 38  mpz(1073741826)
 39  >>> mpz(2**16-2)
 40  mpz(65534)
 41  >>> mpz(2**16-1)
 42  mpz(65535)
 43  >>> mpz(2**16)
 44  mpz(65536)
 45  >>> mpz(2**16+1)
 46  mpz(65537)
 47  >>> mpz(2**16+2)
 48  mpz(65538)
 49  >>> mpz(1000000000000)
 50  mpz(1000000000000)
 51  >>> mpz(-1000000000000)
 52  mpz(-1000000000000)
 53  >>> mpz('')
 54  Traceback (most recent call last):
 55    File "<stdin>", line 1, in <module>
 56  ValueError: invalid digits
 57  >>> mpz('a')
 58  Traceback (most recent call last):
 59    File "<stdin>", line 1, in <module>
 60  ValueError: invalid digits
 61  >>> mpz('a',16)
 62  mpz(10)
 63  >>> mpz('z',16)
 64  Traceback (most recent call last):
 65    File "<stdin>", line 1, in <module>
 66  ValueError: invalid digits
 67  >>> mpz('0b1101')
 68  mpz(13)
 69  >>> mpz('0b1101',2)
 70  mpz(13)
 71  >>> mpz('1101',2)
 72  mpz(13)
 73  >>> mpz('0b0010')
 74  mpz(2)
 75  >>> mpz('0b0010',2)
 76  mpz(2)
 77  >>> mpz('0b0b10',2)
 78  Traceback (most recent call last):
 79    File "<stdin>", line 1, in <module>
 80  ValueError: invalid digits
 81  >>> mpz('0b0b10')
 82  Traceback (most recent call last):
 83    File "<stdin>", line 1, in <module>
 84  ValueError: invalid digits
 85  >>> mpz('0b0012')
 86  Traceback (most recent call last):
 87    File "<stdin>", line 1, in <module>
 88  ValueError: invalid digits
 89  >>> mpz('0o0012')
 90  mpz(10)
 91  >>> mpz('0o0012',8)
 92  mpz(10)
 93  >>> mpz('12',8)
 94  mpz(10)
 95  >>> mpz('0x12')
 96  mpz(18)
 97  >>> mpz('0x12',16)
 98  mpz(18)
 99  >>> mpz('12',16)
100  mpz(18)
101  >>> mpz(float('nan'))
102  Traceback (most recent call last):
103    File "<stdin>", line 1, in <module>
104  ValueError: 'mpz' does not support NaN
105  >>> mpz(float('inf'))
106  Traceback (most recent call last):
107    File "<stdin>", line 1, in <module>
108  OverflowError: 'mpz' does not support Infinity
109  >>> mpz(float('-inf'))
110  Traceback (most recent call last):
111    File "<stdin>", line 1, in <module>
112  OverflowError: 'mpz' does not support Infinity
113  >>> mpz(12, base=16)
114  Traceback (most recent call last):
115    File "<stdin>", line 1, in <module>
116  TypeError: mpz() with non-string argument needs exactly 1 argument
117  >>> mpz('12', base=16)
118  mpz(18)
119  >>> mpz('\xff')
120  Traceback (most recent call last):
121    File "<stdin>", line 1, in <module>
122  ValueError: ** message detail varies **
123  >>> mpz('\x0cf')
124  Traceback (most recent call last):
125    File "<stdin>", line 1, in <module>
126  ValueError: ** message detail varies **
127  >>> mpz('\0xff')
128  Traceback (most recent call last):
129    File "<stdin>", line 1, in <module>
130  ValueError: ** message detail varies **
131  >>> mpz(b'12')
132  mpz(12)
133  >>> mpz(None)
134  Traceback (most recent call last):
135    File "<stdin>", line 1, in <module>
136  TypeError: ** message detail varies **
137  >>> mpz(None,base=10)
138  Traceback (most recent call last):
139    File "<stdin>", line 1, in <module>
140  TypeError: ** message detail varies **
141  >>> mpz('99',base=100)
142  Traceback (most recent call last):
143    File "<stdin>", line 1, in <module>
144  ValueError: ** message detail varies **
145  >>> mpz('99',base='a')
146  Traceback (most recent call last):
147    File "<stdin>", line 1, in <module>
148  TypeError: ** message detail varies **
149  >>> mpz('99',base=10)
150  mpz(99)
151  >>> mpz(xmpz(5))
152  mpz(5)
153