numeric_statistics/f32/
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 * f32::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}