X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Fdictionary%2Fengine%2FLanguageTest.java;h=ee0b227e22bf764ba52e212fe9efa38d62a47e8a;hb=2e061186ff677f3089ca032e6a56395e01de7bb2;hp=692bc41428d1de9e1fc6d4974bc5d1aba8be57b8;hpb=7a92ccdd05dd743436685455f7513d32e9b6c80f;p=DictionaryPC.git diff --git a/src/com/hughes/android/dictionary/engine/LanguageTest.java b/src/com/hughes/android/dictionary/engine/LanguageTest.java index 692bc41..ee0b227 100644 --- a/src/com/hughes/android/dictionary/engine/LanguageTest.java +++ b/src/com/hughes/android/dictionary/engine/LanguageTest.java @@ -17,17 +17,18 @@ 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.enwiktionary.EnWiktionaryLangs; 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 +109,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() { @@ -122,7 +123,59 @@ public class LanguageTest extends TestCase { 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("xiexie", transliterator.transliterate("謝謝")); + assertEquals("xiexie", transliterator.transliterate("谢谢")); + + assertEquals("diannao", transliterator.transliterate("電腦")); + assertEquals("diannao", transliterator.transliterate("电脑")); + assertEquals("jisuanji", transliterator.transliterate("計算機")); + assertEquals("jisuanji", transliterator.transliterate("计算机")); + + assertEquals("chengjiu", transliterator.transliterate("成就")); + + } + + public void testArabic() { + final Language ar = Language.lookup("ar"); + final Transliterator transliterator = Transliterator.createFromRules("", ar.getDefaultNormalizerRules(), Transliterator.FORWARD); + // 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 testEnWiktionaryNames() { + final Set enLangs = new LinkedHashSet(EnWiktionaryLangs.isoCodeToWikiName.keySet()); + for (final String code : EnWiktionaryLangs.isoCodeToWikiName.keySet()) { + enLangs.add(code.toLowerCase()); + } + assertEquals(enLangs.toString(), Language.isoCodeToResources.keySet().toString()); + assertEquals(enLangs, Language.isoCodeToResources.keySet()); + } }