use approx_det::assert_relative_eq;
use wasm_bindgen_test::*;
use crate::collision_tasks::tests::common::{
convex4manifold_wide2convex4contact_manifold, get_input_wide, Convex4ContactManifold, Mvec3,
TestInput,
};
use crate::collision_tasks::ShapeWideTester;
use crate::shapes::{CuboidWide, CylinderWide};
use crate::traits::PairWideTest;
use crate::{Cuboid, Cylinder};
wasm_bindgen_test_configure!(run_in_browser);
type InputType = TestInput<Cuboid, Cylinder>;
const ADJUST_DEPTH_FACTOR: f32 = 1.0;
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_000_same_center_same_aabb() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!("resource/cuboid_cylinder/000_same_center_same_aabb.json");
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: -0.5,
y: -0.99999994,
z: -0.5,
},
OffsetA1: Mvec3 {
x: -0.5,
y: 0.99999994,
z: -0.5,
},
OffsetA2: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
OffsetA3: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
Normal: Mvec3 {
x: 0.70710677,
y: 0.0,
z: 0.70710677,
},
Depth0: 1.2071068,
Depth1: 1.2071068,
Depth2: 0.0,
Depth3: 0.0,
FeatureId0: 0,
FeatureId1: 1,
FeatureId2: 0,
FeatureId3: 0,
Contact0Exists: true,
Contact1Exists: true,
Contact2Exists: false,
Contact3Exists: false,
};
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_001_cuboid_in_cylinder() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!("resource/cuboid_cylinder/001_cuboid_in_cylinder.json");
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: -0.099999964,
y: -0.2,
z: -0.099999964,
},
OffsetA1: Mvec3 {
x: -0.099999964,
y: 0.2,
z: -0.099999964,
},
OffsetA2: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
OffsetA3: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
Normal: Mvec3 {
x: 0.70710677,
y: 3.3877984e-7,
z: 0.70710677,
},
Depth0: 0.5,
Depth1: 0.5,
Depth2: 0.0,
Depth3: 0.0,
FeatureId0: 0,
FeatureId1: 1,
FeatureId2: 0,
FeatureId3: 0,
Contact0Exists: true,
Contact1Exists: true,
Contact2Exists: false,
Contact3Exists: false,
};
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_002_cylinder_in_cuboid() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!("resource/cuboid_cylinder/002_cylinder_in_cuboid.json");
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: -1.0,
y: -0.40000078,
z: -1.0,
},
OffsetA1: Mvec3 {
x: -1.0,
y: 0.59999925,
z: -1.0,
},
OffsetA2: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
OffsetA3: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
Normal: Mvec3 {
x: 0.70710677,
y: 4.411562e-7,
z: 0.70710677,
},
Depth0: 1.7727922,
Depth1: 1.7727922,
Depth2: 0.0,
Depth3: 0.0,
FeatureId0: 0,
FeatureId1: 1,
FeatureId2: 0,
FeatureId3: 0,
Contact0Exists: true,
Contact1Exists: true,
Contact2Exists: false,
Contact3Exists: false,
};
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_003_cylinder_cap_full_penetrate_in_cuboid_one_face() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!(
"resource/cuboid_cylinder/003_cylinder_cap_full_penetrate_in_cuboid_one_face.json"
);
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: -0.5999999,
y: -1.0,
z: -0.6999998,
},
OffsetA1: Mvec3 {
x: -0.5999999,
y: 0.5,
z: -0.6999998,
},
OffsetA2: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
OffsetA3: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
Normal: Mvec3 {
x: 0.6507914,
y: 0.0,
z: 0.7592566,
},
Depth0: 1.4219543,
Depth1: 1.4219543,
Depth2: 0.0,
Depth3: 0.0,
FeatureId0: 0,
FeatureId1: 1,
FeatureId2: 0,
FeatureId3: 0,
Contact0Exists: true,
Contact1Exists: true,
Contact2Exists: false,
Contact3Exists: false,
};
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_004_cylinder_cap_part_penetrate_in_cuboid_one_face_1() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!(
"resource/cuboid_cylinder/004_cylinder_cap_part_penetrate_in_cuboid_one_face_1.json"
);
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: -0.59999996,
y: -1.0,
z: 0.3002779,
},
OffsetA1: Mvec3 {
x: -0.59999996,
y: 0.5,
z: 0.3002779,
},
OffsetA2: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
OffsetA3: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
Normal: Mvec3 {
x: 1.0,
y: 0.0,
z: -1.986_821_4E-7,
},
Depth0: 1.0999994,
Depth1: 1.0999994,
Depth2: 0.0,
Depth3: 0.0,
FeatureId0: 0,
FeatureId1: 1,
FeatureId2: 0,
FeatureId3: 0,
Contact0Exists: true,
Contact1Exists: true,
Contact2Exists: false,
Contact3Exists: false,
};
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_005_cylinder_cap_part_penetrate_in_cuboid_one_face_2() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!(
"resource/cuboid_cylinder/005_cylinder_cap_part_penetrate_in_cuboid_one_face_2.json"
);
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: 0.23999652,
y: -1.0,
z: 0.7,
},
OffsetA1: Mvec3 {
x: 0.23999652,
y: 0.5,
z: 0.7,
},
OffsetA2: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
OffsetA3: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
Normal: Mvec3 {
x: 0.0,
y: 0.0,
z: -1.0,
},
Depth0: 0.8999999,
Depth1: 0.8999999,
Depth2: 0.0,
Depth3: 0.0,
FeatureId0: 0,
FeatureId1: 1,
FeatureId2: 0,
FeatureId3: 0,
Contact0Exists: true,
Contact1Exists: true,
Contact2Exists: false,
Contact3Exists: false,
};
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_006_cylinder_cap_part_penetrate_in_cuboid_one_face_3() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!(
"resource/cuboid_cylinder/006_cylinder_cap_part_penetrate_in_cuboid_one_face_3.json"
);
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: -0.13999999,
y: -1.0,
z: 0.29995382,
},
OffsetA1: Mvec3 {
x: -0.13999999,
y: 0.5,
z: 0.29995382,
},
OffsetA2: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
OffsetA3: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
Normal: Mvec3 {
x: -1.0,
y: 0.0,
z: 8.511949e-8,
},
Depth0: 0.74,
Depth1: 0.74,
Depth2: 0.0,
Depth3: 0.0,
FeatureId0: 0,
FeatureId1: 1,
FeatureId2: 0,
FeatureId3: 0,
Contact0Exists: true,
Contact1Exists: true,
Contact2Exists: false,
Contact3Exists: false,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_007_cylinder_side_cross_cuboid_symmetric_two_face_vertical() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!(
"resource/cuboid_cylinder/007_cylinder_side_cross_cuboid_symmetric_two_face_vertical.json"
);
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: 0.5,
y: -0.9,
z: 0.0,
},
OffsetA1: Mvec3 {
x: -0.5,
y: -0.9,
z: 0.0,
},
OffsetA2: Mvec3 {
x: 0.0,
y: -0.9,
z: -0.5,
},
OffsetA3: Mvec3 {
x: 0.0,
y: -0.9,
z: 0.5,
},
Normal: Mvec3 {
x: 0.0,
y: -1.0,
z: 0.0,
},
Depth0: 1.4,
Depth1: 1.4,
Depth2: 1.4,
Depth3: 1.4,
FeatureId0: 8,
FeatureId1: 9,
FeatureId2: 11,
FeatureId3: 10,
Contact0Exists: true,
Contact1Exists: true,
Contact2Exists: true,
Contact3Exists: true,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_008_cylinder_side_cross_cuboid_symmetric_two_face_with_rotation() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!(
"resource/cuboid_cylinder/008_cylinder_side_cross_cuboid_symmetric_two_face_with_rotation.json"
);
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: 0.041570127,
y: -1.0054591,
z: 0.16195694,
},
OffsetA1: Mvec3 {
x: 0.08918362,
y: -0.72184175,
z: -0.75274324,
},
OffsetA2: Mvec3 {
x: 0.39439464,
y: -0.9351169,
z: -0.151611,
},
OffsetA3: Mvec3 {
x: -0.54639345,
y: -0.76738566,
z: -0.4462021,
},
Normal: Mvec3 {
x: 0.0,
y: -1.0,
z: -2.9802322e-8,
},
Depth0: 1.5054591,
Depth1: 1.2218418,
Depth2: 1.4351169,
Depth3: 1.2673856,
FeatureId0: 10,
FeatureId1: 11,
FeatureId2: 8,
FeatureId3: 9,
Contact0Exists: true,
Contact1Exists: true,
Contact2Exists: true,
Contact3Exists: true,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold,
None,
epsilon = 1e-3f32
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_009_cylinder_cap_cross_cuboid_symmetric_two_face_vertical() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!(
"resource/cuboid_cylinder/009_cylinder_cap_cross_cuboid_symmetric_two_face_vertical.json"
);
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: 0.14985585,
y: 0.100000024,
z: -0.8000001,
},
OffsetA1: Mvec3 {
x: 0.14985585,
y: 0.099999994,
z: 1.2000003,
},
OffsetA2: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
OffsetA3: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
Normal: Mvec3 {
x: -4.469635e-8,
y: -1.0000001,
z: -1.2516975e-7,
},
Depth0: 0.49999985,
Depth1: 0.50000006,
Depth2: 0.0,
Depth3: 0.0,
FeatureId0: 0,
FeatureId1: 1,
FeatureId2: 0,
FeatureId3: 0,
Contact0Exists: true,
Contact1Exists: true,
Contact2Exists: false,
Contact3Exists: false,
};
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_010_cylinder_cap_cross_cuboid_symmetric_two_face_with_rotation() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!(
"resource/cuboid_cylinder/010_cylinder_cap_cross_cuboid_symmetric_two_face_with_rotation.json"
);
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: 0.39199644,
y: -0.54469746,
z: -0.6807967,
},
OffsetA1: Mvec3 {
x: -0.13245207,
y: -0.24392977,
z: 1.2256379,
},
OffsetA2: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
OffsetA3: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
Normal: Mvec3 {
x: -2.3841858e-7,
y: -1.0,
z: -2.9802322e-8,
},
Depth0: 0.6446974,
Depth1: 0.34392974,
Depth2: 0.0,
Depth3: 0.0,
FeatureId0: 0,
FeatureId1: 1,
FeatureId2: 0,
FeatureId3: 0,
Contact0Exists: true,
Contact1Exists: true,
Contact2Exists: false,
Contact3Exists: false,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold,
None,
epsilon = 1e-3f32
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_011_cylinder_cap_and_side_cross_cuboid_symmetric_two_face() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!(
"resource/cuboid_cylinder/011_cylinder_cap_and_side_cross_cuboid_symmetric_two_face.json"
);
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: -0.52595586,
y: -0.25000003,
z: -0.90153915,
},
OffsetA1: Mvec3 {
x: 0.34006956,
y: -0.25000006,
z: 0.5984609,
},
OffsetA2: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
OffsetA3: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
Normal: Mvec3 {
x: 2.9802322e-8,
y: 1.0,
z: -2.9802322e-8,
},
Depth0: 0.12301275,
Depth1: 1.1230128,
Depth2: 0.0,
Depth3: 0.0,
FeatureId0: 0,
FeatureId1: 1,
FeatureId2: 0,
FeatureId3: 0,
Contact0Exists: true,
Contact1Exists: true,
Contact2Exists: false,
Contact3Exists: false,
};
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_012_cylinder_cap_penetrate_in_cuboid_corner() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/cuboid_cylinder/012_cylinder_cap_penetrate_in_cuboid_corner.json");
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: -0.93869483,
y: 0.1772514,
z: 1.4386948,
},
OffsetA1: Mvec3 {
x: -0.90732455,
y: 0.05821234,
z: 1.6113248,
},
OffsetA2: Mvec3 {
x: -0.90732455,
y: 0.05821234,
z: 1.6113248,
},
OffsetA3: Mvec3 {
x: -0.90732455,
y: 0.05821234,
z: 1.6113248,
},
Normal: Mvec3 {
x: 0.5416752,
y: -0.6427875,
z: -0.54167527,
},
Depth0: 0.1131769,
Depth1: 0.0,
Depth2: 0.0,
Depth3: 0.0,
FeatureId0: 4,
FeatureId1: 0,
FeatureId2: 0,
FeatureId3: 0,
Contact0Exists: true,
Contact1Exists: false,
Contact2Exists: false,
Contact3Exists: false,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_013_cylinder_cap_penetrate_in_cuboid_edge() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/cuboid_cylinder/013_cylinder_cap_penetrate_in_cuboid_edge.json");
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: -0.99999994,
y: 0.25,
z: -0.072794214,
},
OffsetA1: Mvec3 {
x: -0.99999994,
y: 0.24999994,
z: 0.88920295,
},
OffsetA2: Mvec3 {
x: -0.99999994,
y: 0.24999999,
z: -0.072793975,
},
OffsetA3: Mvec3 {
x: -0.9820554,
y: 0.11553702,
z: 0.40747225,
},
Normal: Mvec3 {
x: 0.76033694,
y: -0.64952886,
z: -5.9604645e-8,
},
Depth0: 0.20652425,
Depth1: 0.0023356825,
Depth2: 0.20652418,
Depth3: 0.0,
FeatureId0: 1,
FeatureId1: 5,
FeatureId2: 11,
FeatureId3: 0,
Contact0Exists: true,
Contact1Exists: true,
Contact2Exists: false,
Contact3Exists: false,
};
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold,
None,
epsilon = 1e-3f32
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_014_cylinder_cap_penetrate_in_cuboid_two_corner() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!(
"resource/cuboid_cylinder/014_cylinder_cap_penetrate_in_cuboid_two_corner.json"
);
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: -0.9175582,
y: 0.24927522,
z: 1.4585702,
},
OffsetA1: Mvec3 {
x: -0.9210673,
y: -0.25069398,
z: 1.4603336,
},
OffsetA2: Mvec3 {
x: -0.9965081,
y: 0.16214542,
z: 1.3029906,
},
OffsetA3: Mvec3 {
x: -0.9965081,
y: 0.16214542,
z: 1.3029906,
},
Normal: Mvec3 {
x: 0.8934926,
y: -0.007854581,
z: -0.4490096,
},
Depth0: 0.092269346,
Depth1: 0.08834203,
Depth2: 0.0,
Depth3: 0.0,
FeatureId0: 5,
FeatureId1: 4,
FeatureId2: 0,
FeatureId3: 0,
Contact0Exists: true,
Contact1Exists: true,
Contact2Exists: false,
Contact3Exists: false,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_015_cylinder_cap_penetrate_in_cuboid_two_edge() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!(
"resource/cuboid_cylinder/015_cylinder_cap_penetrate_in_cuboid_two_edge.json"
);
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: -1.0,
y: -0.24999999,
z: 0.115573265,
},
OffsetA1: Mvec3 {
x: -1.0,
y: 0.25,
z: -0.11519601,
},
OffsetA2: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
OffsetA3: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
Normal: Mvec3 {
x: 0.96076906,
y: -0.27735004,
z: 3.5762787e-7,
},
Depth0: 0.4306623,
Depth1: 0.56933737,
Depth2: 0.0,
Depth3: 0.0,
FeatureId0: 0,
FeatureId1: 1,
FeatureId2: 0,
FeatureId3: 0,
Contact0Exists: true,
Contact1Exists: true,
Contact2Exists: false,
Contact3Exists: false,
};
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_016_cylinder_side_penetrate_in_cuboid_corner() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!(
"resource/cuboid_cylinder/016_cylinder_side_penetrate_in_cuboid_corner.json"
);
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: -0.994219,
y: -0.20360684,
z: 1.5927863,
},
OffsetA1: Mvec3 {
x: -0.87874895,
y: 0.19639316,
z: 1.3927863,
},
OffsetA2: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
OffsetA3: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
Normal: Mvec3 {
x: -1.1920929e-7,
y: -0.44721362,
z: -0.8944272,
},
Depth0: -0.10373822,
Depth1: 0.1198686,
Depth2: 0.0,
Depth3: 0.0,
FeatureId0: 0,
FeatureId1: 1,
FeatureId2: 0,
FeatureId3: 0,
Contact0Exists: false,
Contact1Exists: true,
Contact2Exists: false,
Contact3Exists: false,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_017_cylinder_side_penetrate_in_cuboid_edge() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/cuboid_cylinder/017_cylinder_side_penetrate_in_cuboid_edge.json");
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: -0.8798912,
y: 0.049054056,
z: -0.009756364,
},
OffsetA1: Mvec3 {
x: -0.006957054,
y: 0.57082176,
z: 0.22414568,
},
OffsetA2: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
OffsetA3: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
Normal: Mvec3 {
x: 0.5130542,
y: -0.8583563,
z: 0.0,
},
Depth0: 0.23410548,
Depth1: -0.37376294,
Depth2: 0.0,
Depth3: 0.0,
FeatureId0: 0,
FeatureId1: 1,
FeatureId2: 0,
FeatureId3: 0,
Contact0Exists: true,
Contact1Exists: false,
Contact2Exists: false,
Contact3Exists: false,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold,
None,
epsilon = 1e-3f32
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_018_cylinder_side_penetrate_in_cuboid_two_corner() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!(
"resource/cuboid_cylinder/018_cylinder_side_penetrate_in_cuboid_two_corner.json"
);
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: -1.0,
y: -0.22361907,
z: 1.1527926,
},
OffsetA1: Mvec3 {
x: -0.9307144,
y: 0.016393153,
z: 1.0327864,
},
OffsetA2: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
OffsetA3: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
Normal: Mvec3 {
x: 0.0,
y: -0.44721362,
z: -0.8944271,
},
Depth0: 0.38818967,
Depth1: 0.5223606,
Depth2: 0.0,
Depth3: 0.0,
FeatureId0: 0,
FeatureId1: 1,
FeatureId2: 0,
FeatureId3: 0,
Contact0Exists: true,
Contact1Exists: true,
Contact2Exists: false,
Contact3Exists: false,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_019_cylinder_side_penetrate_in_cuboid_two_edge() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!(
"resource/cuboid_cylinder/019_cylinder_side_penetrate_in_cuboid_two_edge.json"
);
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: -0.75817335,
y: -0.15458398,
z: 0.021800667,
},
OffsetA1: Mvec3 {
x: -0.002959609,
y: 0.2968201,
z: 0.22415958,
},
OffsetA2: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
OffsetA3: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
Normal: Mvec3 {
x: 0.51305413,
y: -0.85835624,
z: 0.0,
},
Depth0: 0.47134742,
Depth1: -0.054546244,
Depth2: 0.0,
Depth3: 0.0,
FeatureId0: 0,
FeatureId1: 1,
FeatureId2: 0,
FeatureId3: 0,
Contact0Exists: true,
Contact1Exists: false,
Contact2Exists: false,
Contact3Exists: false,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_020_complex_collide_case_1() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!("resource/cuboid_cylinder/020_complex_collide_case_1.json");
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: 0.16698733,
y: 8.297459e-6,
z: -1.0160254,
},
OffsetA1: Mvec3 {
x: -0.47362164,
y: 8.221093e-6,
z: 0.093541734,
},
OffsetA2: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
OffsetA3: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
Normal: Mvec3 {
x: -0.86602545,
y: 0.0,
z: -0.5,
},
Depth0: 0.6732052,
Depth1: 1.4129167,
Depth2: 0.0,
Depth3: 0.0,
FeatureId0: 0,
FeatureId1: 1,
FeatureId2: 0,
FeatureId3: 0,
Contact0Exists: true,
Contact1Exists: true,
Contact2Exists: false,
Contact3Exists: false,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_021_complex_collide_case_2() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!("resource/cuboid_cylinder/021_complex_collide_case_2.json");
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: 0.61410505,
y: 0.5897063,
z: 0.39565516,
},
OffsetA1: Mvec3 {
x: -0.84761107,
y: 0.3531474,
z: -0.13525778,
},
OffsetA2: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
OffsetA3: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
Normal: Mvec3 {
x: -0.1597577,
y: 0.98715615,
z: -1.4901161e-7,
},
Depth0: 0.8506317,
Depth1: 0.61099494,
Depth2: 0.0,
Depth3: 0.0,
FeatureId0: 0,
FeatureId1: 1,
FeatureId2: 0,
FeatureId3: 0,
Contact0Exists: true,
Contact1Exists: true,
Contact2Exists: false,
Contact3Exists: false,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold,
None,
epsilon = 1e-3f32
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_023_cylinder_cap_tangent_with_cuboid_face() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/cuboid_cylinder/023_cylinder_cap_tangent_with_cuboid_face.json");
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: 0.0,
y: 0.25,
z: 0.0,
},
OffsetA1: Mvec3 {
x: 0.0,
y: 0.25,
z: 0.0,
},
OffsetA2: Mvec3 {
x: 0.0,
y: 0.25,
z: 0.0,
},
OffsetA3: Mvec3 {
x: 0.0,
y: 0.25,
z: 0.0,
},
Normal: Mvec3 {
x: 0.0,
y: -1.0,
z: -0.0,
},
Depth0: 0.0,
Depth1: 0.0,
Depth2: 0.0,
Depth3: 0.0,
FeatureId0: 0,
FeatureId1: 0,
FeatureId2: 0,
FeatureId3: 0,
Contact0Exists: false,
Contact1Exists: false,
Contact2Exists: false,
Contact3Exists: false,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_024_cylinder_cap_tangent_with_cuboid_edge() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/cuboid_cylinder/024_cylinder_cap_tangent_with_cuboid_edge.json");
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0 = Convex4ContactManifold::default();
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_025_cylinder_cap_tangent_with_cylinder_corner() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!(
"resource/cuboid_cylinder/025_cylinder_cap_tangent_with_cylinder_corner.json"
);
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0 = Convex4ContactManifold::default();
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_026_cylinder_side_tangent_with_cuboid_face() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/cuboid_cylinder/026_cylinder_side_tangent_with_cuboid_face.json");
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0 = Convex4ContactManifold::default();
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_027_cylinder_side_tangent_with_cuboid_edge() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/cuboid_cylinder/027_cylinder_side_tangent_with_cuboid_edge.json");
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: 0.7499999,
y: 0.24999979,
z: 0.2000004,
},
OffsetA1: Mvec3 {
x: -0.6642139,
y: 0.24999982,
z: 0.2000004,
},
OffsetA2: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
OffsetA3: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
Normal: Mvec3 {
x: -0.70710665,
y: -0.7071069,
z: 0.0,
},
Depth0: 4.214684e-8,
Depth1: -0.9999999,
Depth2: 0.0,
Depth3: 0.0,
FeatureId0: 0,
FeatureId1: 1,
FeatureId2: 0,
FeatureId3: 0,
Contact0Exists: true,
Contact1Exists: false,
Contact2Exists: false,
Contact3Exists: false,
};
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_028_cylinder_side_tangent_with_cuboid_corner() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!(
"resource/cuboid_cylinder/028_cylinder_side_tangent_with_cuboid_corner.json"
);
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: 0.74999994,
y: 0.24999988,
z: -0.7999999,
},
OffsetA1: Mvec3 {
x: -0.2504158,
y: 0.24999994,
z: 0.19958508,
},
OffsetA2: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
OffsetA3: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
Normal: Mvec3 {
x: -0.5004155,
y: -std::f32::consts::FRAC_1_SQRT_2,
z: 0.49958473,
},
Depth0: -2.5064602e-7,
Depth1: -1.0000006,
Depth2: 0.0,
Depth3: 0.0,
FeatureId0: 0,
FeatureId1: 1,
FeatureId2: 0,
FeatureId3: 0,
Contact0Exists: false,
Contact1Exists: false,
Contact2Exists: false,
Contact3Exists: false,
};
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_029_cylinder_cap_circle_tangent_with_cuboid_face() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!(
"resource/cuboid_cylinder/029_cylinder_cap_circle_tangent_with_cuboid_face.json"
);
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: 0.7,
y: 0.60355353,
z: -0.5,
},
OffsetA1: Mvec3 {
x: 0.7,
y: 0.60355353,
z: -0.5,
},
OffsetA2: Mvec3 {
x: 0.7,
y: 0.60355353,
z: -0.5,
},
OffsetA3: Mvec3 {
x: 0.7,
y: 0.60355353,
z: -0.5,
},
Normal: Mvec3 {
x: 0.0,
y: -1.0,
z: 0.0,
},
Depth0: 0.0,
Depth1: 0.0,
Depth2: 0.0,
Depth3: 0.0,
FeatureId0: 0,
FeatureId1: 0,
FeatureId2: 0,
FeatureId3: 0,
Contact0Exists: false,
Contact1Exists: false,
Contact2Exists: false,
Contact3Exists: false,
};
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold,
None,
epsilon = 1e-3f32
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_030_cylinder_cap_close_to_cuboid_face() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/cuboid_cylinder/030_cylinder_cap_close_to_cuboid_face.json");
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0 = Convex4ContactManifold::default();
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_031_cylinder_cap_close_to_cuboid_edge() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/cuboid_cylinder/031_cylinder_cap_close_to_cuboid_edge.json");
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0 = Convex4ContactManifold::default();
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_032_cylinder_cap_close_to_cuboid_corner() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/cuboid_cylinder/032_cylinder_cap_close_to_cuboid_corner.json");
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0 = Convex4ContactManifold::default();
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_033_cylinder_side_close_to_cuboid_face() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/cuboid_cylinder/033_cylinder_side_close_to_cuboid_face.json");
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0 = Convex4ContactManifold::default();
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_034_cylinder_side_close_to_cuboid_edge() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/cuboid_cylinder/034_cylinder_side_close_to_cuboid_edge.json");
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0 = Convex4ContactManifold::default();
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_035_cylinder_side_close_to_cuboid_corner() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input =
include_bytes!("resource/cuboid_cylinder/035_cylinder_side_close_to_cuboid_corner.json");
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let mut output0 = Convex4ContactManifold::default();
output0.adjust_offset_a_to_shape_surface(ADJUST_DEPTH_FACTOR);
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}
#[test]
#[wasm_bindgen_test]
fn test_cuboid_cylinder_036_cylinder_side_close_to_cuboid_corner_and_hit_in_specular() {
let _ = env_logger::builder().is_test(true).try_init();
let file_input = include_bytes!(
"resource/cuboid_cylinder/036_cylinder_side_close_to_cuboid_corner_and_hit_in_specular.json"
);
let input0: InputType = serde_json::from_slice(file_input).expect("file should be proper JSON");
let output0 = Convex4ContactManifold {
OffsetA0: Mvec3 {
x: 0.74999994,
y: 0.24999979,
z: -0.79999995,
},
OffsetA1: Mvec3 {
x: -0.2504592,
y: 0.24999994,
z: 0.19960755,
},
OffsetA2: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
OffsetA3: Mvec3 {
x: 0.0,
y: 0.0,
z: 0.0,
},
Normal: Mvec3 {
x: -0.50042593,
y: -std::f32::consts::FRAC_1_SQRT_2,
z: 0.49957427,
},
Depth0: -3.3209493e-5,
Depth1: -1.0000665,
Depth2: 0.0,
Depth3: 0.0,
FeatureId0: 0,
FeatureId1: 1,
FeatureId2: 0,
FeatureId3: 0,
Contact0Exists: true,
Contact1Exists: false,
Contact2Exists: false,
Contact3Exists: false,
};
let array = [input0];
let outputs = [output0];
let pair_count = array.len();
TestWide!(
CuboidWide,
CylinderWide,
array,
pair_count,
outputs,
convex4manifold_wide2convex4contact_manifold
);
}