-use core::num::{IntErrorKind, NonZeroI32, NonZeroI8, NonZeroU32, NonZeroU8};
+use core::num::{TryFromIntError, IntErrorKind, NonZeroI32, NonZeroI8, NonZeroU32, NonZeroU8};
use core::option::Option::{self, None, Some};
use std::mem::size_of;
target |= 0;
assert_eq!(target.get(), 0b1011_1111);
}
+
+#[test]
+fn test_nonzero_from_int_on_success() {
+ assert_eq!(NonZeroU8::try_from(5), Ok(NonZeroU8::new(5)));
+ assert_eq!(NonZeroU32::try_from(5), Ok(NonZeroU32::new(5)));
+
+ assert_eq!(NonZeroI8::try_from(-5), Ok(NonZeroI8::new(-5)));
+ assert_eq!(NonZeroI32::try_from(-5), Ok(NonZeroI32::new(-5)));
+}
+
+#[test]
+fn test_nonzero_from_int_on_err() {
+ assert_eq!(NonZeroU8::try_from(0), Err(TryFromIntError(())));
+ assert_eq!(NonZeroU32::try_from(0), Err(TryFromIntError(())));
+
+ assert_eq!(NonZeroI8::try_from(0), Err(TryFromIntError(())));
+ assert_eq!(NonZeroI32::try_from(0), Err(TryFromIntError(())));
+}