Skip to content

Commit

Permalink
Fix some merging-dependent tests
Browse files Browse the repository at this point in the history
  • Loading branch information
dellaert committed Feb 3, 2025
1 parent 43544ae commit 6f11b4a
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 11 deletions.
18 changes: 12 additions & 6 deletions gtsam/hybrid/tests/testHybridGaussianConditional.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -318,21 +318,27 @@ TEST(HybridGaussianConditional, Restrict) {
const auto hc =
std::make_shared<HybridConditional>(two_mode_measurement::hgc);

const HybridConditional::shared_ptr same = hc->restrict({});
const auto same =
std::dynamic_pointer_cast<HybridConditional>(hc->restrict({}));
CHECK(same);
EXPECT(same->isHybrid());
EXPECT(same->asHybrid()->nrComponents() == 4);

const HybridConditional::shared_ptr oneParent = hc->restrict({{M(1), 0}});
const auto oneParent =
std::dynamic_pointer_cast<HybridConditional>(hc->restrict({{M(1), 0}}));
CHECK(oneParent);
EXPECT(oneParent->isHybrid());
EXPECT(oneParent->asHybrid()->nrComponents() == 2);

const HybridConditional::shared_ptr oneParent2 =
hc->restrict({{M(7), 0}, {M(1), 0}});
const auto oneParent2 = std::dynamic_pointer_cast<HybridConditional>(
hc->restrict({{M(7), 0}, {M(1), 0}}));
CHECK(oneParent2);
EXPECT(oneParent2->isHybrid());
EXPECT(oneParent2->asHybrid()->nrComponents() == 2);

const HybridConditional::shared_ptr gaussian =
hc->restrict({{M(1), 0}, {M(2), 1}});
const auto gaussian = std::dynamic_pointer_cast<HybridConditional>(
hc->restrict({{M(1), 0}, {M(2), 1}}));
CHECK(gaussian);
EXPECT(gaussian->asGaussian());
}

Expand Down
18 changes: 13 additions & 5 deletions gtsam/hybrid/tests/testHybridSmoother.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -102,12 +102,16 @@ TEST(HybridSmoother, IncrementalSmoother) {
graph.resize(0);
}

EXPECT_LONGS_EQUAL(11,
smoother.hybridBayesNet().at(5)->asDiscrete()->nrValues());
auto& hybridBayesNet = smoother.hybridBayesNet();
#ifdef GTSAM_DT_MERGING
EXPECT_LONGS_EQUAL(11, hybridBayesNet.at(5)->asDiscrete()->nrValues());
#else
EXPECT_LONGS_EQUAL(16, hybridBayesNet.at(5)->asDiscrete()->nrValues());
#endif

// Get the continuous delta update as well as
// the optimal discrete assignment.
HybridValues delta = smoother.hybridBayesNet().optimize();
HybridValues delta = hybridBayesNet.optimize();

// Check discrete assignment
DiscreteValues expected_discrete;
Expand Down Expand Up @@ -156,8 +160,12 @@ TEST(HybridSmoother, ValidPruningError) {
graph.resize(0);
}

EXPECT_LONGS_EQUAL(14,
smoother.hybridBayesNet().at(8)->asDiscrete()->nrValues());
auto& hybridBayesNet = smoother.hybridBayesNet();
#ifdef GTSAM_DT_MERGING
EXPECT_LONGS_EQUAL(14, hybridBayesNet.at(8)->asDiscrete()->nrValues());
#else
EXPECT_LONGS_EQUAL(128, hybridBayesNet.at(8)->asDiscrete()->nrValues());
#endif

// Get the continuous delta update as well as
// the optimal discrete assignment.
Expand Down

0 comments on commit 6f11b4a

Please sign in to comment.