From d8b51f180a9c6ced4397ce5568fa8ab553a7143e Mon Sep 17 00:00:00 2001 From: Alexis Bourget Date: Fri, 29 May 2020 03:05:25 +0200 Subject: [PATCH] Added tests for the implementations --- src/libcore/tests/nonzero.rs | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/libcore/tests/nonzero.rs b/src/libcore/tests/nonzero.rs index 0227a66b863..25000998532 100644 --- a/src/libcore/tests/nonzero.rs +++ b/src/libcore/tests/nonzero.rs @@ -1,4 +1,4 @@ -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; @@ -176,3 +176,21 @@ fn test_nonzero_bitor_assign() { 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(()))); +}