diff options
Diffstat (limited to 'tests/vec3.rs')
-rw-r--r-- | tests/vec3.rs | 65 |
1 files changed, 39 insertions, 26 deletions
diff --git a/tests/vec3.rs b/tests/vec3.rs index fae8858..5df8d09 100644 --- a/tests/vec3.rs +++ b/tests/vec3.rs @@ -665,6 +665,43 @@ macro_rules! impl_vec3_float_tests { assert!($vec3::splat(NAN).signum().is_nan_mask().all()); }); + glam_test!(test_copysign, { + assert_eq!($vec3::ZERO.copysign(-$vec3::ZERO), -$vec3::ZERO); + assert_eq!((-$vec3::ZERO).copysign(-$vec3::ZERO), -$vec3::ZERO); + assert_eq!($vec3::ZERO.copysign($vec3::ZERO), $vec3::ZERO); + assert_eq!((-$vec3::ZERO).copysign($vec3::ZERO), $vec3::ZERO); + assert_eq!($vec3::ONE.copysign(-$vec3::ZERO), -$vec3::ONE); + assert_eq!((-$vec3::ONE).copysign(-$vec3::ZERO), -$vec3::ONE); + assert_eq!($vec3::ONE.copysign($vec3::ZERO), $vec3::ONE); + assert_eq!((-$vec3::ONE).copysign($vec3::ZERO), $vec3::ONE); + assert_eq!($vec3::ZERO.copysign(-$vec3::ONE), -$vec3::ZERO); + assert_eq!((-$vec3::ZERO).copysign(-$vec3::ONE), -$vec3::ZERO); + assert_eq!($vec3::ZERO.copysign($vec3::ONE), $vec3::ZERO); + assert_eq!((-$vec3::ZERO).copysign($vec3::ONE), $vec3::ZERO); + assert_eq!($vec3::ONE.copysign(-$vec3::ONE), -$vec3::ONE); + assert_eq!((-$vec3::ONE).copysign(-$vec3::ONE), -$vec3::ONE); + assert_eq!($vec3::ONE.copysign($vec3::ONE), $vec3::ONE); + assert_eq!((-$vec3::ONE).copysign($vec3::ONE), $vec3::ONE); + assert_eq!( + $vec3::splat(INFINITY).copysign($vec3::ONE), + $vec3::splat(INFINITY) + ); + assert_eq!( + $vec3::splat(INFINITY).copysign(-$vec3::ONE), + $vec3::splat(NEG_INFINITY) + ); + assert_eq!( + $vec3::splat(NEG_INFINITY).copysign($vec3::ONE), + $vec3::splat(INFINITY) + ); + assert_eq!( + $vec3::splat(NEG_INFINITY).copysign(-$vec3::ONE), + $vec3::splat(NEG_INFINITY) + ); + assert!($vec3::splat(NAN).copysign($vec3::ONE).is_nan_mask().all()); + assert!($vec3::splat(NAN).copysign(-$vec3::ONE).is_nan_mask().all()); + }); + glam_test!(test_is_negative_bitmask, { assert_eq!($vec3::ZERO.is_negative_bitmask(), 0b000); assert_eq!((-$vec3::ZERO).is_negative_bitmask(), 0b111); @@ -1082,12 +1119,6 @@ mod vec3 { } mod vec3a { - #[cfg(any( - not(any(target_feature = "sse2", target_feature = "simd128")), - feature = "scalar-math" - ))] - use glam::BVec3; - #[cfg(not(feature = "scalar-math"))] use glam::BVec3A; use glam::{vec3a, Vec3A, Vec4}; @@ -1095,16 +1126,8 @@ mod vec3a { use std::mem; assert_eq!(16, mem::size_of::<Vec3A>()); assert_eq!(16, mem::align_of::<Vec3A>()); - #[cfg(not(feature = "scalar-math"))] - { - assert_eq!(16, mem::size_of::<BVec3A>()); - assert_eq!(16, mem::align_of::<BVec3A>()); - } - #[cfg(feature = "scalar-math")] - { - assert_eq!(3, mem::size_of::<BVec3>()); - assert_eq!(1, mem::align_of::<BVec3>()); - } + assert_eq!(16, mem::size_of::<BVec3A>()); + assert_eq!(16, mem::align_of::<BVec3A>()); }); glam_test!(test_mask_align16, { @@ -1162,17 +1185,7 @@ mod vec3a { assert_eq!(v2.min_element(), 2.0); }); - #[cfg(all( - any(target_feature = "sse2", target_feature = "simd128"), - not(feature = "scalar-math") - ))] impl_vec3_float_tests!(f32, vec3a, Vec3A, BVec3A); - - #[cfg(any( - not(any(target_feature = "sse2", target_feature = "simd128")), - feature = "scalar-math" - ))] - impl_vec3_float_tests!(f32, vec3a, Vec3A, BVec3); } mod dvec3 { |