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

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

Merge "Implement IntArrayView::skip()."

parents b85349e9 e394a0c6
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -96,6 +96,13 @@ class IntArrayView {
        return IntArrayView(mPtr, std::min(maxSize, mSize));
    }

    const IntArrayView skip(const size_t n) const {
        if (mSize <= n) {
            return IntArrayView();
        }
        return IntArrayView(mPtr + n, mSize - n);
    }

 private:
    DISALLOW_ASSIGNMENT_OPERATOR(IntArrayView);

+17 −0
Original line number Diff line number Diff line
@@ -72,5 +72,22 @@ TEST(IntArrayViewTest, TestLimit) {
    }
}

TEST(IntArrayViewTest, TestSkip) {
    const std::vector<int> intVector = {3, 2, 1, 0, -1, -2};
    IntArrayView intArrayView(intVector);

    EXPECT_TRUE(intArrayView.skip(intVector.size()).empty());
    EXPECT_TRUE(intArrayView.skip(intVector.size() + 1).empty());
    EXPECT_EQ(intArrayView.size(), intArrayView.skip(0).size());
    EXPECT_EQ(intArrayView.size(), intArrayView.limit(1000).size());

    static const size_t SKIP_COUNT = 2;
    IntArrayView subView = intArrayView.skip(SKIP_COUNT);
    EXPECT_EQ(intVector.size() - SKIP_COUNT, subView.size());
    for (size_t i = 0; i < subView.size(); ++i) {
        EXPECT_EQ(intVector[i + SKIP_COUNT], subView[i]);
    }
}

}  // namespace
}  // namespace latinime