MCPcopy Create free account
hub / github.com/arkworks-rs/poly-commit / test_template

Function test_template

poly-commit/src/lib.rs:761–900  ·  view source on GitHub ↗
(info: TestInfo<F, P, S>)

Source from the content-addressed store, hash-verified

759 }
760
761 fn test_template<F, P, PC, S>(info: TestInfo<F, P, S>) -> Result<(), PC::Error>
762 where
763 F: PrimeField,
764 P: Polynomial<F>,
765 PC: PolynomialCommitment<F, P>,
766 S: CryptographicSponge,
767 {
768 let TestInfo {
769 num_iters,
770 max_degree,
771 supported_degree,
772 num_vars,
773 num_polynomials,
774 enforce_degree_bounds,
775 max_num_queries,
776 num_equations: _,
777 rand_poly,
778 rand_point,
779 sponge,
780 } = info;
781
782 let sponge = sponge();
783
784 let rng = &mut ChaCha20Rng::from_rng(test_rng()).unwrap();
785 // If testing multivariate polynomials, make the max degree lower
786 let max_degree = match num_vars {
787 Some(_) => max_degree.unwrap_or(Uniform::from(2..=10).sample(rng)),
788 None => max_degree.unwrap_or(Uniform::from(2..=64).sample(rng)),
789 };
790 let pp = PC::setup(max_degree, num_vars, rng)?;
791
792 for _ in 0..num_iters {
793 let supported_degree =
794 supported_degree.unwrap_or(Uniform::from(1..=max_degree).sample(rng));
795 assert!(
796 max_degree >= supported_degree,
797 "max_degree < supported_degree"
798 );
799 let mut polynomials: Vec<LabeledPolynomial<F, P>> = Vec::new();
800 let mut degree_bounds = if enforce_degree_bounds {
801 Some(Vec::new())
802 } else {
803 None
804 };
805
806 let mut labels = Vec::new();
807 println!("Sampled supported degree");
808
809 // Generate polynomials
810 let num_points_in_query_set = Uniform::from(1..=max_num_queries).sample(rng);
811 for i in 0..num_polynomials {
812 let label = format!("Test{}", i);
813 labels.push(label.clone());
814 let degree = Uniform::from(1..=supported_degree).sample(rng);
815 let degree_bound = if let Some(degree_bounds) = &mut degree_bounds {
816 let range = Uniform::from(degree..=supported_degree);
817 let degree_bound = range.sample(rng);
818 degree_bounds.push(degree_bound);

Callers

nothing calls this directly

Calls 8

commitFunction · 0.85
pushMethod · 0.80
iterMethod · 0.80
hiding_boundMethod · 0.80
insertMethod · 0.80
rand_polyFunction · 0.50
rand_pointFunction · 0.50
evaluateMethod · 0.45

Tested by

no test coverage detected