diff options
author | 2010-07-16 13:02:45 +0900 | |
---|---|---|
committer | 2010-07-16 13:02:45 +0900 | |
commit | b9c57e6540502ef3b2941235bbbede4dedfdcfb7 (patch) | |
tree | c8ccdc1455ab21eaef06c2b053ac7cada78de9f9 /tests/src | |
parent | b5a0d8ef42d9e0be4e56be04637c167074447744 (diff) | |
parent | 2a118d844e0b7dd3e01f25e937b02b05711768a6 (diff) | |
download | latinime-b9c57e6540502ef3b2941235bbbede4dedfdcfb7.tar.gz latinime-b9c57e6540502ef3b2941235bbbede4dedfdcfb7.tar.xz latinime-b9c57e6540502ef3b2941235bbbede4dedfdcfb7.zip |
Merge remote branch 'goog/master'
Conflicts:
java/res/xml/prefs.xml
java/src/com/android/inputmethod/latin/BinaryDictionary.java
java/src/com/android/inputmethod/latin/Dictionary.java
java/src/com/android/inputmethod/latin/ExpandableDictionary.java
java/src/com/android/inputmethod/latin/LatinIME.java
java/src/com/android/inputmethod/latin/Suggest.java
tests/src/com/android/inputmethod/latin/tests/SuggestTests.java
Diffstat (limited to 'tests/src')
-rw-r--r-- | tests/src/com/android/inputmethod/latin/tests/SuggestTests.java | 67 |
1 files changed, 63 insertions, 4 deletions
diff --git a/tests/src/com/android/inputmethod/latin/tests/SuggestTests.java b/tests/src/com/android/inputmethod/latin/tests/SuggestTests.java index 0d3babfbc..318cc7ccd 100644 --- a/tests/src/com/android/inputmethod/latin/tests/SuggestTests.java +++ b/tests/src/com/android/inputmethod/latin/tests/SuggestTests.java @@ -71,7 +71,7 @@ public class SuggestTests extends AndroidTestCase { Log.w(TAG, "No available size for binary dictionary"); } mSuggest.setAutoTextEnabled(false); - mSuggest.setCorrectionMode(Suggest.CORRECTION_FULL); + mSuggest.setCorrectionMode(Suggest.CORRECTION_FULL_BIGRAM); } /************************** Helper functions ************************/ @@ -108,19 +108,56 @@ public class SuggestTests extends AndroidTestCase { private boolean isDefaultSuggestion(CharSequence typed, CharSequence expected) { WordComposer word = createWordComposer(typed); - List<CharSequence> suggestions = mSuggest.getSuggestions(null, word, false); + List<CharSequence> suggestions = mSuggest.getSuggestions(null, word, false, null); + return isDefaultSuggestion(suggestions, expected); + } + + private void getBigramSuggestions(CharSequence previous, CharSequence typed) { + if(!TextUtils.isEmpty(previous) && (typed.length() > 1)) { + WordComposer firstChar = createWordComposer(typed.charAt(0) + ""); + mSuggest.getSuggestions(null, firstChar, false, previous); + } + } + + private boolean isDefaultNextSuggestion(CharSequence previous, CharSequence typed, + CharSequence expected) { + WordComposer word = createWordComposer(typed); + getBigramSuggestions(previous, typed); + List<CharSequence> suggestions = mSuggest.getSuggestions(null, word, false, previous); return isDefaultSuggestion(suggestions, expected); } private boolean isDefaultCorrection(CharSequence typed, CharSequence expected) { WordComposer word = createWordComposer(typed); - List<CharSequence> suggestions = mSuggest.getSuggestions(null, word, false); + List<CharSequence> suggestions = mSuggest.getSuggestions(null, word, false, null); + return isDefaultSuggestion(suggestions, expected) && mSuggest.hasMinimalCorrection(); + } + + private boolean isDefaultNextCorrection(CharSequence previous, CharSequence typed, + CharSequence expected) { + WordComposer word = createWordComposer(typed); + getBigramSuggestions(previous, typed); + List<CharSequence> suggestions = mSuggest.getSuggestions(null, word, false, previous); + for(int i=0;i<suggestions.size();i++) { + Log.i(TAG,i+" "+suggestions.get(i)); + } return isDefaultSuggestion(suggestions, expected) && mSuggest.hasMinimalCorrection(); } private boolean isASuggestion(CharSequence typed, CharSequence expected) { WordComposer word = createWordComposer(typed); - List<CharSequence> suggestions = mSuggest.getSuggestions(null, word, false); + List<CharSequence> suggestions = mSuggest.getSuggestions(null, word, false, null); + for (int i = 1; i < suggestions.size(); i++) { + if (TextUtils.equals(suggestions.get(i), expected)) return true; + } + return false; + } + + private boolean isASuggestion(CharSequence previous, CharSequence typed, + CharSequence expected) { + WordComposer word = createWordComposer(typed); + getBigramSuggestions(previous, typed); + List<CharSequence> suggestions = mSuggest.getSuggestions(null, word, false, previous); for (int i = 1; i < suggestions.size(); i++) { if (TextUtils.equals(suggestions.get(i), expected)) return true; } @@ -248,4 +285,26 @@ public class SuggestTests extends AndroidTestCase { // Mar<LATIN SMALL LETTER I WITH ACUTE>a assertTrue(isDefaultCorrection("maria", "Mar\u00EDa")); } + + /** + * Make sure bigrams are showing when first character is typed + * and don't show any when there aren't any + */ + public void testBigramsAtFirstChar() { + assertTrue(isDefaultNextCorrection("about", "p", "part")); + assertTrue(isDefaultNextCorrection("I'm", "a", "about")); + assertTrue(isDefaultNextCorrection("about", "b", "business")); + assertTrue(isASuggestion("about", "b", "being")); + assertFalse(isDefaultNextSuggestion("about", "p", "business")); + } + + /** + * Make sure bigrams score affects the original score + */ + public void testBigramsScoreEffect() { + assertTrue(isDefaultCorrection("pa", "page")); + assertTrue(isDefaultNextCorrection("about", "pa", "part")); + assertTrue(isDefaultCorrection("sa", "said")); + assertTrue(isDefaultNextCorrection("from", "sa", "same")); + } } |