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
|
#pragma once
|
||||||
|
|
||||||
#include <moveit/task_constructor/stage_p.h>
|
#include <moveit/task_constructor/task.h>
|
||||||
|
|
||||||
#include <moveit/planning_scene/planning_scene.h>
|
#include <moveit/planning_scene/planning_scene.h>
|
||||||
|
|
||||||
|
#include "models.h"
|
||||||
|
|
||||||
|
#include <gtest/gtest.h>
|
||||||
|
|
||||||
namespace moveit {
|
namespace moveit {
|
||||||
namespace task_constructor {
|
namespace task_constructor {
|
||||||
|
|
||||||
@ -113,5 +118,15 @@ struct BackwardMockup : public PropagatorMockup
|
|||||||
// reset ids of all Mockup types (used to generate unique stage names)
|
// reset ids of all Mockup types (used to generate unique stage names)
|
||||||
void resetMockupIds();
|
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 task_constructor
|
||||||
} // namespace moveit
|
} // namespace moveit
|
||||||
|
|||||||
@ -17,18 +17,9 @@ using namespace moveit::task_constructor;
|
|||||||
|
|
||||||
constexpr double INF = std::numeric_limits<double>::infinity();
|
constexpr double INF = std::numeric_limits<double>::infinity();
|
||||||
|
|
||||||
struct TestBase : public testing::Test
|
using FallbacksFixturePropagate = TaskTestBase;
|
||||||
{
|
|
||||||
Task t;
|
|
||||||
TestBase() {
|
|
||||||
resetMockupIds();
|
|
||||||
t.setRobotModel(getModel());
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
using FallbacksFixture = TestBase;
|
TEST_F(FallbacksFixturePropagate, failingNoSolutions) {
|
||||||
|
|
||||||
TEST_F(FallbacksFixture, failingNoSolutions) {
|
|
||||||
t.add(std::make_unique<GeneratorMockup>(PredefinedCosts::single(0.0)));
|
t.add(std::make_unique<GeneratorMockup>(PredefinedCosts::single(0.0)));
|
||||||
|
|
||||||
auto fallback = std::make_unique<Fallbacks>("Fallbacks");
|
auto fallback = std::make_unique<Fallbacks>("Fallbacks");
|
||||||
@ -40,7 +31,7 @@ TEST_F(FallbacksFixture, failingNoSolutions) {
|
|||||||
EXPECT_EQ(t.solutions().size(), 0u);
|
EXPECT_EQ(t.solutions().size(), 0u);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(FallbacksFixture, failingWithFailedSolutions) {
|
TEST_F(FallbacksFixturePropagate, failingWithFailedSolutions) {
|
||||||
t.add(std::make_unique<GeneratorMockup>(PredefinedCosts::single(0.0)));
|
t.add(std::make_unique<GeneratorMockup>(PredefinedCosts::single(0.0)));
|
||||||
|
|
||||||
auto fallback = std::make_unique<Fallbacks>("Fallbacks");
|
auto fallback = std::make_unique<Fallbacks>("Fallbacks");
|
||||||
@ -52,20 +43,7 @@ TEST_F(FallbacksFixture, failingWithFailedSolutions) {
|
|||||||
EXPECT_EQ(t.solutions().size(), 0u);
|
EXPECT_EQ(t.solutions().size(), 0u);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(FallbacksFixture, DISABLED_ConnectStageInsideFallbacks) {
|
TEST_F(FallbacksFixturePropagate, ComputeFirstSuccessfulStageOnly) {
|
||||||
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) {
|
|
||||||
t.add(std::make_unique<GeneratorMockup>());
|
t.add(std::make_unique<GeneratorMockup>());
|
||||||
|
|
||||||
auto fallbacks = std::make_unique<Fallbacks>("Fallbacks");
|
auto fallbacks = std::make_unique<Fallbacks>("Fallbacks");
|
||||||
@ -77,7 +55,7 @@ TEST_F(FallbacksFixture, ComputeFirstSuccessfulStageOnly) {
|
|||||||
EXPECT_EQ(t.numSolutions(), 1u);
|
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 } }));
|
t.add(std::make_unique<GeneratorMockup>(PredefinedCosts{ { 0.0, INF, 0.0 } }));
|
||||||
|
|
||||||
auto fallbacks = std::make_unique<Fallbacks>("Fallbacks");
|
auto fallbacks = std::make_unique<Fallbacks>("Fallbacks");
|
||||||
@ -90,3 +68,18 @@ TEST_F(FallbacksFixture, ActiveChildReset) {
|
|||||||
EXPECT_EQ(t.numSolutions(), 2u);
|
EXPECT_EQ(t.numSolutions(), 2u);
|
||||||
EXPECT_EQ(first->solutions().size(), 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