]> gitweb.fperrin.net Git - DictionaryPC.git/blob - src/com/hughes/android/dictionary/DictionaryTest.java
806e83627415937bf375139b9f06b2d2b43c3257
[DictionaryPC.git] / src / com / hughes / android / dictionary / DictionaryTest.java
1 package com.hughes.android.dictionary;\r
2 \r
3 import java.io.File;\r
4 import java.io.IOException;\r
5 import java.io.RandomAccessFile;\r
6 import java.util.Arrays;\r
7 import java.util.List;\r
8 import java.util.concurrent.atomic.AtomicBoolean;\r
9 \r
10 import junit.framework.TestCase;\r
11 \r
12 import com.hughes.android.dictionary.Dictionary.IndexEntry;\r
13 import com.hughes.android.dictionary.Dictionary.Language;\r
14 import com.hughes.android.dictionary.Dictionary.Row;\r
15 \r
16 public class DictionaryTest extends TestCase {\r
17 \r
18   public void testDictionary() throws IOException {\r
19     final File file = File.createTempFile("asdf", "asdf");\r
20     file.deleteOnExit();\r
21 \r
22 //    final Dictionary goldenDict;\r
23     final List<Entry> entries = Arrays.asList(\r
24         new Entry("der Hund", "the dog"),\r
25         new Entry("Die grosse Katze", "The big cat"), \r
26         new Entry("die Katze", "the cat"),\r
27         new Entry("gross", "big"),\r
28         new Entry("Dieb", "thief"),\r
29         new Entry("rennen", "run"));\r
30 \r
31     {\r
32       final Dictionary dict = new Dictionary("de", "en");\r
33       for (final Entry entry : entries) {\r
34         dict.entries.add(entry);\r
35       }\r
36       DictionaryBuilder.createIndex(dict, Entry.LANG1);\r
37       DictionaryBuilder.createIndex(dict, Entry.LANG2);\r
38       final RandomAccessFile raf = new RandomAccessFile(file, "rw");\r
39       dict.write(raf);\r
40       raf.close();\r
41       \r
42 //      goldenDict = dict;\r
43     }\r
44 \r
45     final RandomAccessFile raf = new RandomAccessFile(file, "r");\r
46     final Dictionary dict = new Dictionary(raf);\r
47     \r
48     assertEquals(entries, dict.entries);\r
49     \r
50     assertEquals("der", dict.languages[0].sortedIndex.get(0).word);\r
51     assertEquals("Die", dict.languages[0].sortedIndex.get(1).word);\r
52     \r
53     for (final IndexEntry indexEntry : dict.languages[0].sortedIndex) {\r
54       System.out.println(indexEntry);\r
55     }\r
56 \r
57     int rowCount = 0;\r
58     for (final Row row : dict.languages[0].rows) {\r
59       if (row.index >= 0) {\r
60         System.out.println("  " + rowCount + ":" + dict.entries.get(row.index));\r
61       } else {\r
62         System.out.println(rowCount + ":" + dict.languages[0].sortedIndex.get(-row.index - 1));\r
63       }\r
64       ++rowCount;\r
65     }\r
66 \r
67     for (int l = 0; l <= 1; l++) {\r
68       final Language lang = dict.languages[l];\r
69       for (int i = 0; i < lang.sortedIndex.size(); i++) {\r
70         final IndexEntry indexEntry = lang.sortedIndex.get(i);\r
71         if (indexEntry.word.toLowerCase().equals("dieb"))\r
72           System.out.println();\r
73         final IndexEntry lookedUpEntry = lang.sortedIndex.get(lang.lookup(indexEntry.word, new AtomicBoolean(false)));\r
74         if (!indexEntry.word.toLowerCase().equals(lookedUpEntry.word.toLowerCase()))\r
75           System.out.println();\r
76         assertEquals(indexEntry.word.toLowerCase(), lookedUpEntry.word.toLowerCase());\r
77       }\r
78     }\r
79     \r
80     assertEquals("Die", dict.languages[0].sortedIndex.get(dict.languages[0].lookup("die", new AtomicBoolean())).word);\r
81 \r
82   }\r
83   \r
84   public void testTextNorm() throws IOException {\r
85 //    final File file = File.createTempFile("asdf", "asdf");\r
86 //    file.deleteOnExit();\r
87 \r
88 //      final Dictionary goldenDict;\r
89     final List<Entry> entries = Arrays.asList(\r
90         new Entry("der Hund", "the dog"),\r
91         new Entry("Die grosse Katze", "The big cat"), \r
92         new Entry("die Katze", "the cat"),\r
93         new Entry("gross", "big"),\r
94         new Entry("Dieb", "thief"),\r
95         new Entry("rennen", "run"));\r
96 \r
97   }\r
98 \r
99 }\r