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

Commit 89899e14 authored by Keisuke Kuroyanagi's avatar Keisuke Kuroyanagi Committed by Android (Google) Code Review
Browse files

Merge "Update unit test for beginning-of-sentence."

parents da0ea760 e041bfab
Loading
Loading
Loading
Loading
+18 −1
Original line number Original line Diff line number Diff line
@@ -256,8 +256,25 @@ bool Ver4PatriciaTriePolicy::addNgramEntry(const PrevWordsInfo *const prevWordsI
            false /* tryLowerCaseSearch */);
            false /* tryLowerCaseSearch */);
    // TODO: Support N-gram.
    // TODO: Support N-gram.
    if (prevWordsPtNodePos[0] == NOT_A_DICT_POS) {
    if (prevWordsPtNodePos[0] == NOT_A_DICT_POS) {
        if (prevWordsInfo->isNthPrevWordBeginningOfSentence(1 /* n */)) {
            const std::vector<UnigramProperty::ShortcutProperty> shortcuts;
            const UnigramProperty beginningOfSentenceUnigramProperty(
                    true /* representsBeginningOfSentence */, true /* isNotAWord */,
                    false /* isBlacklisted */, MAX_PROBABILITY /* probability */,
                    NOT_A_TIMESTAMP /* timestamp */, 0 /* level */, 0 /* count */, &shortcuts);
            if (!addUnigramEntry(prevWordsInfo->getNthPrevWordCodePoints(1 /* n */),
                    prevWordsInfo->getNthPrevWordCodePointCount(1 /* n */),
                    &beginningOfSentenceUnigramProperty)) {
                AKLOGE("Cannot add unigram entry for the beginning-of-sentence.");
                return false;
                return false;
            }
            }
            // Refresh Terminal PtNode positions.
            prevWordsInfo->getPrevWordsTerminalPtNodePos(this, prevWordsPtNodePos,
                    false /* tryLowerCaseSearch */);
        } else {
            return false;
        }
    }
    const int word1Pos = getTerminalPtNodePositionOfWord(
    const int word1Pos = getTerminalPtNodePositionOfWord(
            bigramProperty->getTargetCodePoints()->data(),
            bigramProperty->getTargetCodePoints()->data(),
            bigramProperty->getTargetCodePoints()->size(), false /* forceLowerCaseSearch */);
            bigramProperty->getTargetCodePoints()->size(), false /* forceLowerCaseSearch */);
+7 −11
Original line number Original line Diff line number Diff line
@@ -1450,27 +1450,23 @@ public class BinaryDictionaryTests extends AndroidTestCase {
                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
        final int dummyProbability = 0;
        final int dummyProbability = 0;
        binaryDictionary.addUnigramEntry("", dummyProbability, "" /* shortcutTarget */,
        final PrevWordsInfo prevWordsInfoBeginningOfSentence = PrevWordsInfo.BEGINNING_OF_SENTENCE;
                BinaryDictionary.NOT_A_PROBABILITY /* shortcutProbability */,
                true /* isBeginningOfSentence */, true /* isNotAWord */, false /* isBlacklisted */,
                BinaryDictionary.NOT_A_VALID_TIMESTAMP /* timestamp */);
        final PrevWordsInfo prevWordsInfoStartOfSentence = PrevWordsInfo.BEGINNING_OF_SENTENCE;
        final int bigramProbability = 200;
        final int bigramProbability = 200;
        addUnigramWord(binaryDictionary, "aaa", dummyProbability);
        addUnigramWord(binaryDictionary, "aaa", dummyProbability);
        binaryDictionary.addNgramEntry(prevWordsInfoStartOfSentence, "aaa", bigramProbability,
        binaryDictionary.addNgramEntry(prevWordsInfoBeginningOfSentence, "aaa", bigramProbability,
                BinaryDictionary.NOT_A_VALID_TIMESTAMP /* timestamp */);
                BinaryDictionary.NOT_A_VALID_TIMESTAMP /* timestamp */);
        assertEquals(bigramProbability,
        assertEquals(bigramProbability,
                binaryDictionary.getNgramProbability(prevWordsInfoStartOfSentence, "aaa"));
                binaryDictionary.getNgramProbability(prevWordsInfoBeginningOfSentence, "aaa"));
        binaryDictionary.addNgramEntry(prevWordsInfoStartOfSentence, "aaa", bigramProbability,
        binaryDictionary.addNgramEntry(prevWordsInfoBeginningOfSentence, "aaa", bigramProbability,
                BinaryDictionary.NOT_A_VALID_TIMESTAMP /* timestamp */);
                BinaryDictionary.NOT_A_VALID_TIMESTAMP /* timestamp */);
        addUnigramWord(binaryDictionary, "bbb", dummyProbability);
        addUnigramWord(binaryDictionary, "bbb", dummyProbability);
        binaryDictionary.addNgramEntry(prevWordsInfoStartOfSentence, "bbb", bigramProbability,
        binaryDictionary.addNgramEntry(prevWordsInfoBeginningOfSentence, "bbb", bigramProbability,
                BinaryDictionary.NOT_A_VALID_TIMESTAMP /* timestamp */);
                BinaryDictionary.NOT_A_VALID_TIMESTAMP /* timestamp */);
        binaryDictionary.flushWithGC();
        binaryDictionary.flushWithGC();
        assertEquals(bigramProbability,
        assertEquals(bigramProbability,
                binaryDictionary.getNgramProbability(prevWordsInfoStartOfSentence, "aaa"));
                binaryDictionary.getNgramProbability(prevWordsInfoBeginningOfSentence, "aaa"));
        assertEquals(bigramProbability,
        assertEquals(bigramProbability,
                binaryDictionary.getNgramProbability(prevWordsInfoStartOfSentence, "bbb"));
                binaryDictionary.getNgramProbability(prevWordsInfoBeginningOfSentence, "bbb"));
    }
    }


    public void testGetMaxFrequencyOfExactMatches() {
    public void testGetMaxFrequencyOfExactMatches() {