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, CuboidWide};
use crate::traits::PairWideTest;
use crate::{Capsule, Cuboid, ShapeContainer};
struct CapsuleCuboidBench;
impl_bench!(
CapsuleCuboidBench,
CapsuleWide,
CuboidWide,
Convex4ContactManifoldWide,
2
);
type InputType = TestInput<Capsule, Cuboid>;
bench!(InputType,CapsuleCuboidBench,"capsule_cuboid/",
<0,body_close_at_cuboid_face>,
<1,body_tangent_at_cuboid_face>,
<2,capsule_body_close_at_cuboid_edge>,
<3,capsule_body_close_at_cuboid_vertex>,
<4,capsule_body_penetrate_at_cuboid_edge>,
<5,capsule_body_penetrate_at_cuboid_face>,
<6,capsule_body_penetrate_at_cuboid_vertex>,
<7,capsule_body_tangent_at_cuboid_edge>,
<8,capsule_body_tangent_at_cuboid_vertex>,
<9,capsule_hemisphere_close_at_cuboid_edge>,
<10,capsule_hemisphere_close_at_cuboid_face>,
<11,capsule_hemisphere_close_at_cuboid_vertex>,
<12,capsule_hemisphere_penetrate_at_cuboid_edge>,
<13,capsule_hemisphere_penetrate_at_cuboid_face>,
<14,capsule_hemisphere_penetrate_at_cuboid_vertex>,
<15,capsule_hemisphere_tangent_at_cuboid_edge>,
<16,capsule_hemisphere_tangent_at_cuboid_face>,
<17,capsule_hemisphere_tangent_at_cuboid_vertex>,
<18,coincide>,
<19,nocollide>,
<20,random>
);