1 #[macro_use] 2 mod support; 3 4 macro_rules! impl_float_tests { 5 ($t:ident) => { 6 glam_test!(test_lerp, { 7 let a = 0.; 8 let b = 10.; 9 assert_eq!($t::lerp(a, b, 0.), a); 10 assert_eq!($t::lerp(a, b, 0.5), 5.); 11 assert_eq!($t::lerp(a, b, 1.), b); 12 assert_eq!($t::lerp(a, a, 0.), a); 13 assert_eq!($t::lerp(a, a, 1.), a); 14 }); 15 16 glam_test!(test_inverse_lerp, { 17 let a = 0.; 18 let b = 10.; 19 assert_eq!($t::inverse_lerp(a, b, 0.), 0.); 20 assert_eq!($t::inverse_lerp(a, b, 5.), 0.5); 21 assert_eq!($t::inverse_lerp(a, b, 10.), 1.); 22 assert_eq!($t::inverse_lerp(a, b, 15.), 1.5); 23 assert!($t::inverse_lerp(a, a, 0.).is_nan()); 24 assert!($t::inverse_lerp(a, a, 1.).is_infinite()); 25 }); 26 27 glam_test!(test_remap, { 28 assert_eq!($t::remap(0., 0., 2., 0., 20.), 0.); 29 assert_eq!($t::remap(1., 0., 2., 0., 20.), 10.); 30 assert_eq!($t::remap(2., 0., 2., 0., 20.), 20.); 31 assert_eq!($t::remap(-5., -10., 30., 60., 20.), 55.); 32 assert!($t::remap(0., 0., 0., 0., 1.).is_nan()); 33 assert!($t::remap(1., 0., 0., 0., 1.).is_infinite()); 34 }); 35 }; 36 } 37 38 mod float32 { 39 use glam::FloatExt; 40 41 impl_float_tests!(f32); 42 } 43 44 mod float64 { 45 use glam::FloatExt; 46 47 impl_float_tests!(f64); 48 } 49