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

Commit ddaa1764 authored by Jean Chalard's avatar Jean Chalard Committed by Android Git Automerger
Browse files

am 332f4327: Merge "Fix a behavior change in dicttool"

* commit '332f4327':
  Fix a behavior change in dicttool
parents 13a6a56f 332f4327
Loading
Loading
Loading
Loading
+23 −8
Original line number Diff line number Diff line
@@ -54,6 +54,9 @@ public final class WordProperty implements Comparable<WordProperty> {
        mWord = word;
        mProbabilityInfo = probabilityInfo;
        mShortcutTargets = shortcutTargets;
        if (null == bigrams) {
            mNgrams = null;
        } else {
            mNgrams = new ArrayList<>();
            final NgramContext ngramContext = new NgramContext(new WordInfo(mWord));
            if (bigrams != null) {
@@ -61,6 +64,7 @@ public final class WordProperty implements Comparable<WordProperty> {
                    mNgrams.add(new NgramProperty(bigramTarget, ngramContext));
                }
            }
        }
        mIsBeginningOfSentence = false;
        mIsNotAWord = isNotAWord;
        mIsBlacklistEntry = isBlacklistEntry;
@@ -87,7 +91,7 @@ public final class WordProperty implements Comparable<WordProperty> {
        mWord = StringUtils.getStringFromNullTerminatedCodePointArray(codePoints);
        mProbabilityInfo = createProbabilityInfoFromArray(probabilityInfo);
        mShortcutTargets = new ArrayList<>();
        mNgrams = new ArrayList<>();
        final ArrayList<NgramProperty> ngrams = new ArrayList<>();
        mIsBeginningOfSentence = isBeginningOfSentence;
        mIsNotAWord = isNotAWord;
        mIsBlacklistEntry = isBlacklisted;
@@ -104,8 +108,9 @@ public final class WordProperty implements Comparable<WordProperty> {
            final WeightedString ngramTarget = new WeightedString(ngramTargetString,
                    createProbabilityInfoFromArray(bigramProbabilityInfo.get(i)));
            // TODO: Support n-gram.
            mNgrams.add(new NgramProperty(ngramTarget, ngramContext));
            ngrams.add(new NgramProperty(ngramTarget, ngramContext));
        }
        mNgrams = ngrams.isEmpty() ? null : ngrams;

        final int shortcutTargetCount = shortcutTargets.size();
        for (int i = 0; i < shortcutTargetCount; i++) {
@@ -118,6 +123,9 @@ public final class WordProperty implements Comparable<WordProperty> {

    // TODO: Remove
    public ArrayList<WeightedString> getBigrams() {
        if (null == mNgrams) {
            return null;
        }
        final ArrayList<WeightedString> bigrams = new ArrayList<>();
        for (final NgramProperty ngram : mNgrams) {
            if (ngram.mNgramContext.getPrevWordCount() == 1) {
@@ -167,11 +175,18 @@ public final class WordProperty implements Comparable<WordProperty> {
        if (!(o instanceof WordProperty)) return false;
        WordProperty w = (WordProperty)o;
        return mProbabilityInfo.equals(w.mProbabilityInfo) && mWord.equals(w.mWord)
                && mShortcutTargets.equals(w.mShortcutTargets) && mNgrams.equals(w.mNgrams)
                && mShortcutTargets.equals(w.mShortcutTargets) && equals(mNgrams, w.mNgrams)
                && mIsNotAWord == w.mIsNotAWord && mIsBlacklistEntry == w.mIsBlacklistEntry
                && mHasNgrams == w.mHasNgrams && mHasShortcuts && w.mHasNgrams;
    }

    private <T> boolean equals(final ArrayList<T> a, final ArrayList<T> b) {
        if (null == a) {
            return null == b;
        }
        return a.equals(b);
    }

    @Override
    public int hashCode() {
        if (mHashCode == 0) {
+7 −5
Original line number Diff line number Diff line
@@ -715,12 +715,14 @@ public class BinaryDictDecoderEncoderTests extends AndroidTestCase {
                }
                assertTrue(shortcutList.isEmpty());
            }
            if (wordProperty.mHasNgrams) {
                for (final WeightedString bigramTarget : wordProperty.getBigrams()) {
                    final String word1 = bigramTarget.mWord;
                    final Pair<String, String> bigram = new Pair<>(word0, word1);
                    assertTrue(bigramSet.contains(bigram));
                    bigramSet.remove(bigram);
                }
            }
            token = result.mNextToken;
        } while (token != 0);
        assertTrue(wordSet.isEmpty());