diff --git a/core/test/test_fallback.cpp b/core/test/test_fallback.cpp index 19a6839c..42e16594 100644 --- a/core/test/test_fallback.cpp +++ b/core/test/test_fallback.cpp @@ -55,6 +55,24 @@ TEST_F(FallbacksFixturePropagate, ComputeFirstSuccessfulStageOnly) { EXPECT_EQ(t.numSolutions(), 1u); } +TEST_F(FallbacksFixturePropagate, ComputeFirstSuccessfulStagePerSolutionOnly) { + t.add(std::make_unique(std::list{ 0.0, 1.0 })); + + auto fallbacks = std::make_unique("Fallbacks"); + fallbacks->add(std::make_unique(std::list{ INF, 0.0 })); + fallbacks->add(std::make_unique(std::list{ 0.0, INF })); + auto fwd1 = fallbacks->findChild("FWD1"); + auto fwd2 = fallbacks->findChild("FWD2"); + t.add(std::move(fallbacks)); + + EXPECT_TRUE(t.plan()); + EXPECT_EQ(t.numSolutions(), 2u); + ASSERT_EQ(fwd1->solutions().size(), 1u); + EXPECT_EQ(fwd1->solutions().front()->cost(), 1.0); + ASSERT_EQ(fwd2->solutions().size(), 1u); + EXPECT_EQ(fwd2->solutions().front()->cost(), 0.0); +} + TEST_F(FallbacksFixturePropagate, ActiveChildReset) { t.add(std::make_unique(PredefinedCosts{ { 0.0, INF, 0.0 } }));