diff --git a/gtsam/hybrid/tests/testHybridBayesNet.cpp b/gtsam/hybrid/tests/testHybridBayesNet.cpp index b9bc29e47..88949f655 100644 --- a/gtsam/hybrid/tests/testHybridBayesNet.cpp +++ b/gtsam/hybrid/tests/testHybridBayesNet.cpp @@ -450,7 +450,15 @@ TEST(HybridBayesNet, UpdateDiscreteConditionals) { DiscreteConditional joint; for (auto&& conditional : posterior->discreteMarginal()) { - joint = joint * (*conditional); + // The last discrete conditional may be a DiscreteTableConditional + if (auto dtc = + std::dynamic_pointer_cast(conditional)) { + DiscreteConditional dc(dtc->nrFrontals(), + dtc->table().toDecisionTreeFactor()); + joint = joint * dc; + } else { + joint = joint * (*conditional); + } } size_t maxNrLeaves = 3;