honeycomb_benches/
grisubal.rs

1//! `grisubal` benchmark
2//!
3//! This benchmark executes the [`grisubal`] algorithm.
4
5use honeycomb::prelude::{
6    CMap2, CoordsFloat,
7    grisubal::{Clip, grisubal},
8};
9
10use crate::cli::GrisubalArgs;
11
12impl From<crate::cli::Clip> for Clip {
13    fn from(value: crate::cli::Clip) -> Self {
14        match value {
15            crate::cli::Clip::Left => Clip::Left,
16            crate::cli::Clip::Right => Clip::Right,
17        }
18    }
19}
20
21pub fn bench_grisubal<T: CoordsFloat>(args: GrisubalArgs) -> CMap2<T> {
22    grisubal(
23        args.input,
24        [T::from(args.lx).unwrap(), T::from(args.ly).unwrap()],
25        args.clip.map(Clip::from).unwrap_or_default(),
26    )
27    .unwrap()
28}