Test for code point table (dicttool test)
Bug:17097992 Change-Id: I269c9aa86378f32083f8688f4ce91862d47dd181main
parent
9168ab60cf
commit
25c884ba65
|
@ -304,6 +304,39 @@ public class BinaryDictDecoderEncoderTests extends AndroidTestCase {
|
||||||
"unigram with various code points"));
|
"unigram with various code points"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testCharacterTableIsPresent() throws IOException, UnsupportedFormatException {
|
||||||
|
final String[] wordSource = {"words", "used", "for", "testing", "a", "code point", "table"};
|
||||||
|
final List<String> words = Arrays.asList(wordSource);
|
||||||
|
final String correctCodePointTable = "eotdsanirfg bclwup";
|
||||||
|
final String dictName = "codePointTableTest";
|
||||||
|
final String dictVersion = Long.toString(System.currentTimeMillis());
|
||||||
|
final String codePointTableAttribute = DictionaryHeader.CODE_POINT_TABLE_KEY;
|
||||||
|
final File file = new File(dictName);
|
||||||
|
|
||||||
|
// Write a test dictionary
|
||||||
|
final DictEncoder dictEncoder = new Ver2DictEncoder(file,
|
||||||
|
Ver2DictEncoder.CODE_POINT_TABLE_ON);
|
||||||
|
final FormatSpec.FormatOptions formatOptions =
|
||||||
|
new FormatSpec.FormatOptions(
|
||||||
|
FormatSpec.MINIMUM_SUPPORTED_VERSION_OF_CODE_POINT_TABLE);
|
||||||
|
final FusionDictionary sourcedict = new FusionDictionary(new PtNodeArray(),
|
||||||
|
BinaryDictUtils.makeDictionaryOptions(dictName, dictVersion, formatOptions));
|
||||||
|
addUnigrams(words.size(), sourcedict, words, null /* shortcutMap */);
|
||||||
|
dictEncoder.writeDictionary(sourcedict, formatOptions);
|
||||||
|
|
||||||
|
// Read the dictionary
|
||||||
|
final DictDecoder dictDecoder = BinaryDictIOUtils.getDictDecoder(file, 0, file.length(),
|
||||||
|
DictDecoder.USE_BYTEARRAY);
|
||||||
|
final DictionaryHeader fileHeader = dictDecoder.readHeader();
|
||||||
|
// Check if codePointTable is present
|
||||||
|
assertTrue("codePointTable is not present",
|
||||||
|
fileHeader.mDictionaryOptions.mAttributes.containsKey(codePointTableAttribute));
|
||||||
|
final String codePointTable =
|
||||||
|
fileHeader.mDictionaryOptions.mAttributes.get(codePointTableAttribute);
|
||||||
|
// Check if codePointTable is correct
|
||||||
|
assertEquals("codePointTable is incorrect", codePointTable, correctCodePointTable);
|
||||||
|
}
|
||||||
|
|
||||||
// Unit test for CharEncoding.readString and CharEncoding.writeString.
|
// Unit test for CharEncoding.readString and CharEncoding.writeString.
|
||||||
public void testCharEncoding() {
|
public void testCharEncoding() {
|
||||||
// the max length of a word in sWords is less than 50.
|
// the max length of a word in sWords is less than 50.
|
||||||
|
|
Loading…
Reference in New Issue