Skip to content

Commit ec67b67

Browse files
committed
Add total_bounds bench
1 parent 5b00fe0 commit ec67b67

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed

rust/geoarrow/Cargo.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,11 @@ name = "area"
129129
harness = false
130130
required-features = ["flatgeobuf"]
131131

132+
[[bench]]
133+
name = "total_bounds"
134+
harness = false
135+
required-features = ["flatgeobuf"]
136+
132137
[[bench]]
133138
name = "from_geo"
134139
harness = false
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
use criterion::{criterion_group, criterion_main, Criterion};
2+
use geoarrow::algorithm::geo::Area;
3+
use geoarrow::algorithm::native::TotalBounds;
4+
use geoarrow::array::{AsChunkedNativeArray, MultiPolygonArray};
5+
use geoarrow::io::flatgeobuf::read_flatgeobuf;
6+
use geoarrow::trait_::ArrayAccessor;
7+
use std::fs::File;
8+
9+
fn load_file() -> MultiPolygonArray<2> {
10+
let mut file = File::open("fixtures/flatgeobuf/countries.fgb").unwrap();
11+
let table = read_flatgeobuf(&mut file, Default::default()).unwrap();
12+
table
13+
.geometry_column(None)
14+
.unwrap()
15+
.as_ref()
16+
.as_multi_polygon::<2>()
17+
.chunks()
18+
.first()
19+
.unwrap()
20+
.clone()
21+
}
22+
23+
fn criterion_benchmark(c: &mut Criterion) {
24+
let data = load_file();
25+
26+
c.bench_function("total_bounds", |bencher| {
27+
bencher.iter(|| {
28+
criterion::black_box(criterion::black_box(&data).total_bounds());
29+
});
30+
});
31+
}
32+
33+
criterion_group!(benches, criterion_benchmark);
34+
criterion_main!(benches);

0 commit comments

Comments
 (0)