TEST_CASE("simgrid::mc::udpor::Configuration: Constructing Configurations")
{
+ // The following tests concern the given event structure:
+ // e1
+ // /
+ // e2
+ // /
+ // e3
+ // / /
+ // e4 e5
+ UnfoldingEvent e1;
+ UnfoldingEvent e2{&e1};
+ UnfoldingEvent e3{&e2};
+ UnfoldingEvent e4{&e3}, e5{&e3};
+
SECTION("Creating a configuration without events")
{
Configuration C;
SECTION("Creating a configuration with events")
{
- // The following tests concern the given event structure:
- // e1
- // /
- // e2
- // /
- // e3
- // / /
- // e4 e5
- UnfoldingEvent e1;
- UnfoldingEvent e2{&e1};
- UnfoldingEvent e3{&e2};
- UnfoldingEvent e4{&e3}, e5{&e3};
-
// 5 choose 0 = 1 test
REQUIRE_NOTHROW(Configuration({&e1}));
REQUIRE_NOTHROW(Configuration({&e1, &e2, &e3, &e4, &e5}));
}
}
+
+TEST_CASE("simgrid::mc::udpor::Configuration: Adding Events")
+{
+ // The following tests concern the given event structure:
+ // e1
+ // /
+ // e2
+ // /
+ // / /
+ // e3 e4
+ UnfoldingEvent e1;
+ UnfoldingEvent e2{&e1};
+ UnfoldingEvent e3{&e2};
+ UnfoldingEvent e4{&e2};
+
+ REQUIRE_THROWS_AS(Configuration().add_event(nullptr), std::invalid_argument);
+ REQUIRE_THROWS_AS(Configuration().add_event(&e2), std::invalid_argument);
+ REQUIRE_THROWS_AS(Configuration().add_event(&e3), std::invalid_argument);
+ REQUIRE_THROWS_AS(Configuration().add_event(&e4), std::invalid_argument);
+ REQUIRE_THROWS_AS(Configuration({&e1}).add_event(&e3), std::invalid_argument);
+ REQUIRE_THROWS_AS(Configuration({&e1}).add_event(&e4), std::invalid_argument);
+
+ REQUIRE_NOTHROW(Configuration().add_event(&e1));
+ REQUIRE_NOTHROW(Configuration({&e1}).add_event(&e1));
+ REQUIRE_NOTHROW(Configuration({&e1}).add_event(&e2));
+ REQUIRE_NOTHROW(Configuration({&e1, &e2}).add_event(&e1));
+ REQUIRE_NOTHROW(Configuration({&e1, &e2}).add_event(&e2));
+ REQUIRE_NOTHROW(Configuration({&e1, &e2}).add_event(&e3));
+ REQUIRE_NOTHROW(Configuration({&e1, &e2}).add_event(&e4));
+ REQUIRE_NOTHROW(Configuration({&e1, &e2, &e3}).add_event(&e1));
+ REQUIRE_NOTHROW(Configuration({&e1, &e2, &e3}).add_event(&e2));
+ REQUIRE_NOTHROW(Configuration({&e1, &e2, &e3}).add_event(&e3));
+ REQUIRE_NOTHROW(Configuration({&e1, &e2, &e3}).add_event(&e4));
+ REQUIRE_NOTHROW(Configuration({&e1, &e2, &e4}).add_event(&e1));
+ REQUIRE_NOTHROW(Configuration({&e1, &e2, &e4}).add_event(&e2));
+ REQUIRE_NOTHROW(Configuration({&e1, &e2, &e4}).add_event(&e3));
+ REQUIRE_NOTHROW(Configuration({&e1, &e2, &e4}).add_event(&e4));
+ REQUIRE_NOTHROW(Configuration({&e1, &e2, &e3, &e4}).add_event(&e1));
+ REQUIRE_NOTHROW(Configuration({&e1, &e2, &e3, &e4}).add_event(&e2));
+ REQUIRE_NOTHROW(Configuration({&e1, &e2, &e3, &e4}).add_event(&e3));
+ REQUIRE_NOTHROW(Configuration({&e1, &e2, &e3, &e4}).add_event(&e4));
+}