add tests
This commit is contained in:
parent
5d707b07e4
commit
e87f1386d9
3 changed files with 48 additions and 0 deletions
|
|
@ -30,6 +30,7 @@
|
|||
#![feature(duration_constructors)]
|
||||
#![feature(duration_constructors_lite)]
|
||||
#![feature(error_generic_member_access)]
|
||||
#![feature(exact_div)]
|
||||
#![feature(exact_size_is_empty)]
|
||||
#![feature(extend_one)]
|
||||
#![feature(extern_types)]
|
||||
|
|
|
|||
|
|
@ -683,5 +683,29 @@ macro_rules! int_module {
|
|||
assert_eq_const_safe!($T: <$T>::unbounded_shr(17, SHIFT_AMOUNT_OVERFLOW3), 0);
|
||||
}
|
||||
}
|
||||
|
||||
const EXACT_DIV_SUCCESS_DIVIDEND1: $T = 42;
|
||||
const EXACT_DIV_SUCCESS_DIVISOR1: $T = 6;
|
||||
const EXACT_DIV_SUCCESS_QUOTIENT1: $T = 7;
|
||||
const EXACT_DIV_SUCCESS_DIVIDEND2: $T = 18;
|
||||
const EXACT_DIV_SUCCESS_DIVISOR2: $T = 3;
|
||||
const EXACT_DIV_SUCCESS_QUOTIENT2: $T = 6;
|
||||
|
||||
test_runtime_and_compiletime! {
|
||||
fn test_exact_div() {
|
||||
// 42 / 6
|
||||
assert_eq_const_safe!(Option<$T>: <$T>::checked_exact_div(EXACT_DIV_SUCCESS_DIVIDEND1, EXACT_DIV_SUCCESS_DIVISOR1), Some(EXACT_DIV_SUCCESS_QUOTIENT1));
|
||||
assert_eq_const_safe!($T: <$T>::exact_div(EXACT_DIV_SUCCESS_DIVIDEND1, EXACT_DIV_SUCCESS_DIVISOR1), EXACT_DIV_SUCCESS_QUOTIENT1);
|
||||
|
||||
// 18 / 3
|
||||
assert_eq_const_safe!(Option<$T>: <$T>::checked_exact_div(EXACT_DIV_SUCCESS_DIVIDEND2, EXACT_DIV_SUCCESS_DIVISOR2), Some(EXACT_DIV_SUCCESS_QUOTIENT2));
|
||||
assert_eq_const_safe!($T: <$T>::exact_div(EXACT_DIV_SUCCESS_DIVIDEND2, EXACT_DIV_SUCCESS_DIVISOR2), EXACT_DIV_SUCCESS_QUOTIENT2);
|
||||
|
||||
// failures
|
||||
assert_eq_const_safe!(Option<$T>: <$T>::checked_exact_div(1, 2), None);
|
||||
assert_eq_const_safe!(Option<$T>: <$T>::checked_exact_div(<$T>::MIN, -1), None);
|
||||
assert_eq_const_safe!(Option<$T>: <$T>::checked_exact_div(0, 0), None);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -516,5 +516,28 @@ macro_rules! uint_module {
|
|||
assert_eq_const_safe!($T: <$T>::unbounded_shr(17, SHIFT_AMOUNT_OVERFLOW3), 0);
|
||||
}
|
||||
}
|
||||
|
||||
const EXACT_DIV_SUCCESS_DIVIDEND1: $T = 42;
|
||||
const EXACT_DIV_SUCCESS_DIVISOR1: $T = 6;
|
||||
const EXACT_DIV_SUCCESS_QUOTIENT1: $T = 7;
|
||||
const EXACT_DIV_SUCCESS_DIVIDEND2: $T = 18;
|
||||
const EXACT_DIV_SUCCESS_DIVISOR2: $T = 3;
|
||||
const EXACT_DIV_SUCCESS_QUOTIENT2: $T = 6;
|
||||
|
||||
test_runtime_and_compiletime! {
|
||||
fn test_exact_div() {
|
||||
// 42 / 6
|
||||
assert_eq_const_safe!(Option<$T>: <$T>::checked_exact_div(EXACT_DIV_SUCCESS_DIVIDEND1, EXACT_DIV_SUCCESS_DIVISOR1), Some(EXACT_DIV_SUCCESS_QUOTIENT1));
|
||||
assert_eq_const_safe!($T: <$T>::exact_div(EXACT_DIV_SUCCESS_DIVIDEND1, EXACT_DIV_SUCCESS_DIVISOR1), EXACT_DIV_SUCCESS_QUOTIENT1);
|
||||
|
||||
// 18 / 3
|
||||
assert_eq_const_safe!(Option<$T>: <$T>::checked_exact_div(EXACT_DIV_SUCCESS_DIVIDEND2, EXACT_DIV_SUCCESS_DIVISOR2), Some(EXACT_DIV_SUCCESS_QUOTIENT2));
|
||||
assert_eq_const_safe!($T: <$T>::exact_div(EXACT_DIV_SUCCESS_DIVIDEND2, EXACT_DIV_SUCCESS_DIVISOR2), EXACT_DIV_SUCCESS_QUOTIENT2);
|
||||
|
||||
// failures
|
||||
assert_eq_const_safe!(Option<$T>: <$T>::checked_exact_div(1, 2), None);
|
||||
assert_eq_const_safe!(Option<$T>: <$T>::checked_exact_div(0, 0), None);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue