From a23e0692b44a21e43024dc596560f9d535c953b4 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Wed, 3 Aug 2016 22:55:07 +0300 Subject: Utils: Introduce sort variants for member and member function Change-Id: Iff29f2c55a08e85de7f0ff4e431f326e351e5305 Reviewed-by: Eike Ziller --- tests/auto/algorithm/tst_algorithm.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'tests/auto/algorithm/tst_algorithm.cpp') diff --git a/tests/auto/algorithm/tst_algorithm.cpp b/tests/auto/algorithm/tst_algorithm.cpp index 9c2e4402dd..768309a64f 100644 --- a/tests/auto/algorithm/tst_algorithm.cpp +++ b/tests/auto/algorithm/tst_algorithm.cpp @@ -33,6 +33,7 @@ class tst_Algorithm : public QObject private slots: void transform(); + void sort(); }; @@ -111,6 +112,32 @@ void tst_Algorithm::transform() } } +namespace { +struct Struct +{ + Struct(int m) : member(m) {} + bool operator==(const Struct &other) const { return member == other.member; } + + int member; +}; +} + +void tst_Algorithm::sort() +{ + QStringList s1({"3", "2", "1"}); + Utils::sort(s1); + QCOMPARE(s1, QStringList({"1", "2", "3"})); + QStringList s2({"13", "31", "22"}); + Utils::sort(s2, [](const QString &a, const QString &b) { return a[1] < b[1]; }); + QCOMPARE(s2, QStringList({"31", "22", "13"})); + QList s3({"12345", "3333", "22"}); + Utils::sort(s3, &QString::size); + QCOMPARE(s3, QList({"22", "3333", "12345"})); + QList s4({4, 3, 2, 1}); + Utils::sort(s4, &Struct::member); + QCOMPARE(s4, QList({1, 2, 3, 4})); +} + QTEST_MAIN(tst_Algorithm) #include "tst_algorithm.moc" -- cgit v1.2.1