e2r 0.10.0

experimental rendering engine in rust
Documentation
#![cfg(test)]
#![allow(unused_imports)]

extern crate mazth;

use self::mazth::mat::Mat4x1;
use self::mazth::i_comparable::IComparableError;


use interface::i_interpolate::IInterpolate;

use interface::i_step::Step;

use implement::step::step_interpolate;

use implement::math::spline_bezier::SplineBezier;
use implement::math::piecewise::Piecewise;

#[test]
fn test_step_interpolate(){

    let mut splines = Piecewise::init();
    let cp0 = Mat4x1 { _val: [ 0f64, 1f64, 2f64, 3f64 ] };
    let cp1 = Mat4x1 { _val: [ 5f64, 6f64, 7f64, 8f64 ] };
    let cp2 = Mat4x1 { _val: [ 10f64, 16f64, 17f64, 18f64 ] };
    let cp3 = Mat4x1 { _val: [ 0f64, 1f64, -2f64, -3f64 ] };
    for _ in 0..2 {
        let spline = SplineBezier::init( 10 , cp0, cp1, cp2, cp3 );
        splines.add( spline );
    }
    assert!(splines._pieces.len() == 2 );

    let mut s = Step {
        _current_val: 10.0,
        _range_val: ( 10.0, 20.0 ),
    };

    let step_delta = 5f64;

    {
        step_interpolate::step_delta( & mut s, step_delta, & mut splines );

        let val = splines.interp_current();

        assert!( val.is_equal( &cp3, 0.00001f64 ).expect("is_equal invalid") );
    }

    {
        let val = step_interpolate::step_delta( & mut s, step_delta, & mut splines );


        assert!( val.is_equal( &cp3, 0.00001f64 ).expect("is_equal invalid") );
    }
}

#[test]
fn test_step_interpolate_clamp(){

    let mut splines = Piecewise::init();
    let cp0 = Mat4x1 { _val: [ 0f64, 1f64, 2f64, 3f64 ] };
    let cp1 = Mat4x1 { _val: [ 5f64, 6f64, 7f64, 8f64 ] };
    let cp2 = Mat4x1 { _val: [ 10f64, 16f64, 17f64, 18f64 ] };
    let cp3 = Mat4x1 { _val: [ 0f64, 1f64, -2f64, -3f64 ] };
    for _ in 0..2 {
        let spline = SplineBezier::init( 10 , cp0, cp1, cp2, cp3 );
        splines.add( spline );
    }
    assert!(splines._pieces.len() == 2 );

    let mut s = Step {
        _current_val: 10.0,
        _range_val: ( 10.0, 20.0 ),
    };

    let step_delta = 15f64;

    step_interpolate::step_delta( & mut s, step_delta, & mut splines );

    let val = splines.interp_current();

    assert!( val.is_equal( &cp3, 0.00001f64 ).expect("is_equal invalid") );
}

#[test]
fn test_step_interpolate_start(){

    let mut splines = Piecewise::init();
    let cp0 = Mat4x1 { _val: [ 0f64, 1f64, 2f64, 3f64 ] };
    let cp1 = Mat4x1 { _val: [ 5f64, 6f64, 7f64, 8f64 ] };
    let cp2 = Mat4x1 { _val: [ 10f64, 16f64, 17f64, 18f64 ] };
    let cp3 = Mat4x1 { _val: [ 0f64, 1f64, -2f64, -3f64 ] };
    for _ in 0..2 {
        let spline = SplineBezier::init( 10 , cp0, cp1, cp2, cp3 );
        splines.add( spline );
    }
    assert!(splines._pieces.len() == 2 );

    let mut s = Step {
        _current_val: 10.0,
        _range_val: ( 10.0, 20.0 ),
    };

    let step_delta = 0f64;

    step_interpolate::step_delta( & mut s, step_delta, & mut splines );

    let val = splines.interp_current();

    assert!( val.is_equal( &cp0, 0.00001f64 ).expect("is_equal invalid") );
}