assertables/assert_approx/mod.rs
1//! Assert for approximations.
2//!
3//! These macros compare numbers, such as two floating point numbers,
4//! where one number may be very close to another number but not quite equal.
5//!
6//! * [`assert_approx_eq!(a, b)`](macro@crate::assert_approx_eq) ≈ a is approximately equal to b
7//!
8//! * [`assert_approx_ne!(a, b)`](macro@crate::assert_approx_ne) ≈ a is approximately not equal to b
9//!
10//! * [`assert_approx_eq_with_absolute_error!(a, b, Δ)`](macro@crate::assert_approx_eq_with_absolute_error) ≈ a is approximately equal to b by using absolute error a.k.a. delta.
11//!
12//! * [`assert_approx_ne_with_absolute_error!(a, b, Δ)`](macro@crate::assert_approx_ne_with_absolute_error) ≈ a is approximately not equal to b by using absolute error a.k.a. delta.
13//!
14//! * [`assert_approx_eq_with_relative_error!(a, b, ε)`](macro@crate::assert_approx_eq_with_relative_error) ≈ a is approximately equal to b by using relative error a.k.a. epsilon.
15//!
16//! * [`assert_approx_ne_with_relative_error!(a, b, ε)`](macro@crate::assert_approx_ne_with_relative_error) ≈ a is approximately not equal to b by using relative error a.k.a. epsilon.
17//!
18//! # Example
19//!
20//! ```rust
21//! use assertables::*;
22//!
23//! let a: f32 = 1.0000001;
24//! let b: f32 = 1.0000011;
25//! assert_approx_eq!(a, b);
26//! ```
27
28pub mod assert_approx_eq;
29pub mod assert_approx_ne;
30
31pub mod assert_approx_eq_with_absolute_error;
32pub mod assert_approx_ne_with_absolute_error;
33
34pub mod assert_approx_eq_with_relative_error;
35pub mod assert_approx_ne_with_relative_error;