From 9fa2d30362bb6cf5a54b5de66268e4ce239251d2 Mon Sep 17 00:00:00 2001 From: Kevin Date: Sat, 11 Feb 2023 20:00:26 -0500 Subject: [PATCH] Test sum-product in discrete factor graph up to scale. --- gtsam/discrete/tests/testDiscreteFactorGraph.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/gtsam/discrete/tests/testDiscreteFactorGraph.cpp b/gtsam/discrete/tests/testDiscreteFactorGraph.cpp index 8226a81dd..bbce5e8ce 100644 --- a/gtsam/discrete/tests/testDiscreteFactorGraph.cpp +++ b/gtsam/discrete/tests/testDiscreteFactorGraph.cpp @@ -108,7 +108,14 @@ TEST(DiscreteFactorGraph, test) { // Test EliminateDiscrete const Ordering frontalKeys{0}; - const auto [conditional, newFactor] = EliminateDiscrete(graph, frontalKeys); + const auto [conditional, newFactorPtr] = EliminateDiscrete(graph, frontalKeys); + + DecisionTreeFactor newFactor = *newFactorPtr; + + // Normalize newFactor by max for comparison with expected + auto normalization = newFactor.max(newFactor.size()); + + newFactor = newFactor / *normalization; // Check Conditional CHECK(conditional); @@ -117,12 +124,13 @@ TEST(DiscreteFactorGraph, test) { EXPECT(assert_equal(expectedConditional, *conditional)); // Check Factor - CHECK(newFactor); + CHECK(&newFactor); DecisionTreeFactor expectedFactor(B & A, "10 6 6 10"); - auto normalization = expectedFactor.sum(expectedFactor.size()); + // Normalize by max. + normalization = expectedFactor.max(expectedFactor.size()); // Ensure normalization is correct. expectedFactor = expectedFactor / *normalization; - EXPECT(assert_equal(expectedFactor, *newFactor)); + EXPECT(assert_equal(expectedFactor, newFactor)); // Test using elimination tree const Ordering ordering{0, 1, 2};