test conversions to isize/usize
This commit is contained in:
parent
66235d74e7
commit
e3672475cf
|
@ -438,6 +438,51 @@ mod tests {
|
|||
assert_eq!(FixedU128::<frac::U127>::from(true), 1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn to_size() {
|
||||
let min_i24 = FixedI32::<frac::U8>::min_value();
|
||||
let max_i24 = FixedI32::<frac::U8>::max_value();
|
||||
let max_u24 = FixedU32::<frac::U8>::max_value();
|
||||
assert_eq!(min_i24.overflowing_to_int::<isize>(), (!0 << 23, false));
|
||||
assert_eq!(max_i24.overflowing_to_int::<isize>(), (!(!0 << 23), false));
|
||||
assert_eq!(max_u24.overflowing_to_int::<isize>(), (!(!0 << 24), false));
|
||||
assert_eq!(min_i24.overflowing_to_int::<usize>(), (!0 << 23, true));
|
||||
assert_eq!(max_i24.overflowing_to_int::<usize>(), (!(!0 << 23), false));
|
||||
assert_eq!(max_u24.overflowing_to_int::<usize>(), (!(!0 << 24), false));
|
||||
|
||||
let min_i56 = FixedI64::<frac::U8>::min_value();
|
||||
let max_i56 = FixedI64::<frac::U8>::max_value();
|
||||
let max_u56 = FixedU64::<frac::U8>::max_value();
|
||||
#[cfg(target_pointer_width = "32")]
|
||||
{
|
||||
assert_eq!(min_i56.overflowing_to_int::<isize>(), (0, true));
|
||||
assert_eq!(max_i56.overflowing_to_int::<isize>(), (!0, true));
|
||||
assert_eq!(max_u56.overflowing_to_int::<isize>(), (!0, true));
|
||||
assert_eq!(min_i56.overflowing_to_int::<usize>(), (0, true));
|
||||
assert_eq!(max_i56.overflowing_to_int::<usize>(), (!0, true));
|
||||
assert_eq!(max_u56.overflowing_to_int::<usize>(), (!0, true));
|
||||
}
|
||||
#[cfg(target_pointer_width = "64")]
|
||||
{
|
||||
assert_eq!(min_i56.overflowing_to_int::<isize>(), (!0 << 55, false));
|
||||
assert_eq!(max_i56.overflowing_to_int::<isize>(), (!(!0 << 55), false));
|
||||
assert_eq!(max_u56.overflowing_to_int::<isize>(), (!(!0 << 56), false));
|
||||
assert_eq!(min_i56.overflowing_to_int::<usize>(), (!0 << 55, true));
|
||||
assert_eq!(max_i56.overflowing_to_int::<usize>(), (!(!0 << 55), false));
|
||||
assert_eq!(max_u56.overflowing_to_int::<usize>(), (!(!0 << 56), false));
|
||||
}
|
||||
|
||||
let min_i120 = FixedI128::<frac::U8>::min_value();
|
||||
let max_i120 = FixedI128::<frac::U8>::max_value();
|
||||
let max_u120 = FixedU128::<frac::U8>::max_value();
|
||||
assert_eq!(min_i120.overflowing_to_int::<isize>(), (0, true));
|
||||
assert_eq!(max_i120.overflowing_to_int::<isize>(), (!0, true));
|
||||
assert_eq!(max_u120.overflowing_to_int::<isize>(), (!0, true));
|
||||
assert_eq!(min_i120.overflowing_to_int::<usize>(), (0, true));
|
||||
assert_eq!(max_i120.overflowing_to_int::<usize>(), (!0, true));
|
||||
assert_eq!(max_u120.overflowing_to_int::<usize>(), (!0, true));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn signed_from_float() {
|
||||
type Fix = FixedI8<frac::U4>;
|
||||
|
|
Loading…
Reference in New Issue