Russell Chk - Functions to check vectors and other data in tests

Crates.io

This crate is part of Russell - Rust Scientific Library

This repository implements macros to assist in tests (numerical checks).

Documentation:

Installation

Add this to your Cargo.toml:

toml [dependencies] russell_chk = "*"

Examples

Check float point numbers

```rust use russellchk::assertapprox_eq;

fn main() { assertapproxeq!(0.123456789, 0.12345678, 1e-8); assertapproxeq!(0.123456789, 0.1234567, 1e-7); assertapproxeq!(0.123456789, 0.123456, 1e-6); assertapproxeq!(0.123456789, 0.12345, 1e-5); assertapproxeq!(0.123456789, 0.1234, 1e-4); } ```

Check a vector of float point numbers

```rust use russellchk::assertvecapproxeq;

fn main() { let a = [0.123456789, 0.123456789, 0.123456789]; let b = [0.12345678, 0.1234567, 0.123456]; assertvecapprox_eq!(&a, &b, 1e-6); } ```

Check derivatives

```rust use russellchk::assertderivapproxeq;

struct Arguments {}

fn main() { let f = |x: f64, : &mut Arguments| -x; let args = &mut Arguments {}; let atx = 8.0; let dfdx = -1.01; assertderivapproxeq!(dfdx, atx, f, args, 1e-2); } ```

Check complex numbers

```rust use russellchk::assertcomplexvecapproxeq; use numcomplex::Complex64;

fn main() { let a = [ Complex64::new(0.123456789, 5.01), Complex64::new(0.123456789, 5.01), Complex64::new(0.123456789, 5.01)]; let b = [ Complex64::new(0.12345678, 5.01), Complex64::new(0.1234567, 5.01), Complex64::new(0.123456, 5.01)]; assertcomplexvecapproxeq!(&a, &b, 1e-6); } ```