GitHub Viewer
#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
#include
#include
#include
// --------------------------------------------------------
// Testcase: Module
// --------------------------------------------------------
void module1(unsigned W) {
tf::Executor executor(W);
tf::Taskflow f0;
int cnt {0};
auto A = f0.emplace([&cnt](){ ++cnt; });
auto B = f0.emplace([&cnt](){ ++cnt; });
auto C = f0.emplace([&cnt](){ ++cnt; });
auto D = f0.emplace([&cnt](){ ++cnt; });
auto E = f0.emplace([&cnt](){ ++cnt; });
A.precede(B);
B.precede(C);
C.precede(D);
D.precede(E);
tf::Taskflow f1;
// module 1
std::tie(A, B, C, D, E) = f1.emplace(
[&cnt] () { ++cnt; },
[&cnt] () { ++cnt; },
[&cnt] () { ++cnt; },
[&cnt] () { ++cnt; },
[&cnt] () { ++cnt; }
);
A.precede(B);
B.precede(C);
C.precede(D);
D.precede(E);
auto m1_1 = f1.composed_of(f0);
E.precede(m1_1);
executor.run(f1).get();
REQUIRE(cnt == 10);
cnt = 0;
executor.run_n(f1, 100).get();
REQUIRE(cnt == 10 * 100);
auto m1_2 = f1.composed_of(f0);
m1_1.precede(m1_2);
for(int n=0; n