motion-canvas-rs 0.1.9

A high-performance vector animation engine inspired by Motion Canvas, built on Vello and Typst.
Documentation
use motion_canvas_rs::engine::easings;

#[test]
fn test_easings_boundaries() {
    let easings_list: Vec<fn(f32) -> f32> = vec![
        easings::back_in_out,
        easings::back_in,
        easings::back_out,
        easings::bounce_in_out,
        easings::bounce_in,
        easings::bounce_out,
        easings::circ_in_out,
        easings::circ_in,
        easings::circ_out,
        easings::cubic_in_out,
        easings::cubic_in,
        easings::cubic_out,
        easings::elastic_in_out,
        easings::elastic_in,
        easings::elastic_out,
        easings::expo_in_out,
        easings::expo_in,
        easings::expo_out,
        easings::linear,
        easings::quad_in_out,
        easings::quad_in,
        easings::quad_out,
        easings::quart_in_out,
        easings::quart_in,
        easings::quart_out,
        easings::quint_in_out,
        easings::quint_in,
        easings::quint_out,
        easings::sine_in_out,
        easings::sine_in,
        easings::sine_out,
    ];

    for easing in easings_list {
        assert!((easing(0.0) - 0.0).abs() < 1e-6, "Easing failed at 0.0");
        assert!((easing(1.0) - 1.0).abs() < 1e-6, "Easing failed at 1.0");
    }
}