From 8aa440a679d7ac5cacf6de418104bfa57c9f3104 Mon Sep 17 00:00:00 2001 From: Alex Cunningham Date: Tue, 9 Feb 2010 01:24:41 +0000 Subject: [PATCH] Fixed the instantiation macros and exmap global functions for TupleConfigN --- cpp/TupleConfig-inl.h | 15 +++++---------- cpp/testTupleConfig.cpp | 31 ++++++++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 11 deletions(-) diff --git a/cpp/TupleConfig-inl.h b/cpp/TupleConfig-inl.h index fa56118e6..0197bb6f0 100644 --- a/cpp/TupleConfig-inl.h +++ b/cpp/TupleConfig-inl.h @@ -20,24 +20,19 @@ // TupleConfig instantiations for N = 1-6 #define INSTANTIATE_TUPLE_CONFIG2(Config1, Config2) \ - template class TupleConfig2; \ - template TupleConfig2 expmap(const TupleConfig2, const VectorConfig&); + template class TupleConfig2; #define INSTANTIATE_TUPLE_CONFIG3(Config1, Config2, Config3) \ - template class TupleConfig3; \ - template TupleConfig3 expmap(const TupleConfig3, const VectorConfig&); + template class TupleConfig3; #define INSTANTIATE_TUPLE_CONFIG4(Config1, Config2, Config3, Config4) \ - template class TupleConfig4; \ - template TupleConfig4 expmap(const TupleConfig4, const VectorConfig&); + template class TupleConfig4; #define INSTANTIATE_TUPLE_CONFIG5(Config1, Config2, Config3, Config4, Config5) \ - template class TupleConfig5; \ - template TupleConfig5 expmap(const TupleConfig5, const VectorConfig&); + template class TupleConfig5; #define INSTANTIATE_TUPLE_CONFIG6(Config1, Config2, Config3, Config4, Config5, Config6) \ - template class TupleConfig6; \ - template TupleConfig6 expmap(const TupleConfig6, const VectorConfig&); + template class TupleConfig6; namespace gtsam { diff --git a/cpp/testTupleConfig.cpp b/cpp/testTupleConfig.cpp index ab789bf9c..a6f9017af 100644 --- a/cpp/testTupleConfig.cpp +++ b/cpp/testTupleConfig.cpp @@ -319,6 +319,36 @@ TEST(TupleConfig, expmap) CHECK(assert_equal(increment, logmap(cfg1, expected))); } +/* ************************************************************************* */ +TEST(TupleConfig, expmap_typedefs) +{ + Pose2 x1(1,2,3), x2(6,7,8); + PoseKey x1k(1), x2k(2); + Point2 l1(4,5), l2(9,10); + PointKey l1k(1), l2k(2); + + TupleConfig2 cfg1, expected, actual; + cfg1.insert(x1k, x1); + cfg1.insert(x2k, x2); + cfg1.insert(l1k, l1); + cfg1.insert(l2k, l2); + + VectorConfig increment; + increment.insert("x1", Vector_(3, 1.0, 1.1, 1.2)); + increment.insert("x2", Vector_(3, 1.3, 1.4, 1.5)); + increment.insert("l1", Vector_(2, 1.0, 1.1)); + increment.insert("l2", Vector_(2, 1.3, 1.4)); + + expected.insert(x1k, expmap(x1, Vector_(3, 1.0, 1.1, 1.2))); + expected.insert(x2k, expmap(x2, Vector_(3, 1.3, 1.4, 1.5))); + expected.insert(l1k, Point2(5.0, 6.1)); + expected.insert(l2k, Point2(10.3, 11.4)); + + actual = expmap(cfg1, increment); + CHECK(assert_equal(expected, actual)); + //CHECK(assert_equal(increment, logmap(cfg1, expected))); +} + /* ************************************************************************* */ TEST(TupleConfig, typedefs) { @@ -363,7 +393,6 @@ TEST( TupleConfig, graphs_and_factors ) // test creation GraphC graph; ConfigC config; -// FactorC::shared_ptr f1(new FactorC()); } /* ************************************************************************* */