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::TestInput;
use crate::collision_tasks::ShapeWideTester;
use crate::convex_contact_manifold::Convex4ContactManifoldWide;
use crate::shapes::{CapsuleWide, CylinderWide};
use crate::traits::PairWideTest;
use crate::{Capsule, Cylinder, ShapeContainer};
struct CapsuleCylinderBench;
impl_bench!(
CapsuleCylinderBench,
CapsuleWide,
CylinderWide,
Convex4ContactManifoldWide,
2
);
type InputType = TestInput<Capsule, Cylinder>;
bench!(InputType ,CapsuleCylinderBench,"capsule_cylinder/",
<0,000_same_center>,
<1,001_nocollide>,
<2,002_cylinder_inside_capsule>,
<3,003_capsule_inside_cylinder>,
<4,004_capsule_y_axis_same_with_cylinder_y_axis_and_no_collide>,
<5,005_capsule_body_and_head_cross_with_cylinder_cap_and_side>,
<6,006_capsule_body_parallel_to_cylinder_cap_with_a_line_touch>,
<7,007_capsule_body_parallel_to_cylinder_side_with_a_line_touch>,
<8,008_capsule_body_penetrate_into_cylinder_cap>,
<9,009_capsule_body_penetrate_into_cylinder_side>,
<10,010_capsule_body_touch_a_point_with_cylinder_cap_circle>,
<11,011_capsule_body_touch_a_point_with_cylinder_side>,
<12,012_capsule_head_penetrate_into_cylinder_cap_circle>,
<13,013_capsule_head_penetrate_into_cylinder_cap>,
<14,014_capsule_head_penetrate_into_cylinder_side>,
<15,015_capsule_head_tangent_with_cylinder_cap>,
<16,016_capsule_head_tangent_with_cylinder_side>,
<17,017_capsule_head_touch_a_point_with_cylinder_cap_circle>,
<18,maybe_bepu_bug>
);