diff options
author | Tobias Hunger <tobias.hunger@qt.io> | 2017-11-29 15:50:11 +0100 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@qt.io> | 2017-12-01 14:11:28 +0000 |
commit | b81d788793c4845782487cdd58eae3de82489261 (patch) | |
tree | e1190b9fba66b5ef832dfa07cca36fe548b1b56b /tests/auto/algorithm/tst_algorithm.cpp | |
parent | b712b1bc7cc3bddca0780d2e8b8d3611ab134376 (diff) | |
download | qt-creator-b81d788793c4845782487cdd58eae3de82489261.tar.gz |
Utils: Support more containers with Utils::transform
Support std::vector and similar classes as input and output.
Change-Id: I1d202d54c18e868ce0e71e4c2b6288565710baa8
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 | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/tests/auto/algorithm/tst_algorithm.cpp b/tests/auto/algorithm/tst_algorithm.cpp index 9fd35b5a16..1f54294c2d 100644 --- a/tests/auto/algorithm/tst_algorithm.cpp +++ b/tests/auto/algorithm/tst_algorithm.cpp @@ -26,6 +26,7 @@ #include <QtTest> #include <array> +#include <deque> #include <memory> #include <valarray> @@ -162,6 +163,78 @@ void tst_Algorithm::transform() const QList<int> trans = Utils::transform(list, &Struct::member); QCOMPARE(trans, QList<int>({4, 3, 2, 1, 2})); } + { + // QList -> std::vector + const QList<int> v({1, 2, 3, 4}); + const std::vector<int> trans = Utils::transform<std::vector>(v, [](int i) { return i + 1; }); + QCOMPARE(trans, std::vector<int>({2, 3, 4, 5})); + } + { + // QList -> std::vector + const QList<Struct> v({1, 2, 3, 4}); + const std::vector<int> trans = Utils::transform<std::vector>(v, &Struct::getMember); + QCOMPARE(trans, std::vector<int>({1, 2, 3, 4})); + } + { + // QList -> std::vector + const QList<Struct> v({1, 2, 3, 4}); + const std::vector<int> trans = Utils::transform<std::vector>(v, &Struct::member); + QCOMPARE(trans, std::vector<int>({1, 2, 3, 4})); + } + { + // std::vector -> QList + const std::vector<int> v({1, 2, 3, 4}); + const QList<int> trans = Utils::transform<QList>(v, [](int i) { return i + 1; }); + QCOMPARE(trans, QList<int>({2, 3, 4, 5})); + } + { + // std::vector -> QList + const std::vector<Struct> v({1, 2, 3, 4}); + const QList<int> trans = Utils::transform<QList>(v, &Struct::getMember); + QCOMPARE(trans, QList<int>({1, 2, 3, 4})); + } + { + // std::vector -> QList + const std::vector<Struct> v({1, 2, 3, 4}); + const QList<int> trans = Utils::transform<QList>(v, &Struct::member); + QCOMPARE(trans, QList<int>({1, 2, 3, 4})); + } + { + // std::deque -> std::vector + const std::deque<int> v({1, 2, 3, 4}); + const std::vector<int> trans = Utils::transform<std::vector>(v, [](int i) { return i + 1; }); + QCOMPARE(trans, std::vector<int>({2, 3, 4, 5})); + } + { + // std::deque -> std::vector + const std::deque<Struct> v({1, 2, 3, 4}); + const std::vector<int> trans = Utils::transform<std::vector>(v, &Struct::getMember); + QCOMPARE(trans, std::vector<int>({1, 2, 3, 4})); + } + { + // std::deque -> std::vector + const std::deque<Struct> v({1, 2, 3, 4}); + const std::vector<int> trans = Utils::transform<std::vector>(v, &Struct::member); + QCOMPARE(trans, std::vector<int>({1, 2, 3, 4})); + } + { + // std::vector -> std::vector + const std::vector<int> v({1, 2, 3, 4}); + const std::vector<int> trans = Utils::transform(v, [](int i) { return i + 1; }); + QCOMPARE(trans, std::vector<int>({2, 3, 4, 5})); + } + { + // std::vector -> std::vector + const std::vector<Struct> v({1, 2, 3, 4}); + const std::vector<int> trans = Utils::transform(v, &Struct::getMember); + QCOMPARE(trans, std::vector<int>({1, 2, 3, 4})); + } + { + // std::vector -> std::vector + const std::vector<Struct> v({1, 2, 3, 4}); + const std::vector<int> trans = Utils::transform(v, &Struct::member); + QCOMPARE(trans, std::vector<int>({1, 2, 3, 4})); + } } void tst_Algorithm::sort() |