Test sum-product in discrete factor graph up to scale.
parent
70fa568131
commit
9fa2d30362
|
@ -108,7 +108,14 @@ TEST(DiscreteFactorGraph, test) {
|
||||||
|
|
||||||
// Test EliminateDiscrete
|
// Test EliminateDiscrete
|
||||||
const Ordering frontalKeys{0};
|
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
|
||||||
CHECK(conditional);
|
CHECK(conditional);
|
||||||
|
@ -117,12 +124,13 @@ TEST(DiscreteFactorGraph, test) {
|
||||||
EXPECT(assert_equal(expectedConditional, *conditional));
|
EXPECT(assert_equal(expectedConditional, *conditional));
|
||||||
|
|
||||||
// Check Factor
|
// Check Factor
|
||||||
CHECK(newFactor);
|
CHECK(&newFactor);
|
||||||
DecisionTreeFactor expectedFactor(B & A, "10 6 6 10");
|
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.
|
// Ensure normalization is correct.
|
||||||
expectedFactor = expectedFactor / *normalization;
|
expectedFactor = expectedFactor / *normalization;
|
||||||
EXPECT(assert_equal(expectedFactor, *newFactor));
|
EXPECT(assert_equal(expectedFactor, newFactor));
|
||||||
|
|
||||||
// Test using elimination tree
|
// Test using elimination tree
|
||||||
const Ordering ordering{0, 1, 2};
|
const Ordering ordering{0, 1, 2};
|
||||||
|
|
Loading…
Reference in New Issue