use lineic::{
interpolators::{F32InterpolationBucket, F32LinearInterpolator},
LinearInterpolator,
};
fn main() {
let interpolator = F32InterpolationBucket::new(0.0..=10.0, [30.0], [35.0]);
assert_eq!(interpolator.interpolate(5.0), [32.5]);
let interpolator =
F32InterpolationBucket::new(0.0..=10.0, [255.0, 0.0, 0.0], [0.0, 255.0, 0.0]);
assert_eq!(interpolator.interpolate(5.0), [127.5, 127.5, 0.0]);
let interpolator = F32LinearInterpolator::new(
10.0..=0.0,
&[[0.0, 255.0, 0.0], [255.0, 255.0, 0.0], [255.0, 0.0, 0.0]],
);
assert_eq!(interpolator.interpolate(5.0), [255.0, 255.0, 0.0]);
assert_eq!(interpolator.interpolate(0.0), [255.0, 0.0, 0.0]);
let interpolator: LinearInterpolator<'_, 3, f64, u8> =
LinearInterpolator::new(0.0..=10.0, &[[0, 255, 0], [255, 255, 0], [255, 0, 0]]);
assert_eq!(interpolator.interpolate(5.0), [127, 127, 0]);
assert_eq!(interpolator.interpolate(0.0), [0, 255, 0]);
}