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);
|
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]
|
#[test]
|
||||||
fn signed_from_float() {
|
fn signed_from_float() {
|
||||||
type Fix = FixedI8<frac::U4>;
|
type Fix = FixedI8<frac::U4>;
|
||||||
|
|
Loading…
Reference in New Issue