From d456efbc3ffa814122a42ccecaa0cf7eb623b317 Mon Sep 17 00:00:00 2001 From: wborgeaud Date: Fri, 2 Jul 2021 10:20:44 +0200 Subject: [PATCH] Minor addition to partial product test --- src/circuit_data.rs | 2 +- src/util/partial_products.rs | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/circuit_data.rs b/src/circuit_data.rs index e7f08dcb..6591a6df 100644 --- a/src/circuit_data.rs +++ b/src/circuit_data.rs @@ -157,7 +157,7 @@ pub struct CommonCircuitData, const D: usize> { /// The `{k_i}` valued used in `S_ID_i` in Plonk's permutation argument. pub(crate) k_is: Vec, - /// The number of partial products needed to compute the `Z` polynomials, as well as the number + /// The number of partial products needed to compute the `Z` polynomials and the number /// of partial products needed to compute the final product. pub(crate) num_partial_products: (usize, usize), diff --git a/src/util/partial_products.rs b/src/util/partial_products.rs index 2eefdd1d..33fe737f 100644 --- a/src/util/partial_products.rs +++ b/src/util/partial_products.rs @@ -86,17 +86,27 @@ mod tests { let v = vec![1, 2, 3, 4, 5, 6]; let p = partial_products(&v, 2); assert_eq!(p, vec![2, 12, 30, 24, 720]); - assert_eq!(p.len(), num_partial_products(v.len(), 2).0); + let nums = num_partial_products(v.len(), 2); + assert_eq!(p.len(), nums.0); assert!(check_partial_products(&v, &p, 2) .iter() .all(|x| x.is_zero())); + assert_eq!( + v.into_iter().product::(), + p[p.len() - nums.1..].iter().copied().product(), + ); let v = vec![1, 2, 3, 4, 5, 6]; let p = partial_products(&v, 3); assert_eq!(p, vec![6, 120]); - assert_eq!(p.len(), num_partial_products(v.len(), 3).0); + let nums = num_partial_products(v.len(), 3); + assert_eq!(p.len(), nums.0); assert!(check_partial_products(&v, &p, 3) .iter() .all(|x| x.is_zero())); + assert_eq!( + v.into_iter().product::(), + p[p.len() - nums.1..].iter().copied().product(), + ); } }