From b8f9ab1d87fce11085b3ed467fddc1c65c2c66e7 Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Tue, 21 Jul 2020 18:41:14 -0500 Subject: [PATCH 1/5] nicer formatting when printing values --- gtsam/base/GenericValue.h | 2 +- gtsam/nonlinear/Values.cpp | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/gtsam/base/GenericValue.h b/gtsam/base/GenericValue.h index 2ac3eb80c..11b610799 100644 --- a/gtsam/base/GenericValue.h +++ b/gtsam/base/GenericValue.h @@ -84,7 +84,7 @@ public: /// Virtual print function, uses traits virtual void print(const std::string& str) const { - std::cout << "(" << demangle(typeid(T).name()) << ") "; + std::cout << "(" << demangle(typeid(T).name()) << ") " << std::endl; traits::Print(value_, str); } diff --git a/gtsam/nonlinear/Values.cpp b/gtsam/nonlinear/Values.cpp index 98790ccd9..3ec1f3067 100644 --- a/gtsam/nonlinear/Values.cpp +++ b/gtsam/nonlinear/Values.cpp @@ -69,7 +69,8 @@ namespace gtsam { /* ************************************************************************* */ void Values::print(const string& str, const KeyFormatter& keyFormatter) const { - cout << str << "Values with " << size() << " values:" << endl; + cout << str << endl; + cout << "Values with " << size() << " values:" << endl; for(const_iterator key_value = begin(); key_value != end(); ++key_value) { cout << "Value " << keyFormatter(key_value->key) << ": "; key_value->value.print(""); From 4756f7359d43e26ef935d6c8818a2def9407aef1 Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Tue, 28 Jul 2020 09:12:13 -0500 Subject: [PATCH 2/5] use \n instead of endl --- gtsam/base/GenericValue.h | 4 ++-- gtsam/nonlinear/Values.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gtsam/base/GenericValue.h b/gtsam/base/GenericValue.h index cbd210b89..f4459243e 100644 --- a/gtsam/base/GenericValue.h +++ b/gtsam/base/GenericValue.h @@ -83,8 +83,8 @@ public: } /// Virtual print function, uses traits - virtual void print(const std::string& str) const { - std::cout << "(" << demangle(typeid(T).name()) << ") " << std::endl; + virtual void print(const std::string& str) const override { + std::cout << "(" << demangle(typeid(T).name()) << ")\n"; traits::Print(value_, str); } diff --git a/gtsam/nonlinear/Values.cpp b/gtsam/nonlinear/Values.cpp index c806ce12b..b672031ca 100644 --- a/gtsam/nonlinear/Values.cpp +++ b/gtsam/nonlinear/Values.cpp @@ -75,8 +75,8 @@ namespace gtsam { /* ************************************************************************* */ void Values::print(const string& str, const KeyFormatter& keyFormatter) const { - cout << str << endl; - cout << "Values with " << size() << " values:" << endl; + cout << str << (str == "" ? "" : "\n"); + cout << "Values with " << size() << " values:\n"; for(const_iterator key_value = begin(); key_value != end(); ++key_value) { cout << "Value " << keyFormatter(key_value->key) << ": "; key_value->value.print(""); From ca88ac568bde7d69648814ed80cdda07bb3dfd7a Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Tue, 28 Jul 2020 15:57:15 -0500 Subject: [PATCH 3/5] fixed tests --- gtsam/geometry/tests/testPose3.cpp | 13 ++++++++++--- gtsam/navigation/tests/testNavState.cpp | 9 ++++++++- gtsam/nonlinear/tests/testValues.cpp | 2 +- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/gtsam/geometry/tests/testPose3.cpp b/gtsam/geometry/tests/testPose3.cpp index bb64192ef..003fc3f9c 100644 --- a/gtsam/geometry/tests/testPose3.cpp +++ b/gtsam/geometry/tests/testPose3.cpp @@ -862,7 +862,14 @@ TEST( Pose3, stream) Pose3 T; std::ostringstream os; os << T; - string expected = "R: [\n\t1, 0, 0;\n\t0, 1, 0;\n\t0, 0, 1\n]\nt: [0, 0, 0]'"; + + string expected; + #ifdef GTSAM_TYPEDEF_POINTS_TO_VECTORS + expected = "R: [\n\t1, 0, 0;\n\t0, 1, 0;\n\t0, 0, 1\n]\nt: 0\n0\n0";; +#else + expected = "R: [\n\t1, 0, 0;\n\t0, 1, 0;\n\t0, 0, 1\n]\nt: [0, 0, 0]'"; +#endif + EXPECT(os.str() == expected); } @@ -1037,9 +1044,9 @@ TEST(Pose3, print) { expected << "R: [\n\t1, 0, 0;\n\t0, 1, 0;\n\t0, 0, 1\n]\n"; #ifdef GTSAM_TYPEDEF_POINTS_TO_VECTORS - expected << "1\n" + expected << "t: 1\n" "2\n" - "3;\n"; + "3\n"; #else expected << "t: [" << translation.x() << ", " << translation.y() << ", " << translation.z() << "]'\n"; #endif diff --git a/gtsam/navigation/tests/testNavState.cpp b/gtsam/navigation/tests/testNavState.cpp index 57945020c..0c649017a 100644 --- a/gtsam/navigation/tests/testNavState.cpp +++ b/gtsam/navigation/tests/testNavState.cpp @@ -244,7 +244,14 @@ TEST(NavState, Stream) std::ostringstream os; os << state; - string expected = "R: [\n\t1, 0, 0;\n\t0, 1, 0;\n\t0, 0, 1\n]\np: [0, 0, 0]'\nv: [0, 0, 0]'"; + + string expected; +#ifdef GTSAM_TYPEDEF_POINTS_TO_VECTORS + expected = "R: [\n\t1, 0, 0;\n\t0, 1, 0;\n\t0, 0, 1\n]\np: 0\n0\n0\nv: 0\n0\n0"; +#else + expected = "R: [\n\t1, 0, 0;\n\t0, 1, 0;\n\t0, 0, 1\n]\np: [0, 0, 0]'\nv: [0, 0, 0]'"; +#endif + EXPECT(os.str() == expected); } diff --git a/gtsam/nonlinear/tests/testValues.cpp b/gtsam/nonlinear/tests/testValues.cpp index 388bcf568..09b358efb 100644 --- a/gtsam/nonlinear/tests/testValues.cpp +++ b/gtsam/nonlinear/tests/testValues.cpp @@ -593,7 +593,7 @@ TEST(Values, Demangle) { Values values; Matrix13 v; v << 5.0, 6.0, 7.0; values.insert(key1, v); - string expected = "Values with 1 values:\nValue v1: (Eigen::Matrix) [\n 5, 6, 7\n]\n\n"; + string expected = "Values with 1 values:\nValue v1: (Eigen::Matrix)\n[\n 5, 6, 7\n]\n\n"; stringstream buffer; streambuf * old = cout.rdbuf(buffer.rdbuf()); From 08df535cba26123ac360a83cab1f6f7d831a0cc0 Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Wed, 29 Jul 2020 11:35:02 -0500 Subject: [PATCH 4/5] fix indentation of macro guard --- gtsam/geometry/tests/testPose3.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gtsam/geometry/tests/testPose3.cpp b/gtsam/geometry/tests/testPose3.cpp index 003fc3f9c..596fa8957 100644 --- a/gtsam/geometry/tests/testPose3.cpp +++ b/gtsam/geometry/tests/testPose3.cpp @@ -864,7 +864,7 @@ TEST( Pose3, stream) os << T; string expected; - #ifdef GTSAM_TYPEDEF_POINTS_TO_VECTORS +#ifdef GTSAM_TYPEDEF_POINTS_TO_VECTORS expected = "R: [\n\t1, 0, 0;\n\t0, 1, 0;\n\t0, 0, 1\n]\nt: 0\n0\n0";; #else expected = "R: [\n\t1, 0, 0;\n\t0, 1, 0;\n\t0, 0, 1\n]\nt: [0, 0, 0]'"; From 720a313a9d51135b31ed4433d789b61bf358da20 Mon Sep 17 00:00:00 2001 From: Varun Agrawal Date: Fri, 31 Jul 2020 19:37:02 -0500 Subject: [PATCH 5/5] remove virtual --- gtsam/base/GenericValue.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gtsam/base/GenericValue.h b/gtsam/base/GenericValue.h index f4459243e..dc205b47f 100644 --- a/gtsam/base/GenericValue.h +++ b/gtsam/base/GenericValue.h @@ -83,7 +83,7 @@ public: } /// Virtual print function, uses traits - virtual void print(const std::string& str) const override { + void print(const std::string& str) const override { std::cout << "(" << demangle(typeid(T).name()) << ")\n"; traits::Print(value_, str); }