Skip to content

Commit 7660dc7

Browse files
Merge pull request #180 from GiacomoPope/fmpz_mod_trunc
Add truncate methods to `fmpz_mod_poly`
2 parents 09af886 + b9690f6 commit 7660dc7

File tree

2 files changed

+252
-54
lines changed

2 files changed

+252
-54
lines changed

src/flint/test/test_all.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

22512282
def test_fmpz_mod_mat():
22522283
c11 = flint.fmpz_mod_ctx(11)

0 commit comments

Comments
 (0)