From 01be8c970a3ebc4d85f8be6be1dff7200fdfaa69 Mon Sep 17 00:00:00 2001 From: Srinath Setty Date: Wed, 5 Mar 2025 23:43:15 +0000 Subject: [PATCH] revive tests --- src/neutron/mod.rs | 139 +++++++++++++-------------------------------- 1 file changed, 38 insertions(+), 101 deletions(-) diff --git a/src/neutron/mod.rs b/src/neutron/mod.rs index b19f1d8a..32d86ac1 100644 --- a/src/neutron/mod.rs +++ b/src/neutron/mod.rs @@ -474,7 +474,7 @@ mod tests { } } - fn test_pp_digest_with(circuit1: &T1, circuit2: &T2, expected: &Expect) + fn test_pp_digest_with(circuit1: &T1, _circuit2: &T2, expected: &Expect) where E1: Engine::Scalar>, E2: Engine::Scalar>, @@ -488,8 +488,7 @@ mod tests { { // this tests public parameters with a size specifically intended for a spark-compressed SNARK let ck_hint1 = &*SPrime::>::ck_floor(); - let ck_hint2 = &*SPrime::>::ck_floor(); - let pp = PublicParams::::setup(circuit1, circuit2, ck_hint1, ck_hint2).unwrap(); + let pp = PublicParams::::setup(circuit1, ck_hint1).unwrap(); let digest_str = pp .digest() @@ -508,19 +507,19 @@ mod tests { test_pp_digest_with::( &TrivialCircuit::<_>::default(), &TrivialCircuit::<_>::default(), - &expect!["2a986098d308738ed977342a831784a79694d15a355f840f38fd60934009fb01"], + &expect!["f24949c3722979767f435c4c69fbc85d25612b60cacd09828be5b3bc5f79fc01"], ); test_pp_digest_with::( &TrivialCircuit::<_>::default(), &TrivialCircuit::<_>::default(), - &expect!["05164926a161718300db8463a372e9f739209a10fa0a58c189a0bde1fbf9e402"], + &expect!["160547a21472f99292631878dd16b8eb8e612238878aba68f71d1370cfcee202"], ); test_pp_digest_with::( &TrivialCircuit::<_>::default(), &TrivialCircuit::<_>::default(), - &expect!["f91a1822d94817348acd352602d583368ff96115b2f3a68cb3e93b36065a6803"], + &expect!["dfdf23115e400b8f3bad7434de7e91da914b2839966a87ee61374fee8e4e7200"], ); } @@ -530,7 +529,6 @@ mod tests { E2: Engine::Scalar>, { let test_circuit1 = TrivialCircuit::<::Scalar>::default(); - let test_circuit2 = TrivialCircuit::<::Scalar>::default(); // produce public parameters let pp = PublicParams::< @@ -538,37 +536,21 @@ mod tests { E2, TrivialCircuit<::Scalar>, TrivialCircuit<::Scalar>, - >::setup( - &test_circuit1, - &test_circuit2, - &*default_ck_hint(), - &*default_ck_hint(), - ) + >::setup(&test_circuit1, &*default_ck_hint()) .unwrap(); let num_steps = 1; // produce a recursive SNARK - let mut recursive_snark = RecursiveSNARK::new( - &pp, - &test_circuit1, - &test_circuit2, - &[::Scalar::ZERO], - &[::Scalar::ZERO], - ) - .unwrap(); + let mut recursive_snark = + RecursiveSNARK::new(&pp, &test_circuit1, &[::Scalar::ZERO]).unwrap(); - let res = recursive_snark.prove_step(&pp, &test_circuit1, &test_circuit2); + let res = recursive_snark.prove_step(&pp, &test_circuit1); assert!(res.is_ok()); // verify the recursive SNARK - let res = recursive_snark.verify( - &pp, - num_steps, - &[::Scalar::ZERO], - &[::Scalar::ZERO], - ); + let res = recursive_snark.verify(&pp, num_steps, &[::Scalar::ZERO]); assert!(res.is_ok()); } @@ -584,21 +566,15 @@ mod tests { E1: Engine::Scalar>, E2: Engine::Scalar>, { - let circuit_primary = TrivialCircuit::default(); - let circuit_secondary = CubicCircuit::default(); + let circuit_primary = CubicCircuit::default(); // produce public parameters let pp = PublicParams::< E1, E2, - TrivialCircuit<::Scalar>, - CubicCircuit<::Scalar>, - >::setup( - &circuit_primary, - &circuit_secondary, - &*default_ck_hint(), - &*default_ck_hint(), - ) + CubicCircuit<::Scalar>, + TrivialCircuit<::Scalar>, + >::setup(&circuit_primary, &*default_ck_hint()) .unwrap(); let num_steps = 3; @@ -607,50 +583,33 @@ mod tests { let mut recursive_snark = RecursiveSNARK::< E1, E2, - TrivialCircuit<::Scalar>, - CubicCircuit<::Scalar>, - >::new( - &pp, - &circuit_primary, - &circuit_secondary, - &[::Scalar::ONE], - &[::Scalar::ZERO], - ) + CubicCircuit<::Scalar>, + TrivialCircuit<::Scalar>, + >::new(&pp, &circuit_primary, &[::Scalar::ONE]) .unwrap(); for i in 0..num_steps { - let res = recursive_snark.prove_step(&pp, &circuit_primary, &circuit_secondary); + let res = recursive_snark.prove_step(&pp, &circuit_primary); assert!(res.is_ok()); // verify the recursive snark at each step of recursion - let res = recursive_snark.verify( - &pp, - i + 1, - &[::Scalar::ONE], - &[::Scalar::ZERO], - ); + let res = recursive_snark.verify(&pp, i + 1, &[::Scalar::ONE]); assert!(res.is_ok()); } // verify the recursive SNARK - let res = recursive_snark.verify( - &pp, - num_steps, - &[::Scalar::ONE], - &[::Scalar::ZERO], - ); + let res = recursive_snark.verify(&pp, num_steps, &[::Scalar::ONE]); assert!(res.is_ok()); - let (zn_primary, zn_secondary) = res.unwrap(); + let zn_primary = res.unwrap(); // sanity: check the claimed output with a direct computation of the same - assert_eq!(zn_primary, vec![::Scalar::ONE]); - let mut zn_secondary_direct = vec![::Scalar::ZERO]; + let mut zn_primary_direct = vec![::Scalar::ZERO]; for _i in 0..num_steps { - zn_secondary_direct = circuit_secondary.clone().output(&zn_secondary_direct); + zn_primary_direct = circuit_primary.clone().output(&zn_primary_direct); } - assert_eq!(zn_secondary, zn_secondary_direct); - assert_eq!(zn_secondary, vec![::Scalar::from(2460515u64)]); + assert_eq!(zn_primary, zn_primary_direct); + assert_eq!(zn_primary, vec![::Scalar::from(2460515u64)]); } #[test] @@ -665,21 +624,15 @@ mod tests { E1: Engine::Scalar>, E2: Engine::Scalar>, { - let test_circuit1 = TrivialCircuit::<::Scalar>::default(); - let test_circuit2 = CubicCircuit::<::Scalar>::default(); + let test_circuit1 = CubicCircuit::<::Scalar>::default(); // produce public parameters let pp = PublicParams::< E1, E2, - TrivialCircuit<::Scalar>, - CubicCircuit<::Scalar>, - >::setup( - &test_circuit1, - &test_circuit2, - &*default_ck_hint(), - &*default_ck_hint(), - ) + CubicCircuit<::Scalar>, + TrivialCircuit<::Scalar>, + >::setup(&test_circuit1, &*default_ck_hint()) .unwrap(); let num_steps = 1; @@ -688,35 +641,23 @@ mod tests { let mut recursive_snark = RecursiveSNARK::< E1, E2, - TrivialCircuit<::Scalar>, - CubicCircuit<::Scalar>, - >::new( - &pp, - &test_circuit1, - &test_circuit2, - &[::Scalar::ONE], - &[::Scalar::ZERO], - ) + CubicCircuit<::Scalar>, + TrivialCircuit<::Scalar>, + >::new(&pp, &test_circuit1, &[::Scalar::ONE]) .unwrap(); // produce a recursive SNARK - let res = recursive_snark.prove_step(&pp, &test_circuit1, &test_circuit2); + let res = recursive_snark.prove_step(&pp, &test_circuit1); assert!(res.is_ok()); // verify the recursive SNARK - let res = recursive_snark.verify( - &pp, - num_steps, - &[::Scalar::ONE], - &[::Scalar::ZERO], - ); + let res = recursive_snark.verify(&pp, num_steps, &[::Scalar::ONE]); assert!(res.is_ok()); - let (zn_primary, zn_secondary) = res.unwrap(); + let zn_primary = res.unwrap(); - assert_eq!(zn_primary, vec![::Scalar::ONE]); - assert_eq!(zn_secondary, vec![::Scalar::from(5u64)]); + assert_eq!(zn_primary, vec![::Scalar::from(7u64)]); } #[test] @@ -758,21 +699,17 @@ mod tests { let pp = PublicParams::, TrivialCircuit>::setup( &circuit, - &TrivialCircuit::default(), - &*default_ck_hint(), &*default_ck_hint(), ); assert!(pp.is_err()); assert_eq!(pp.err(), Some(NovaError::InvalidStepCircuitIO)); // produce public parameters with the trivial primary - let circuit = CircuitWithInputize::::default(); + let circuit = CircuitWithInputize::::default(); let pp = - PublicParams::, CircuitWithInputize>::setup( - &TrivialCircuit::default(), + PublicParams::, TrivialCircuit>::setup( &circuit, &*default_ck_hint(), - &*default_ck_hint(), ); assert!(pp.is_err()); assert_eq!(pp.err(), Some(NovaError::InvalidStepCircuitIO));