Skip to content

Commit

Permalink
fri_layer_test
Browse files Browse the repository at this point in the history
  • Loading branch information
m-pandey5 committed Dec 7, 2024
1 parent b0f3c26 commit c1b2ae8
Showing 1 changed file with 33 additions and 27 deletions.
60 changes: 33 additions & 27 deletions src/fri/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -63,14 +63,13 @@ pub fn generate_eval_domain(
) -> FriDomain {
let n = height * expansion_f;
let omicron = field.primitive_nth_root(n as u128);

FriDomain::new(offset, omicron, n as u128)
}

/// Generates a new evaluation domain used after applying the fri operator.
/// Eval domain len is a power of 2.
pub fn next_eval_domain(eval_domain: FriDomain) -> FriDomain {

FriDomain::new(
eval_domain.offset,
eval_domain.omega.pow(2),
Expand Down Expand Up @@ -366,31 +365,38 @@ impl FriDomain {
#[cfg(test)]
//@todo write test for fri layer, in stark 101, eval domain was a vector, here it is FriDomain struct, thus some code and values will change accordingly

// mod test_fri_layer{
// use super::*;
// //use crate::{field::Field, utils::*};
// #[test]
// fn test_fri() {
// let field = Field::new(1<<64-1<<32+1);
// let poly = Polynomial::new_from_coefficients(vec![
// FieldElement(2, field),
// FieldElement(3, field),
// FieldElement(0, field),
// FieldElement(1, field),
// ]);
// let domain = FriDomain { offset: (FieldElement::one(field)), omega: (field.primitive_nth_root(4)), length: (4) };
// let beta = FieldElement(3, field);

// let (next_poly, next_eval_domain, next_evaluations) = next_fri_layer(poly, beta, domain);
// assert_eq!(next_poly.coefficients.len(), 2);
// assert_eq!(next_poly.coefficients[0].0, 4);
// assert_eq!(next_poly.coefficients[1].0, 3);
// assert_eq!(next_eval_domain.length, 1);
// assert_eq!(next_eval_domain[0].0, 4);
// assert_eq!(next_evaluations.len(), 1);
// assert_eq!(next_evaluations[0].0, 2);
// }
// }
mod test_fri_layer {
use super::*;
//use crate::{field::Field, utils::*};
#[test]
fn test_fri() {
let field = Field::new(17);
let poly = Polynomial::new_from_coefficients(vec![
FieldElement(2, field),
FieldElement(3, field),
FieldElement(0, field),
FieldElement(1, field),
]);
let domain = FriDomain {
offset: (FieldElement::one(field)),
omega: (FieldElement(4, field)),
length: (4),
};

let beta = FieldElement(3, field);

let (next_poly, next_eval_domain, next_evaluations) = next_fri_layer(poly, beta, domain);

assert_eq!(next_poly.coefficients.len(), 2);
assert_eq!(next_poly.coefficients[0].0, 11);
assert_eq!(next_poly.coefficients[1].0, 3);
assert_eq!(next_eval_domain.length, 2);
assert_eq!(next_eval_domain.omega, FieldElement::new(16, field));
assert_eq!(next_evaluations.len(), 2);
assert_eq!(next_evaluations[0].0, 14);
assert_eq!(next_evaluations[1].0, 8);
}
}
mod test_fri_domain {
use super::*;
#[test]
Expand Down

0 comments on commit c1b2ae8

Please sign in to comment.