+
+#[test]
+fn test_lerp_monotonic() {
+ // near 0
+ let below_zero = f64::lerp(-f64::EPSILON, f64::MIN, f64::MAX);
+ let zero = f64::lerp(0.0, f64::MIN, f64::MAX);
+ let above_zero = f64::lerp(f64::EPSILON, f64::MIN, f64::MAX);
+ assert!(below_zero <= zero);
+ assert!(zero <= above_zero);
+ assert!(below_zero <= above_zero);
+
+ // near 1
+ let below_one = f64::lerp(1.0 - f64::EPSILON, f64::MIN, f64::MAX);
+ let one = f64::lerp(1.0, f64::MIN, f64::MAX);
+ let above_one = f64::lerp(1.0 + f64::EPSILON, f64::MIN, f64::MAX);
+ assert!(below_one <= one);
+ assert!(one <= above_one);
+ assert!(below_one <= above_one);
+}