Macro float_eq::assert_float_eq [−][src]
macro_rules! assert_float_eq {
($left : expr, $right : expr, $eq1 : ident <= $tol_1 : expr, $eq2 : ident <=
$tol_2 : expr, $eq3 : ident <= $tol_3 : expr) => { ... };
($left : expr, $right : expr, $eq1 : ident <= $tol_1 : expr, $eq2 : ident <=
$tol_2 : expr) => { ... };
($left : expr, $right : expr, $eq1 : ident <= $tol_1 : expr) => { ... };
($left : expr, $right : expr, $($eq : ident <= $tol : expr,) +) => { ... };
($left : expr, $right : expr, $eq1 : ident <= $tol_1 : expr, $eq2 : ident <=
$tol_2 : expr, $eq3 : ident <= $tol_3 : expr, $($arg : tt) +) => { ... };
($left : expr, $right : expr, $eq1 : ident <= $tol_1 : expr, $eq2 : ident <=
$tol_2 : expr, $($arg : tt) +) => { ... };
($left : expr, $right : expr, $eq1 : ident <= $tol_1 : expr, $($arg : tt) +) => { ... };
}
Expand description
Asserts that two floating point expressions are equal to each other.
See the top level documentation for a list of available comparison algorithms.
On panic, this macro will print the values of the expressions with their debug
representations, with additional information from the comparison operations.
Like assert!
, this macro has a second form, where a custom panic message can
be provided.
Examples
let a: f32 = 4.0;
let b: f32 = 4.000_002_5;
assert_float_eq!(a, b, ulps <= 10);
assert_float_eq!(a, 3.999_999_6, rmax <= 2.0 * f32::EPSILON);
assert_float_eq!(a - b, 0.0, abs <= 0.000_01, "Checking that {} == {}", a, b);