1 package com.hughes.android.dictionary.engine;
3 import java.util.ArrayList;
4 import java.util.Arrays;
5 import java.util.Collections;
8 import junit.framework.TestCase;
10 import com.ibm.icu.text.Transliterator;
12 public class LanguageTest extends TestCase {
14 public void testGermanSort() {
15 final Transliterator normalizer = Transliterator.createFromRules("", Language.de.getDefaultNormalizerRules(), Transliterator.FORWARD);
16 assertEquals("aüääss", normalizer.transform("aueAeAEß"));
17 final List<String> words = Arrays.asList(
48 final NormalizeComparator comparator = new NormalizeComparator(normalizer, Language.de.getCollator());
49 assertEquals(1, comparator.compare("hülle", "huelle"));
50 assertEquals(-1, comparator.compare("huelle", "hülle"));
52 assertEquals(-1, comparator.compare("hülle", "Hülle"));
54 assertEquals("hülle", normalizer.transform("Hülle"));
55 assertEquals("hulle", normalizer.transform("Hulle"));
58 final List<String> sorted = new ArrayList<String>(words);
59 // Collections.shuffle(shuffled, new Random(0));
60 Collections.sort(sorted, comparator);
61 System.out.println(sorted.toString());
62 for (int i = 0; i < words.size(); ++i) {
63 System.out.println(words.get(i) + "\t" + sorted.get(i));
64 assertEquals(words.get(i), sorted.get(i));
68 public void testEnglishSort() {
69 final Transliterator normalizer = Transliterator.createFromRules("", Language.en.getDefaultNormalizerRules(), Transliterator.FORWARD);
71 final List<String> words = Arrays.asList(
77 final List<String> sorted = new ArrayList<String>(words);
78 final NormalizeComparator comparator = new NormalizeComparator(normalizer, Language.en.getCollator());
79 Collections.sort(sorted, comparator);
80 for (int i = 0; i < words.size(); ++i) {
82 assertTrue(comparator.compare(words.get(i-1), words.get(i)) < 0);
84 System.out.println(words.get(i) + "\t" + sorted.get(i));
85 assertEquals(words.get(i), sorted.get(i));
88 assertTrue(comparator.compare("pre-print", "preppy") < 0);
92 public void testLanguage() {
93 assertEquals(Language.de, Language.lookup("de"));
94 assertEquals(Language.en, Language.lookup("en"));
95 assertEquals("es", Language.lookup("es").getSymbol());
98 public void testTextNorm() {
99 //final Transliterator transliterator = Transliterator.getInstance("Any-Latin; Upper; Lower; 'oe' > 'o'; NFD; [:Nonspacing Mark:] Remove; NFC", Transliterator.FORWARD);
100 final Transliterator transliterator = Transliterator.createFromRules("", ":: Any-Latin; :: Upper; :: Lower; 'oe' > 'o'; :: NFD; :: [:Nonspacing Mark:] Remove; :: NFC ;", Transliterator.FORWARD);
101 assertEquals("hoschen", transliterator.transliterate("Höschen"));
102 assertEquals("hoschen", transliterator.transliterate("Hoeschen"));
103 assertEquals("grosspoo", transliterator.transliterate("Großpoo"));
105 assertEquals("kyanpasu", transliterator.transliterate("キャンパス"));
106 assertEquals("alphabetikos katalogos", transliterator.transliterate("Αλφαβητικός Κατάλογος"));
107 assertEquals("biologiceskom", transliterator.transliterate("биологическом"));