From 961012e9833a304114dcea9956dc132a9b3afed2 Mon Sep 17 00:00:00 2001 From: Simon Sapin Date: Thu, 20 Aug 2015 14:38:46 +0200 Subject: [PATCH] Add a test for char::to_lowercase mapping to more than one `char`. I was wrong about Unicode not having such language-independent mapping. --- src/libcoretest/char.rs | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/src/libcoretest/char.rs b/src/libcoretest/char.rs index e077a0d8fe7f..f03f8e0ee782 100644 --- a/src/libcoretest/char.rs +++ b/src/libcoretest/char.rs @@ -55,28 +55,24 @@ fn test_to_digit() { #[test] 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 + fn lower(c: char) -> Vec { + c.to_lowercase().collect() } - assert_eq!(lower('A'), 'a'); - assert_eq!(lower('Ö'), 'ö'); - assert_eq!(lower('ß'), 'ß'); - assert_eq!(lower('Ü'), 'ü'); - assert_eq!(lower('💩'), '💩'); - assert_eq!(lower('Σ'), 'σ'); - assert_eq!(lower('Τ'), 'τ'); - assert_eq!(lower('Ι'), 'ι'); - assert_eq!(lower('Γ'), 'γ'); - assert_eq!(lower('Μ'), 'μ'); - assert_eq!(lower('Α'), 'α'); - assert_eq!(lower('Σ'), 'σ'); - assert_eq!(lower('Dž'), 'dž'); - assert_eq!(lower('fi'), 'fi'); + assert_eq!(lower('A'), ['a']); + assert_eq!(lower('Ö'), ['ö']); + assert_eq!(lower('ß'), ['ß']); + assert_eq!(lower('Ü'), ['ü']); + assert_eq!(lower('💩'), ['💩']); + assert_eq!(lower('Σ'), ['σ']); + assert_eq!(lower('Τ'), ['τ']); + assert_eq!(lower('Ι'), ['ι']); + assert_eq!(lower('Γ'), ['γ']); + assert_eq!(lower('Μ'), ['μ']); + assert_eq!(lower('Α'), ['α']); + assert_eq!(lower('Σ'), ['σ']); + assert_eq!(lower('Dž'), ['dž']); + assert_eq!(lower('fi'), ['fi']); + assert_eq!(lower('İ'), ['i', '\u{307}']); } #[test]