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