]> gitweb.fperrin.net Git - DictionaryPC.git/blobdiff - src/com/hughes/android/dictionary/DictionaryTest.java
go
[DictionaryPC.git] / src / com / hughes / android / dictionary / DictionaryTest.java
index 806e83627415937bf375139b9f06b2d2b43c3257..60a9cbaefe99abdc021b7fa21b3814b2c1f67292 100755 (executable)
@@ -10,7 +10,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
 import junit.framework.TestCase;\r
 \r
 import com.hughes.android.dictionary.Dictionary.IndexEntry;\r
-import com.hughes.android.dictionary.Dictionary.Language;\r
+import com.hughes.android.dictionary.Dictionary.LanguageData;\r
 import com.hughes.android.dictionary.Dictionary.Row;\r
 \r
 public class DictionaryTest extends TestCase {\r
@@ -21,18 +21,16 @@ public class DictionaryTest extends TestCase {
 \r
 //    final Dictionary goldenDict;\r
     final List<Entry> entries = Arrays.asList(\r
-        new Entry("der Hund", "the dog"),\r
-        new Entry("Die grosse Katze", "The big cat"), \r
-        new Entry("die Katze", "the cat"),\r
-        new Entry("gross", "big"),\r
-        new Entry("Dieb", "thief"),\r
-        new Entry("rennen", "run"));\r
+        Entry.parseFromLine("der Hund :: the dog", false),\r
+        Entry.parseFromLine("Die grosse Katze :: The big cat", false), \r
+        Entry.parseFromLine("die Katze :: the cat", false),\r
+        Entry.parseFromLine("gross :: big", false),\r
+        Entry.parseFromLine("Dieb :: thief", false),\r
+        Entry.parseFromLine("rennen :: run", false));\r
 \r
     {\r
-      final Dictionary dict = new Dictionary("de", "en");\r
-      for (final Entry entry : entries) {\r
-        dict.entries.add(entry);\r
-      }\r
+      final Dictionary dict = new Dictionary(Language.DE, Language.EN);\r
+      dict.entries.addAll(entries);\r
       DictionaryBuilder.createIndex(dict, Entry.LANG1);\r
       DictionaryBuilder.createIndex(dict, Entry.LANG2);\r
       final RandomAccessFile raf = new RandomAccessFile(file, "rw");\r
@@ -47,53 +45,76 @@ public class DictionaryTest extends TestCase {
     \r
     assertEquals(entries, dict.entries);\r
     \r
-    assertEquals("der", dict.languages[0].sortedIndex.get(0).word);\r
-    assertEquals("Die", dict.languages[0].sortedIndex.get(1).word);\r
+    assertEquals("der", dict.languageDatas[0].sortedIndex.get(0).word);\r
+    assertEquals("Die", dict.languageDatas[0].sortedIndex.get(1).word);\r
     \r
-    for (final IndexEntry indexEntry : dict.languages[0].sortedIndex) {\r
+    for (final IndexEntry indexEntry : dict.languageDatas[0].sortedIndex) {\r
       System.out.println(indexEntry);\r
     }\r
 \r
     int rowCount = 0;\r
-    for (final Row row : dict.languages[0].rows) {\r
+    for (final Row row : dict.languageDatas[0].rows) {\r
       if (row.index >= 0) {\r
         System.out.println("  " + rowCount + ":" + dict.entries.get(row.index));\r
       } else {\r
-        System.out.println(rowCount + ":" + dict.languages[0].sortedIndex.get(-row.index - 1));\r
+        System.out.println(rowCount + ":" + dict.languageDatas[0].sortedIndex.get(-row.index - 1));\r
       }\r
       ++rowCount;\r
     }\r
 \r
     for (int l = 0; l <= 1; l++) {\r
-      final Language lang = dict.languages[l];\r
-      for (int i = 0; i < lang.sortedIndex.size(); i++) {\r
-        final IndexEntry indexEntry = lang.sortedIndex.get(i);\r
+      final LanguageData languageData = dict.languageDatas[l];\r
+      for (int i = 0; i < languageData.sortedIndex.size(); i++) {\r
+        final IndexEntry indexEntry = languageData.sortedIndex.get(i);\r
         if (indexEntry.word.toLowerCase().equals("dieb"))\r
           System.out.println();\r
-        final IndexEntry lookedUpEntry = lang.sortedIndex.get(lang.lookup(indexEntry.word, new AtomicBoolean(false)));\r
+        final IndexEntry lookedUpEntry = languageData.sortedIndex.get(languageData.lookup(indexEntry.word, new AtomicBoolean(false)));\r
         if (!indexEntry.word.toLowerCase().equals(lookedUpEntry.word.toLowerCase()))\r
           System.out.println();\r
         assertEquals(indexEntry.word.toLowerCase(), lookedUpEntry.word.toLowerCase());\r
       }\r
     }\r
     \r
-    assertEquals("Die", dict.languages[0].sortedIndex.get(dict.languages[0].lookup("die", new AtomicBoolean())).word);\r
+    assertEquals("Die", dict.languageDatas[0].sortedIndex.get(dict.languageDatas[0].lookup("die", new AtomicBoolean())).word);\r
 \r
   }\r
   \r
   public void testTextNorm() throws IOException {\r
-//    final File file = File.createTempFile("asdf", "asdf");\r
-//    file.deleteOnExit();\r
-\r
-//      final Dictionary goldenDict;\r
     final List<Entry> entries = Arrays.asList(\r
-        new Entry("der Hund", "the dog"),\r
-        new Entry("Die grosse Katze", "The big cat"), \r
-        new Entry("die Katze", "the cat"),\r
-        new Entry("gross", "big"),\r
-        new Entry("Dieb", "thief"),\r
-        new Entry("rennen", "run"));\r
+        Entry.parseFromLine("Hund {m} :: dog", 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("\"...\", 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
+        Entry.parseFromLine("Hauptaugenmerk {m} | sein Hauptaugenmerk richten auf ::  | to focus (one's) attention on", true)\r
+        );\r
+\r
+    assertFalse(entries.contains(null));\r
+\r
+    // Hyphenated words get put both multiple listings.\r
+\r
+    final Dictionary dict = new Dictionary(Language.DE, Language.EN);\r
+    dict.entries.addAll(entries);\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
+      System.out.println("\n" + languageData.language);\r
+      for (int i = 0; i < languageData.sortedIndex.size(); i++) {\r
+        final IndexEntry indexEntry = languageData.sortedIndex.get(i);\r
+        System.out.println(indexEntry);\r
+      }\r
+    }\r
 \r
   }\r
 \r
+\r
 }\r