From b868375763de60d1a1ff6fa21b121cc1b61df842 Mon Sep 17 00:00:00 2001 From: Jean Chalard Date: Mon, 16 Dec 2013 14:17:33 +0900 Subject: [PATCH] Fix failing tests - Version 3 is not supported - Now passing the right string to open v4 dicts. Fix the tests for this. Change-Id: I7829330c3568a715b96396ba4e4e69c6e17775ab --- .../latin/makedict/FormatSpec.java | 1 - .../latin/makedict/Ver2DictEncoder.java | 2 +- .../latin/makedict/Ver4DictEncoder.java | 3 +- .../BinaryDictDecoderEncoderTests.java | 28 ++++++------------- .../makedict/BinaryDictIOUtilsTests.java | 12 ++------ .../latin/makedict/BinaryDictUtils.java | 16 +++++------ .../latin/dicttool/DictionaryMaker.java | 3 -- 7 files changed, 22 insertions(+), 43 deletions(-) diff --git a/java/src/com/android/inputmethod/latin/makedict/FormatSpec.java b/java/src/com/android/inputmethod/latin/makedict/FormatSpec.java index f23fe4656..2f6f194aa 100644 --- a/java/src/com/android/inputmethod/latin/makedict/FormatSpec.java +++ b/java/src/com/android/inputmethod/latin/makedict/FormatSpec.java @@ -188,7 +188,6 @@ public final class FormatSpec { // us to change the format during development while having testing devices remove // older files with each upgrade, while still having a readable versioning scheme. public static final int VERSION2 = 2; - public static final int VERSION3 = 3; public static final int VERSION4 = 400; static final int MINIMUM_SUPPORTED_VERSION = VERSION2; static final int MAXIMUM_SUPPORTED_VERSION = VERSION4; diff --git a/java/src/com/android/inputmethod/latin/makedict/Ver2DictEncoder.java b/java/src/com/android/inputmethod/latin/makedict/Ver2DictEncoder.java index 665544228..e5430423d 100644 --- a/java/src/com/android/inputmethod/latin/makedict/Ver2DictEncoder.java +++ b/java/src/com/android/inputmethod/latin/makedict/Ver2DictEncoder.java @@ -68,7 +68,7 @@ public class Ver2DictEncoder implements DictEncoder { @Override public void writeDictionary(final FusionDictionary dict, final FormatOptions formatOptions) throws IOException, UnsupportedFormatException { - if (formatOptions.mVersion > FormatSpec.VERSION3) { + if (formatOptions.mVersion > FormatSpec.VERSION2) { throw new UnsupportedFormatException( "The given format options has wrong version number : " + formatOptions.mVersion); diff --git a/java/src/com/android/inputmethod/latin/makedict/Ver4DictEncoder.java b/java/src/com/android/inputmethod/latin/makedict/Ver4DictEncoder.java index a746f9945..8eaee4d9f 100644 --- a/java/src/com/android/inputmethod/latin/makedict/Ver4DictEncoder.java +++ b/java/src/com/android/inputmethod/latin/makedict/Ver4DictEncoder.java @@ -56,7 +56,8 @@ public class Ver4DictEncoder implements DictEncoder { } if (!BinaryDictionary.createEmptyDictFile(mDictPlacedDir.getAbsolutePath(), FormatSpec.VERSION4, dict.mOptions.mAttributes)) { - throw new IOException("Cannot create dictionary file"); + throw new IOException("Cannot create dictionary file : " + + mDictPlacedDir.getAbsolutePath()); } final BinaryDictionary binaryDict = new BinaryDictionary(mDictPlacedDir.getAbsolutePath(), 0l, mDictPlacedDir.length(), true /* useFullEditDistance */, diff --git a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java index aff045c2b..f52f5e73c 100644 --- a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java +++ b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java @@ -169,8 +169,7 @@ public class BinaryDictDecoderEncoderTests extends AndroidTestCase { long now = -1, diff = -1; try { - final DictEncoder dictEncoder = BinaryDictUtils.getDictEncoder(file, formatOptions, - getContext().getCacheDir()); + final DictEncoder dictEncoder = BinaryDictUtils.getDictEncoder(file, formatOptions); now = System.currentTimeMillis(); // If you need to dump the dict to a textual file, uncomment the line below and the @@ -316,7 +315,7 @@ public class BinaryDictDecoderEncoderTests extends AndroidTestCase { runReadAndWriteTests(results, BinaryDictUtils.USE_BYTE_BUFFER, BinaryDictUtils.VERSION2_OPTIONS); runReadAndWriteTests(results, BinaryDictUtils.USE_BYTE_BUFFER, - BinaryDictUtils.VERSION3_OPTIONS); + BinaryDictUtils.VERSION4_OPTIONS_WITHOUT_TIMESTAMP); runReadAndWriteTests(results, BinaryDictUtils.USE_BYTE_BUFFER, BinaryDictUtils.VERSION4_OPTIONS_WITH_TIMESTAMP); @@ -331,7 +330,7 @@ public class BinaryDictDecoderEncoderTests extends AndroidTestCase { runReadAndWriteTests(results, BinaryDictUtils.USE_BYTE_ARRAY, BinaryDictUtils.VERSION2_OPTIONS); runReadAndWriteTests(results, BinaryDictUtils.USE_BYTE_ARRAY, - BinaryDictUtils.VERSION3_OPTIONS); + BinaryDictUtils.VERSION4_OPTIONS_WITHOUT_TIMESTAMP); runReadAndWriteTests(results, BinaryDictUtils.USE_BYTE_ARRAY, BinaryDictUtils.VERSION4_OPTIONS_WITH_TIMESTAMP); @@ -390,8 +389,6 @@ public class BinaryDictDecoderEncoderTests extends AndroidTestCase { private long timeAndCheckReadUnigramsAndBigramsBinary(final File file, final List words, final SparseArray> bigrams, final int bufferType) { - FileInputStream inStream = null; - final TreeMap resultWords = CollectionUtils.newTreeMap(); final TreeMap> resultBigrams = CollectionUtils.newTreeMap(); @@ -407,14 +404,6 @@ public class BinaryDictDecoderEncoderTests extends AndroidTestCase { Log.e(TAG, "IOException", e); } catch (UnsupportedFormatException e) { Log.e(TAG, "UnsupportedFormatException", e); - } finally { - if (inStream != null) { - try { - inStream.close(); - } catch (IOException e) { - // do nothing - } - } } checkWordMap(words, bigrams, resultWords, resultFreqs, resultBigrams); @@ -461,7 +450,7 @@ public class BinaryDictDecoderEncoderTests extends AndroidTestCase { runReadUnigramsAndBigramsTests(results, BinaryDictUtils.USE_BYTE_BUFFER, BinaryDictUtils.VERSION2_OPTIONS); runReadUnigramsAndBigramsTests(results, BinaryDictUtils.USE_BYTE_BUFFER, - BinaryDictUtils.VERSION3_OPTIONS); + BinaryDictUtils.VERSION4_OPTIONS_WITHOUT_TIMESTAMP); runReadUnigramsAndBigramsTests(results, BinaryDictUtils.USE_BYTE_BUFFER, BinaryDictUtils.VERSION4_OPTIONS_WITH_TIMESTAMP); @@ -476,7 +465,7 @@ public class BinaryDictDecoderEncoderTests extends AndroidTestCase { runReadUnigramsAndBigramsTests(results, BinaryDictUtils.USE_BYTE_ARRAY, BinaryDictUtils.VERSION2_OPTIONS); runReadUnigramsAndBigramsTests(results, BinaryDictUtils.USE_BYTE_ARRAY, - BinaryDictUtils.VERSION3_OPTIONS); + BinaryDictUtils.VERSION4_OPTIONS_WITHOUT_TIMESTAMP); runReadUnigramsAndBigramsTests(results, BinaryDictUtils.USE_BYTE_ARRAY, BinaryDictUtils.VERSION4_OPTIONS_WITH_TIMESTAMP); @@ -590,14 +579,14 @@ public class BinaryDictDecoderEncoderTests extends AndroidTestCase { runGetTerminalPositionTests(BinaryDictUtils.USE_BYTE_ARRAY, BinaryDictUtils.VERSION2_OPTIONS); runGetTerminalPositionTests(BinaryDictUtils.USE_BYTE_ARRAY, - BinaryDictUtils.VERSION3_OPTIONS); + BinaryDictUtils.VERSION4_OPTIONS_WITHOUT_TIMESTAMP); runGetTerminalPositionTests(BinaryDictUtils.USE_BYTE_ARRAY, BinaryDictUtils.VERSION4_OPTIONS_WITH_TIMESTAMP); runGetTerminalPositionTests(BinaryDictUtils.USE_BYTE_BUFFER, BinaryDictUtils.VERSION2_OPTIONS); runGetTerminalPositionTests(BinaryDictUtils.USE_BYTE_BUFFER, - BinaryDictUtils.VERSION3_OPTIONS); + BinaryDictUtils.VERSION4_OPTIONS_WITHOUT_TIMESTAMP); runGetTerminalPositionTests(BinaryDictUtils.USE_BYTE_BUFFER, BinaryDictUtils.VERSION4_OPTIONS_WITH_TIMESTAMP); @@ -633,6 +622,7 @@ public class BinaryDictDecoderEncoderTests extends AndroidTestCase { } public void testDeleteWord() throws IOException, UnsupportedFormatException { - runTestDeleteWord(BinaryDictUtils.VERSION3_OPTIONS); + runTestDeleteWord(BinaryDictUtils.VERSION4_OPTIONS_WITHOUT_TIMESTAMP); + runTestDeleteWord(BinaryDictUtils.VERSION4_OPTIONS_WITH_TIMESTAMP); } } diff --git a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictIOUtilsTests.java b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictIOUtilsTests.java index ba1b6b33c..9ed50c4b3 100644 --- a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictIOUtilsTests.java +++ b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictIOUtilsTests.java @@ -237,8 +237,7 @@ public class BinaryDictIOUtilsTests extends AndroidTestCase { dict.add("abcd", 10, null, false); try { - final DictEncoder dictEncoder = BinaryDictUtils.getDictEncoder(file, formatOptions, - getContext().getCacheDir()); + final DictEncoder dictEncoder = BinaryDictUtils.getDictEncoder(file, formatOptions); dictEncoder.writeDictionary(dict, formatOptions); } catch (IOException e) { fail("IOException while writing an initial dictionary : " + e); @@ -289,7 +288,6 @@ public class BinaryDictIOUtilsTests extends AndroidTestCase { } public void testInsertWord() { - runTestInsertWord(BinaryDictUtils.VERSION3_OPTIONS); runTestInsertWord(BinaryDictUtils.VERSION4_OPTIONS_WITHOUT_TIMESTAMP); runTestInsertWord(BinaryDictUtils.VERSION4_OPTIONS_WITH_TIMESTAMP); } @@ -307,8 +305,7 @@ public class BinaryDictIOUtilsTests extends AndroidTestCase { dict.add("efgh", 15, null, false); try { - final DictEncoder dictEncoder = BinaryDictUtils.getDictEncoder(file, formatOptions, - getContext().getCacheDir()); + final DictEncoder dictEncoder = BinaryDictUtils.getDictEncoder(file, formatOptions); dictEncoder.writeDictionary(dict, formatOptions); } catch (IOException e) { fail("IOException while writing an initial dictionary : " + e); @@ -330,7 +327,6 @@ public class BinaryDictIOUtilsTests extends AndroidTestCase { } public void testInsertWordWithBigrams() { - runTestInsertWordWithBigrams(BinaryDictUtils.VERSION3_OPTIONS); runTestInsertWordWithBigrams(BinaryDictUtils.VERSION4_OPTIONS_WITHOUT_TIMESTAMP); runTestInsertWordWithBigrams(BinaryDictUtils.VERSION4_OPTIONS_WITH_TIMESTAMP); } @@ -347,8 +343,7 @@ public class BinaryDictIOUtilsTests extends AndroidTestCase { dict.add("initial", 10, null, false); try { - final DictEncoder dictEncoder = BinaryDictUtils.getDictEncoder(file, formatOptions, - getContext().getCacheDir()); + final DictEncoder dictEncoder = BinaryDictUtils.getDictEncoder(file, formatOptions); dictEncoder.writeDictionary(dict, formatOptions); } catch (IOException e) { assertTrue(false); @@ -379,7 +374,6 @@ public class BinaryDictIOUtilsTests extends AndroidTestCase { } public void testRandomWords() { - runTestRandomWords(BinaryDictUtils.VERSION3_OPTIONS); runTestRandomWords(BinaryDictUtils.VERSION4_OPTIONS_WITHOUT_TIMESTAMP); runTestRandomWords(BinaryDictUtils.VERSION4_OPTIONS_WITH_TIMESTAMP); } diff --git a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictUtils.java b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictUtils.java index a568704b4..67d77e05a 100644 --- a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictUtils.java +++ b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictUtils.java @@ -31,8 +31,6 @@ public class BinaryDictUtils { public static final FormatSpec.FormatOptions VERSION2_OPTIONS = new FormatSpec.FormatOptions(FormatSpec.VERSION2); - public static final FormatSpec.FormatOptions VERSION3_OPTIONS = - new FormatSpec.FormatOptions(FormatSpec.VERSION3); public static final FormatSpec.FormatOptions VERSION4_OPTIONS_WITHOUT_TIMESTAMP = new FormatSpec.FormatOptions(FormatSpec.VERSION4, false /* hasTimestamp */); public static final FormatSpec.FormatOptions VERSION4_OPTIONS_WITH_TIMESTAMP = @@ -48,8 +46,7 @@ public class BinaryDictUtils { public static File getDictFile(final String name, final String version, final FormatOptions formatOptions, final File directory) { - if (formatOptions.mVersion == FormatSpec.VERSION2 - || formatOptions.mVersion == FormatSpec.VERSION3) { + if (formatOptions.mVersion == FormatSpec.VERSION2) { return new File(directory, name + "." + version + TEST_DICT_FILE_EXTENSION); } else if (formatOptions.mVersion == FormatSpec.VERSION4) { return new File(directory, name + "." + version); @@ -59,12 +56,13 @@ public class BinaryDictUtils { } } - public static DictEncoder getDictEncoder(final File file, final FormatOptions formatOptions, - final File cacheDir) { + public static DictEncoder getDictEncoder(final File file, final FormatOptions formatOptions) { if (formatOptions.mVersion == FormatSpec.VERSION4) { - return new Ver4DictEncoder(cacheDir); - } else if (formatOptions.mVersion == FormatSpec.VERSION3 - || formatOptions.mVersion == FormatSpec.VERSION2) { + if (!file.isDirectory()) { + file.mkdir(); + } + return new Ver4DictEncoder(file); + } else if (formatOptions.mVersion == FormatSpec.VERSION2) { return new Ver2DictEncoder(file); } else { throw new RuntimeException("The format option has a wrong version : " diff --git a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/DictionaryMaker.java b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/DictionaryMaker.java index eb419fc28..143bce5ac 100644 --- a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/DictionaryMaker.java +++ b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/DictionaryMaker.java @@ -46,7 +46,6 @@ public class DictionaryMaker { static class Arguments { private static final String OPTION_VERSION_2 = "-2"; - private static final String OPTION_VERSION_3 = "-3"; private static final String OPTION_VERSION_4 = "-4"; private static final String OPTION_INPUT_SOURCE = "-s"; private static final String OPTION_INPUT_BIGRAM_XML = "-b"; @@ -158,8 +157,6 @@ public class DictionaryMaker { if (arg.charAt(0) == '-') { if (OPTION_VERSION_2.equals(arg)) { // Do nothing, this is the default - } else if (OPTION_VERSION_3.equals(arg)) { - outputBinaryFormatVersion = FormatSpec.VERSION3; } else if (OPTION_VERSION_4.equals(arg)) { outputBinaryFormatVersion = FormatSpec.VERSION4; } else if (OPTION_HELP.equals(arg)) {