ultimatepp/autotest/RangeCoLoop/RangeCoLoop.cpp
cxl 7620412a04 .autotest
git-svn-id: svn://ultimatepp.org/upp/trunk@10410 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2016-11-12 07:12:08 +00:00

38 lines
678 B
C++

#include <Core/Core.h>
#include <plugin/zstd/zstd.h>
using namespace Upp;
CONSOLE_APP_MAIN {
StdLogSetup(LOG_COUT|LOG_FILE);
Vector<int> x;
for(int i = 0; i < 100000000; i++)
x.Add(i);
int sum = 0;
CoFor(x, [&sum](const SubRangeOf<Vector<int>>& range) {
int sum1 = 0;
for(const auto& m : range)
sum1 += m;
CoWork::FinLock();
sum += sum1;
});
ASSERT(sum = Sum(x));
ASSERT(sum = CoSum(x));
sum = 0;
CoFor(0, x.GetCount(), [&sum, &x](int from, int to) {
int sum1 = 0;
while(from < to)
sum1 += x[from++];
CoWork::FinLock();
sum += sum1;
});
ASSERT(sum = Sum(x));
LOG("=================== OK");
}