A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add first implementation of maximal_subsets_iterator
[simgrid.git]
/
src
/
mc
/
explo
/
udpor
/
Configuration_test.cpp
diff --git
a/src/mc/explo/udpor/Configuration_test.cpp
b/src/mc/explo/udpor/Configuration_test.cpp
index bf12e98765ffec173ff4b64be627f8a51a9187af..f9d025ea83affa58b1ca14cc33d2ad9f18ca01ae 100644
(file)
--- a/
src/mc/explo/udpor/Configuration_test.cpp
+++ b/
src/mc/explo/udpor/Configuration_test.cpp
@@
-24,7
+24,8
@@
TEST_CASE("simgrid::mc::udpor::Configuration: Constructing Configurations")
UnfoldingEvent e1;
UnfoldingEvent e2{&e1};
UnfoldingEvent e3{&e2};
UnfoldingEvent e1;
UnfoldingEvent e2{&e1};
UnfoldingEvent e3{&e2};
- UnfoldingEvent e4{&e3}, e5{&e3};
+ UnfoldingEvent e4{&e3};
+ UnfoldingEvent e5{&e3};
SECTION("Creating a configuration without events")
{
SECTION("Creating a configuration without events")
{
@@
-191,8
+192,9
@@
TEST_CASE("simgrid::mc::udpor::Configuration: Topological Sort Order More Compli
UnfoldingEvent e1;
UnfoldingEvent e2{&e1};
UnfoldingEvent e3{&e2};
UnfoldingEvent e1;
UnfoldingEvent e2{&e1};
UnfoldingEvent e3{&e2};
- UnfoldingEvent e4{&e3}
, e6{&e3}
;
+ UnfoldingEvent e4{&e3};
UnfoldingEvent e5{&e4};
UnfoldingEvent e5{&e4};
+ UnfoldingEvent e6{&e3};
SECTION("Topological ordering for subsets")
{
SECTION("Topological ordering for subsets")
{
@@
-293,26
+295,28
@@
TEST_CASE("simgrid::mc::udpor::Configuration: Topological Sort Order Very Compli
// / / /
// [ e12 ]
UnfoldingEvent e1;
// / / /
// [ e12 ]
UnfoldingEvent e1;
- UnfoldingEvent e2{&e1}, e8{&e1};
+ UnfoldingEvent e2{&e1};
+ UnfoldingEvent e8{&e1};
UnfoldingEvent e3{&e2};
UnfoldingEvent e4{&e3};
UnfoldingEvent e3{&e2};
UnfoldingEvent e4{&e3};
- UnfoldingEvent e5{&e4}, e6{&e4};
- UnfoldingEvent e7{&e2, &e8}, e11{&e8};
- UnfoldingEvent e10{&e7}, e9{&e6, &e7};
+ UnfoldingEvent e5{&e4};
+ UnfoldingEvent e6{&e4};
+ UnfoldingEvent e7{&e2, &e8};
+ UnfoldingEvent e9{&e6, &e7};
+ UnfoldingEvent e10{&e7};
+ UnfoldingEvent e11{&e8};
UnfoldingEvent e12{&e5, &e9, &e10};
UnfoldingEvent e12{&e5, &e9, &e10};
+ Configuration C{&e1, &e2, &e3, &e4, &e5, &e6, &e7, &e8, &e9, &e10, &e11, &e12};
SECTION("Test every combination of the maximal configuration (forward graph)")
{
// To test this, we ensure that for the `i`th event
// in `ordered_events`, each event in `ordered_events[0...<i]
// is contained in the history of `ordered_events[i]`.
SECTION("Test every combination of the maximal configuration (forward graph)")
{
// To test this, we ensure that for the `i`th event
// in `ordered_events`, each event in `ordered_events[0...<i]
// is contained in the history of `ordered_events[i]`.
- Configuration C{&e1, &e2, &e3, &e4, &e5, &e6, &e7, &e8, &e9, &e10, &e11, &e12};
- const auto ordered_events = C.get_topologically_sorted_events();
-
EventSet events_seen;
EventSet events_seen;
- for (size_t i = 0; i < ordered_events.size(); i++) {
- UnfoldingEvent* e = ordered_events[i];
+ const auto ordered_events = C.get_topologically_sorted_events();
+ std::for_each(ordered_events.begin(), ordered_events.end(), [&events_seen](UnfoldingEvent* e) {
History history(e);
for (auto* e_hist : history) {
// In this demo, we want to make sure that
History history(e);
for (auto* e_hist : history) {
// In this demo, we want to make sure that
@@
-328,7
+332,7
@@
TEST_CASE("simgrid::mc::udpor::Configuration: Topological Sort Order Very Compli
REQUIRE(events_seen.contains(e_hist));
}
events_seen.insert(e);
REQUIRE(events_seen.contains(e_hist));
}
events_seen.insert(e);
- }
+ }
);
}
SECTION("Test every combination of the maximal configuration (reverse graph)")
}
SECTION("Test every combination of the maximal configuration (reverse graph)")
@@
-336,12
+340,10
@@
TEST_CASE("simgrid::mc::udpor::Configuration: Topological Sort Order Very Compli
// To test this, we ensure that for the `i`th event
// in `ordered_events`, no event in `ordered_events[0...<i]
// is contained in the history of `ordered_events[i]`.
// To test this, we ensure that for the `i`th event
// in `ordered_events`, no event in `ordered_events[0...<i]
// is contained in the history of `ordered_events[i]`.
-
Configuration C{&e1, &e2, &e3, &e4, &e5, &e6, &e7, &e8, &e9, &e10, &e11, &e12}
;
+
EventSet events_seen
;
const auto ordered_events = C.get_topologically_sorted_events_of_reverse_graph();
const auto ordered_events = C.get_topologically_sorted_events_of_reverse_graph();
- EventSet events_seen;
- for (size_t i = 0; i < ordered_events.size(); i++) {
- UnfoldingEvent* e = ordered_events[i];
+ std::for_each(ordered_events.begin(), ordered_events.end(), [&events_seen](UnfoldingEvent* e) {
History history(e);
for (auto* e_hist : history) {
History history(e);
for (auto* e_hist : history) {
@@
-354,6
+356,8
@@
TEST_CASE("simgrid::mc::udpor::Configuration: Topological Sort Order Very Compli
REQUIRE_FALSE(events_seen.contains(e_hist));
}
events_seen.insert(e);
REQUIRE_FALSE(events_seen.contains(e_hist));
}
events_seen.insert(e);
- }
+ }
);
}
}
+
+ SECTION("Test that the topological ordering contains only the events of the configuration") {}
}
\ No newline at end of file
}
\ No newline at end of file