Cleaned up etree tests

release/4.3a0
Frank Dellaert 2023-01-08 11:57:40 -08:00
parent edec6f3355
commit 5164d6fc55
1 changed files with 48 additions and 31 deletions

View File

@ -76,7 +76,7 @@ class EliminationTreeTester {
static sharedNode Leaf(Key key, const SymbolicFactorGraph& factors) { static sharedNode Leaf(Key key, const SymbolicFactorGraph& factors) {
sharedNode node(new SymbolicEliminationTree::Node()); sharedNode node(new SymbolicEliminationTree::Node());
node->key = key; node->key = key;
node->factors = factors; node->factors.assign(factors.begin(), factors.end());
return node; return node;
} }
@ -111,37 +111,54 @@ TEST(EliminationTree, Create2) {
// \ | // \ |
// l3 // l3
SymbolicFactorGraph graph; SymbolicFactorGraph graph;
graph += SymbolicFactor(X(1), L(1)); auto binary = [](Key j1, Key j2) -> SymbolicFactor {
graph += SymbolicFactor(X(1), X(2)); return SymbolicFactor(j1, j2);
graph += SymbolicFactor(X(2), L(1)); };
graph += SymbolicFactor(X(2), X(3)); graph += binary(X(1), L(1));
graph += SymbolicFactor(X(3), X(4)); graph += binary(X(1), X(2));
graph += SymbolicFactor(X(4), L(2)); graph += binary(X(2), L(1));
graph += SymbolicFactor(X(4), X(5)); graph += binary(X(2), X(3));
graph += SymbolicFactor(L(2), X(5)); graph += binary(X(3), X(4));
graph += SymbolicFactor(X(4), L(3)); graph += binary(X(4), L(2));
graph += SymbolicFactor(X(5), L(3)); graph += binary(X(4), X(5));
graph += binary(L(2), X(5));
graph += binary(X(4), L(3));
graph += binary(X(5), L(3));
SymbolicEliminationTree expected = EliminationTreeTester::MakeTree(ChildNodes( SymbolicEliminationTree expected = EliminationTreeTester::MakeTree( //
ChildNodes( //
Node(X(3), SymbolicFactorGraph(), Node(X(3), SymbolicFactorGraph(),
ChildNodes(Node( ChildNodes( //
X(2), SymbolicFactorGraph(SymbolicFactor(X(2), X(3))), Node(X(2), SymbolicFactorGraph(binary(X(2), X(3))),
ChildNodes(Node( ChildNodes( //
L(1), SymbolicFactorGraph(SymbolicFactor(X(2), L(1))), Node(L(1), SymbolicFactorGraph(binary(X(2), L(1))),
ChildNodes(Leaf( ChildNodes( //
X(1), SymbolicFactorGraph(SymbolicFactor(X(1), L(1)))( Leaf(X(1), SymbolicFactorGraph(
SymbolicFactor(X(1), X(2)))))))))( binary(X(1), L(1)))(
Node(X(4), SymbolicFactorGraph(SymbolicFactor(X(3), X(4))), binary(X(1), X(2)))))))))(
ChildNodes(Node( Node(X(4), SymbolicFactorGraph(binary(X(3), X(4))),
L(2), SymbolicFactorGraph(SymbolicFactor(X(4), L(2))), ChildNodes( //
ChildNodes(Node( Node(L(2), SymbolicFactorGraph(binary(X(4), L(2))),
X(5), ChildNodes( //
SymbolicFactorGraph(SymbolicFactor(X(4), X(5)))( Node(X(5),
SymbolicFactor(L(2), X(5))), SymbolicFactorGraph(binary(
ChildNodes(Leaf( X(4), X(5)))(binary(L(2), X(5))),
L(3), ChildNodes( //
SymbolicFactorGraph(SymbolicFactor(X(4), L(3)))( Leaf(L(3),
SymbolicFactor(X(5), L(3)))))))))))))); SymbolicFactorGraph(
binary(X(4), L(3)))(
binary(X(5), L(3))) //
) //
) //
) //
) //
) //
) //
) //
) //
) //
) //
);
const Ordering order{X(1), L(3), L(1), X(5), X(2), L(2), X(4), X(3)}; const Ordering order{X(1), L(3), L(1), X(5), X(2), L(2), X(4), X(3)};
SymbolicEliminationTree actual(graph, order); SymbolicEliminationTree actual(graph, order);