X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Fdictionary%2Fengine%2FLanguageTest.java;h=4f909623678e5498512d834a253911dc10a99599;hb=4d8a2efb83009dbcca069fe9cac7b8e7d2f72161;hp=f42da6ea848448ec9ec96274c9bbad47b2871501;hpb=aab26458fc0a45d2a59d69cb6932090aca3b044f;p=DictionaryPC.git diff --git a/src/com/hughes/android/dictionary/engine/LanguageTest.java b/src/com/hughes/android/dictionary/engine/LanguageTest.java index f42da6e..4f90962 100644 --- a/src/com/hughes/android/dictionary/engine/LanguageTest.java +++ b/src/com/hughes/android/dictionary/engine/LanguageTest.java @@ -17,17 +17,19 @@ package com.hughes.android.dictionary.engine; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.LinkedHashSet; import java.util.List; +import java.util.Set; import junit.framework.TestCase; +import com.hughes.android.dictionary.parser.DictFileParser; +import com.hughes.android.dictionary.parser.wiktionary.WiktionaryLangs; import com.ibm.icu.text.Transliterator; public class LanguageTest extends TestCase { public void testGermanSort() { - System.out.println(Language.isoCodeToWikiName.values()); - final Transliterator normalizer = Transliterator.createFromRules("", Language.de.getDefaultNormalizerRules(), Transliterator.FORWARD); assertEquals("aüääss", normalizer.transform("aueAeAEß")); final List words = Arrays.asList( @@ -108,7 +110,7 @@ public class LanguageTest extends TestCase { public void testLanguage() { assertEquals(Language.de, Language.lookup("de")); assertEquals(Language.en, Language.lookup("en")); - assertEquals("es", Language.lookup("es").getSymbol()); + assertEquals("es", Language.lookup("es").getIsoCode()); } public void testTextNorm() { @@ -121,23 +123,36 @@ public class LanguageTest extends TestCase { assertEquals("kyanpasu", transliterator.transliterate("キャンパス")); assertEquals("alphabetikos katalogos", transliterator.transliterate("Αλφαβητικός Κατάλογος")); assertEquals("biologiceskom", transliterator.transliterate("биологическом")); + } + public void testHalfTextNorm() { + final Transliterator transliterator = Transliterator.createFromRules("", ":: Any-Latin; ' ' > ; :: Lower; ", Transliterator.FORWARD); + assertEquals("kyanpasu", transliterator.transliterate("キャンパス")); + assertEquals("alphabētikóskatálogos", transliterator.transliterate("Αλφαβητικός Κατάλογος")); + assertEquals("biologičeskom", transliterator.transliterate("биологическом")); - + assertEquals("xièxiè", transliterator.transliterate("謝謝")); + assertEquals("xièxiè", transliterator.transliterate("谢谢")); + + assertEquals("diànnǎo", transliterator.transliterate("電腦")); + assertEquals("diànnǎo", transliterator.transliterate("电脑")); + assertEquals("jìsuànjī", transliterator.transliterate("計算機")); + assertEquals("jìsuànjī", transliterator.transliterate("计算机")); } + public void testChinese() { final Language zh = Language.lookup("zh"); final Transliterator transliterator = Transliterator.createFromRules("", zh.getDefaultNormalizerRules(), Transliterator.FORWARD); - assertEquals("xie xie", transliterator.transliterate("謝謝")); - assertEquals("xie xie", transliterator.transliterate("谢谢")); + assertEquals("xiexie", transliterator.transliterate("謝謝")); + assertEquals("xiexie", transliterator.transliterate("谢谢")); - assertEquals("dian nao", transliterator.transliterate("電腦")); - assertEquals("dian nao", transliterator.transliterate("电脑")); - assertEquals("ji suan ji", transliterator.transliterate("計算機")); - assertEquals("ji suan ji", transliterator.transliterate("计算机")); + assertEquals("diannao", transliterator.transliterate("電腦")); + assertEquals("diannao", transliterator.transliterate("电脑")); + assertEquals("jisuanji", transliterator.transliterate("計算機")); + assertEquals("jisuanji", transliterator.transliterate("计算机")); - assertEquals("cheng jiu", transliterator.transliterate("成就")); + assertEquals("chengjiu", transliterator.transliterate("成就")); } @@ -147,8 +162,33 @@ public class LanguageTest extends TestCase { // These don't seem quite right.... assertEquals("haswb", transliterator.transliterate("حاسوب")); assertEquals("kmbywtr", transliterator.transliterate("كمبيوتر")); + + assertEquals("{\u200e كمبيوتر \u200e}", Language.fixBidiText("{كمبيوتر}")); + assertEquals("{a=\u200e كمبيوتر \u200e}", Language.fixBidiText("{a=كمبيوتر}")); + assertEquals("(\u200e كمبيوتر \u200e)", Language.fixBidiText("(كمبيوتر)")); + assertEquals("أنثى أنْثَى (’únθā) {f}, إناث (’ināθ) {p}, اناثى (’anāθā) {p}", Language.fixBidiText("أنثى أنْثَى (’únθā) {f}, إناث (’ināθ) {p}, اناثى (’anāθā) {p}")); + } + public void testThai() { + final Language th = Language.lookup("TH"); + final Transliterator transliterator = Transliterator.createFromRules("", th.getDefaultNormalizerRules(), Transliterator.FORWARD); + // Not sure these are right, just to know... + assertEquals("d", transliterator.transliterate("ด")); + assertEquals("di", transliterator.transliterate("ด ี")); + assertEquals("dii", transliterator.transliterate("ดีี")); + + assertEquals(Collections.singleton("ดีี"), DictFileParser.tokenize("ดีี", DictFileParser.NON_CHAR)); + } + + public void testEnWiktionaryNames() { + final Set enLangs = new LinkedHashSet(WiktionaryLangs.isoCodeToEnWikiName.keySet()); + for (final String code : WiktionaryLangs.isoCodeToEnWikiName.keySet()) { + enLangs.add(code.toLowerCase()); + } + assertEquals(enLangs.toString(), Language.isoCodeToResources.keySet().toString()); + assertEquals(enLangs, Language.isoCodeToResources.keySet()); + } }