summaryrefslogtreecommitdiffstats
path: root/tests/benchmarks/corelib/tools/qmap/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/benchmarks/corelib/tools/qmap/main.cpp')
-rw-r--r--tests/benchmarks/corelib/tools/qmap/main.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/benchmarks/corelib/tools/qmap/main.cpp b/tests/benchmarks/corelib/tools/qmap/main.cpp
index 05b52ba42f..c11e54ff1d 100644
--- a/tests/benchmarks/corelib/tools/qmap/main.cpp
+++ b/tests/benchmarks/corelib/tools/qmap/main.cpp
@@ -60,6 +60,10 @@ private slots:
void lookup_string_int();
void iteration();
+ void toStdMap();
+ void iterator_begin();
+
+ void ctorStdMap();
};
@@ -159,6 +163,46 @@ void tst_QMap::iteration()
}
}
+void tst_QMap::toStdMap()
+{
+ QMap<int, int> map;
+ for (int i = 0; i < 100000; ++i)
+ map.insert(i, i);
+
+ QBENCHMARK {
+ std::map<int, int> n = map.toStdMap();
+ n.begin();
+ }
+}
+
+void tst_QMap::iterator_begin()
+{
+ QMap<int, int> map;
+ for (int i = 0; i < 100000; ++i)
+ map.insert(i, i);
+
+ QBENCHMARK {
+ for (int i = 0; i < 100000; ++i) {
+ QMap<int, int>::const_iterator it = map.constBegin();
+ QMap<int, int>::const_iterator end = map.constEnd();
+ if (it == end) // same as if (false)
+ ++it;
+ }
+ }
+}
+
+void tst_QMap::ctorStdMap()
+{
+ std::map<int, int> map;
+ for (int i = 0; i < 100000; ++i)
+ map.insert(std::pair<int, int>(i, i));
+
+ QBENCHMARK {
+ QMap<int, int> qmap(map);
+ qmap.constBegin();
+ }
+}
+
QTEST_MAIN(tst_QMap)