diff options
Diffstat (limited to 'vendor/encode_unicode/tests/exhaustive.rs')
-rw-r--r-- | vendor/encode_unicode/tests/exhaustive.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/vendor/encode_unicode/tests/exhaustive.rs b/vendor/encode_unicode/tests/exhaustive.rs new file mode 100644 index 0000000..ce60c6b --- /dev/null +++ b/vendor/encode_unicode/tests/exhaustive.rs @@ -0,0 +1,34 @@ +/* Copyright 2018 The encode_unicode Developers + * + * Licensed under the Apache License, Version 2.0, <LICENSE-APACHE or + * http://apache.org/licenses/LICENSE-2.0> or the MIT license <LICENSE-MIT or + * http://opensource.org/licenses/MIT>, at your option. This file may not be + * copied, modified, or distributed except according to those terms. + */ + +//! Tests that try all possible values for at least one parameter / byte / unit +//! of the tested function. + +use std::char; +extern crate encode_unicode; +use encode_unicode::*; + +#[test] +fn from_ascii() { + for cp in 0u32..256 { + assert_eq!(Utf8Char::from_ascii(cp as u8).is_ok(), cp & 0x80 == 0); + if let Ok(u8c) = Utf8Char::from_ascii(cp as u8) { + assert_eq!(u8c, Utf8Char::from(cp as u8 as char)); + } + } +} + +#[test] +fn from_bmp() { + for cp in 0u32..0x1_00_00 { + assert_eq!( + Utf16Char::from_bmp(cp as u16).ok(), + char::from_u32(cp).map(|u32c| Utf16Char::from(u32c) ) + ); + } +} |