From 11b1dc142fb31a730ebb98aa8ce2e604cd04a4cc Mon Sep 17 00:00:00 2001 From: Sean Bowe Date: Sat, 30 Jun 2018 09:49:54 -0600 Subject: [PATCH] Add test for behavior of Scalar::batch_invert(). --- src/scalar.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/scalar.rs b/src/scalar.rs index 5b67732..15c8b7c 100644 --- a/src/scalar.rs +++ b/src/scalar.rs @@ -1138,4 +1138,20 @@ mod test { // This should panic in debug mode. Scalar::batch_invert(&mut xs); } + + #[test] + fn batch_invert_consistency() { + let mut x = Scalar::from_u64(1); + let mut v1: Vec<_> = (0..16).map(|_| {let tmp = x; x = x + x; tmp}).collect(); + let v2 = v1.clone(); + + let expected: Scalar = v1.iter().product(); + let expected = expected.invert(); + let ret = Scalar::batch_invert(&mut v1); + assert_eq!(ret, expected); + + for (a, b) in v1.iter().zip(v2.iter()) { + assert_eq!(a * b, Scalar::one()); + } + } }