+package com.hughes.android.dictionary;\r
+\r
+import java.io.IOException;\r
+import java.io.RandomAccessFile;\r
+import java.util.LinkedHashSet;\r
+import java.util.Set;\r
+\r
+import junit.framework.TestCase;\r
+\r
+import com.hughes.android.dictionary.Index.Node;\r
+import com.hughes.util.FileUtil;\r
+\r
+public class IndexTest extends TestCase {\r
+\r
+ static final String file = "c:\\dict-de-en.txt";\r
+ static final String file_index = file + "_index_0";\r
+ \r
+ public void testLookup() throws IOException {\r
+ System.out.println("testLookup");\r
+ final Index index = new Index(file_index);\r
+ final Node node = index.lookup("handhubwagen");\r
+ assertNotNull(node);\r
+ \r
+ final RandomAccessFile raf = new RandomAccessFile(file, "r");\r
+ for (int i = 0; i < node.offsets.length; ++i) {\r
+ final String entry = FileUtil.readLine(raf, node.offsets[i]);\r
+ System.out.println(entry);\r
+ assertTrue(entry.toLowerCase().contains("handhubwagen"));\r
+ }\r
+ }\r
+\r
+ public void testGetDescendantOffsets() throws IOException {\r
+ System.out.println("testGetDescendantOffsets");\r
+ final Index index = new Index(file_index);\r
+ \r
+ final Node node = index.lookup("handhebe");\r
+ assertNotNull(node);\r
+ assertEquals("handhebel", node.text);\r
+ final Set<Integer> offsets = new LinkedHashSet<Integer>();\r
+ node.getDescendantEntryOffsets(offsets, 10);\r
+ final RandomAccessFile raf = new RandomAccessFile(file, "r");\r
+ for (final Integer offset : offsets) {\r
+ final String entry = FileUtil.readLine(raf, offset);\r
+ System.out.println(entry);\r
+ assertTrue(entry.toLowerCase().contains(node.text));\r
+ }\r
+ }\r
+\r
+}\r