(
uni_params: &UniversalParams<E>,
poly: &impl MultilinearExtension<Fr>,
rng: &mut R,
)
| 248 | type Fr = <E as Pairing>::ScalarField; |
| 249 | |
| 250 | fn test_polynomial<R: RngCore>( |
| 251 | uni_params: &UniversalParams<E>, |
| 252 | poly: &impl MultilinearExtension<Fr>, |
| 253 | rng: &mut R, |
| 254 | ) { |
| 255 | let nv = poly.num_vars(); |
| 256 | assert_ne!(nv, 0); |
| 257 | let (ck, vk) = MultilinearPC::<E>::trim(&uni_params, nv); |
| 258 | let point: Vec<_> = (0..nv).map(|_| Fr::rand(rng)).collect(); |
| 259 | let com = MultilinearPC::commit(&ck, poly); |
| 260 | let proof = MultilinearPC::open(&ck, poly, &point); |
| 261 | |
| 262 | let value = poly.evaluate(&point); |
| 263 | let result = MultilinearPC::check(&vk, &com, &point, value, &proof); |
| 264 | assert!(result); |
| 265 | } |
| 266 | |
| 267 | #[test] |
| 268 | fn setup_commit_verify_correct_polynomials() { |
no test coverage detected