@@ -73,6 +73,34 @@ class TestControllerManagerWithStrictness
73
73
}
74
74
};
75
75
76
+ TEST (ControllerManagerDependencyGraph, controller_chain_dependency_graph)
77
+ {
78
+ {
79
+ controller_manager::ControllerChainDependencyGraph graph;
80
+ // Let's test the case of A -> B -> C -> D && B -> E && E -> F
81
+ graph.add_dependency (" A" , " B" );
82
+ graph.add_dependency (" B" , " C" );
83
+ graph.add_dependency (" C" , " D" );
84
+ graph.add_dependency (" B" , " E" );
85
+ graph.add_dependency (" E" , " F" );
86
+
87
+ EXPECT_THAT (
88
+ graph.get_all_successors (" A" ), testing::UnorderedElementsAre (" B" , " C" , " D" , " E" , " F" ));
89
+ EXPECT_THAT (graph.get_all_successors (" B" ), testing::UnorderedElementsAre (" C" , " D" , " E" , " F" ));
90
+ EXPECT_THAT (graph.get_all_successors (" C" ), testing::UnorderedElementsAre (" D" ));
91
+ EXPECT_THAT (graph.get_all_successors (" D" ), testing::UnorderedElementsAre ());
92
+ EXPECT_THAT (graph.get_all_successors (" E" ), testing::UnorderedElementsAre (" F" ));
93
+ EXPECT_THAT (graph.get_all_successors (" F" ), testing::UnorderedElementsAre ());
94
+
95
+ EXPECT_THAT (graph.get_all_predecessors (" A" ), testing::UnorderedElementsAre ());
96
+ EXPECT_THAT (graph.get_all_predecessors (" B" ), testing::UnorderedElementsAre (" A" ));
97
+ EXPECT_THAT (graph.get_all_predecessors (" C" ), testing::UnorderedElementsAre (" B" , " A" ));
98
+ EXPECT_THAT (graph.get_all_predecessors (" D" ), testing::UnorderedElementsAre (" C" , " B" , " A" ));
99
+ EXPECT_THAT (graph.get_all_predecessors (" E" ), testing::UnorderedElementsAre (" B" , " A" ));
100
+ EXPECT_THAT (graph.get_all_predecessors (" F" ), testing::UnorderedElementsAre (" E" , " B" , " A" ));
101
+ }
102
+ }
103
+
76
104
class TestControllerManagerRobotDescription
77
105
: public ControllerManagerFixture<controller_manager::ControllerManager>
78
106
{
0 commit comments