@@ -2466,12 +2466,29 @@ def _all_polys():
24662466 (lambda * a : flint .fmpz_mod_poly (* a , flint .fmpz_mod_poly_ctx (2 ** 255 - 19 )),
24672467 lambda x : flint .fmpz_mod (x , flint .fmpz_mod_ctx (2 ** 255 - 19 )),
24682468 True ),
2469+ (lambda * a : flint .fq_default_poly (* a , flint .fq_default_poly_ctx (2 ** 127 - 1 )),
2470+ lambda x : flint .fq_default (x , flint .fq_default_ctx (2 ** 127 - 1 )),
2471+ True ),
2472+ (lambda * a : flint .fq_default_poly (* a , flint .fq_default_poly_ctx (2 ** 127 - 1 , 2 )),
2473+ lambda x : flint .fq_default (x , flint .fq_default_ctx (2 ** 127 - 1 , 2 )),
2474+ True ),
2475+ (lambda * a : flint .fq_default_poly (* a , flint .fq_default_poly_ctx (65537 )),
2476+ lambda x : flint .fq_default (x , flint .fq_default_ctx (65537 )),
2477+ True ),
2478+ (lambda * a : flint .fq_default_poly (* a , flint .fq_default_poly_ctx (65537 , 5 )),
2479+ lambda x : flint .fq_default (x , flint .fq_default_ctx (65537 , 5 )),
2480+ True ),
2481+ (lambda * a : flint .fq_default_poly (* a , flint .fq_default_poly_ctx (11 )),
2482+ lambda x : flint .fq_default (x , flint .fq_default_ctx (11 )),
2483+ True ),
2484+ (lambda * a : flint .fq_default_poly (* a , flint .fq_default_poly_ctx (11 , 5 )),
2485+ lambda x : flint .fq_default (x , flint .fq_default_ctx (11 , 5 )),
2486+ True ),
24692487 ]
24702488
24712489
24722490def test_polys ():
24732491 for P , S , is_field in _all_polys ():
2474-
24752492 assert P ([S (1 )]) == P ([1 ]) == P (P ([1 ])) == P (1 )
24762493
24772494 assert raises (lambda : P ([None ]), TypeError )
@@ -2560,6 +2577,8 @@ def setbad(obj, i, val):
25602577 assert P (v ).repr () == f'nmod_poly({ v !r} , 17)'
25612578 elif type (p ) == flint .fmpz_mod_poly :
25622579 pass # fmpz_mod_poly does not have .repr() ...
2580+ elif type (p ) == flint .fq_default_poly :
2581+ pass # fq_default_poly does not have .repr() ...
25632582 else :
25642583 assert False
25652584
@@ -2599,7 +2618,7 @@ def setbad(obj, i, val):
25992618
26002619 for T in [int , S , flint .fmpz ]:
26012620 assert P ([1 , 2 , 3 ]) - T (1 ) == P ([0 , 2 , 3 ])
2602- assert T (1 ) - P ([1 , 2 , 3 ]) == P ([0 , - 2 , - 3 ])
2621+ assert T (1 ) - P ([1 , 2 , 3 ]) == P ([0 , - 2 , - 3 ]), f" { P ([ 0 , - 2 , - 3 ]) = } , { T ( 1 ) - P ([ 1 , 2 , 3 ]) = } "
26032622
26042623 assert raises (lambda : P ([1 , 2 , 3 ]) - None , TypeError )
26052624 assert raises (lambda : None - P ([1 , 2 , 3 ]), TypeError )
@@ -2666,7 +2685,7 @@ def setbad(obj, i, val):
26662685 # XXX: Not sure what this should do in general:
26672686 p = P ([1 , 1 ])
26682687 mod = P ([1 , 1 ])
2669- if type (p ) not in [flint .fmpz_mod_poly , flint .nmod_poly ]:
2688+ if type (p ) not in [flint .fmpz_mod_poly , flint .nmod_poly , flint . fq_default_poly ]:
26702689 assert raises (lambda : pow (p , 2 , mod ), NotImplementedError )
26712690 else :
26722691 assert p * p % mod == pow (p , 2 , mod )
@@ -2696,8 +2715,11 @@ def setbad(obj, i, val):
26962715
26972716 assert P ([1 , 2 , 1 ]).derivative () == P ([2 , 2 ])
26982717
2699- if is_field :
2700- assert P ([1 , 2 , 1 ]).integral () == P ([0 , 1 , 1 , S (1 )/ 3 ])
2718+ p = P ([1 , 2 , 1 ])
2719+ if is_field and type (p ) != flint .fq_default_poly :
2720+ assert p .integral () == P ([0 , 1 , 1 , S (1 )/ 3 ])
2721+ if type (p ) == flint .fq_default_poly :
2722+ assert raises (lambda : p .integral (), NotImplementedError )
27012723
27022724def _all_mpolys ():
27032725 return [
0 commit comments