use criterion::{criterion_group, criterion_main, Criterion};
use arrow2::array::*;
use arrow2::compute::length::length;
fn bench_length(array: &Utf8Array<i32>) {
criterion::black_box(length(array).unwrap());
}
fn add_benchmark(c: &mut Criterion) {
fn double_vec<T: Clone>(v: Vec<T>) -> Vec<T> {
[&v[..], &v[..]].concat()
}
let mut values = vec!["one", "on", "o", ""];
for _ in 0..10 {
values = double_vec(values);
}
let array = Utf8Array::<i32>::from_slice(&values);
c.bench_function("length", |b| b.iter(|| bench_length(&array)));
}
criterion_group!(benches, add_benchmark);
criterion_main!(benches);