use glam_det::nums::f32x4;
use glam_det::{UnitQuatx4, Vec3x4};
use paste::paste;
use test::Bencher;
use crate::collision_tasks::benches::common::{BenchShapePairTest, WithContainer};
use crate::collision_tasks::tests::common::{ConvexHullInput, TestInput};
use crate::collision_tasks::ShapeWideTester;
use crate::convex_contact_manifold::Convex4ContactManifoldWide;
use crate::shapes::{ConvexHullWide, CylinderWide};
use crate::traits::PairWideTest;
use crate::{ConvexHullId, Cylinder, ShapeContainer};
struct CylinderConvexHullBench;
impl_bench!(
CylinderConvexHullBench,
CylinderWide,
ConvexHullWide,
Convex4ContactManifoldWide,
4
);
type InputType = TestInput<Cylinder, ConvexHullInput>;
type BenchType = TestInput<Cylinder, ConvexHullId>;
bench!(InputType , BenchType,CylinderConvexHullBench,"cylinder_convex_hull/",
<0,input01_cylinder_cap_close_to_convex_face>,
<1,input02_cylinder_cap_tangent_to_convex_face>,
<2,input03_cylinder_cap_penetrate_convex_face>,
<3,input04_cylinder_x_90_edge_close_to_convex_face>,
<0,input05_cylinder_x_90_edge_tangent_to_convex_face>,
<0,input06_cylinder_x_90_edge_penetrate_convex_face>,
<0,input07_cylinder_edge_penetrate_convex_face>,
<0,input08_no_contact>,
<0,input09_cylinder_bottom_cap_close_to_convex_face>,
<0,input10_cylinder_cap_close_to_big_convex_face>,
<0,input11_cylinder_cap_close_to_convex_vertex>,
<0,input12_cylinder_cap_tangent_convex_vertex>,
<0,input13_cylinder_cap_penetrate_convex_vertex>,
<0,input14_cylinder_edge_penetrate_convex_vertex>,
<0,input15_create_min_contact>,
<0,input16_near_zero_angle_between_axis_and_edge_plane>,
<0,input17_cylinder_face_and_convex_face_one_contact_point>,
<0,input18_center_overlap>
);