Crate assert_within

Source
Expand description

Provides a macro assert_within! for tests involving floating point numbers.

assert_within!(+0.001, val, target, "Value was not within additive 0.001: {more} {context}");
assert_within!(~0.05, val, target, "Value was not within 5% of target: {additional} {information:?}");

Highlights include:

  • Pass arguments by reference or value
  • Sigils (+, ~) indicate additive or relative error
  • Traps Nan in any of the arguments
  • Errors cause both the stringified expressions and their values to be displayed
  • Arbitrary additional format args
  • Generic over num_traits::FloatCore
  • no_std compatible

Macrosยง

assert_within