about summary refs log tree commit diff
path: root/src/libcoretest
diff options
context:
space:
mode:
authorSimon Sapin <simon.sapin@exyr.org>2015-06-09 11:37:08 +0200
committerSimon Sapin <simon.sapin@exyr.org>2015-06-09 13:08:22 +0200
commitc6a8d5e73308c6adb26807cfa1dc20f28b364009 (patch)
tree91552c5be31747563735c9368c40f12e3db90435 /src/libcoretest
parentc57a4124ff6eeb848a537d0591235fa6e56f1cf7 (diff)
downloadrust-c6a8d5e73308c6adb26807cfa1dc20f28b364009.tar.gz
rust-c6a8d5e73308c6adb26807cfa1dc20f28b364009.zip
Fix coretest::char::test_to_uppercase for complex mapping
Diffstat (limited to 'src/libcoretest')
-rw-r--r--src/libcoretest/char.rs35
1 files changed, 17 insertions, 18 deletions
diff --git a/src/libcoretest/char.rs b/src/libcoretest/char.rs
index b73807aa317..e5f5919834b 100644
--- a/src/libcoretest/char.rs
+++ b/src/libcoretest/char.rs
@@ -58,6 +58,8 @@ fn test_to_lowercase() {
     fn lower(c: char) -> char {
         let mut it = c.to_lowercase();
         let c = it.next().unwrap();
+        // As of Unicode version 7.0.0, `SpecialCasing.txt` has no lower-case mapping
+        // to multiple code points.
         assert!(it.next().is_none());
         c
     }
@@ -77,25 +79,22 @@ fn test_to_lowercase() {
 
 #[test]
 fn test_to_uppercase() {
-    fn upper(c: char) -> char {
-        let mut it = c.to_uppercase();
-        let c = it.next().unwrap();
-        assert!(it.next().is_none());
-        c
+    fn upper(c: char) -> Vec<char> {
+        c.to_uppercase().collect()
     }
-    assert_eq!(upper('a'), 'A');
-    assert_eq!(upper('ö'), 'Ö');
-    assert_eq!(upper('ß'), 'ß'); // not ẞ: Latin capital letter sharp s
-    assert_eq!(upper('ü'), 'Ü');
-    assert_eq!(upper('💩'), '💩');
-
-    assert_eq!(upper('σ'), 'Σ');
-    assert_eq!(upper('τ'), 'Τ');
-    assert_eq!(upper('ι'), 'Ι');
-    assert_eq!(upper('γ'), 'Γ');
-    assert_eq!(upper('μ'), 'Μ');
-    assert_eq!(upper('α'), 'Α');
-    assert_eq!(upper('ς'), 'Σ');
+    assert_eq!(upper('a'), ['A']);
+    assert_eq!(upper('ö'), ['Ö']);
+    assert_eq!(upper('ß'), ['S', 'S']); // not ẞ: Latin capital letter sharp s
+    assert_eq!(upper('ü'), ['Ü']);
+    assert_eq!(upper('💩'), ['💩']);
+
+    assert_eq!(upper('σ'), ['Σ']);
+    assert_eq!(upper('τ'), ['Τ']);
+    assert_eq!(upper('ι'), ['Ι']);
+    assert_eq!(upper('γ'), ['Γ']);
+    assert_eq!(upper('μ'), ['Μ']);
+    assert_eq!(upper('α'), ['Α']);
+    assert_eq!(upper('ς'), ['Σ']);
 }
 
 #[test]