diff options
author | aunsane <aunsane@gmail.com> | 2018-04-27 21:33:17 +0300 |
---|---|---|
committer | aunsane <aunsane@gmail.com> | 2018-04-27 21:33:17 +0300 |
commit | e1ec72eab6d00b3ba38e5932bc88920f103b6e4a (patch) | |
tree | 999de2725a83e30fbbf6576200525d4ef0c5fe38 /protocols/Telegram/tdlib/td/tdutils/test/OrderedEventsProcessor.cpp | |
parent | b9ce1d4d98525490ca1a38e2d9fd4f3369adb3e0 (diff) |
Telegram: initial commit
- tdlib moved to telegram dir
Diffstat (limited to 'protocols/Telegram/tdlib/td/tdutils/test/OrderedEventsProcessor.cpp')
-rw-r--r-- | protocols/Telegram/tdlib/td/tdutils/test/OrderedEventsProcessor.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/protocols/Telegram/tdlib/td/tdutils/test/OrderedEventsProcessor.cpp b/protocols/Telegram/tdlib/td/tdutils/test/OrderedEventsProcessor.cpp new file mode 100644 index 0000000000..6a5a20015f --- /dev/null +++ b/protocols/Telegram/tdlib/td/tdutils/test/OrderedEventsProcessor.cpp @@ -0,0 +1,36 @@ +// +// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2018 +// +// 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/OrderedEventsProcessor.h" +#include "td/utils/Random.h" +#include "td/utils/tests.h" + +#include <algorithm> +#include <utility> +#include <vector> + +TEST(OrderedEventsProcessor, random) { + int d = 5001; + int n = 1000000; + int offset = 1000000; + std::vector<std::pair<int, int>> v; + for (int i = 0; i < n; i++) { + auto shift = td::Random::fast(0, 1) ? td::Random::fast(0, d) : td::Random::fast(0, 1) * d; + v.push_back({i + shift, i + offset}); + } + std::sort(v.begin(), v.end()); + + td::OrderedEventsProcessor<int> processor(offset); + int next_pos = offset; + for (auto p : v) { + int seq_no = p.second; + processor.add(seq_no, seq_no, [&](auto seq_no, int x) { + ASSERT_EQ(x, next_pos); + next_pos++; + }); + } + ASSERT_EQ(next_pos, n + offset); +} |