discrete_transforms 0.1.3

Library for Discrete Transforms
Documentation
extern crate discrete_transforms;

use discrete_transforms::haar_2d::*;

#[test]
fn haar_2d_forward_test() {
    let input = vec![139.0, 144.0, 149.0, 153.0, 155.0, 155.0, 155.0, 155.0,
                     144.0, 151.0, 153.0, 156.0, 159.0, 156.0, 156.0, 156.0,
                     150.0, 155.0, 160.0, 163.0, 158.0, 156.0, 156.0, 156.0,
                     159.0, 161.0, 162.0, 160.0, 160.0, 159.0, 159.0, 159.0,
                     159.0, 160.0, 161.0, 162.0, 162.0, 155.0, 155.0, 155.0,
                     161.0, 161.0, 161.0, 161.0, 160.0, 157.0, 157.0, 157.0,
                     162.0, 162.0, 161.0, 163.0, 162.0, 157.0, 157.0, 157.0,
                     162.0, 162.0, 161.0, 161.0, 163.0, 158.0, 158.0, 158.0];

    let expected = vec![157.453125,  0.015625, -1.71875,  0.8125, -1.25,  -0.6875,  1.625, 0.0,
                        -2.171875, -1.609375, -1.59375, -0.4375, -1.125, -0.3125, -0.875, 0.0,
                        -3.03125,  -2.03125,  -0.8125,   0.0,    -0.625, -0.75,    0.0,   0.0,
                        -0.625,     0.125,    -0.375,    0.0,    -0.125,  0.125,   0.0,   0.0,
                        -1.625,    -0.75,     -0.625,   -0.375,   0.5,   -0.25,   -0.75,  0.0,
                        -1.5625,   -0.1875,   -2.0,      0.125,  -0.75,  -1.25,    0.25,  0.0,
                        -0.375,     0.125,    -0.5,      0.5,    -0.25,  -0.25,    1.0,   0.0,
                        -0.125,     0.375,    -0.25,     0.0,     0.0,   -0.5,     0.0,   0.0];

    let mut haar_2d = Haar2D::new();

    haar_2d.set_input(input);

    let forward = haar_2d.forward();

    assert_eq!(forward, expected);
}

#[test]
fn haar_2d_inverse_test() {
    let input = vec![157.453125,  0.015625, -1.71875,  0.8125, -1.25,  -0.6875,  1.625, 0.0,
                     -2.171875, -1.609375, -1.59375, -0.4375, -1.125, -0.3125, -0.875, 0.0,
                     -3.03125,  -2.03125,  -0.8125,   0.0,    -0.625, -0.75,    0.0,   0.0,
                     -0.625,     0.125,    -0.375,    0.0,    -0.125,  0.125,   0.0,   0.0,
                     -1.625,    -0.75,     -0.625,   -0.375,   0.5,   -0.25,   -0.75,  0.0,
                     -1.5625,   -0.1875,   -2.0,      0.125,  -0.75,  -1.25,    0.25,  0.0,
                     -0.375,     0.125,    -0.5,      0.5,    -0.25,  -0.25,    1.0,   0.0,
                     -0.125,     0.375,    -0.25,     0.0,     0.0,   -0.5,     0.0,   0.0];

    let expected = vec![139.0, 144.0, 149.0, 153.0, 155.0, 155.0, 155.0, 155.0,
                        144.0, 151.0, 153.0, 156.0, 159.0, 156.0, 156.0, 156.0,
                        150.0, 155.0, 160.0, 163.0, 158.0, 156.0, 156.0, 156.0,
                        159.0, 161.0, 162.0, 160.0, 160.0, 159.0, 159.0, 159.0,
                        159.0, 160.0, 161.0, 162.0, 162.0, 155.0, 155.0, 155.0,
                        161.0, 161.0, 161.0, 161.0, 160.0, 157.0, 157.0, 157.0,
                        162.0, 162.0, 161.0, 163.0, 162.0, 157.0, 157.0, 157.0,
                        162.0, 162.0, 161.0, 161.0, 163.0, 158.0, 158.0, 158.0];

    let mut haar_2d = Haar2D::new();

    haar_2d.set_input(input);

    let inverse = haar_2d.inverse();

    assert_eq!(inverse, expected);
}