| /// Assertion check for X is is within Y of Z | |
| #[macro_export] | |
| macro_rules! assert_near { | |
| ($thing:expr, $expected:expr, $error:expr) => { | |
| match (&$thing, &$expected, &$error) { | |
| (thing_val, expected_val, error_val) => { | |
| if thing_val < &(expected_val - error_val) || thing_val > &(expected_val + error_val) { | |
| panic!( | |
| "assertion failed: {:?} is not within {:?} of {:?}", | |
| &*thing_val, &*error_val, &*expected_val | |
| ) | |
| } | |
| } | |
| } | |
| }; | |
| } |