use approx_det::assert_relative_eq;
use wasm_bindgen_test::*;
use super::common::get_input_wide;
use crate::collision_tasks::tests::common::{
convex2contact_manifold_wide_to_convex2contact_manifold, Convex2ContactManifold, TestInput,
};
use crate::collision_tasks::ShapeWideTester;
use crate::shapes::CapsuleWide;
use crate::traits::PairWideTest;
use crate::Capsule;
type CapsuleCapsuleInput = TestInput<Capsule, Capsule>;
wasm_bindgen_test_configure!(run_in_browser);
const ADJUST_DEPTH_FACTOR: f32 = 0.5;
#[test]
#[wasm_bindgen_test]
fn test_collision_head_to_head_penetrate() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!("resource/capsule_capsule/input1_head_to_head_penetrate.json");
let file_output = include_bytes!("resource/capsule_capsule/output1.json");
let input0: CapsuleCapsuleInput =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0: Convex2ContactManifold =
serde_json::from_slice(file_output).expect("file should be proper JSON");
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CapsuleWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_collision_head_to_head_tangent() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!("resource/capsule_capsule/input2_head_to_head_tangent.json");
let file_output = include_bytes!("resource/capsule_capsule/output2.json");
let input0: CapsuleCapsuleInput =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0: Convex2ContactManifold =
serde_json::from_slice(file_output).expect("file should be proper JSON");
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CapsuleWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_collision_head_to_head_close() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!("resource/capsule_capsule/input3_head_to_head_close.json");
let file_output = include_bytes!("resource/capsule_capsule/output3.json");
let input0: CapsuleCapsuleInput =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0: Convex2ContactManifold =
serde_json::from_slice(file_output).expect("file should be proper JSON");
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CapsuleWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_collision_head_to_body_penetrate() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!("resource/capsule_capsule/input4_head_to_body_penetrate.json");
let file_output = include_bytes!("resource/capsule_capsule/output4.json");
let input0: CapsuleCapsuleInput =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0: Convex2ContactManifold =
serde_json::from_slice(file_output).expect("file should be proper JSON");
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CapsuleWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_collision_head_to_body_tangent() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!("resource/capsule_capsule/input5_head_to_body_tangent.json");
let file_output = include_bytes!("resource/capsule_capsule/output5.json");
let input0: CapsuleCapsuleInput =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0: Convex2ContactManifold =
serde_json::from_slice(file_output).expect("file should be proper JSON");
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CapsuleWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_collision_head_to_body_close() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!("resource/capsule_capsule/input6_head_to_body_close.json");
let file_output = include_bytes!("resource/capsule_capsule/output6.json");
let input0: CapsuleCapsuleInput =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0: Convex2ContactManifold =
serde_json::from_slice(file_output).expect("file should be proper JSON");
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CapsuleWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_collision_body_to_body_penetrate() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!("resource/capsule_capsule/input7_body_to_body_penetrate.json");
let file_output = include_bytes!("resource/capsule_capsule/output7.json");
let input0: CapsuleCapsuleInput =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0: Convex2ContactManifold =
serde_json::from_slice(file_output).expect("file should be proper JSON");
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CapsuleWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_collision_body_to_body_tangent() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!("resource/capsule_capsule/input8_body_to_body_tangent.json");
let file_output = include_bytes!("resource/capsule_capsule/output8.json");
let input0: CapsuleCapsuleInput =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0: Convex2ContactManifold =
serde_json::from_slice(file_output).expect("file should be proper JSON");
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CapsuleWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_collision_body_to_body_close() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!("resource/capsule_capsule/input9_body_to_body_close.json");
let file_output = include_bytes!("resource/capsule_capsule/output9.json");
let input0: CapsuleCapsuleInput =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0: Convex2ContactManifold =
serde_json::from_slice(file_output).expect("file should be proper JSON");
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CapsuleWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_collision_head_to_body_larger_size() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!("resource/capsule_capsule/input10_larger_size.json");
let file_output = include_bytes!("resource/capsule_capsule/output10.json");
let input0: CapsuleCapsuleInput =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0: Convex2ContactManifold =
serde_json::from_slice(file_output).expect("file should be proper JSON");
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CapsuleWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_collision_head_to_body_random1() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!("resource/capsule_capsule/input11_random.json");
let file_output = include_bytes!("resource/capsule_capsule/output11.json");
let input0: CapsuleCapsuleInput =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0: Convex2ContactManifold =
serde_json::from_slice(file_output).expect("file should be proper JSON");
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CapsuleWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_collision_head_to_body_random2() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!("resource/capsule_capsule/input12_random.json");
let file_output = include_bytes!("resource/capsule_capsule/output12.json");
let input0: CapsuleCapsuleInput =
serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0: Convex2ContactManifold =
serde_json::from_slice(file_output).expect("file should be proper JSON");
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CapsuleWide,
CapsuleWide,
array,
pair_count,
outputs,
convex2contact_manifold_wide_to_convex2contact_manifold
);
}