33 lines
913 B
Rust
33 lines
913 B
Rust
#[macro_export]
|
|
macro_rules! assert_approx_eq {
|
|
($a:expr, $b:expr) => {{
|
|
#[allow(unused_imports)]
|
|
use support::FloatCompare;
|
|
let eps = core::f32::EPSILON;
|
|
let (a, b) = (&$a, &$b);
|
|
assert!(
|
|
a.approx_eq(b, eps),
|
|
"assertion failed: `(left !== right)` \
|
|
(left: `{:?}`, right: `{:?}`, expect diff: `{:?}`, real diff: `{:?}`)",
|
|
*a,
|
|
*b,
|
|
eps,
|
|
a.abs_diff(b)
|
|
);
|
|
}};
|
|
($a:expr, $b:expr, $eps:expr) => {{
|
|
use support::FloatCompare;
|
|
let (a, b) = (&$a, &$b);
|
|
let eps = $eps;
|
|
assert!(
|
|
a.approx_eq(b, $eps),
|
|
"assertion failed: `(left !== right)` \
|
|
(left: `{:?}`, right: `{:?}`, expect diff: `{:?}`, real diff: `{:?}`)",
|
|
*a,
|
|
*b,
|
|
eps,
|
|
a.abs_diff(b)
|
|
);
|
|
}};
|
|
}
|