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