@@ -24,8 +24,8 @@ def test_fmpz():
2424 assert int (f ) == i
2525 assert flint .fmpz (f ) == f
2626 assert flint .fmpz (str (i )) == f
27- raises (lambda : flint .fmpz ("qwe" ), ValueError )
28- raises (lambda : flint .fmpz ([]), TypeError )
27+ assert raises (lambda : flint .fmpz ("qwe" ), ValueError )
28+ assert raises (lambda : flint .fmpz ([]), TypeError )
2929 for s in L :
3030 for t in L :
3131 for ltype in (flint .fmpz , int , long ):
@@ -87,15 +87,15 @@ def test_fmpz():
8787 big = flint .fmpz (bigstr )
8888 assert big .str () == bigstr
8989 assert big .str (condense = 10 ) == '1111111111{...80 digits...}1111111111'
90- raises (lambda : pow (flint .fmpz (2 ), 2 , 3 ), NotImplementedError )
90+ assert raises (lambda : pow (flint .fmpz (2 ), 2 , 3 ), NotImplementedError )
9191
9292def test_fmpz_factor ():
9393 assert flint .fmpz (6 ).gcd (flint .fmpz (9 )) == 3
9494 assert flint .fmpz (6 ).gcd (9 ) == 3
95- raises (lambda : flint .fmpz (2 ).gcd ('asd' ), TypeError )
95+ assert raises (lambda : flint .fmpz (2 ).gcd ('asd' ), TypeError )
9696 assert flint .fmpz (6 ).lcm (flint .fmpz (9 )) == 18
9797 assert flint .fmpz (6 ).lcm (9 ) == 18
98- raises (lambda : flint .fmpz (2 ).lcm ('asd' ), TypeError )
98+ assert raises (lambda : flint .fmpz (2 ).lcm ('asd' ), TypeError )
9999 assert flint .fmpz (25 ).factor () == [(5 , 2 )]
100100 n = flint .fmpz (10 ** 100 + 1 )
101101 assert n .factor () == [
@@ -170,12 +170,12 @@ def test_fmpz_functions():
170170 for func , values in cases :
171171 for n , val in enumerate (values , - 1 ):
172172 if is_exception (val ):
173- raises (lambda : func (n ), val )
173+ assert raises (lambda : func (n ), val )
174174 else :
175175 assert func (n ) == val
176176
177- raises (lambda : flint .fmpz (1 ).root (- 1 ), ValueError )
178- raises (lambda : flint .fmpz (1 ).jacobi ('bad' ), TypeError )
177+ assert raises (lambda : flint .fmpz (1 ).root (- 1 ), ValueError )
178+ assert raises (lambda : flint .fmpz (1 ).jacobi ('bad' ), TypeError )
179179
180180def test_fmpz_poly ():
181181 Z = flint .fmpz_poly
@@ -187,6 +187,10 @@ def test_fmpz_poly():
187187 assert Z ([1 ]) == Z ([1 ])
188188 assert Z ([1 ]) == Z ([flint .fmpz (1 )])
189189 assert Z (Z ([1 ,2 ])) == Z ([1 ,2 ])
190+ assert raises (lambda : Z ([1 ,2 ,[]]), TypeError )
191+ assert raises (lambda : Z ({}), TypeError )
192+ # XXX: This should probably be made to work:
193+ assert raises (lambda : Z ((1 ,2 ,3 )), TypeError )
190194 for ztype in [int , long , flint .fmpz ]:
191195 assert Z ([1 ,2 ,3 ]) + ztype (5 ) == Z ([6 ,2 ,3 ])
192196 assert ztype (5 ) + Z ([1 ,2 ,3 ]) == Z ([6 ,2 ,3 ])
@@ -203,14 +207,33 @@ def test_fmpz_poly():
203207 assert Z ([1 ,2 ,3 ]) ** ztype (0 ) == 1
204208 assert Z ([1 ,2 ,3 ]) ** ztype (1 ) == Z ([1 ,2 ,3 ])
205209 assert Z ([1 ,2 ,3 ]) ** ztype (2 ) == Z ([1 ,4 ,10 ,12 ,9 ])
210+ assert divmod (Z ([11 ,6 ,2 ]), Z ([1 ,2 ])) == (Z ([2 ,1 ]), Z ([9 ,1 ]))
211+ assert raises (lambda : pow (Z ([1 ,2 ]), 2 , 3 ), NotImplementedError )
206212 assert + Z ([1 ,2 ]) == Z ([1 ,2 ])
207213 assert - Z ([1 ,2 ]) == Z ([- 1 ,- 2 ])
214+ assert raises (lambda : Z ([1 ,2 ]) + [], TypeError )
215+ assert raises (lambda : Z ([1 ,2 ]) - [], TypeError )
216+ assert raises (lambda : Z ([1 ,2 ]) * [], TypeError )
217+ assert raises (lambda : Z ([1 ,2 ]) / [], TypeError )
218+ assert raises (lambda : Z ([1 ,2 ]) // [], TypeError )
219+ assert raises (lambda : Z ([1 ,2 ]) % [], TypeError )
220+ assert raises (lambda : divmod (Z ([1 ,2 ]), []), TypeError )
221+ assert raises (lambda : [] + Z ([1 ,2 ]), TypeError )
222+ assert raises (lambda : [] - Z ([1 ,2 ]), TypeError )
223+ assert raises (lambda : [] * Z ([1 ,2 ]), TypeError )
224+ assert raises (lambda : [] / Z ([1 ,2 ]), TypeError )
225+ assert raises (lambda : [] // Z ([1 ,2 ]), TypeError )
226+ assert raises (lambda : [] % Z ([1 ,2 ]), TypeError )
227+ assert raises (lambda : divmod ([], Z ([1 ,2 ])), TypeError )
208228 assert raises (lambda : Z ([1 ,2 ,3 ]) ** - 1 , (OverflowError , ValueError ))
209229 assert raises (lambda : Z ([1 ,2 ,3 ]) ** Z ([1 ,2 ]), TypeError )
210230 assert raises (lambda : Z ([1 ,2 ]) // Z ([]), ZeroDivisionError )
211231 assert raises (lambda : Z ([]) // Z ([]), ZeroDivisionError )
212232 assert raises (lambda : Z ([1 ,2 ]) % Z ([]), ZeroDivisionError )
213233 assert raises (lambda : divmod (Z ([1 ,2 ]), Z ([])), ZeroDivisionError )
234+ assert raises (lambda : Z ([1 ,2 ]) < Z ([1 ,2 ]), TypeError )
235+ assert raises (lambda : Z ([1 ,2 ]) < [], TypeError )
236+ assert raises (lambda : [] < Z ([1 ,2 ]), TypeError )
214237 assert Z ([]).degree () == - 1
215238 assert Z ([]).length () == 0
216239 p = Z ([1 ,2 ])
@@ -244,6 +267,42 @@ def test_fmpz_poly():
244267 assert p (flint .fmpq_poly ([2 ,3 ],5 )) == flint .fmpq_poly ([27 ,24 ,9 ],5 )
245268 assert p (flint .arb ("1.1" )).overlaps (flint .arb ("13.45" ))
246269 assert p (flint .acb ("1.1" , "1.2" )).overlaps (flint .acb ("6.25" , "18.00" ))
270+ assert raises (lambda : p (None ), TypeError )
271+ assert Z ([1 ,2 ,3 ]).derivative () == Z ([2 ,6 ])
272+ assert Z ([1 ,2 ,- 4 ]).height_bits () == 3
273+ assert Z ([1 ,2 ,- 4 ]).height_bits (signed = True ) == - 3
274+ assert Z ([1 ,2 ,1 ]).sqrt () == Z ([1 ,1 ])
275+ assert Z ([1 ,2 ,2 ]).sqrt () is None
276+ assert Z ([1 ,0 ,2 ,0 ,3 ]).deflation () == (Z ([1 ,2 ,3 ]), 2 )
277+ assert Z ([1 ,1 ]).deflation () == (Z ([1 ,1 ]), 1 )
278+
279+ def test_fmpz_poly_factor ():
280+ Z = flint .fmpz_poly
281+ assert Z ([1 ,2 ]).gcd (Z ([3 ,4 ])) == 1
282+ assert Z ([1 ,2 ,1 ]).gcd (Z ([1 ,1 ])) == Z ([1 ,1 ])
283+ assert raises (lambda : Z ([1 ,2 ,1 ]).gcd ([]), TypeError )
284+ assert Z ([1 ,2 ,1 ]).factor () == (1 , [(Z ([1 ,1 ]), 2 )])
285+
286+ def test_fmpz_poly_functions ():
287+ Z = flint .fmpz_poly
288+ assert Z .cyclotomic (4 ) == Z ([1 ,0 ,1 ])
289+ assert Z .cos_minpoly (10 ) == Z ([- 1 ,- 1 ,1 ])
290+ assert Z .chebyshev_u (4 ) == Z ([1 ,0 ,- 12 ,0 ,16 ])
291+ assert Z .chebyshev_t (4 ) == Z ([1 ,0 ,- 8 ,0 ,8 ])
292+ assert Z .swinnerton_dyer (2 ) == Z ([1 ,0 ,- 10 ,0 ,1 ])
293+ assert Z .swinnerton_dyer (2 , use_arb = False ) == Z ([1 ,0 ,- 10 ,0 ,1 ])
294+ assert raises (lambda : Z .swinnerton_dyer (21 ), OverflowError )
295+ assert Z .hilbert_class_poly (- 7 ) == Z ([3375 ,1 ])
296+ assert raises (lambda : Z .hilbert_class_poly (- 2 ), ValueError )
297+ assert Z ([1 ]).is_cyclotomic () == 0
298+ assert Z ([- 1 ,1 ]).is_cyclotomic () == 1
299+ assert Z ([1 ,1 ]).is_cyclotomic () == 2
300+ assert Z ([1 ,2 ]).is_cyclotomic () == 0
301+ assert Z ([1 ,2 ,1 ]).is_cyclotomic () == 0
302+ assert Z ([2 ,2 ,1 ,1 ]).is_cyclotomic () == 0
303+ assert Z ([2 ,2 ,1 ]).is_cyclotomic () == 0
304+ assert Z ([1 ,2 ,2 ]).is_cyclotomic () == 0
305+ assert Z ([1 ,1 ,1 ]).is_cyclotomic () == 3
247306
248307def test_fmpz_mat ():
249308 M = flint .fmpz_mat
@@ -308,12 +367,12 @@ def test_fmpq():
308367 assert Q (- 2 ,- 4 ) == Q (1 ,2 )
309368 assert Q ("1" ) == Q (1 )
310369 assert Q ("1/2" ) == Q (1 ,2 )
311- raises (lambda : Q ("1.0" ), ValueError )
312- raises (lambda : Q ("1.5" ), ValueError )
313- raises (lambda : Q ("1/2/3" ), ValueError )
314- raises (lambda : Q ([]), ValueError )
315- raises (lambda : Q (1 , []), ValueError )
316- raises (lambda : Q ([], 1 ), ValueError )
370+ assert raises (lambda : Q ("1.0" ), ValueError )
371+ assert raises (lambda : Q ("1.5" ), ValueError )
372+ assert raises (lambda : Q ("1/2/3" ), ValueError )
373+ assert raises (lambda : Q ([]), ValueError )
374+ assert raises (lambda : Q (1 , []), ValueError )
375+ assert raises (lambda : Q ([], 1 ), ValueError )
317376 assert bool (Q (0 )) == False
318377 assert bool (Q (1 )) == True
319378 assert Q (1 ,3 ) + Q (2 ,3 ) == 1
@@ -333,21 +392,21 @@ def test_fmpq():
333392 assert Q (2 ,3 )/ 5 == Q (2 ,15 )
334393 assert Q (1 ,2 ) ** 2 == Q (1 ,4 )
335394 assert Q (1 ,2 ) ** - 2 == Q (4 )
336- raises (lambda : Q (0 ) ** - 1 , ZeroDivisionError )
337- raises (lambda : Q (1 ,2 ) ** Q (1 ,2 ), TypeError )
338- raises (lambda : Q (1 ,2 ) ** [], TypeError )
339- raises (lambda : [] ** Q (1 ,2 ), TypeError )
395+ assert raises (lambda : Q (0 ) ** - 1 , ZeroDivisionError )
396+ assert raises (lambda : Q (1 ,2 ) ** Q (1 ,2 ), TypeError )
397+ assert raises (lambda : Q (1 ,2 ) ** [], TypeError )
398+ assert raises (lambda : [] ** Q (1 ,2 ), TypeError )
340399 # XXX: This should NotImplementedError or something.
341- raises (lambda : pow (Q (1 ,2 ),2 ,3 ), AssertionError )
400+ assert raises (lambda : pow (Q (1 ,2 ),2 ,3 ), AssertionError )
342401
343- raises (lambda : Q (1 ,2 ) + [], TypeError )
344- raises (lambda : Q (1 ,2 ) - [], TypeError )
345- raises (lambda : Q (1 ,2 ) * [], TypeError )
346- raises (lambda : Q (1 ,2 ) / [], TypeError )
347- raises (lambda : [] + Q (1 ,2 ), TypeError )
348- raises (lambda : [] - Q (1 ,2 ), TypeError )
349- raises (lambda : [] * Q (1 ,2 ), TypeError )
350- raises (lambda : [] / Q (1 ,2 ), TypeError )
402+ assert raises (lambda : Q (1 ,2 ) + [], TypeError )
403+ assert raises (lambda : Q (1 ,2 ) - [], TypeError )
404+ assert raises (lambda : Q (1 ,2 ) * [], TypeError )
405+ assert raises (lambda : Q (1 ,2 ) / [], TypeError )
406+ assert raises (lambda : [] + Q (1 ,2 ), TypeError )
407+ assert raises (lambda : [] - Q (1 ,2 ), TypeError )
408+ assert raises (lambda : [] * Q (1 ,2 ), TypeError )
409+ assert raises (lambda : [] / Q (1 ,2 ), TypeError )
351410 assert (Q (1 ,2 ) == 1 ) is False
352411 assert (Q (1 ,2 ) != 1 ) is True
353412 assert (Q (1 ,2 ) < 1 ) is True
@@ -366,8 +425,8 @@ def test_fmpq():
366425 assert (Q (1 ,2 ) <= Q (1 ,2 )) is True
367426 assert (Q (1 ,2 ) > Q (1 ,2 )) is False
368427 assert (Q (1 ,2 ) >= Q (1 ,2 )) is True
369- raises (lambda : Q (1 ,2 ) > [], TypeError )
370- raises (lambda : [] < Q (1 ,2 ), TypeError )
428+ assert raises (lambda : Q (1 ,2 ) > [], TypeError )
429+ assert raises (lambda : [] < Q (1 ,2 ), TypeError )
371430 ctx .pretty = False
372431 assert repr (Q (- 2 ,3 )) == "fmpq(-2,3)"
373432 assert repr (Q (3 )) == "fmpq(3)"
@@ -435,7 +494,7 @@ def test_fmpq():
435494 for func , values in cases :
436495 for n , val in enumerate (values , - 1 ):
437496 if is_exception (val ):
438- raises (lambda : func (n ), val )
497+ assert raises (lambda : func (n ), val )
439498 else :
440499 assert func (n ) == val
441500
0 commit comments