macro_rules! assert_vec_approx_eq {
    ($a:expr, $b:expr, $tol:expr) => { ... };
}
Expand description

Asserts that two vectors have the same length and approximately equal values

Input

a – Left vector b – Right vector tol: f64 – Error tolerance such that |a[i] - b[i]| < tol for all i in [0,a.len()]

Note

This macro also checks that a.len() == b.len()

Examples

Accepts small error

use russell_chk::assert_vec_approx_eq;

fn main() {
    let a = [1.0, 2.0, 3.0000001];
    let b = [1.0, 2.0, 3.0];
    assert_vec_approx_eq!(a, b, 1e-6);
}

Panics on different values

use russell_chk::assert_vec_approx_eq;

fn main() {
    let a = [1.0, 2.0, 3.0];
    let b = [1.0, 2.0, 4.0];
    assert_vec_approx_eq!(a, b, 1e-6);
}

Panics on different lengths

use russell_chk::assert_vec_approx_eq;

fn main() {
    let a = [1.0, 2.0, 3.0];
    let b = [1.0, 2.0];
    assert_vec_approx_eq!(a, b, 1e-6);
}