Source code

Revision control

Copy as Markdown

Other Tools

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(())
}