Skip to content

Commit 126e7de

Browse files
authored
Merge pull request #74 from EFanZh/fixes-issues-71-and-73
Fix #71
2 parents 0c1d7e5 + 6e43a5f commit 126e7de

File tree

2 files changed

+26
-17
lines changed

2 files changed

+26
-17
lines changed

src/macros.rs

+19-17
Original file line numberDiff line numberDiff line change
@@ -82,37 +82,39 @@ macro_rules! ulps_ne {
8282
#[macro_export]
8383
macro_rules! __assert_approx {
8484
($eq:ident, $given:expr, $expected:expr) => {{
85-
let (given, expected) = (&($given), &($expected));
86-
87-
assert!($eq!(*given, *expected),
85+
match (&($given), &($expected)) {
86+
(given, expected) => assert!(
87+
$eq!(*given, *expected),
8888
"assert_{}!({}, {})
8989
9090
left = {:?}
9191
right = {:?}
9292
9393
",
94-
stringify!($eq),
95-
stringify!($given),
96-
stringify!($expected),
97-
given, expected,
98-
);
94+
stringify!($eq),
95+
stringify!($given),
96+
stringify!($expected),
97+
given, expected,
98+
),
99+
}
99100
}};
100101
($eq:ident, $given:expr, $expected:expr, $($opt:ident = $val:expr),+) => {{
101-
let (given, expected) = (&($given), &($expected));
102-
103-
assert!($eq!(*given, *expected, $($opt = $val),+),
102+
match (&($given), &($expected)) {
103+
(given, expected) => assert!(
104+
$eq!(*given, *expected, $($opt = $val),+),
104105
"assert_{}!({}, {}, {})
105106
106107
left = {:?}
107108
right = {:?}
108109
109110
",
110-
stringify!($eq),
111-
stringify!($given),
112-
stringify!($expected),
113-
stringify!($($opt = $val),+),
114-
given, expected,
115-
);
111+
stringify!($eq),
112+
stringify!($given),
113+
stringify!($expected),
114+
stringify!($($opt = $val),+),
115+
given, expected,
116+
),
117+
}
116118
}};
117119
}
118120

tests/macros.rs

+7
Original file line numberDiff line numberDiff line change
@@ -96,3 +96,10 @@ fn test_ulps_ne_trailing_commas() {
9696
let _: bool = ulps_ne!(1.0, 1.0,);
9797
let _: bool = ulps_ne!(1.0, 1.0, epsilon = 1.0, max_ulps = 1,);
9898
}
99+
100+
#[test]
101+
fn test_rvalue_arguments() {
102+
assert_abs_diff_eq!(vec![0.0].as_slice(), vec![0.0].as_slice());
103+
assert_relative_eq!(vec![0.0].as_slice(), vec![0.0].as_slice());
104+
assert_ulps_eq!(vec![0.0].as_slice(), vec![0.0].as_slice());
105+
}

0 commit comments

Comments
 (0)