From 792cb3989af2918f6a2878c22db51a009310756f Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Sat, 27 Jun 2020 11:14:32 +0200 Subject: Add support for first(n), last(n) and sliced() to QList MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This keeps the API symmetric with what we have in our string classes. Change-Id: I94c5b39b718ca2472f9ca645e7a42e4314636f67 Reviewed-by: MÃ¥rten Nordheim Reviewed-by: Thiago Macieira --- tests/auto/corelib/tools/qlist/tst_qlist.cpp | 30 ++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'tests/auto/corelib/tools') diff --git a/tests/auto/corelib/tools/qlist/tst_qlist.cpp b/tests/auto/corelib/tools/qlist/tst_qlist.cpp index ddf5e9c30a..fbd5cf6402 100644 --- a/tests/auto/corelib/tools/qlist/tst_qlist.cpp +++ b/tests/auto/corelib/tools/qlist/tst_qlist.cpp @@ -267,6 +267,7 @@ private slots: void last() const; void lastIndexOf() const; void mid() const; + void sliced() const; void moveInt() const; void moveMovable() const; void moveCustom() const; @@ -1287,6 +1288,13 @@ void tst_QList::first() const myvec.prepend(23); QCOMPARE(myvec.first(), 23); QCOMPARE(myvec.constFirst(), 23); + + + QCOMPARE(QList().first(0), QList()); + QCOMPARE(myvec.first(0), QList()); + QCOMPARE(myvec.first(1), (QList{23})); + QCOMPARE(myvec.first(2), (QList{23, 42})); + QCOMPARE(myvec.first(3), myvec); } void tst_QList::constFirst() const @@ -1546,6 +1554,12 @@ void tst_QList::last() const myvec.remove(3); QCOMPARE(myvec.last(), QLatin1String("C")); QCOMPARE(myvec.constLast(), QLatin1String("C")); + + QCOMPARE(QList().last(0), QList()); + QCOMPARE(myvec.last(0), QList()); + QCOMPARE(myvec.last(1), (QList{QLatin1String("C")})); + QCOMPARE(myvec.last(2), (QList{QLatin1String("B"), QLatin1String("C")})); + QCOMPARE(myvec.last(3), myvec); } void tst_QList::constLast() const @@ -1648,6 +1662,22 @@ void tst_QList::mid() const QCOMPARE(list.mid(4), QList() << "buck" << "hello" << "kitty"); } +void tst_QList::sliced() const +{ + QList list; + list << "foo" << "bar" << "baz" << "bak" << "buck" << "hello" << "kitty"; + + QCOMPARE(QList().sliced(0), QList()); + QCOMPARE(QList().sliced(0, 0), QList()); + QCOMPARE(list.sliced(3, 3), QList() << "bak" << "buck" << "hello"); + QCOMPARE(list.sliced(3), QList() << "bak" << "buck" << "hello" << "kitty"); + QCOMPARE(list.sliced(6, 1), QList() << "kitty"); + QCOMPARE(list.sliced(6), QList() << "kitty"); + QCOMPARE(list.sliced(0, list.size()), list); + QCOMPARE(list.sliced(0), list); + QCOMPARE(list.sliced(4), QList() << "buck" << "hello" << "kitty"); +} + template void tst_QList::qhash() const { -- cgit v1.2.3