arnaucube
arnaucube/ark-r1cs-stdPublic Self-hosted repository
ark-r1cs-std/tests/from_test.rs
tests/from_test.rsRaw
 1use ark_r1cs_std::{
 2    alloc::AllocVar,
 3    fields::emulated_fp::{EmulatedFpVar, MulResultVar},
 4    R1CSVar,
 5};
 6use ark_relations::r1cs::ConstraintSystem;
 7use ark_std::UniformRand;
 8
 9#[test]
10fn from_test() {
11    type F = ark_bls12_377::Fr;
12    type CF = ark_bls12_377::Fq;
13
14    let mut rng = ark_std::test_rng();
15    let cs = ConstraintSystem::<CF>::new_ref();
16    let f = F::rand(&mut rng);
17
18    let f_var = EmulatedFpVar::<F, CF>::new_input(cs.clone(), || Ok(f)).unwrap();
19    let f_var_converted = MulResultVar::<F, CF>::from(&f_var);
20    let f_var_converted_reduced = f_var_converted.reduce().unwrap();
21
22    let f_var_value = f_var.value().unwrap();
23    let f_var_converted_reduced_value = f_var_converted_reduced.value().unwrap();
24
25    assert_eq!(f_var_value, f_var_converted_reduced_value);
26}