mirror of
https://github.com/moveit/moveit_task_constructor.git
synced 2025-11-04 14:49:57 +08:00
add unit tests for Fallbacks container
This commit is contained in:
parent
d0ab3c3703
commit
f6eadb3fc4
@ -44,6 +44,7 @@ void append(ContainerBase& c, const std::initializer_list<StageType>& types) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
constexpr double INF = std::numeric_limits<double>::infinity();
|
||||||
|
|
||||||
class NamedStage : public GeneratorMockup
|
class NamedStage : public GeneratorMockup
|
||||||
{
|
{
|
||||||
@ -685,3 +686,52 @@ TEST(Fallback, failing) {
|
|||||||
EXPECT_FALSE(t.plan());
|
EXPECT_FALSE(t.plan());
|
||||||
EXPECT_EQ(t.solutions().size(), 0u);
|
EXPECT_EQ(t.solutions().size(), 0u);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(Fallback, ConnectStageInsideFallbacks) {
|
||||||
|
resetMockupIds();
|
||||||
|
Task t;
|
||||||
|
t.setRobotModel(getModel());
|
||||||
|
|
||||||
|
t.add(std::make_unique<GeneratorMockup>());
|
||||||
|
|
||||||
|
auto fallbacks = std::make_unique<Fallbacks>("Fallbacks");
|
||||||
|
fallbacks->add(std::make_unique<ConnectMockup>());
|
||||||
|
t.add(std::move(fallbacks));
|
||||||
|
|
||||||
|
t.add(std::make_unique<GeneratorMockup>());
|
||||||
|
|
||||||
|
EXPECT_TRUE(t.plan());
|
||||||
|
EXPECT_EQ(t.numSolutions(), 1u);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(Fallback, ComputeFirstSuccessfulStageOnly) {
|
||||||
|
resetMockupIds();
|
||||||
|
Task t;
|
||||||
|
t.setRobotModel(getModel());
|
||||||
|
|
||||||
|
t.add(std::make_unique<GeneratorMockup>());
|
||||||
|
|
||||||
|
auto fallbacks = std::make_unique<Fallbacks>("Fallbacks");
|
||||||
|
fallbacks->add(std::make_unique<ForwardMockup>(PredefinedCosts::constant(0.0)));
|
||||||
|
fallbacks->add(std::make_unique<ForwardMockup>(PredefinedCosts::constant(0.0)));
|
||||||
|
t.add(std::move(fallbacks));
|
||||||
|
|
||||||
|
EXPECT_TRUE(t.plan());
|
||||||
|
EXPECT_EQ(t.numSolutions(), 1u);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(Fallback, ActiveChildReset) {
|
||||||
|
resetMockupIds();
|
||||||
|
Task t;
|
||||||
|
t.setRobotModel(getModel());
|
||||||
|
|
||||||
|
t.add(std::make_unique<GeneratorMockup>(PredefinedCosts{ { 0.0, INF, 0.0 } }));
|
||||||
|
|
||||||
|
auto fallbacks = std::make_unique<Fallbacks>("Fallbacks");
|
||||||
|
fallbacks->add(std::make_unique<ForwardMockup>(PredefinedCosts::constant(0.0)));
|
||||||
|
fallbacks->add(std::make_unique<ForwardMockup>(PredefinedCosts::constant(0.0)));
|
||||||
|
t.add(std::move(fallbacks));
|
||||||
|
|
||||||
|
EXPECT_TRUE(t.plan());
|
||||||
|
EXPECT_EQ(t.numSolutions(), 4u);
|
||||||
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user