Test sum-product in discrete factor graph up to scale.

release/4.3a0
Kevin 2023-02-11 20:00:26 -05:00
parent 70fa568131
commit 9fa2d30362
1 changed files with 12 additions and 4 deletions

View File

@ -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};