arnaucube
arnaucube/poseidon-arkPublic Self-hosted repository
poseidon-ark/benches/bench_poseidon_hash.rs
benches/bench_poseidon_hash.rsRaw
 1use criterion::{criterion_group, criterion_main, Criterion};
 2
 3#[macro_use]
 4extern crate ff;
 5use ff::*;
 6
 7use poseidon_rs::{Fr, Poseidon};
 8
 9fn criterion_benchmark(c: &mut Criterion) {
10    let b1: Fr = Fr::from_str(
11        "12242166908188651009877250812424843524687801523336557272219921456462821518061",
12    )
13    .unwrap();
14    let b2: Fr = Fr::from_str(
15        "12242166908188651009877250812424843524687801523336557272219921456462821518061",
16    )
17    .unwrap();
18    let mut big_arr: Vec<Fr> = Vec::new();
19    big_arr.push(b1.clone());
20    big_arr.push(b2.clone());
21    let poseidon = Poseidon::new();
22
23    c.bench_function("hash", |b| {
24        b.iter(|| poseidon.hash(big_arr.clone()).unwrap())
25    });
26}
27
28criterion_group!(benches, criterion_benchmark);
29criterion_main!(benches);