use criterion::{criterion_group, criterion_main, Criterion};
use maliput::api::{RoadNetwork, RoadNetworkBackend};
use std::collections::HashMap;
pub fn criterion_benchmark(c: &mut Criterion) {
let package_location = std::env::var("CARGO_MANIFEST_DIR").unwrap();
let xodr_path = format!("{}/data/xodr/Town01.xodr", package_location);
let road_network_properties = HashMap::from([
("road_geometry_id", "my_rg_from_rust"),
("opendrive_file", xodr_path.as_str()),
("linear_tolerance", "0.01"),
]);
let road_network = RoadNetwork::new(RoadNetworkBackend::MaliputMalidrive, &road_network_properties).unwrap();
let road_geometry = road_network.road_geometry();
let command = "OpenScenarioRoadPositionToMaliputRoadPosition,3,30,-1."; c.bench_function("RoadGeometry::backend_custom_command", |b| {
b.iter(|| {
let _command_res = road_geometry.backend_custom_command(&command.to_string());
})
});
}
criterion_group!(benches, criterion_benchmark);
criterion_main!(benches);