use crate ::{Error, Integer};
#[ test]
#[ should_panic = "out of range" ]
fn test_constant_too_small() {
let _ = Integer::constant(-1 _000 _000 _000 _000 _000 );
}
#[ test]
#[ should_panic = "out of range" ]
fn test_constant_too_large() {
let _ = Integer::constant(1 _000 _000 _000 _000 _000 );
}
#[ test]
fn test_conversions() -> Result<(), Error> {
assert_eq!(Integer::MIN, Integer::constant(-999 _999 _999 _999 _999 ));
assert_eq!(Integer::MAX, Integer::constant(999 _999 _999 _999 _999 ));
assert!(Integer::try_from(-1 _000 _000 _000 _000 _000 _i64).is_err());
assert!(Integer::try_from(1 _000 _000 _000 _000 _000 _i64).is_err());
assert_eq!(i8::try_from(Integer::from(123 _i8)), Ok(123 ));
assert_eq!(i16::try_from(Integer::from(123 _i16)), Ok(123 ));
assert_eq!(i32::try_from(Integer::from(123 _i32)), Ok(123 ));
assert_eq!(i64::from(Integer::try_from(123 _i64)?), 123 );
assert_eq!(i128::from(Integer::try_from(123 _i128)?), 123 );
assert_eq!(isize::try_from(Integer::try_from(123 _isize)?), Ok(123 ));
assert_eq!(u8::try_from(Integer::from(123 _u8)), Ok(123 ));
assert_eq!(u16::try_from(Integer::from(123 _u16)), Ok(123 ));
assert_eq!(u32::try_from(Integer::from(123 _u32)), Ok(123 ));
assert_eq!(u64::try_from(Integer::try_from(123 _u64)?), Ok(123 ));
assert_eq!(u128::try_from(Integer::try_from(123 _u128)?), Ok(123 ));
assert_eq!(usize::try_from(Integer::try_from(123 _usize)?), Ok(123 ));
assert_eq!(i8::try_from(Integer::from(-123 _i8)), Ok(-123 ));
assert_eq!(i16::try_from(Integer::from(-123 _i16)), Ok(-123 ));
assert_eq!(i32::try_from(Integer::from(-123 _i32)), Ok(-123 ));
assert_eq!(i64::from(Integer::try_from(-123 _i64)?), -123 );
assert_eq!(i128::from(Integer::try_from(-123 _i128)?), -123 );
assert_eq!(isize::try_from(Integer::try_from(-123 _isize)?), Ok(-123 ));
assert!(u8::try_from(Integer::constant(-123 )).is_err());
assert!(u16::try_from(Integer::constant(-123 )).is_err());
assert!(u32::try_from(Integer::constant(-123 )).is_err());
assert!(u64::try_from(Integer::constant(-123 )).is_err());
assert!(u128::try_from(Integer::constant(-123 )).is_err());
assert!(usize::try_from(Integer::constant(-123 )).is_err());
Ok(())
}
Messung V0.5 in Prozent C=100 H=100 G=100
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-08-25)
¤
*© Formatika GbR, Deutschland