TransliteratorTest.java revision 1c025319e6fea7b68817a59f0a103dcf02672c8d
1/* 2 * Copyright (C) 2013 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package libcore.icu; 18 19public class TransliteratorTest extends junit.framework.TestCase { 20 public void testAll() throws Exception { 21 for (String id : Transliterator.getAvailableIDs()) { 22 System.err.println(id); 23 Transliterator t = new Transliterator(id); 24 t.transliterate("hello"); 25 } 26 } 27 28 public void test_Unknown() throws Exception { 29 try { 30 Transliterator t = new Transliterator("Unknown"); 31 fail(); 32 } catch (RuntimeException expected) { 33 } 34 } 35 36 public void test_null_id() throws Exception { 37 try { 38 Transliterator t = new Transliterator(null); 39 fail(); 40 } catch (NullPointerException expected) { 41 } 42 } 43 44 public void test_null_string() throws Exception { 45 try { 46 Transliterator t = new Transliterator("Any-Upper"); 47 t.transliterate(null); 48 fail(); 49 } catch (NullPointerException expected) { 50 } 51 } 52 53 public void test_Any_Upper() throws Exception { 54 Transliterator t = new Transliterator("Any-Upper"); 55 assertEquals("HELLO WORLD!", t.transliterate("HeLlO WoRlD!")); 56 assertEquals("STRASSE", t.transliterate("Straße")); 57 } 58 59 public void test_Any_Lower() throws Exception { 60 Transliterator t = new Transliterator("Any-Lower"); 61 assertEquals("hello world!", t.transliterate("HeLlO WoRlD!")); 62 } 63 64 public void test_Greek_Latin() throws Exception { 65 String greek = "Καλημέρα κόσμε!"; 66 67 // Transliterate Greek to Latin, then to plain ASCII. 68 Transliterator t = new Transliterator("Greek-Latin"); 69 String latin = t.transliterate(greek); 70 t = new Transliterator("Latin-Ascii"); 71 String ascii = t.transliterate(latin); 72 assertEquals("Kalēméra kósme!", latin); 73 assertEquals("Kalemera kosme!", ascii); 74 75 // Use alternative transliteration variants. 76 t = new Transliterator("Greek-Latin/BGN"); 77 assertEquals("Kaliméra kósme!", t.transliterate(greek)); 78 t = new Transliterator("Greek-Latin/UNGEGN"); 79 assertEquals("Kali̱méra kósme!",t.transliterate(greek)); 80 } 81 82 public void test_Han_Latin() throws Exception { 83 Transliterator t = new Transliterator("Han-Latin"); 84 assertEquals("hàn zì/hàn zì", t.transliterate("汉字/漢字")); 85 86 assertEquals("chén", t.transliterate("\u6c88")); 87 assertEquals("shěn", t.transliterate("\u700b")); 88 assertEquals("jiǎ", t.transliterate("\u8d3e")); 89 90 t = new Transliterator("Han-Latin/Names"); 91 assertEquals("shěn", t.transliterate("\u6c88")); 92 assertEquals("shěn", t.transliterate("\u700b")); 93 assertEquals("jǐa", t.transliterate("\u8d3e")); 94 95 t = new Transliterator("Han-Latin/Names; Latin-Ascii; Any-Upper"); 96 assertEquals("SHEN", t.transliterate("\u6c88")); 97 assertEquals("SHEN", t.transliterate("\u700b")); 98 assertEquals("JIA", t.transliterate("\u8d3e")); 99 } 100} 101