mirror of
https://github.com/moveit/moveit_task_constructor.git
synced 2025-11-04 14:49:57 +08:00
rearrange fallback test fixtures
This commit is contained in:
parent
5d9efc3b2b
commit
2bee9d5f66
@ -1,8 +1,13 @@
|
||||
#pragma once
|
||||
|
||||
#include <moveit/task_constructor/stage_p.h>
|
||||
#include <moveit/task_constructor/task.h>
|
||||
|
||||
#include <moveit/planning_scene/planning_scene.h>
|
||||
|
||||
#include "models.h"
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
namespace moveit {
|
||||
namespace task_constructor {
|
||||
|
||||
@ -113,5 +118,15 @@ struct BackwardMockup : public PropagatorMockup
|
||||
// reset ids of all Mockup types (used to generate unique stage names)
|
||||
void resetMockupIds();
|
||||
|
||||
// provide a basic test fixture that prepares a Task
|
||||
struct TaskTestBase : public testing::Test
|
||||
{
|
||||
Task t;
|
||||
TaskTestBase() {
|
||||
resetMockupIds();
|
||||
t.setRobotModel(getModel());
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace task_constructor
|
||||
} // namespace moveit
|
||||
|
||||
@ -17,18 +17,9 @@ using namespace moveit::task_constructor;
|
||||
|
||||
constexpr double INF = std::numeric_limits<double>::infinity();
|
||||
|
||||
struct TestBase : public testing::Test
|
||||
{
|
||||
Task t;
|
||||
TestBase() {
|
||||
resetMockupIds();
|
||||
t.setRobotModel(getModel());
|
||||
}
|
||||
};
|
||||
using FallbacksFixturePropagate = TaskTestBase;
|
||||
|
||||
using FallbacksFixture = TestBase;
|
||||
|
||||
TEST_F(FallbacksFixture, failingNoSolutions) {
|
||||
TEST_F(FallbacksFixturePropagate, failingNoSolutions) {
|
||||
t.add(std::make_unique<GeneratorMockup>(PredefinedCosts::single(0.0)));
|
||||
|
||||
auto fallback = std::make_unique<Fallbacks>("Fallbacks");
|
||||
@ -40,7 +31,7 @@ TEST_F(FallbacksFixture, failingNoSolutions) {
|
||||
EXPECT_EQ(t.solutions().size(), 0u);
|
||||
}
|
||||
|
||||
TEST_F(FallbacksFixture, failingWithFailedSolutions) {
|
||||
TEST_F(FallbacksFixturePropagate, failingWithFailedSolutions) {
|
||||
t.add(std::make_unique<GeneratorMockup>(PredefinedCosts::single(0.0)));
|
||||
|
||||
auto fallback = std::make_unique<Fallbacks>("Fallbacks");
|
||||
@ -52,20 +43,7 @@ TEST_F(FallbacksFixture, failingWithFailedSolutions) {
|
||||
EXPECT_EQ(t.solutions().size(), 0u);
|
||||
}
|
||||
|
||||
TEST_F(FallbacksFixture, DISABLED_ConnectStageInsideFallbacks) {
|
||||
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_F(FallbacksFixture, ComputeFirstSuccessfulStageOnly) {
|
||||
TEST_F(FallbacksFixturePropagate, ComputeFirstSuccessfulStageOnly) {
|
||||
t.add(std::make_unique<GeneratorMockup>());
|
||||
|
||||
auto fallbacks = std::make_unique<Fallbacks>("Fallbacks");
|
||||
@ -77,7 +55,7 @@ TEST_F(FallbacksFixture, ComputeFirstSuccessfulStageOnly) {
|
||||
EXPECT_EQ(t.numSolutions(), 1u);
|
||||
}
|
||||
|
||||
TEST_F(FallbacksFixture, ActiveChildReset) {
|
||||
TEST_F(FallbacksFixturePropagate, ActiveChildReset) {
|
||||
t.add(std::make_unique<GeneratorMockup>(PredefinedCosts{ { 0.0, INF, 0.0 } }));
|
||||
|
||||
auto fallbacks = std::make_unique<Fallbacks>("Fallbacks");
|
||||
@ -90,3 +68,18 @@ TEST_F(FallbacksFixture, ActiveChildReset) {
|
||||
EXPECT_EQ(t.numSolutions(), 2u);
|
||||
EXPECT_EQ(first->solutions().size(), 2u);
|
||||
}
|
||||
|
||||
using FallbacksFixtureConnect = TaskTestBase;
|
||||
|
||||
TEST_F(FallbacksFixtureConnect, DISABLED_ConnectStageInsideFallbacks) {
|
||||
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);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user