diff --git a/inference/testEliminationTree.cpp b/inference/testEliminationTree.cpp index 28df85ba8..74e75be40 100644 --- a/inference/testEliminationTree.cpp +++ b/inference/testEliminationTree.cpp @@ -26,27 +26,32 @@ template class EliminationTree; typedef EliminationTree SymbolicEliminationTree; /* ************************************************************************* * - * graph: x1 - x2 - x3 - x4 - * tree: x1 -> x2 -> x3 <- x4 (arrow is parent pointer) + * graph: f(1,2) f(1,3) f(2,5) f(3,5) f(4,5) + * tree: x1 -> x2 -> x3 -> x5 <- x4 (arrow is parent pointer) ****************************************************************************/ TEST( EliminationTree, constructor ) { - Ordering ordering; ordering += "x1","x2","x4","x3"; + Ordering ordering; ordering += "x1","x2","x3","x4","x5"; /** build expected tree using constructor variant 1 */ - SymbolicEliminationTree::OrderedGraphs orderedGraphs; - SymbolicFactorGraph c1; c1.push_factor("x1","x2"); orderedGraphs += make_pair("x1",c1); - SymbolicFactorGraph c2; c2.push_factor("x2","x3"); orderedGraphs += make_pair("x2",c2); - SymbolicFactorGraph c4; c4.push_factor("x4","x3"); orderedGraphs += make_pair("x4",c4); - SymbolicFactorGraph c3; orderedGraphs += make_pair("x3",c3); - SymbolicEliminationTree expected(orderedGraphs); + SymbolicEliminationTree::OrderedGraphs graphs; + SymbolicFactorGraph c1,c2,c3,c4,c5; + c1.push_factor("x1","x2"); c1.push_factor("x1","x3"); graphs += make_pair("x1",c1); + c2.push_factor("x2","x5"); graphs += make_pair("x2",c2); + c3.push_factor("x3","x5"); graphs += make_pair("x3",c3); + c4.push_factor("x4","x5"); graphs += make_pair("x4",c4); + graphs += make_pair("x5",c5); + SymbolicEliminationTree expected(graphs); /** build actual tree from factor graph (variant 2) */ SymbolicFactorGraph fg; fg.push_factor("x1","x2"); - fg.push_factor("x2","x3"); - fg.push_factor("x3","x4"); + fg.push_factor("x1","x3"); + fg.push_factor("x2","x5"); + fg.push_factor("x3","x5"); + fg.push_factor("x4","x5"); SymbolicEliminationTree actual(fg, ordering); +// GTSAM_PRINT(actual); CHECK(assert_equal(expected, actual)); }