aboutsummaryrefslogtreecommitdiffstats
path: root/tests/src
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src')
-rw-r--r--tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java37
-rw-r--r--tests/src/com/android/inputmethod/latin/InputLogicTests.java16
-rw-r--r--tests/src/com/android/inputmethod/latin/ShiftModeTests.java30
-rw-r--r--tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java3
-rw-r--r--tests/src/com/android/inputmethod/latin/utils/CapsModeUtilsTests.java15
5 files changed, 66 insertions, 35 deletions
diff --git a/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java b/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java
index fbce9a84e..6ba18d665 100644
--- a/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java
+++ b/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java
@@ -995,7 +995,8 @@ public class BinaryDictionaryTests extends AndroidTestCase {
0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
- final WordProperty invalidWordProperty = binaryDictionary.getWordProperty("dummyWord");
+ final WordProperty invalidWordProperty = binaryDictionary.getWordProperty("dummyWord",
+ false /* isBeginningOfSentence */);
assertFalse(invalidWordProperty.isValid());
final ArrayList<String> words = new ArrayList<>();
@@ -1018,7 +1019,8 @@ public class BinaryDictionaryTests extends AndroidTestCase {
}
words.add(word);
wordProbabilities.put(word, unigramProbability);
- final WordProperty wordProperty = binaryDictionary.getWordProperty(word);
+ final WordProperty wordProperty = binaryDictionary.getWordProperty(word,
+ false /* isBeginningOfSentence */);
assertEquals(word, wordProperty.mWord);
assertTrue(wordProperty.isValid());
assertEquals(isNotAWord, wordProperty.mIsNotAWord);
@@ -1058,7 +1060,8 @@ public class BinaryDictionaryTests extends AndroidTestCase {
continue;
}
final HashSet<String> bigramWord1s = bigrams.get(word0);
- final WordProperty wordProperty = binaryDictionary.getWordProperty(word0);
+ final WordProperty wordProperty = binaryDictionary.getWordProperty(word0,
+ false /* isBeginningOfSentence */);
assertEquals(bigramWord1s.size(), wordProperty.mBigrams.size());
for (int j = 0; j < wordProperty.mBigrams.size(); j++) {
final String word1 = wordProperty.mBigrams.get(j).mWord;
@@ -1095,7 +1098,8 @@ public class BinaryDictionaryTests extends AndroidTestCase {
0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
- final WordProperty invalidWordProperty = binaryDictionary.getWordProperty("dummyWord");
+ final WordProperty invalidWordProperty = binaryDictionary.getWordProperty("dummyWord",
+ false /* isBeginningOfSentence */);
assertFalse(invalidWordProperty.isValid());
final ArrayList<String> words = new ArrayList<>();
@@ -1189,7 +1193,8 @@ public class BinaryDictionaryTests extends AndroidTestCase {
binaryDictionary.addUnigramEntry("aaa", unigramProbability, "zzz",
shortcutProbability, false /* isBeginningOfSentence */,
false /* isNotAWord */, false /* isBlacklisted */, 0 /* timestamp */);
- WordProperty wordProperty = binaryDictionary.getWordProperty("aaa");
+ WordProperty wordProperty = binaryDictionary.getWordProperty("aaa",
+ false /* isBeginningOfSentence */);
assertEquals(1, wordProperty.mShortcutTargets.size());
assertEquals("zzz", wordProperty.mShortcutTargets.get(0).mWord);
assertEquals(shortcutProbability, wordProperty.mShortcutTargets.get(0).getProbability());
@@ -1197,7 +1202,8 @@ public class BinaryDictionaryTests extends AndroidTestCase {
binaryDictionary.addUnigramEntry("aaa", unigramProbability, "zzz",
updatedShortcutProbability, false /* isBeginningOfSentence */,
false /* isNotAWord */, false /* isBlacklisted */, 0 /* timestamp */);
- wordProperty = binaryDictionary.getWordProperty("aaa");
+ wordProperty = binaryDictionary.getWordProperty("aaa",
+ false /* isBeginningOfSentence */);
assertEquals(1, wordProperty.mShortcutTargets.size());
assertEquals("zzz", wordProperty.mShortcutTargets.get(0).mWord);
assertEquals(updatedShortcutProbability,
@@ -1208,7 +1214,8 @@ public class BinaryDictionaryTests extends AndroidTestCase {
final HashMap<String, Integer> shortcutTargets = new HashMap<>();
shortcutTargets.put("zzz", updatedShortcutProbability);
shortcutTargets.put("yyy", shortcutProbability);
- wordProperty = binaryDictionary.getWordProperty("aaa");
+ wordProperty = binaryDictionary.getWordProperty("aaa",
+ false /* isBeginningOfSentence */);
assertEquals(2, wordProperty.mShortcutTargets.size());
for (WeightedString shortcutTarget : wordProperty.mShortcutTargets) {
assertTrue(shortcutTargets.containsKey(shortcutTarget.mWord));
@@ -1219,7 +1226,8 @@ public class BinaryDictionaryTests extends AndroidTestCase {
shortcutTargets.put("zzz", updatedShortcutProbability);
shortcutTargets.put("yyy", shortcutProbability);
binaryDictionary.flushWithGC();
- wordProperty = binaryDictionary.getWordProperty("aaa");
+ wordProperty = binaryDictionary.getWordProperty("aaa",
+ false /* isBeginningOfSentence */);
assertEquals(2, wordProperty.mShortcutTargets.size());
for (WeightedString shortcutTarget : wordProperty.mShortcutTargets) {
assertTrue(shortcutTargets.containsKey(shortcutTarget.mWord));
@@ -1289,7 +1297,8 @@ public class BinaryDictionaryTests extends AndroidTestCase {
}
for (final String word : words) {
- final WordProperty wordProperty = binaryDictionary.getWordProperty(word);
+ final WordProperty wordProperty = binaryDictionary.getWordProperty(word,
+ false /* isBeginningOfSentence */);
assertEquals((int)unigramProbabilities.get(word),
wordProperty.mProbabilityInfo.mProbability);
if (!shortcutTargets.containsKey(word)) {
@@ -1333,6 +1342,8 @@ public class BinaryDictionaryTests extends AndroidTestCase {
binaryDictionary.addUnigramEntry("ddd", unigramProbability, null /* shortcutTarget */,
Dictionary.NOT_A_PROBABILITY, false /* isBeginningOfSentence */,
true /* isNotAWord */, true /* isBlacklisted */, 0 /* timestamp */);
+ binaryDictionary.addNgramEntry(PrevWordsInfo.BEGINNING_OF_SENTENCE,
+ "aaa", bigramProbability, 0 /* timestamp */);
assertEquals(unigramProbability, binaryDictionary.getFrequency("aaa"));
assertEquals(unigramProbability, binaryDictionary.getFrequency("bbb"));
assertTrue(isValidBigram(binaryDictionary, "aaa", "bbb"));
@@ -1344,12 +1355,16 @@ public class BinaryDictionaryTests extends AndroidTestCase {
assertEquals(unigramProbability, binaryDictionary.getFrequency("bbb"));
if (canCheckBigramProbability(toFormatVersion)) {
assertEquals(bigramProbability, getBigramProbability(binaryDictionary, "aaa", "bbb"));
+ assertEquals(bigramProbability, binaryDictionary.getNgramProbability(
+ PrevWordsInfo.BEGINNING_OF_SENTENCE, "aaa"));
}
assertTrue(isValidBigram(binaryDictionary, "aaa", "bbb"));
- WordProperty wordProperty = binaryDictionary.getWordProperty("ccc");
+ WordProperty wordProperty = binaryDictionary.getWordProperty("ccc",
+ false /* isBeginningOfSentence */);
assertEquals(1, wordProperty.mShortcutTargets.size());
assertEquals("xxx", wordProperty.mShortcutTargets.get(0).mWord);
- wordProperty = binaryDictionary.getWordProperty("ddd");
+ wordProperty = binaryDictionary.getWordProperty("ddd",
+ false /* isBeginningOfSentence */);
assertTrue(wordProperty.mIsBlacklistEntry);
assertTrue(wordProperty.mIsNotAWord);
}
diff --git a/tests/src/com/android/inputmethod/latin/InputLogicTests.java b/tests/src/com/android/inputmethod/latin/InputLogicTests.java
index 460f600ac..0552c221e 100644
--- a/tests/src/com/android/inputmethod/latin/InputLogicTests.java
+++ b/tests/src/com/android/inputmethod/latin/InputLogicTests.java
@@ -482,6 +482,7 @@ public class InputLogicTests extends InputTestsBase {
}
public void testPredictionsWithDoubleSpaceToPeriod() {
+ mLatinIME.clearPersonalizedDictionariesForTest();
final String WORD_TO_TYPE = "Barack ";
type(WORD_TO_TYPE);
sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
@@ -516,14 +517,21 @@ public class InputLogicTests extends InputTestsBase {
suggestedWords.size() > 0 ? suggestedWords.getWord(0) : null);
}
- public void testNoPredictionsAfterPeriod() {
+ public void testPredictionsAfterPeriod() {
+ mLatinIME.clearPersonalizedDictionariesForTest();
final String WORD_TO_TYPE = "Barack. ";
type(WORD_TO_TYPE);
sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
runMessages();
- // Test the first prediction is not displayed
- final SuggestedWords suggestedWords = mLatinIME.getSuggestedWordsForTest();
- assertEquals("no prediction after period", 0, suggestedWords.size());
+ SuggestedWords suggestedWords = mLatinIME.getSuggestedWordsForTest();
+ assertEquals("No prediction after period after inputting once.", 0, suggestedWords.size());
+
+ type(WORD_TO_TYPE);
+ sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
+ runMessages();
+ suggestedWords = mLatinIME.getSuggestedWordsForTest();
+ assertEquals("Beginning-of-Sentence prediction after inputting 2 times.", "Barack",
+ suggestedWords.size() > 0 ? suggestedWords.getWord(0) : null);
}
public void testPredictionsAfterRecorrection() {
diff --git a/tests/src/com/android/inputmethod/latin/ShiftModeTests.java b/tests/src/com/android/inputmethod/latin/ShiftModeTests.java
index a319ffda6..db3c9baa9 100644
--- a/tests/src/com/android/inputmethod/latin/ShiftModeTests.java
+++ b/tests/src/com/android/inputmethod/latin/ShiftModeTests.java
@@ -111,24 +111,16 @@ public class ShiftModeTests extends InputTestsBase {
assertTrue("(Spanish) Auto caps after inverted bang", isCapsModeAutoShifted());
}
- public void DISABLED_testOtherSentenceSeparators() {
- // We only run this test on Kitkat+ because previous versions of Android don't
- // have an Armenian locale. For some reason I don't know, when the requested
- // locale is not present as a device locale, then the application under test can't
- // access the resources in that locale -- though it works when the app is actually
- // running on the device and not under test. If we ever figure out what's going
- // on, remove this test.
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
- changeLanguage("hy-AM");
- assertTrue("(Armenian) Auto caps at start", isCapsModeAutoShifted());
- type("Hey. ");
- assertFalse("(Armenian) No auto-caps after latin period", isCapsModeAutoShifted());
- type("Hey\u0589");
- assertFalse("(Armenian) No auto-caps directly after armenian period",
- isCapsModeAutoShifted());
- type(" ");
- assertTrue("(Armenian) Auto-caps after armenian period-whitespace",
- isCapsModeAutoShifted());
- }
+ public void testOtherSentenceSeparators() {
+ changeLanguage("hy_AM");
+ assertTrue("(Armenian) Auto caps at start", isCapsModeAutoShifted());
+ type("Hey. ");
+ assertFalse("(Armenian) No auto-caps after latin period", isCapsModeAutoShifted());
+ type("Hey\u0589");
+ assertFalse("(Armenian) No auto-caps directly after armenian period",
+ isCapsModeAutoShifted());
+ type(" ");
+ assertTrue("(Armenian) Auto-caps after armenian period-whitespace",
+ isCapsModeAutoShifted());
}
}
diff --git a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java
index 4b332ca84..406046a74 100644
--- a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java
+++ b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java
@@ -614,7 +614,8 @@ public class BinaryDictDecoderEncoderTests extends AndroidTestCase {
0 /* offset */, file.length(), true /* useFullEditDistance */,
Locale.ENGLISH, dictName, false /* isUpdatable */);
for (final String word : words) {
- final WordProperty wordProperty = binaryDictionary.getWordProperty(word);
+ final WordProperty wordProperty = binaryDictionary.getWordProperty(word,
+ false /* isBeginningOfSentence */);
assertEquals(word, wordProperty.mWord);
assertEquals(UNIGRAM_FREQ, wordProperty.getProbability());
if (shortcuts.containsKey(word)) {
diff --git a/tests/src/com/android/inputmethod/latin/utils/CapsModeUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/CapsModeUtilsTests.java
index 020d63299..c746c8345 100644
--- a/tests/src/com/android/inputmethod/latin/utils/CapsModeUtilsTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/CapsModeUtilsTests.java
@@ -22,6 +22,7 @@ import android.test.suitebuilder.annotation.SmallTest;
import android.text.TextUtils;
import com.android.inputmethod.latin.settings.SpacingAndPunctuations;
+import com.android.inputmethod.latin.utils.LocaleUtils;
import java.util.Locale;
@@ -109,5 +110,19 @@ public class CapsModeUtilsTests extends AndroidTestCase {
allPathsForCaps("Liebe Sara, \n ", c | w | s, sp, false);
allPathsForCaps("Liebe Sara \n ", c | w | s, sp, false);
allPathsForCaps("Liebe Sara.\n ", c | w | s, sp, false);
+
+ // Test armenian period
+ sp = job.runInLocale(res, LocaleUtils.constructLocaleFromString("hy_AM"));
+ assertTrue("Period is not sentence separator in Armenian",
+ !sp.isSentenceSeparator('.'));
+ assertTrue("Sentence separator is Armenian period in Armenian",
+ sp.isSentenceSeparator(0x589));
+ // No space : capitalize only if MODE_CHARACTERS
+ allPathsForCaps("Word", c, sp, false);
+ allPathsForCaps("Word.", c, sp, false);
+ // Space, but no armenian period : capitalize if MODE_WORDS but not SENTENCES
+ allPathsForCaps("Word. ", c | w, sp, false);
+ // Armenian period : capitalize if MODE_SENTENCES
+ allPathsForCaps("Word\u0589 ", c | w | s, sp, false);
}
}