import java.util.ArrayList;\r
import java.util.Arrays;\r
import java.util.Collections;\r
+import java.util.LinkedHashSet;\r
import java.util.List;\r
-import java.util.Random;\r
+import java.util.Set;\r
import java.util.concurrent.atomic.AtomicBoolean;\r
\r
import junit.framework.TestCase;\r
}\r
\r
public void testTextNorm() throws IOException {\r
+ System.out.println("\n\ntestTextNorm");\r
final List<Entry> entries = Arrays.asList(\r
Entry.parseFromLine("Hund {m} :: dog", true),\r
+ Entry.parseFromLine("'CHRISTOS' :: doh", true),\r
Entry.parseFromLine("\"Pick-up\"-Presse {f} :: baler", true),\r
Entry.parseFromLine("(Ach was), echt? [auch ironisch] :: No shit! [also ironic]", true),\r
Entry.parseFromLine("(akuter) Myokardinfarkt {m} <AMI / MI> :: (acute) myocardial infarction <AMI / MI>", true),\r
Entry.parseFromLine("(reine) Vermutung {f} :: guesswork", true),\r
Entry.parseFromLine("(mit) 6:1 vorne liegen :: to be 6-1 up [football]", true),\r
Entry.parseFromLine("(auf) den Knopf drücken [auch fig.: auslösen] :: to push the button [also fig.: initiate]", false),\r
- Entry.parseFromLine("Adjektiv {n} /Adj./; Eigenschaftswort {n} [gramm.] | Adjektive {pl}; Eigenschaftswörter {pl} :: adjective /adj./ | adjectives", true),\r
- Entry.parseFromLine("Älteste {m,f}; Ältester :: oldest; eldest", true),\r
+ Entry.parseFromLine("Adjektiv {n} /Adj./; Eigenschaftswort {n} [gramm.] | Adjektive {pl}; Eigenschaftswoerter {pl} :: adjective /adj./ | adjectives", true),\r
+ Entry.parseFromLine("Älteste {m,f}; Ältester :: oldest; eldest", true),\r
Entry.parseFromLine("\"...\", schloss er an. :: '...,' he added.", true),\r
Entry.parseFromLine("besonderer | besondere | besonderes :: extra", false),\r
Entry.parseFromLine("| zu Pferde; zu Pferd | reiten :: horseback | on horseback | go on horseback", true),\r
);\r
\r
assertFalse(entries.contains(null));\r
-\r
+ \r
// Hyphenated words get put both multiple listings.\r
\r
final Dictionary dict = new Dictionary("test", Language.DE, Language.EN);\r
DictionaryBuilder.createIndex(dict, Entry.LANG1);\r
DictionaryBuilder.createIndex(dict, Entry.LANG2);\r
\r
- for (int l = 0; l <= 1; l++) {\r
- final LanguageData languageData = dict.languageDatas[l];\r
+ for (int lang = 0; lang <= 1; lang++) {\r
+ final LanguageData languageData = dict.languageDatas[lang];\r
System.out.println("\n" + languageData.language);\r
+ final Set<String> words = new LinkedHashSet<String>();\r
for (int i = 0; i < languageData.sortedIndex.size(); i++) {\r
final IndexEntry indexEntry = languageData.sortedIndex.get(i);\r
System.out.println(indexEntry);\r
+ words.add(indexEntry.word);\r
+ }\r
+ if (lang == 0) {\r
+ assertTrue(words.contains("CHRISTOS"));\r
+ assertTrue(words.contains("akuter"));\r
+ } else {\r
+ assertTrue(words.contains("6-1"));\r
}\r
}\r
\r
}\r
\r
public void testGermanSort() {\r
- assertEquals("grosformat", Language.DE.normalizeTokenForSort("Grosformat"));\r
+ assertEquals("aüÄ", Language.DE.textNorm("aueAe"));\r
final List<String> words = Arrays.asList(\r
- "er-ben",\r
"erben",\r
"Erben",\r
+ "er-ben",\r
"Erbse",\r
"Erbsen",\r
"essen",\r
"Großpoos",\r
"hulle",\r
"Hulle",\r
- "Hum",\r
+ "hülle",\r
"huelle",\r
+ "Hülle",\r
"Huelle",\r
- "hülle",\r
- "Hülle"\r
+ "Hum"\r
);\r
+ assertEquals(0, Language.DE.sortComparator.compare("hülle", "huelle"));\r
+ assertEquals(0, Language.DE.sortComparator.compare("huelle", "hülle"));\r
+ \r
+ assertEquals(-1, Language.DE.sortComparator.compare("hülle", "Hülle"));\r
+ assertEquals(0, Language.DE.findComparator.compare("hülle", "Hülle"));\r
+ assertEquals(-1, Language.DE.findComparator.compare("hulle", "Hülle"));\r
+\r
+ \r
for (final String s : words) {\r
- System.out.println(s + "\t" + Language.DE.normalizeTokenForSort(s));\r
+ System.out.println(s + "\t" + Language.DE.textNorm(s));\r
}\r
- final List<String> shuffled = new ArrayList<String>(words);\r
- Collections.shuffle(shuffled, new Random(0));\r
- Collections.sort(shuffled, Language.DE.tokenComparator);\r
- System.out.println(shuffled.toString());\r
+ final List<String> sorted = new ArrayList<String>(words);\r
+// Collections.shuffle(shuffled, new Random(0));\r
+ Collections.sort(sorted, Language.DE.sortComparator);\r
+ System.out.println(sorted.toString());\r
for (int i = 0; i < words.size(); ++i) {\r
- assertEquals(words.get(i), shuffled.get(i));\r
+ System.out.println(words.get(i) + "\t" + sorted.get(i));\r
+ assertEquals(words.get(i), sorted.get(i));\r
}\r
}\r
\r
-\r
}\r