summaryrefslogtreecommitdiff
path: root/protocols/Telegram/tdlib/td/tdutils/test/Enumerator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Telegram/tdlib/td/tdutils/test/Enumerator.cpp')
-rw-r--r--protocols/Telegram/tdlib/td/tdutils/test/Enumerator.cpp25
1 files changed, 23 insertions, 2 deletions
diff --git a/protocols/Telegram/tdlib/td/tdutils/test/Enumerator.cpp b/protocols/Telegram/tdlib/td/tdutils/test/Enumerator.cpp
index 210ab415cc..6f40ae7b5f 100644
--- a/protocols/Telegram/tdlib/td/tdutils/test/Enumerator.cpp
+++ b/protocols/Telegram/tdlib/td/tdutils/test/Enumerator.cpp
@@ -1,14 +1,17 @@
//
-// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2022
+// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2023
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
+#include "td/utils/benchmark.h"
+#include "td/utils/common.h"
#include "td/utils/Enumerator.h"
+#include "td/utils/Random.h"
#include "td/utils/tests.h"
TEST(Enumerator, simple) {
- td::Enumerator<std::string> e;
+ td::Enumerator<td::string> e;
auto b = e.add("b");
auto a = e.add("a");
auto d = e.add("d");
@@ -22,3 +25,21 @@ TEST(Enumerator, simple) {
ASSERT_EQ(c, e.add("c"));
ASSERT_EQ(d, e.add("d"));
}
+
+TEST(Enumerator, add_benchmark) {
+ class EnumeratorAddBenchmark final : public td::Benchmark {
+ public:
+ td::string get_description() const final {
+ return "EnumeratorAdd";
+ }
+
+ void run(int n) final {
+ td::Enumerator<int> enumerator;
+ for (int i = 0; i < n; i++) {
+ enumerator.add(td::Random::fast(1, 10000000));
+ }
+ td::do_not_optimize_away(enumerator.size());
+ }
+ };
+ bench(EnumeratorAddBenchmark());
+}