fn criterion_benchmark()

in arrow-buffer/benches/i256.rs [37:78]


fn criterion_benchmark(c: &mut Criterion) {
    let numbers = vec![
        i256::ZERO,
        i256::ONE,
        i256::MINUS_ONE,
        i256::from_i128(1233456789),
        i256::from_i128(-1233456789),
        i256::from_i128(i128::MAX),
        i256::from_i128(i128::MIN),
        i256::MIN,
        i256::MAX,
    ];

    for number in numbers {
        let t = black_box(number.to_string());
        c.bench_function(&format!("i256_parse({t})"), |b| {
            b.iter(|| i256::from_str(&t).unwrap());
        });
    }

    c.bench_function("i256_div", |b| {
        b.iter(|| {
            for number_a in create_i256_vec(10) {
                for number_b in create_i256_vec(5) {
                    number_a.checked_div(number_b);
                    number_a.wrapping_div(number_b);
                }
            }
        });
    });

    c.bench_function("i256_rem", |b| {
        b.iter(|| {
            for number_a in create_i256_vec(10) {
                for number_b in create_i256_vec(5) {
                    number_a.checked_rem(number_b);
                    number_a.wrapping_rem(number_b);
                }
            }
        });
    });
}