aboutsummaryrefslogtreecommitdiffhomepage
path: root/tdutils/test
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2024-11-01 23:22:16 +0300
committerlevlam <levlam@telegram.org>2024-11-01 23:22:16 +0300
commitb3c741ff2e1079d2d7f26329b288df6118421b85 (patch)
tree52e795d4ecffb2c59955db90cf3993c44f37711e /tdutils/test
parent4e5bd36f49203f5a8aeec24b2157605670560cf1 (diff)
Add td::vector_split.
Diffstat (limited to 'tdutils/test')
-rw-r--r--tdutils/test/misc.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/tdutils/test/misc.cpp b/tdutils/test/misc.cpp
index cabd4e6ef..a3ae1b4e6 100644
--- a/tdutils/test/misc.cpp
+++ b/tdutils/test/misc.cpp
@@ -322,6 +322,29 @@ TEST(Misc, bench_zero_encode) {
td::bench(ZeroEncodeBenchmark());
}
+static void test_vector_split(td::vector<char> v, std::size_t size, const td::vector<td::vector<char>> &expected) {
+ auto split = td::vector_split(std::move(v), size);
+ if (expected != split) {
+ LOG(FATAL) << "Receive " << split << ", expected " << expected << " in vector_split";
+ }
+}
+
+TEST(Misc, vector_split) {
+ test_vector_split({}, 1, {});
+ test_vector_split({}, 2, {});
+ test_vector_split({'1'}, 1, {{'1'}});
+ test_vector_split({'1'}, 2, {{'1'}});
+ td::vector<char> v{'1', '2', '3', '4', '5', '6'};
+ test_vector_split(v, 1, {{'1'}, {'2'}, {'3'}, {'4'}, {'5'}, {'6'}});
+ test_vector_split(v, 2, {{'1', '2'}, {'3', '4'}, {'5', '6'}});
+ test_vector_split(v, 3, {{'1', '2', '3'}, {'4', '5', '6'}});
+ test_vector_split(v, 4, {{'1', '2', '3', '4'}, {'5', '6'}});
+ test_vector_split(v, 5, {{'1', '2', '3', '4', '5'}, {'6'}});
+ test_vector_split(v, 6, {v});
+ test_vector_split(v, 7, {v});
+ test_vector_split(v, 107, {v});
+}
+
template <class T>
static void test_remove_if(td::vector<int> v, const T &func, const td::vector<int> &expected) {
td::remove_if(v, func);