Macro appro_eq::debug_assert_appro_eq_rel 0.1.0
[−]
[src]
macro_rules! debug_assert_appro_eq_rel { ($($arg:tt)*) => { ... }; }
Asserts that the relative error of the two expressions is small enough.
You can optionally add an optional diff value. If you don't supply a diff value as an argument, Tolerance::tolerance() is the default used.
Unlike assert_appro_eq_rel!, debug_assert_appro_eq_rel! statements are only enabled in non optimized builds by default. An optimized build will omit all debug_assert_appro_eq_rel! statements unless -C debug-assertions is passed to the compiler.
Examples
debug_assert_appro_eq_rel!(1f64, 1.5f64, 0.6f64); // does not panic debug_assert_appro_eq_rel!(1f64, 1.0 + 1e-12f64); // does not panic debug_assert_appro_eq_rel!(vec![1f64, 1.0, 1.0], vec![1.0 + 1e-12f64, 1.0, 1.0 - 1e-13f64]); // does not panic
debug_assert_appro_eq_rel!(1f64, 2f64); // panics