+ REQUIRE(want == got);
+ }
+
+ SECTION("Three events, no loop")
+ {
+
+ std::vector<simgrid::kernel::profile::DatedValue> got = trace2vector("3.0 1.0\n"
+ "5.0 2.0\n"
+ "9.0 3.0\n");
+
+ std::vector<simgrid::kernel::profile::DatedValue> want;
+ want.push_back(simgrid::kernel::profile::DatedValue(3, 1));
+ want.push_back(simgrid::kernel::profile::DatedValue(5, 2));
+ want.push_back(simgrid::kernel::profile::DatedValue(9, 3));
+
+ REQUIRE(want == got);
+ }
+
+ SECTION("Two events, looping")
+ {
+ std::vector<simgrid::kernel::profile::DatedValue> got = trace2vector("1.0 1.0\n"
+ "3.0 3.0\n"
+ "LOOPAFTER 2\n");
+
+ std::vector<simgrid::kernel::profile::DatedValue> want;
+ want.push_back(simgrid::kernel::profile::DatedValue(1, 1));
+ want.push_back(simgrid::kernel::profile::DatedValue(3, 3));
+ want.push_back(simgrid::kernel::profile::DatedValue(6, 1));
+ want.push_back(simgrid::kernel::profile::DatedValue(8, 3));
+ want.push_back(simgrid::kernel::profile::DatedValue(11, 1));
+ want.push_back(simgrid::kernel::profile::DatedValue(13, 3));
+ want.push_back(simgrid::kernel::profile::DatedValue(16, 1));
+ want.push_back(simgrid::kernel::profile::DatedValue(18, 3));
+
+ REQUIRE(want == got);
+ }
+
+ SECTION("Two events, looping, start at 0")
+ {
+ std::vector<simgrid::kernel::profile::DatedValue> got = trace2vector("0.0 1\n"
+ "5.0 2\n"
+ "LOOPAFTER 5\n");
+
+ std::vector<simgrid::kernel::profile::DatedValue> want;
+ want.push_back(simgrid::kernel::profile::DatedValue(0, 1));
+ want.push_back(simgrid::kernel::profile::DatedValue(5, 2));
+ want.push_back(simgrid::kernel::profile::DatedValue(10, 1));
+ want.push_back(simgrid::kernel::profile::DatedValue(15, 2));
+ want.push_back(simgrid::kernel::profile::DatedValue(20, 1));
+
+ REQUIRE(want == got);
+ }