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