#[macro_export]
macro_rules! assertsd_eq {
($expresson:expr, $expected:expr) => {
debug_assert_eq!($expresson, $expected);
assert_eq!($expresson, $expected);
};
($expresson:expr, $expected:expr, $($others:expr),+) => {
debug_assert_eq!($expresson, $expected);
assertsd_eq!($expresson, $($others),+);
};
}
#[macro_export]
macro_rules! assertsd_ne {
($expresson:expr, $expected:expr) => {
debug_assert_ne!($expresson, $expected);
};
($expresson:expr, $expected:expr, $($others:expr),+) => {
debug_assert_ne!($expresson, $expected);
assertsd_ne!($expresson, $($others),+);
};
}
#[macro_export]
macro_rules! assertsd_eq_one_of {
($expresson:expr, $expected:expr) => {
debug_assert_eq!($expresson, $expected);
};
($expresson:expr, $expected:expr, $($others:expr),+) => {
if ($expresson != $expected) {
assertsd_eq_one_of!($expresson, $($others),+);
} else {
debug_assert_eq!($expresson, $expected);
}
};
}
#[macro_export]
macro_rules! assertsd_ne_one_of {
($expresson:expr, $expected:expr) => {
debug_assert_ne!($expresson, $expected);
};
($expresson:expr, $expected:expr, $($others:expr),+) => {
if ($expresson == $expected) {
assertsd_ne_one_of!($expresson, $($others),+);
} else {
debug_assert_ne!($expresson, $expected);
}
};
}
#[cfg(test)]
mod tests {
#[test]
fn test_assertsd_eq() {
assertsd_eq!(1, 1);
assertsd_eq!(1, 1, 1);
}
#[test]
#[should_panic]
fn test_assertsd_eq_should_fail() {
assertsd_eq!(1, 2);
assertsd_eq!(1, 2, 3);
}
#[test]
fn test_assertsd_ne() {
assertsd_ne!(1, 2);
assertsd_ne!(1, 2, 3);
}
#[test]
#[should_panic]
fn test_assertsd_ne_should_fail() {
assertsd_ne!(1, 1);
assertsd_ne!(1, 1, 1);
}
#[test]
fn test_assertsd_eq_one_of() {
assertsd_eq_one_of!(1, 1);
assertsd_eq_one_of!(1, 1, 2);
}
#[test]
#[should_panic]
fn test_assertsd_eq_one_of_should_fail() {
assertsd_eq_one_of!(1, 2);
assertsd_eq_one_of!(1, 2, 3);
}
#[test]
fn test_assertsd_ne_one_of() {
assertsd_ne_one_of!(1, 2);
assertsd_ne_one_of!(1, 1, 2);
assertsd_ne_one_of!(1, 2, 3);
}
#[test]
#[should_panic]
fn test_assertsd_ne_one_of_should_fail() {
assertsd_ne_one_of!(1, 1);
assertsd_ne_one_of!(1, 1, 1);
}
}