From 8678754dbd2e7dded3212d3f1fc421e9968d93be Mon Sep 17 00:00:00 2001 From: Andrew Melim Date: Mon, 24 Nov 2014 12:41:24 -0500 Subject: [PATCH] Ordering test for symbols --- gtsam/inference/tests/testOrdering.cpp | 37 ++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gtsam/inference/tests/testOrdering.cpp b/gtsam/inference/tests/testOrdering.cpp index 5cd4c77b2..013f569e0 100644 --- a/gtsam/inference/tests/testOrdering.cpp +++ b/gtsam/inference/tests/testOrdering.cpp @@ -173,6 +173,43 @@ TEST(Ordering, csr_format_3) { } +/* ************************************************************************* */ +TEST(Ordering, csr_format_4) { + SymbolicFactorGraph sfg; + + sfg.push_factor(Symbol('x', 1)); + sfg.push_factor(Symbol('x', 1), Symbol('x', 2)); + sfg.push_factor(Symbol('x', 2), Symbol('x', 3)); + sfg.push_factor(Symbol('x', 3), Symbol('x', 4)); + sfg.push_factor(Symbol('x', 4), Symbol('x', 5)); + sfg.push_factor(Symbol('x', 5), Symbol('x', 6)); + + MetisIndex mi(sfg); + + vector xadjExpected, adjExpected; + xadjExpected += 0, 1, 3, 5, 7, 9, 10; + adjExpected += 1, 0, 2, 1, 3, 2, 4, 3, 5, 4; + + vector adjAcutal = mi.adj(); + vector xadjActual = mi.xadj(); + + EXPECT(xadjExpected == mi.xadj()); + EXPECT(adjExpected.size() == mi.adj().size()); + EXPECT(adjExpected == adjAcutal); + + Ordering metOrder = Ordering::metis(sfg); + + // Test different symbol types + sfg.push_factor(Symbol('l', 1)); + sfg.push_factor(Symbol('x', 1), Symbol('l', 1)); + sfg.push_factor(Symbol('x', 2), Symbol('l', 1)); + sfg.push_factor(Symbol('x', 3), Symbol('l', 1)); + sfg.push_factor(Symbol('x', 4), Symbol('l', 1)); + + Ordering metOrder2 = Ordering::metis(sfg); + +} + /* ************************************************************************* */ TEST(Ordering, metis) {