Skip to content

Commit

Permalink
Merge #944
Browse files Browse the repository at this point in the history
944: Add WindingOrder benchmark r=lnicola a=frewsxcv

- [x] I agree to follow the project's [code of conduct](https://github.com/georust/geo/blob/main/CODE_OF_CONDUCT.md).
- [ ] I added an entry to `CHANGES.md` if knowledge of this change could be valuable to users.
---


Co-authored-by: Corey Farwell <coreyf@rwell.org>
  • Loading branch information
bors[bot] and frewsxcv committed Dec 4, 2022
2 parents 11b9ade + 5bde9cb commit dc20146
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 0 deletions.
4 changes: 4 additions & 0 deletions geo/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -98,3 +98,7 @@ harness = false
[[bench]]
name = "rand_line_crossings"
harness = false

[[bench]]
name = "winding_order"
harness = false
70 changes: 70 additions & 0 deletions geo/benches/winding_order.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
#[macro_use]
extern crate criterion;
extern crate geo;

use geo::prelude::*;

fn criterion_benchmark(c: &mut criterion::Criterion) {
c.bench_function("winding order: winding_order (f32)", |bencher| {
let ls = geo_test_fixtures::louisiana::<f32>();

bencher.iter(|| {
let _ = criterion::black_box(criterion::black_box(&ls).winding_order());
});
});

c.bench_function("winding order: winding_order (f64)", |bencher| {
let ls = geo_test_fixtures::louisiana::<f64>();

bencher.iter(|| {
let _ = criterion::black_box(criterion::black_box(&ls).winding_order());
});
});

c.bench_function("winding order: points_cw (f32)", |bencher| {
let ls = geo_test_fixtures::louisiana::<f32>();

bencher.iter(|| {
let points_iter = criterion::black_box(criterion::black_box(&ls).points_cw());
for point in points_iter {
criterion::black_box(point);
}
});
});

c.bench_function("winding order: points_cw (f64)", |bencher| {
let ls = geo_test_fixtures::louisiana::<f64>();

bencher.iter(|| {
let points_iter = criterion::black_box(criterion::black_box(&ls).points_cw());
for point in points_iter {
criterion::black_box(point);
}
});
});

c.bench_function("winding order: points_ccw (f32)", |bencher| {
let ls = geo_test_fixtures::louisiana::<f32>();

bencher.iter(|| {
let points_iter = criterion::black_box(criterion::black_box(&ls).points_ccw());
for point in points_iter {
criterion::black_box(point);
}
});
});

c.bench_function("winding order: points_ccw (f64)", |bencher| {
let ls = geo_test_fixtures::louisiana::<f64>();

bencher.iter(|| {
let points_iter = criterion::black_box(criterion::black_box(&ls).points_ccw());
for point in points_iter {
criterion::black_box(point);
}
});
});
}

criterion_group!(benches, criterion_benchmark);
criterion_main!(benches);

0 comments on commit dc20146

Please sign in to comment.