49 lines
1.4 KiB
Rust
49 lines
1.4 KiB
Rust
#[macro_use]
|
|
mod support;
|
|
|
|
macro_rules! impl_float_tests {
|
|
($t:ident) => {
|
|
glam_test!(test_lerp, {
|
|
let a = 0.;
|
|
let b = 10.;
|
|
assert_eq!($t::lerp(a, b, 0.), a);
|
|
assert_eq!($t::lerp(a, b, 0.5), 5.);
|
|
assert_eq!($t::lerp(a, b, 1.), b);
|
|
assert_eq!($t::lerp(a, a, 0.), a);
|
|
assert_eq!($t::lerp(a, a, 1.), a);
|
|
});
|
|
|
|
glam_test!(test_inverse_lerp, {
|
|
let a = 0.;
|
|
let b = 10.;
|
|
assert_eq!($t::inverse_lerp(a, b, 0.), 0.);
|
|
assert_eq!($t::inverse_lerp(a, b, 5.), 0.5);
|
|
assert_eq!($t::inverse_lerp(a, b, 10.), 1.);
|
|
assert_eq!($t::inverse_lerp(a, b, 15.), 1.5);
|
|
assert!($t::inverse_lerp(a, a, 0.).is_nan());
|
|
assert!($t::inverse_lerp(a, a, 1.).is_infinite());
|
|
});
|
|
|
|
glam_test!(test_remap, {
|
|
assert_eq!($t::remap(0., 0., 2., 0., 20.), 0.);
|
|
assert_eq!($t::remap(1., 0., 2., 0., 20.), 10.);
|
|
assert_eq!($t::remap(2., 0., 2., 0., 20.), 20.);
|
|
assert_eq!($t::remap(-5., -10., 30., 60., 20.), 55.);
|
|
assert!($t::remap(0., 0., 0., 0., 1.).is_nan());
|
|
assert!($t::remap(1., 0., 0., 0., 1.).is_infinite());
|
|
});
|
|
};
|
|
}
|
|
|
|
mod float32 {
|
|
use glam::FloatExt;
|
|
|
|
impl_float_tests!(f32);
|
|
}
|
|
|
|
mod float64 {
|
|
use glam::FloatExt;
|
|
|
|
impl_float_tests!(f64);
|
|
}
|