arnaucube
arnaucube/ark-r1cs-stdPublic Self-hosted repository
ark-r1cs-std/tests/to_constraint_field_test.rs
tests/to_constraint_field_test.rsRaw
 1use ark_r1cs_std::{
 2    alloc::AllocVar, fields::nonnative::NonNativeFieldVar, R1CSVar, ToConstraintFieldGadget,
 3};
 4use ark_relations::r1cs::ConstraintSystem;
 5
 6#[test]
 7fn to_constraint_field_test() {
 8    type F = ark_bls12_377::Fr;
 9    type CF = ark_bls12_377::Fq;
10
11    let cs = ConstraintSystem::<CF>::new_ref();
12
13    let a = NonNativeFieldVar::Constant(F::from(12u8));
14    let b = NonNativeFieldVar::new_input(cs.clone(), || Ok(F::from(6u8))).unwrap();
15
16    let b2 = &b + &b;
17
18    let a_to_constraint_field = a.to_constraint_field().unwrap();
19    let b2_to_constraint_field = b2.to_constraint_field().unwrap();
20
21    assert_eq!(a_to_constraint_field.len(), b2_to_constraint_field.len());
22    for (left, right) in a_to_constraint_field
23        .iter()
24        .zip(b2_to_constraint_field.iter())
25    {
26        assert_eq!(left.value(), right.value());
27    }
28}