From 3efb7f9146efcc3dda032989ce1ba7599365915b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Nicolas?= Date: Wed, 22 Aug 2018 12:45:44 +0200 Subject: [PATCH] Test PH circuit for the size used in the Merkle tree --- zcash_proofs/src/circuit/pedersen_hash.rs | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/zcash_proofs/src/circuit/pedersen_hash.rs b/zcash_proofs/src/circuit/pedersen_hash.rs index 3e7ec310a..5356331f4 100644 --- a/zcash_proofs/src/circuit/pedersen_hash.rs +++ b/zcash_proofs/src/circuit/pedersen_hash.rs @@ -147,7 +147,19 @@ mod test { ]); let params = &JubjubBls12::new(); - for &n_bits in [0, 3 * 63 - 6, 3 * 63 - 6 + 1, 3 * 63 - 6 + 2, 255, 510].iter() { + let leaves_len = 2 * 255; + let note_len = 64 + 256 + 256; + + for &n_bits in [ + 0, + 3 * 63 - 6, + 3 * 63 - 6 + 1, + 3 * 63 - 6 + 2, + leaves_len, + note_len, + ] + .iter() + { let mut cs = TestConstraintSystem::::new(); let input: Vec = (0..n_bits).map(|_| rng.next_u32() % 2 != 0).collect(); @@ -176,9 +188,12 @@ mod test { let bitness_constraints = n_bits; let ph_constraints = ph_num_constraints(n_bits); assert_eq!(cs.num_constraints(), bitness_constraints + ph_constraints); - // The main use case - if n_bits == 510 { - assert_eq!(cs.num_constraints(), 510 + 867) + // The actual usages + if n_bits == leaves_len { + assert_eq!(cs.num_constraints(), leaves_len + 867) + }; + if n_bits == note_len { + assert_eq!(cs.num_constraints(), note_len + 982) }; } }