aboutsummaryrefslogtreecommitdiff
path: root/vendor/encode_unicode/tests/exhaustive.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/encode_unicode/tests/exhaustive.rs')
-rw-r--r--vendor/encode_unicode/tests/exhaustive.rs34
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) )
+ );
+ }
+}