public void testVer2DictGetWordProperty() { final FormatOptions formatOptions = BinaryDictUtils.VERSION2_OPTIONS; final ArrayList<String> words = sWords; final HashMap<String, List<String>> shortcuts = sShortcuts; final String dictName = "testGetWordProperty"; final String dictVersion = Long.toString(System.currentTimeMillis()); final FusionDictionary dict = new FusionDictionary( new PtNodeArray(), BinaryDictUtils.makeDictionaryOptions(dictName, dictVersion, formatOptions)); addUnigrams(words.size(), dict, words, shortcuts); addBigrams(dict, words, sEmptyBigrams); final File file = BinaryDictUtils.getDictFile( dictName, dictVersion, formatOptions, getContext().getCacheDir()); file.delete(); timeWritingDictToFile(file, dict, formatOptions); final BinaryDictionary binaryDictionary = new BinaryDictionary( file.getAbsolutePath(), 0 /* offset */, file.length(), true /* useFullEditDistance */, Locale.ENGLISH, dictName, false /* isUpdatable */); for (final String word : words) { final WordProperty wordProperty = binaryDictionary.getWordProperty(word, false /* isBeginningOfSentence */); assertEquals(word, wordProperty.mWord); assertEquals(UNIGRAM_FREQ, wordProperty.getProbability()); if (shortcuts.containsKey(word)) { assertEquals(shortcuts.get(word).size(), wordProperty.mShortcutTargets.size()); final List<String> shortcutList = shortcuts.get(word); assertTrue(wordProperty.mHasShortcuts); for (final WeightedString shortcutTarget : wordProperty.mShortcutTargets) { assertTrue(shortcutList.contains(shortcutTarget.mWord)); assertEquals(UNIGRAM_FREQ, shortcutTarget.getProbability()); shortcutList.remove(shortcutTarget.mWord); } assertTrue(shortcutList.isEmpty()); } } }