summaryrefslogtreecommitdiff
path: root/tests/auto/algorithm/tst_algorithm.cpp
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2016-08-03 22:55:07 +0300
committerOrgad Shaneh <orgads@gmail.com>2016-08-09 10:51:28 +0000
commita23e0692b44a21e43024dc596560f9d535c953b4 (patch)
treefc46af8fa0fe276006c591011c6230403df1a94a /tests/auto/algorithm/tst_algorithm.cpp
parentd8e94afb51d7a4bac2e64d2df393cc59ad9d5d0a (diff)
downloadqt-creator-a23e0692b44a21e43024dc596560f9d535c953b4.tar.gz
Utils: Introduce sort variants for member and member function
Change-Id: Iff29f2c55a08e85de7f0ff4e431f326e351e5305 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'tests/auto/algorithm/tst_algorithm.cpp')
-rw-r--r--tests/auto/algorithm/tst_algorithm.cpp27
1 files changed, 27 insertions, 0 deletions
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<QString> s3({"12345", "3333", "22"});
+ Utils::sort(s3, &QString::size);
+ QCOMPARE(s3, QList<QString>({"22", "3333", "12345"}));
+ QList<Struct> s4({4, 3, 2, 1});
+ Utils::sort(s4, &Struct::member);
+ QCOMPARE(s4, QList<Struct>({1, 2, 3, 4}));
+}
+
QTEST_MAIN(tst_Algorithm)
#include "tst_algorithm.moc"