numeric_statistics/f64/assert_eq_float.rs
1#[allow(unused_macros)]
2macro_rules! assert_eq_float {
3 ($a:expr, $b:expr $(,)?) => {{
4 match (&$a, &$b) {
5 (a, b) => {
6 let epsilon = 2.0 * f64::EPSILON;
7 let abs_diff = if (a >= b) { a - b } else { b - a };
8 assert!(
9 abs_diff <= epsilon,
10 concat!(
11 "assertion failed: `assert_eq_float`\n",
12 " left: {},\n",
13 " right: {},\n",
14 " abs_diff: {},\n",
15 " ε: {}",
16 ),
17 a,
18 b,
19 abs_diff,
20 epsilon
21 )
22 }
23 }
24 }};
25}