diff options
author | Tobias Hunger <tobias.hunger@qt.io> | 2017-11-30 17:03:22 +0100 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@qt.io> | 2017-12-01 13:16:43 +0000 |
commit | 33fc20ab51f2f39c090bf31cabf2b0664db27f8f (patch) | |
tree | 2801609fd0ab5d372bed9477f45edbb5d90427af /tests/auto/algorithm/tst_algorithm.cpp | |
parent | 9b832f670d06e47940851f622a117da826ce75a6 (diff) | |
download | qt-creator-33fc20ab51f2f39c090bf31cabf2b0664db27f8f.tar.gz |
Utils: Improve Utils::contains
* Consistently use anyOf to implement contains.
* Support contains over an container of std::unique_ptr matching a pointer.
Change-Id: I0180f3ec3d5935d8afeeac67a745d4b38a01674d
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.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/tests/auto/algorithm/tst_algorithm.cpp b/tests/auto/algorithm/tst_algorithm.cpp index d1f76d16d8..9fd35b5a16 100644 --- a/tests/auto/algorithm/tst_algorithm.cpp +++ b/tests/auto/algorithm/tst_algorithm.cpp @@ -60,6 +60,8 @@ struct Struct bool isOdd() const { return member % 2 == 1; } bool isEven() const { return !isOdd(); } + int getMember() const { return member; } + int member; }; } @@ -205,6 +207,12 @@ void tst_Algorithm::contains() std::vector<int> v1{1, 2, 3, 4}; QVERIFY(Utils::contains(v1, [](int i) { return i == 2; })); QVERIFY(!Utils::contains(v1, [](int i) { return i == 5; })); + std::vector<Struct> structs = {2, 4, 6, 8}; + QVERIFY(Utils::contains(structs, &Struct::isEven)); + QVERIFY(!Utils::contains(structs, &Struct::isOdd)); + QList<Struct> structQlist = {2, 4, 6, 8}; + QVERIFY(Utils::contains(structQlist, &Struct::isEven)); + QVERIFY(!Utils::contains(structQlist, &Struct::isOdd)); std::vector<std::unique_ptr<int>> v2; v2.emplace_back(std::make_unique<int>(1)); v2.emplace_back(std::make_unique<int>(2)); @@ -212,6 +220,10 @@ void tst_Algorithm::contains() v2.emplace_back(std::make_unique<int>(4)); QVERIFY(Utils::contains(v2, [](const std::unique_ptr<int> &ip) { return *ip == 2; })); QVERIFY(!Utils::contains(v2, [](const std::unique_ptr<int> &ip) { return *ip == 5; })); + // Find pointers in unique_ptrs: + QVERIFY(Utils::contains(v2, v2.back().get())); + int foo = 42; + QVERIFY(!Utils::contains(v2, &foo)); } void tst_Algorithm::findOr() |