Module malachite_base::num::conversion::from
source · [−]Expand description
Traits for converting between different number types. The traits are
CheckedFrom
, WrappingFrom
,
SaturatingFrom
, OverflowingFrom
,
ConvertibleFrom
, and RoundingFrom
.
checked_from
use malachite_base::num::conversion::traits::CheckedFrom;
assert_eq!(u8::checked_from(123u8), Some(123));
assert_eq!(i32::checked_from(-5i32), Some(-5));
assert_eq!(u16::checked_from(123u8), Some(123));
assert_eq!(i64::checked_from(-5i32), Some(-5));
assert_eq!(u32::checked_from(5u64), Some(5));
assert_eq!(u8::checked_from(1000u16), None);
assert_eq!(u32::checked_from(-5i32), None);
assert_eq!(i32::checked_from(3000000000u32), None);
assert_eq!(i8::checked_from(-1000i16), None);
assert_eq!(f32::checked_from(100u8), Some(100.0));
assert_eq!(f32::checked_from(u32::MAX), None);
assert_eq!(u8::checked_from(100.0f32), Some(100));
assert_eq!(u8::checked_from(100.1f32), None);
assert_eq!(u8::checked_from(300.0f32), None);
assert_eq!(u8::checked_from(-100.0f32), None);
wrapping_from
use malachite_base::num::conversion::traits::WrappingFrom;
assert_eq!(u8::wrapping_from(123u8), 123);
assert_eq!(i32::wrapping_from(-5i32), -5);
assert_eq!(u16::wrapping_from(123u8), 123);
assert_eq!(i64::wrapping_from(-5i32), -5);
assert_eq!(u32::wrapping_from(5u64), 5);
assert_eq!(u8::wrapping_from(1000u16), 232);
assert_eq!(u32::wrapping_from(-5i32), 4294967291);
assert_eq!(i32::wrapping_from(3000000000u32), -1294967296);
assert_eq!(i8::wrapping_from(-1000i16), 24);
saturating_from
use malachite_base::num::conversion::traits::SaturatingFrom;
assert_eq!(u8::saturating_from(123u8), 123);
assert_eq!(i32::saturating_from(-5i32), -5);
assert_eq!(u16::saturating_from(123u8), 123);
assert_eq!(i64::saturating_from(-5i32), -5);
assert_eq!(u32::saturating_from(5u64), 5);
assert_eq!(u8::saturating_from(1000u16), 255);
assert_eq!(u32::saturating_from(-5i32), 0);
assert_eq!(i32::saturating_from(3000000000u32), 2147483647);
assert_eq!(i8::saturating_from(-1000i16), -128);
overflowing_from
use malachite_base::num::conversion::traits::OverflowingFrom;
assert_eq!(u8::overflowing_from(123u8), (123, false));
assert_eq!(i32::overflowing_from(-5i32), (-5, false));
assert_eq!(u16::overflowing_from(123u8), (123, false));
assert_eq!(i64::overflowing_from(-5i32), (-5, false));
assert_eq!(u32::overflowing_from(5u64), (5, false));
assert_eq!(u8::overflowing_from(1000u16), (232, true));
assert_eq!(u32::overflowing_from(-5i32), (4294967291, true));
assert_eq!(i32::overflowing_from(3000000000u32), (-1294967296, true));
assert_eq!(i8::overflowing_from(-1000i16), (24, true));
convertible_from
use malachite_base::num::conversion::traits::ConvertibleFrom;
assert_eq!(u8::convertible_from(123u8), true);
assert_eq!(i32::convertible_from(-5i32), true);
assert_eq!(u16::convertible_from(123u8), true);
assert_eq!(i64::convertible_from(-5i32), true);
assert_eq!(u32::convertible_from(5u64), true);
assert_eq!(u8::convertible_from(1000u16), false);
assert_eq!(u32::convertible_from(-5i32), false);
assert_eq!(i32::convertible_from(3000000000u32), false);
assert_eq!(i8::convertible_from(-1000i16), false);
assert_eq!(f32::convertible_from(100u8), true);
assert_eq!(f32::convertible_from(u32::MAX), false);
assert_eq!(u8::convertible_from(100.0f32), true);
assert_eq!(u8::convertible_from(100.1f32), false);
assert_eq!(u8::convertible_from(300.0f32), false);
assert_eq!(u8::convertible_from(-100.0f32), false);
rounding_from
use malachite_base::num::conversion::traits::RoundingFrom;
use malachite_base::rounding_modes::RoundingMode;
assert_eq!(f32::rounding_from(100, RoundingMode::Floor), 100.0);
assert_eq!(f32::rounding_from(100, RoundingMode::Down), 100.0);
assert_eq!(f32::rounding_from(100, RoundingMode::Ceiling), 100.0);
assert_eq!(f32::rounding_from(100, RoundingMode::Up), 100.0);
assert_eq!(f32::rounding_from(100, RoundingMode::Nearest), 100.0);
assert_eq!(f32::rounding_from(100, RoundingMode::Exact), 100.0);
assert_eq!(
f32::rounding_from(i32::MAX, RoundingMode::Floor),
2147483500.0
);
assert_eq!(
f32::rounding_from(i32::MAX, RoundingMode::Down),
2147483500.0
);
assert_eq!(
f32::rounding_from(i32::MAX, RoundingMode::Ceiling),
2147483600.0
);
assert_eq!(f32::rounding_from(i32::MAX, RoundingMode::Up), 2147483600.0);
assert_eq!(
f32::rounding_from(i32::MAX, RoundingMode::Nearest),
2147483600.0
);
assert_eq!(u32::rounding_from(100.0f32, RoundingMode::Floor), 100);
assert_eq!(u32::rounding_from(100.0f32, RoundingMode::Down), 100);
assert_eq!(u32::rounding_from(100.0f32, RoundingMode::Ceiling), 100);
assert_eq!(u32::rounding_from(100.0f32, RoundingMode::Up), 100);
assert_eq!(u32::rounding_from(100.0f32, RoundingMode::Nearest), 100);
assert_eq!(u32::rounding_from(100.0f32, RoundingMode::Exact), 100);
assert_eq!(u32::rounding_from(100.5f32, RoundingMode::Floor), 100);
assert_eq!(u32::rounding_from(100.5f32, RoundingMode::Down), 100);
assert_eq!(u32::rounding_from(100.5f32, RoundingMode::Ceiling), 101);
assert_eq!(u32::rounding_from(100.5f32, RoundingMode::Up), 101);
assert_eq!(u32::rounding_from(100.5f32, RoundingMode::Nearest), 100);