TransliteratorTest.java revision 17552b6592aeaaa564725a07e10e8c4b1c8163cb
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 19import android.icu.text.Transliterator; 20 21import java.util.Enumeration; 22 23public class TransliteratorTest extends junit.framework.TestCase { 24 public void testAll() throws Exception { 25 Enumeration<String> ids = Transliterator.getAvailableIDs(); 26 while (ids.hasMoreElements()) { 27 String id = ids.nextElement(); 28 System.err.println(id); 29 Transliterator t = Transliterator.getInstance(id); 30 t.transliterate("hello"); 31 } 32 } 33 34 public void test_Unknown() throws Exception { 35 try { 36 Transliterator t = Transliterator.getInstance("Unknown"); 37 fail(); 38 } catch (RuntimeException expected) { 39 } 40 } 41 42 public void test_null_id() throws Exception { 43 try { 44 Transliterator t = Transliterator.getInstance(null); 45 fail(); 46 } catch (NullPointerException expected) { 47 } 48 } 49 50 public void test_Any_Upper() throws Exception { 51 Transliterator t = Transliterator.getInstance("Any-Upper"); 52 assertEquals("HELLO WORLD!", t.transliterate("HeLlO WoRlD!")); 53 assertEquals("STRASSE", t.transliterate("Straße")); 54 } 55 56 public void test_Any_Lower() throws Exception { 57 Transliterator t = Transliterator.getInstance("Any-Lower"); 58 assertEquals("hello world!", t.transliterate("HeLlO WoRlD!")); 59 } 60 61 public void test_Greek_Latin() throws Exception { 62 String greek = "Καλημέρα κόσμε!"; 63 64 // Transliterate Greek to Latin, then to plain ASCII. 65 Transliterator t = Transliterator.getInstance("Greek-Latin"); 66 String latin = t.transliterate(greek); 67 t = Transliterator.getInstance("Latin-Ascii"); 68 String ascii = t.transliterate(latin); 69 assertEquals("Kalēméra kósme!", latin); 70 assertEquals("Kalemera kosme!", ascii); 71 72 // Use alternative transliteration variants. 73 t = Transliterator.getInstance("Greek-Latin/BGN"); 74 assertEquals("Kaliméra kósme!", t.transliterate(greek)); 75 t = Transliterator.getInstance("Greek-Latin/UNGEGN"); 76 assertEquals("Kali̱méra kósme!",t.transliterate(greek)); 77 } 78 79 public void test_Han_Latin() throws Exception { 80 Transliterator t = Transliterator.getInstance("Han-Latin"); 81 assertEquals("hàn zì/hàn zì", t.transliterate("汉字/漢字")); 82 83 assertEquals("chén", t.transliterate("\u6c88")); 84 assertEquals("shěn", t.transliterate("\u700b")); 85 assertEquals("jiǎ", t.transliterate("\u8d3e")); 86 87 t = Transliterator.getInstance("Han-Latin/Names"); 88 assertEquals("shěn", t.transliterate("\u6c88")); 89 assertEquals("shěn", t.transliterate("\u700b")); 90 assertEquals("jiǎ", t.transliterate("\u8d3e")); 91 92 t = Transliterator.getInstance("Han-Latin/Names; Latin-Ascii; Any-Upper"); 93 assertEquals("SHEN", t.transliterate("\u6c88")); 94 assertEquals("SHEN", t.transliterate("\u700b")); 95 assertEquals("JIA", t.transliterate("\u8d3e")); 96 } 97} 98