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