Skip to main content

verify_near

Macro verify_near 

Source
macro_rules! verify_near {
    ($actual:expr, $expected:expr, $max_abs_error:expr $(,)?) => { ... };
}
Expand description

Checks whether the float given by first argument is equal to second argument with error tolerance of max_abs_error.

Evaluates to Result::Ok(()) if the first argument is approximately equal to the second and Result::Err(TestAssertionFailure) if it is not. The caller must then decide how to handle the Err variant. It has a few options:

  • Abort the current function with the ? operator. This requires that the function return a suitable Result.
  • Log the test failure and continue by calling the method and_log_failure.

Of course, one can also use all other standard methods on Result.

Invoking this macro by itself does not cause a test failure to be recorded or output. The resulting Result must be handled as described above to cause the test to be recorded as a failure.

Example:

use googletest::prelude::*;

#[test]
fn should_fail() -> Result<()> {
    verify_near!(1.12345, 1.12346, 1e-6)
}