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