From 7486ed7993208fa27f9b61c23cd7509e26df6906 Mon Sep 17 00:00:00 2001 From: Martin Vonheim Larsen Date: Tue, 2 Jun 2020 13:02:10 +0200 Subject: [PATCH 1/3] Added test for Unit3::operator= --- gtsam/geometry/tests/testUnit3.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gtsam/geometry/tests/testUnit3.cpp b/gtsam/geometry/tests/testUnit3.cpp index a25ab25c7..0f98e4648 100644 --- a/gtsam/geometry/tests/testUnit3.cpp +++ b/gtsam/geometry/tests/testUnit3.cpp @@ -484,6 +484,15 @@ TEST(Unit3, ErrorBetweenFactor) { } } +TEST(Unit3, copy_assign) { + Unit3 p{1, 0.2, 0.3}; + + EXPECT(p.error(p).isZero()); + + p = Unit3{-1, 2, 8}; + EXPECT(p.error(p).isZero()); +} + /* ************************************************************************* */ TEST(actualH, Serialization) { Unit3 p(0, 1, 0); From bc7f5e6da75c9011999ddab39e5d9d7f857703e1 Mon Sep 17 00:00:00 2001 From: Martin Vonheim Larsen Date: Tue, 2 Jun 2020 13:02:22 +0200 Subject: [PATCH 2/3] Properly handle basis in Unit3::operator= If the basis was already cached we reset it to the cached basis of `u`. --- gtsam/geometry/Unit3.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gtsam/geometry/Unit3.h b/gtsam/geometry/Unit3.h index f1a9c1a69..24a8c0219 100644 --- a/gtsam/geometry/Unit3.h +++ b/gtsam/geometry/Unit3.h @@ -90,6 +90,8 @@ public: /// Copy assignment Unit3& operator=(const Unit3 & u) { p_ = u.p_; + B_ = u.B_; + H_B_ = u.H_B_; return *this; } From a6e9b0287e1c72384d982226c8b167e79be21f2b Mon Sep 17 00:00:00 2001 From: "Martin V. Larsen" Date: Tue, 2 Jun 2020 22:20:35 +0200 Subject: [PATCH 3/3] Update testUnit3.cpp --- gtsam/geometry/tests/testUnit3.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gtsam/geometry/tests/testUnit3.cpp b/gtsam/geometry/tests/testUnit3.cpp index 0f98e4648..ddf60a256 100644 --- a/gtsam/geometry/tests/testUnit3.cpp +++ b/gtsam/geometry/tests/testUnit3.cpp @@ -484,7 +484,7 @@ TEST(Unit3, ErrorBetweenFactor) { } } -TEST(Unit3, copy_assign) { +TEST(Unit3, CopyAssign) { Unit3 p{1, 0.2, 0.3}; EXPECT(p.error(p).isZero());