mirror of
https://github.com/moveit/moveit_task_constructor.git
synced 2025-11-04 14:49:57 +08:00
Fix leaking of failures into enumerated solutions
This commit is contained in:
parent
7b965863e3
commit
13264ba21d
@ -487,7 +487,8 @@ struct SolutionCollector
|
|||||||
solutions.emplace_back(std::make_pair(trace, prio));
|
solutions.emplace_back(std::make_pair(trace, prio));
|
||||||
} else {
|
} else {
|
||||||
for (SolutionBase* successor : next) {
|
for (SolutionBase* successor : next) {
|
||||||
assert(!successor->isFailure()); // We shouldn't have invalid solutions
|
if (successor->isFailure())
|
||||||
|
continue; // skip failures
|
||||||
trace.push_back(successor);
|
trace.push_back(successor);
|
||||||
traverse(*successor, prio + InterfaceState::Priority(1, successor->cost()));
|
traverse(*successor, prio + InterfaceState::Priority(1, successor->cost()));
|
||||||
trace.pop_back();
|
trace.pop_back();
|
||||||
|
|||||||
@ -72,7 +72,6 @@ TEST_F(ConnectConnect, FailSucc) {
|
|||||||
|
|
||||||
// https://github.com/ros-planning/moveit_task_constructor/issues/485#issuecomment-1760606116
|
// https://github.com/ros-planning/moveit_task_constructor/issues/485#issuecomment-1760606116
|
||||||
// TODO: Solutions are enumerated multiple times
|
// TODO: Solutions are enumerated multiple times
|
||||||
// TODO: invalid solutions leak into enumeration
|
|
||||||
TEST_F(ConnectConnect, UniqueEnumeration) {
|
TEST_F(ConnectConnect, UniqueEnumeration) {
|
||||||
add(t, new GeneratorMockup({ 1.0, 2.0, 3.0 }));
|
add(t, new GeneratorMockup({ 1.0, 2.0, 3.0 }));
|
||||||
auto con1 = add(t, new ConnectMockup());
|
auto con1 = add(t, new ConnectMockup());
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user