1 /* Copyright 2018 The encode_unicode Developers
2  *
3  * Licensed under the Apache License, Version 2.0, <LICENSE-APACHE or
4  * http://apache.org/licenses/LICENSE-2.0> or the MIT license <LICENSE-MIT or
5  * http://opensource.org/licenses/MIT>, at your option. This file may not be
6  * copied, modified, or distributed except according to those terms.
7  */
8 
9 //! Tests that try all possible values for at least one parameter / byte / unit
10 //! of the tested function.
11 
12 use std::char;
13 extern crate encode_unicode;
14 use encode_unicode::*;
15 
16 #[test]
from_ascii()17 fn from_ascii() {
18     for cp in 0u32..256 {
19         assert_eq!(Utf8Char::from_ascii(cp as u8).is_ok(), cp & 0x80 == 0);
20         if let Ok(u8c) = Utf8Char::from_ascii(cp as u8) {
21             assert_eq!(u8c, Utf8Char::from(cp as u8 as char));
22         }
23     }
24 }
25 
26 #[test]
from_bmp()27 fn from_bmp() {
28     for cp in 0u32..0x1_00_00 {
29         assert_eq!(
30             Utf16Char::from_bmp(cp as u16).ok(),
31             char::from_u32(cp).map(|u32c| Utf16Char::from(u32c) )
32         );
33     }
34 }
35