1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
#![allow(unused_macros)] #![deny(clippy::all, clippy::pedantic)] pub mod calculus; pub mod constants; pub mod fitting; pub mod functions; pub mod statistics; pub mod linalg; pub mod types; #[macro_export] macro_rules! equality_test { ($name: ident, $f: expr, $( $var:expr ),* => $eq: expr) => { #[test] fn $name() { assert_eq!($eq, $f($($var),*)); } }; } #[macro_export] macro_rules! abs_approx_test { ($name: ident, $f: expr, $( $var:expr ),* => $eq: expr , $tol: expr) => { #[test] fn $name() { let out = $f($($var),*); assert!((out - $eq).abs() < $tol); } }; ($name: ident, $f: expr, $( $var:expr ),* => $eq: expr) => { #[test] fn $name() { let out = $f($($var),*); assert!((out - $eq).abs() < 0.0001); } }; } #[macro_export] macro_rules! inequality_test { ($name: ident, $f: expr, $( $var:expr ),* => $eq: expr) => { #[test] fn $name() { assert_ne!($eq, $f($($var),*)); } }; } #[macro_export] macro_rules! panic_test { ($name: ident, $f: expr, $( $var:expr ),*) => { #[test] #[should_panic] fn $name() { $f($($var),*); } }; }