MCPcopy Create free account
hub / github.com/docknetwork/crypto / initialization

Function initialization

vb_accumulator/src/universal.rs:723–773  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

721
722 #[test]
723 fn initialization() {
724 let max = 100;
725 let mut rng = StdRng::seed_from_u64(0u64);
726
727 let (params, keypair, accumulator, initial_elements, _) =
728 setup_universal_accum(&mut rng, max);
729
730 let accumulator_1: UniversalAccumulator<G1Affine> =
731 UniversalAccumulator::initialize_given_f_V(accumulator.f_V, &params, max);
732 assert_eq!(accumulator, accumulator_1);
733
734 let initial = initial_elements.db.into_iter().collect::<Vec<Fr>>();
735 let mut chunks = initial.chunks(30);
736 let f_V_1 = UniversalAccumulator::<G1Affine>::compute_initial_f_V(
737 chunks.next().unwrap(),
738 &keypair.secret_key,
739 );
740 let f_V_2 = UniversalAccumulator::<G1Affine>::compute_initial_f_V(
741 chunks.next().unwrap(),
742 &keypair.secret_key,
743 );
744 let f_V_3 = UniversalAccumulator::<G1Affine>::compute_initial_f_V(
745 chunks.next().unwrap(),
746 &keypair.secret_key,
747 );
748 let f_V_4 = UniversalAccumulator::<G1Affine>::compute_initial_f_V(
749 chunks.next().unwrap(),
750 &keypair.secret_key,
751 );
752 assert_eq!(accumulator.f_V, f_V_1 * f_V_2 * f_V_3 * f_V_4);
753
754 let initial: Vec<Fr> = initial_elements_for_bls12_381!(Fr);
755 assert_eq!(initial.len(), 12);
756 let mut initial_elements_1 = InMemoryInitialElements::new();
757 let accumulator_1: UniversalAccumulator<G1Affine> = UniversalAccumulator::initialize(
758 &mut rng,
759 &params,
760 max,
761 &keypair.secret_key,
762 initial.clone(),
763 &mut initial_elements_1,
764 );
765 assert_eq!(
766 initial_elements_1.db.len(),
767 max as usize + initial.len() + 1
768 );
769 for i in initial {
770 assert!(initial_elements_1.db.contains(&i));
771 assert!(!accumulator_1.is_element_acceptable(&i, &initial_elements_1));
772 }
773 }
774
775 #[test]
776 fn membership_non_membership() {

Callers

nothing calls this directly

Calls 4

nextMethod · 0.80
cloneMethod · 0.80
setup_universal_accumFunction · 0.70
into_iterMethod · 0.45

Tested by

no test coverage detected