use crate::prelude::{
Affine2D, Affine3D, HasXY,
macaw_ext::{Mat4A, Vec2A, vec2a},
};
#[test]
fn test_vec2a() {
let a_tuple: Vec2A = (1.0, 2.0).into();
let a: Vec2A = vec2a(1.0, 2.0);
assert_eq!(a, a_tuple);
let b: Vec2A = [1.0, 2.0].into();
let c: Vec2A = macaw::vec2(1.0, 2.0).into();
let d: macaw::Vec2 = c.into();
{
let a0 = [1.0, 2.0];
let d1 = Vec2A::from(a0);
assert_eq!(d, d1.0);
let a1: [f32; 2] = <[f32; 2]>::from(d1);
assert_eq!(a0, a1);
}
assert_eq!(a.x(), b.x());
assert_eq!(a.y(), b.y());
assert_eq!(a.x(), c.x());
assert_eq!(a.y(), c.y());
assert_eq!(a.0, d);
let a_copy = Vec2A::new(1.0, 2.0);
assert_eq!(a.x(), b.x());
assert_eq!(a.y(), b.y());
let mut a = Vec2A::new(1.0, 2.0);
a *= a_copy;
a /= a_copy;
assert_eq!(a, a_copy);
a *= 2.0;
a /= 2.0;
assert_eq!(a, a_copy);
let a = 2.0 * a * 2.0;
let a = a / 2.0 / 2.0;
assert_eq!(a, a_copy);
let s = format!("{:?}", a.clone());
assert_eq!("Vec2A(1,2)", s);
}
#[test]
fn test_glam_xy() {
crate::tests::vector_2d::test_xy::<macaw::Vec2>(1.0, 2.0);
crate::tests::vector_2d::test_xy::<macaw::DVec2>(1.0, 2.0);
crate::tests::vector_2d::test_xy::<Vec2A>(1.0, 2.0);
crate::tests::vector_2d::test_xy::<macaw::Vec3A>(1.0, 2.0);
crate::tests::vector_2d::test_xy::<macaw::Vec3>(1.0, 2.0);
crate::tests::vector_2d::test_xy::<macaw::DVec3>(1.0, 2.0);
let mut v: Vec2A = macaw::Vec2::new(1.0, 2.0).into();
let _v: &mut macaw::Vec2 = &mut v;
}
#[test]
fn test_glam_xyz() {
crate::tests::vector_3d::test_xyz::<macaw::Vec3>(1.0, 2.0, 3.0);
crate::tests::vector_3d::test_xyz::<macaw::DVec3>(1.0, 2.0, 3.0);
crate::tests::vector_3d::test_xyz::<macaw::Vec3A>(1.0, 2.0, 3.0);
}
#[test]
fn test_glam_gxy() {
crate::tests::vector_2d::test_gxy::<macaw::Vec2>(1.0, 2.0, 3.0);
crate::tests::vector_2d::test_gxy::<Vec2A>(1.0, 2.0, 3.0);
crate::tests::vector_2d::test_gxy::<macaw::DVec2>(1.0, 2.0, 3.0);
crate::tests::vector_2d::test_generic_xy::<macaw::Vec2>(1.0, 2.0, 3.0, 0.00000001);
crate::tests::vector_2d::test_generic_xy::<Vec2A>(1.0, 2.0, 3.0, 0.00000001);
crate::tests::vector_2d::test_generic_xy::<macaw::DVec2>(1.0, 2.0, 3.0, 0.0000000000001);
}
#[test]
fn test_glam_gxyz() {
crate::tests::vector_3d::test_gxyz::<macaw::Vec3>(1.0, 2.0, 3.0);
crate::tests::vector_3d::test_gxyz::<macaw::Vec3A>(1.0, 2.0, 3.0);
crate::tests::vector_3d::test_gxyz::<macaw::DVec3>(1.0, 2.0, 3.0);
crate::tests::vector_3d::test_generic_xyz::<macaw::Vec3>(1.0, 2.0, 3.0, 4.0, 0.0001);
crate::tests::vector_3d::test_generic_xyz::<macaw::Vec3A>(1.0, 2.0, 3.0, 4.0, 0.0001);
crate::tests::vector_3d::test_generic_xyz::<macaw::DVec3>(1.0, 2.0, 3.0, 4.0, 0.0000000000001);
}
#[test]
fn test_glam_matrix() {
use std::ops::DerefMut;
crate::tests::affine::test_affine2d_v1::<macaw::Vec2>();
crate::tests::affine::test_affine2d_v1::<macaw::DVec2>();
crate::tests::affine::test_affine2d_v1::<Vec2A>();
crate::tests::affine::test_affine2d_v2::<macaw::Vec2>();
crate::tests::affine::test_affine2d_v2::<macaw::DVec2>();
crate::tests::affine::test_affine2d_v2::<Vec2A>();
crate::tests::affine::test_affine3d_v1::<macaw::Vec3>("glam32_3d");
crate::tests::affine::test_affine3d_v1::<macaw::Vec3A>("glam32A_3d");
crate::tests::affine::test_affine3d_v1::<macaw::DVec3>("glam64_3d");
let mut _m: Mat4A = macaw::Mat4::identity().into();
let _m: &mut macaw::Mat4 = _m.deref_mut();
let _m: macaw::Mat3A = macaw::Mat3A::identity();
assert_eq!(_m, _m);
let _m: Mat4A = Mat4A::identity();
let m = _m * _m;
assert_eq!(m, _m);
}
#[test]
fn test_glam_aabb2_vec2a() {
crate::tests::aabb_2d::test_aabb2_comprehensive::<Vec2A>();
crate::tests::aabb_2d::test_aabb2_from_corners::<Vec2A>();
crate::tests::aabb_2d::test_aabb2_from_center_and_half_extents::<Vec2A>();
crate::tests::aabb_2d::test_aabb2_from_center_and_size::<Vec2A>();
crate::tests::aabb_2d::test_aabb2_from_points::<Vec2A>();
crate::tests::aabb_2d::test_aabb2_pad::<Vec2A>();
crate::tests::aabb_2d::test_aabb2_fast_pad::<Vec2A>();
crate::tests::aabb_2d::test_aabb2_is_empty::<Vec2A>();
crate::tests::aabb_2d::test_aabb2_from_point::<Vec2A>();
crate::tests::aabb_2d::test_aabb2_extend_with::<Vec2A>();
crate::tests::aabb_2d::test_aabb2_extend::<Vec2A>();
crate::tests::aabb_2d::test_aabb2_contains_point_inclusive::<Vec2A>();
crate::tests::aabb_2d::test_extents::<Vec2A>();
}
#[test]
fn test_glam_aabb2_vec2() {
crate::tests::aabb_2d::test_aabb2_comprehensive::<macaw::Vec2>();
crate::tests::aabb_2d::test_aabb2_from_corners::<macaw::Vec2>();
crate::tests::aabb_2d::test_aabb2_from_center_and_half_extents::<macaw::Vec2>();
crate::tests::aabb_2d::test_aabb2_from_center_and_size::<macaw::Vec2>();
crate::tests::aabb_2d::test_aabb2_from_points::<macaw::Vec2>();
crate::tests::aabb_2d::test_aabb2_pad::<macaw::Vec2>();
crate::tests::aabb_2d::test_aabb2_fast_pad::<macaw::Vec2>();
crate::tests::aabb_2d::test_aabb2_is_empty::<macaw::Vec2>();
crate::tests::aabb_2d::test_aabb2_from_point::<macaw::Vec2>();
crate::tests::aabb_2d::test_aabb2_extend_with::<macaw::Vec2>();
crate::tests::aabb_2d::test_aabb2_extend::<macaw::Vec2>();
crate::tests::aabb_2d::test_aabb2_contains_point_inclusive::<macaw::Vec2>();
crate::tests::aabb_2d::test_extents::<macaw::Vec2>();
}
#[test]
fn test_glam_aabb2_dvec2() {
crate::tests::aabb_2d::test_aabb2_comprehensive::<macaw::DVec2>();
crate::tests::aabb_2d::test_aabb2_from_corners::<macaw::DVec2>();
crate::tests::aabb_2d::test_aabb2_from_center_and_half_extents::<macaw::DVec2>();
crate::tests::aabb_2d::test_aabb2_from_center_and_size::<macaw::DVec2>();
crate::tests::aabb_2d::test_aabb2_from_points::<macaw::DVec2>();
crate::tests::aabb_2d::test_aabb2_pad::<macaw::DVec2>();
crate::tests::aabb_2d::test_aabb2_fast_pad::<macaw::DVec2>();
crate::tests::aabb_2d::test_aabb2_is_empty::<macaw::DVec2>();
crate::tests::aabb_2d::test_aabb2_from_point::<macaw::DVec2>();
crate::tests::aabb_2d::test_aabb2_extend_with::<macaw::DVec2>();
crate::tests::aabb_2d::test_aabb2_extend::<macaw::DVec2>();
crate::tests::aabb_2d::test_aabb2_contains_point_inclusive::<macaw::DVec2>();
crate::tests::aabb_2d::test_extents::<macaw::DVec2>();
}
#[test]
fn test_glam_aabb3_vec3a() {
crate::tests::aabb_3d::test_aabb3_comprehensive::<macaw::Vec3A>();
crate::tests::aabb_3d::test_aabb3_from_corners::<macaw::Vec3A>();
crate::tests::aabb_3d::test_aabb3_from_center_and_half_extents::<macaw::Vec3A>();
crate::tests::aabb_3d::test_aabb3_from_center_and_size::<macaw::Vec3A>();
crate::tests::aabb_3d::test_aabb3_from_points::<macaw::Vec3A>();
crate::tests::aabb_3d::test_aabb3_pad::<macaw::Vec3A>();
crate::tests::aabb_3d::test_aabb3_fast_pad::<macaw::Vec3A>();
crate::tests::aabb_3d::test_aabb3_is_empty::<macaw::Vec3A>();
crate::tests::aabb_3d::test_aabb3_from_point::<macaw::Vec3A>();
crate::tests::aabb_3d::test_aabb3_extend_with::<macaw::Vec3A>();
crate::tests::aabb_3d::test_aabb3_extend::<macaw::Vec3A>();
crate::tests::aabb_3d::test_aabb3_contains_point_inclusive::<macaw::Vec3A>();
crate::tests::aabb_3d::test_extents::<macaw::Vec3A>();
}
#[test]
fn test_glam_aabb3_vec3() {
crate::tests::aabb_3d::test_aabb3_comprehensive::<macaw::Vec3>();
crate::tests::aabb_3d::test_aabb3_from_corners::<macaw::Vec3>();
crate::tests::aabb_3d::test_aabb3_from_center_and_half_extents::<macaw::Vec3>();
crate::tests::aabb_3d::test_aabb3_from_center_and_size::<macaw::Vec3>();
crate::tests::aabb_3d::test_aabb3_from_points::<macaw::Vec3>();
crate::tests::aabb_3d::test_aabb3_pad::<macaw::Vec3>();
crate::tests::aabb_3d::test_aabb3_fast_pad::<macaw::Vec3>();
crate::tests::aabb_3d::test_aabb3_is_empty::<macaw::Vec3>();
crate::tests::aabb_3d::test_aabb3_from_point::<macaw::Vec3>();
crate::tests::aabb_3d::test_aabb3_extend_with::<macaw::Vec3>();
crate::tests::aabb_3d::test_aabb3_extend::<macaw::Vec3>();
crate::tests::aabb_3d::test_aabb3_contains_point_inclusive::<macaw::Vec3>();
crate::tests::aabb_3d::test_extents::<macaw::Vec3>();
}
#[test]
fn test_glam_aabb3_dvec3() {
crate::tests::aabb_3d::test_aabb3_comprehensive::<macaw::DVec3>();
crate::tests::aabb_3d::test_aabb3_from_corners::<macaw::DVec3>();
crate::tests::aabb_3d::test_aabb3_from_center_and_half_extents::<macaw::DVec3>();
crate::tests::aabb_3d::test_aabb3_from_center_and_size::<macaw::DVec3>();
crate::tests::aabb_3d::test_aabb3_from_points::<macaw::DVec3>();
crate::tests::aabb_3d::test_aabb3_pad::<macaw::DVec3>();
crate::tests::aabb_3d::test_aabb3_fast_pad::<macaw::DVec3>();
crate::tests::aabb_3d::test_aabb3_is_empty::<macaw::DVec3>();
crate::tests::aabb_3d::test_aabb3_from_point::<macaw::DVec3>();
crate::tests::aabb_3d::test_aabb3_extend_with::<macaw::DVec3>();
crate::tests::aabb_3d::test_aabb3_extend::<macaw::DVec3>();
crate::tests::aabb_3d::test_aabb3_contains_point_inclusive::<macaw::DVec3>();
crate::tests::aabb_3d::test_extents::<macaw::DVec3>();
}
#[test]
fn test_glam_plane_f32() {
crate::tests::plane::test_get_plane_xy::<macaw::Vec3>();
crate::tests::plane::test_get_plane_xz::<macaw::Vec3>();
crate::tests::plane::test_get_plane_yz::<macaw::Vec3>();
crate::tests::plane::test_get_bad_plane::<macaw::Vec3>();
crate::tests::plane::test_get_plane_relaxed::<macaw::Vec3>();
crate::tests::plane::test_get_plane_xy::<macaw::Vec3A>();
crate::tests::plane::test_get_plane_xz::<macaw::Vec3A>();
crate::tests::plane::test_get_plane_yz::<macaw::Vec3A>();
crate::tests::plane::test_get_bad_plane::<macaw::Vec3A>();
crate::tests::plane::test_get_plane_relaxed::<macaw::Vec3A>();
crate::tests::affine::test_affine3d_plane_xy::<macaw::Vec3>();
crate::tests::affine::test_affine3d_plane_xz::<macaw::Vec3>();
crate::tests::affine::test_affine3d_plane_yz::<macaw::Vec3>();
crate::tests::affine::test_affine3d_plane_xy::<macaw::Vec3A>();
crate::tests::affine::test_affine3d_plane_xz::<macaw::Vec3A>();
crate::tests::affine::test_affine3d_plane_yz::<macaw::Vec3A>();
}
#[test]
fn test_glam_plane_f64() {
crate::tests::plane::test_get_plane_xy::<macaw::DVec3>();
crate::tests::plane::test_get_plane_xz::<macaw::DVec3>();
crate::tests::plane::test_get_plane_yz::<macaw::DVec3>();
crate::tests::plane::test_get_bad_plane::<macaw::DVec3>();
crate::tests::plane::test_get_plane_relaxed::<macaw::DVec3>();
crate::tests::affine::test_affine3d_plane_xy::<macaw::DVec3>();
crate::tests::affine::test_affine3d_plane_xz::<macaw::DVec3>();
crate::tests::affine::test_affine3d_plane_yz::<macaw::DVec3>();
}
#[test]
fn test_glam_affine_f32() {
crate::tests::affine::test_affine3d_scale_and_translation::<macaw::Vec3A>();
crate::tests::affine::test_affine3d_scale_and_translation::<macaw::Vec3>();
}
#[test]
fn test_glam_affine_f64() {
crate::tests::affine::test_affine3d_scale_and_translation::<macaw::DVec3>();
}
#[test]
fn test_glam_simd_conversion_f32() {
crate::tests::vector_3d::test_simd_conversion::<macaw::Vec3>();
}
#[test]
fn test_glam_simd_conversion_f64() {
crate::tests::vector_3d::test_simd_conversion::<macaw::DVec3>();
}