Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1b50a42b authored by Yuichiro Hanada's avatar Yuichiro Hanada
Browse files

Fix addWord.

Change-Id: Ib71dbd5954f44ca80733fa4b1048c829e1df138a
parent c02a3654
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.content.Context;
import android.text.TextUtils;
import android.util.Log;

import com.android.inputmethod.annotations.UsedForTesting;
import com.android.inputmethod.keyboard.ProximityInfo;
import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
import com.android.inputmethod.latin.utils.CollectionUtils;
@@ -231,7 +232,7 @@ public class ExpandableDictionary extends Dictionary {
            childNode.mShortcutOnly = isShortcutOnly;
            children.add(childNode);
        }
        if (wordLength == depth + 1 && shortcutTarget != null) {
        if (wordLength == depth + 1) {
            // Terminate this word
            childNode.mTerminal = true;
            if (isShortcutOnly) {
@@ -351,6 +352,7 @@ public class ExpandableDictionary extends Dictionary {
    /**
     * Returns the word's frequency or -1 if not found
     */
    @UsedForTesting
    protected int getWordFrequency(final String word) {
        // Case-sensitive search
        final Node node = searchNode(mRoots, word, 0, word.length());
+56 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2013 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.inputmethod.latin;

import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest;

/**
 * Unit test for ExpandableDictionary
 */
@SmallTest
public class ExpandableDictionaryTests extends AndroidTestCase {

    private final static int UNIGRAM_FREQ = 50;

    public void testAddWordAndGetWordFrequency() {
        final ExpandableDictionary dict = new ExpandableDictionary(getContext(),
                Dictionary.TYPE_USER);

        // Add words
        dict.addWord("abcde", "abcde", UNIGRAM_FREQ);
        dict.addWord("abcef", null, UNIGRAM_FREQ + 1);

        // Check words
        assertFalse(dict.isValidWord("abcde"));
        assertEquals(UNIGRAM_FREQ, dict.getWordFrequency("abcde"));
        assertTrue(dict.isValidWord("abcef"));
        assertEquals(UNIGRAM_FREQ+1, dict.getWordFrequency("abcef"));

        dict.addWord("abc", null, UNIGRAM_FREQ + 2);
        assertTrue(dict.isValidWord("abc"));
        assertEquals(UNIGRAM_FREQ + 2, dict.getWordFrequency("abc"));

        // Add existing word with lower frequency
        dict.addWord("abc", null, UNIGRAM_FREQ);
        assertEquals(UNIGRAM_FREQ + 2, dict.getWordFrequency("abc"));

        // Add existing word with higher frequency
        dict.addWord("abc", null, UNIGRAM_FREQ + 3);
        assertEquals(UNIGRAM_FREQ + 3, dict.getWordFrequency("abc"));
    }
}