@@ -2247,6 +2247,37 @@ def test_fmpz_mod_poly():
22472247 l = [- 1 ,- 2 ,- 3 ,- 4 ,- 5 ]
22482248 assert [f (x ) for x in l ] == f .multipoint_evaluate (l )
22492249
2250+ # truncate things
2251+
2252+ f = R_test .random_element ()
2253+ g = R_test .random_element ()
2254+ h = R_test .random_element ()
2255+ x = R_test .gen ()
2256+
2257+ f_trunc = f % x ** 3
2258+
2259+ assert f .equal_trunc (f_trunc , 3 )
2260+ assert not f .equal_trunc ("A" , 3 )
2261+ assert not f .equal_trunc (f_cmp , 3 )
2262+
2263+ assert raises (lambda : f .add_trunc ("A" , 1 ), TypeError )
2264+ assert raises (lambda : f .add_trunc (f_cmp , 1 ), ValueError )
2265+ assert f .add_trunc (g , 3 ) == (f + g ) % x ** 3
2266+
2267+ assert raises (lambda : f .sub_trunc ("A" , 1 ), TypeError )
2268+ assert raises (lambda : f .sub_trunc (f_cmp , 1 ), ValueError )
2269+ assert f .sub_trunc (g , 3 ) == (f - g ) % x ** 3
2270+
2271+ assert raises (lambda : f .mul_low ("A" , h ), TypeError )
2272+ assert raises (lambda : f .mul_low (g , "A" ), TypeError )
2273+ assert f .mul_low (g , 3 ) == (f * g ) % x ** 3
2274+
2275+ assert raises (lambda : f .mul_mod (f_cmp , h ), ValueError )
2276+ assert raises (lambda : f .mul_mod (g , f_cmp ), ValueError )
2277+ assert f .mul_mod (g , h ) == (f * g ) % h
2278+
2279+ assert raises (lambda : f .pow_trunc (- 1 , 5 ), ValueError )
2280+
22502281
22512282def test_fmpz_mod_mat ():
22522283 c11 = flint .fmpz_mod_ctx (11 )
0 commit comments