1use lineic::{
2 interpolators::{F32InterpolationBucket, F32LinearInterpolator},
3 LinearInterpolator,
4};
5
6fn main() {
7 let interpolator = F32InterpolationBucket::new(0.0..=10.0, [30.0], [35.0]);
10 assert_eq!(interpolator.interpolate(5.0), [32.5]);
11
12 let interpolator =
15 F32InterpolationBucket::new(0.0..=10.0, [255.0, 0.0, 0.0], [0.0, 255.0, 0.0]);
16 assert_eq!(interpolator.interpolate(5.0), [127.5, 127.5, 0.0]);
17
18 let interpolator = F32LinearInterpolator::new(
22 10.0..=0.0,
23 &[[0.0, 255.0, 0.0], [255.0, 255.0, 0.0], [255.0, 0.0, 0.0]],
24 );
25 assert_eq!(interpolator.interpolate(5.0), [255.0, 255.0, 0.0]);
26 assert_eq!(interpolator.interpolate(0.0), [255.0, 0.0, 0.0]);
27
28 let interpolator: LinearInterpolator<'_, 3, f64, u8> =
31 LinearInterpolator::new(0.0..=10.0, &[[0, 255, 0], [255, 255, 0], [255, 0, 0]]);
32 assert_eq!(interpolator.interpolate(5.0), [127, 127, 0]);
33 assert_eq!(interpolator.interpolate(0.0), [0, 255, 0]);
34}