#[macro_export]
macro_rules! assert_eq_f64 {
($a:expr, $b:expr $(,)?) => {{
match (&$a, &$b) {
(a, b) => {
if (a == b) { return; }
let epsilon = f64::EPSILON * 2.0;
let abs_diff = if (a >= b) { a - b } else { b - a };
assert!(
abs_diff <= epsilon,
concat!(
"assertion failed: `assert_eq_f64`\n",
" left: {},\n",
" right: {},\n",
" abs_diff: {},\n",
" ε: {}",
),
a,
b,
abs_diff,
epsilon
)
}
}
}};
}