/**
* @brief Construct a new compatibility graph from the events of the
- * configuration whose associated transitions are dependent with the
- * given action
+ * configuration that satisfy the given predicate
*
* @param pred whether or not to even consider the unfolding event in any
* compatibility nodes of the resulting graph
std::unique_ptr<CompatibilityGraph>
make_compatibility_graph_filtered_on(std::function<bool(const UnfoldingEvent*)> pred) const;
+ /**
+ * @brief Construct a new compatibility graph from the events of the
+ * configuration
+ *
+ * @returns a new compatibility graph that defines possible maximal subsets
+ * of events of C
+ */
+ std::unique_ptr<CompatibilityGraph> make_compatibility_graph() const;
+
private:
/**
* @brief The most recent event added to the configuration
UnfoldingEvent e7{&e2, &e8}, e11{&e8};
UnfoldingEvent e10{&e7}, e9{&e6, &e7};
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]`.
- 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;
// 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};
const auto ordered_events = C.get_topologically_sorted_events_of_reverse_graph();
EventSet events_seen;