diff --git a/bls12_381/src/fields/tests.rs b/bls12_381/src/fields/tests.rs index d242915..7b667af 100644 --- a/bls12_381/src/fields/tests.rs +++ b/bls12_381/src/fields/tests.rs @@ -1117,6 +1117,19 @@ fn test_fq_repr_add_nocarry() { assert!(x.is_zero()); } +#[test] +fn test_fq2_sqrt() { + // 1 has a sqrt in the base field + let fq2_sqrt = Fq2::new(Fq::one(), Fq::zero()).sqrt().unwrap(); + assert_eq!(fq2_sqrt.c0, Fq::one()); + assert_eq!(fq2_sqrt.c1, Fq::zero()); + + // -1 has no sqrt in the base field, but should be valid in Fq2 + let fq2_sqrt = Fq2::new(-Fq::one(), Fq::zero()).sqrt().unwrap(); + assert_eq!(fq2_sqrt.c0, Fq::zero()); + assert_eq!(fq2_sqrt.c1, Fq::one()); +} + #[test] fn test_fq_num_bits() { assert_eq!(FqParameters::MODULUS_BITS, 381);