Add several_interpolations_several_keys test.

This commit is contained in:
Dimitri Sabadie 2018-08-05 17:13:51 +02:00
parent 44154d9728
commit fb22023702
No known key found for this signature in database
GPG Key ID: DE58C386A8DB2883

View File

@ -101,3 +101,30 @@ fn linear_interpolation_several_keys() {
assert_eq!(spline.sample(10.), Some(2.)); assert_eq!(spline.sample(10.), Some(2.));
assert_eq!(spline.clamped_sample(11.), 4.); assert_eq!(spline.clamped_sample(11.), 4.);
} }
#[test]
fn several_interpolations_several_keys() {
let start = Key::new(0., 0., Interpolation::Step(0.5));
let k1 = Key::new(1., 5., Interpolation::Linear);
let k2 = Key::new(2., 0., Interpolation::Step(0.1));
let k3 = Key::new(3., 1., Interpolation::Linear);
let k4 = Key::new(10., 2., Interpolation::Linear);
let end = Key::new(11., 4., Interpolation::default());
let spline = Spline::from_vec(vec![start, k1, k2, k3, k4, end]);
assert_eq!(spline.sample(0.), Some(0.));
assert_eq!(spline.sample(0.1), Some(0.));
assert_eq!(spline.sample(0.2), Some(0.));
assert_eq!(spline.sample(0.5), Some(5.));
assert_eq!(spline.sample(0.9), Some(5.));
assert_eq!(spline.sample(1.), Some(5.));
assert_eq!(spline.sample(1.5), Some(2.5));
assert_eq!(spline.sample(2.), Some(0.));
assert_eq!(spline.sample(2.05), Some(0.));
assert_eq!(spline.sample(2.1), Some(0.));
assert_eq!(spline.sample(2.75), Some(1.));
assert_eq!(spline.sample(3.), Some(1.));
assert_eq!(spline.sample(6.5), Some(1.5));
assert_eq!(spline.sample(10.), Some(2.));
assert_eq!(spline.clamped_sample(11.), 4.);
}