ringbuffer_iteration/
test_macros.rs1#[macro_export]
2macro_rules! assert_almost_eq {
3 ($left:expr, $right:expr, $epsilon:expr) => ({
4 match(&$left, &$right, &$epsilon) {
5 (left_val, right_val, epsilon_val) => {
6 let diff = *left_val - *right_val;
7 if (diff < 0_f32) && (-diff > *epsilon_val) {
8 panic!("assertion failed: `(abs(left - right) < epsilon)\n`\
9 left: {:?},\n\
10 right: {:?},\n\
11 epsilon: {:?},\n\
12 actual diff: {:?}",
13 left_val, right_val, epsilon_val, diff)
14 } else if (diff > *epsilon_val) {
15 panic!("assertion failed: `(abs(left - right) < epsilon)`\n\
16 left: {:?},\n\
17 right: {:?},\n\
18 epsilon: {:?},\n\
19 actual diff: {:?}",
20 left_val, right_val, epsilon_val, diff)
21 }
22
23 }
24 }
25 });
26}
27