fix: Make all polynomials monic in task fn

This commit is contained in:
Alivecow 2024-11-23 13:33:51 +01:00
parent 2e73125e14
commit 69a2026c84
2 changed files with 16 additions and 2 deletions

View file

@ -112,7 +112,7 @@ pub fn gfpoly_gcd(args: &Value) -> Result<Polynomial> {
let poly_a = Polynomial::from_c_array(&args["A"].clone()); let poly_a = Polynomial::from_c_array(&args["A"].clone());
let poly_b = Polynomial::from_c_array(&args["B"].clone()); let poly_b = Polynomial::from_c_array(&args["B"].clone());
let result = gcd(poly_a, poly_b); let result = gcd(poly_a.monic(), poly_b.monic());
Ok(result) Ok(result)
} }

View file

@ -1304,4 +1304,18 @@ mod tests {
assert_eq!(json!(result.to_c_array()), expected); assert_eq!(json!(result.to_c_array()), expected);
} }
#[test]
fn test_poly_gcd_zero() {
let a = json!(["AAAAAAAAAAAAAAAAAAAAAA==",]);
let b = json!(["AAAAAAAAAAAAAAAAAAAAAA=="]);
let expected = json!(["AAAAAAAAAAAAAAAAAAAAAA=="]);
let a: Polynomial = Polynomial::from_c_array(&a);
let b: Polynomial = Polynomial::from_c_array(&b);
let result = gcd(a.monic(), b.monic());
assert_eq!(json!(result.to_c_array()), expected);
}
} }