22 std::vector<std::vector<std::string>> inputs(3);
24 for (
auto& list : inputs) {
25 int nParts = routeNo != 1 ? 1 : 3;
26 for (
size_t part = 0; part < nParts; ++part) {
33 auto nPartsGetter = [&inputs](
size_t i) {
34 return inputs[
i].size() / 2;
44 InputSpan span{nPartsGetter,
nullptr, indicesGetter, nextIndicesGetter, inputs.
size()};
45 REQUIRE(span.size() == inputs.size());
47 for (; routeNo < span.size(); ++routeNo) {
48 auto ref = span.get(routeNo);
49 REQUIRE(inputs[routeNo].at(0) ==
ref.header);
50 REQUIRE(inputs[routeNo].at(1) ==
ref.payload);
52 REQUIRE(span.getNofParts(routeNo) == 3);
53 ref = span.get(routeNo, 1);
54 REQUIRE(inputs[routeNo].at(2) ==
ref.header);
55 REQUIRE(inputs[routeNo].at(3) ==
ref.payload);
57 REQUIRE(span.getNofParts(routeNo) == 1);
62 for (
auto it = span.begin(),
end = span.end(); it !=
end; ++it) {
64 REQUIRE(it.size() * 2 == inputs[routeNo].size());
65 for (
auto const&
ref : it) {
66 REQUIRE(inputs[routeNo].at(partNo++) ==
ref.header);
67 REQUIRE(inputs[routeNo].at(partNo++) ==
ref.payload);
68 INFO(
ref.header <<
" " <<
ref.payload);