rearrange fallback test fixtures

This commit is contained in:
v4hn 2021-08-18 12:39:46 +02:00
parent 5d9efc3b2b
commit 2bee9d5f66
2 changed files with 36 additions and 28 deletions

View File

@ -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

View File

@ -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);
}