From e1ec72eab6d00b3ba38e5932bc88920f103b6e4a Mon Sep 17 00:00:00 2001 From: aunsane Date: Fri, 27 Apr 2018 21:33:17 +0300 Subject: Telegram: initial commit - tdlib moved to telegram dir --- .../td/tdutils/test/OrderedEventsProcessor.cpp | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 protocols/Telegram/tdlib/td/tdutils/test/OrderedEventsProcessor.cpp (limited to 'protocols/Telegram/tdlib/td/tdutils/test/OrderedEventsProcessor.cpp') 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 +#include +#include + +TEST(OrderedEventsProcessor, random) { + int d = 5001; + int n = 1000000; + int offset = 1000000; + std::vector> 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 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); +} -- cgit v1.2.3