From bc95ea8377708372e074eef51ce3b6599eca6a50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joan=20Vallv=C3=A9=20Navarro?= <jvallve@iri.upc.edu> Date: Mon, 27 May 2019 11:31:27 +0200 Subject: [PATCH] adapted tests to new api --- test/gtest_capture_base.cpp | 22 ----- test/gtest_frame_base.cpp | 4 +- test/gtest_track_matrix.cpp | 182 ++++++++++++++++++++++++++---------- test/gtest_trajectory.cpp | 46 ++++----- 4 files changed, 149 insertions(+), 105 deletions(-) diff --git a/test/gtest_capture_base.cpp b/test/gtest_capture_base.cpp index 8bb84231d..be8680356 100644 --- a/test/gtest_capture_base.cpp +++ b/test/gtest_capture_base.cpp @@ -82,28 +82,6 @@ TEST(CaptureBase, addFeature) ASSERT_EQ(C->getFeatureList().front(), f); } -TEST(CaptureBase, addFeatureList) -{ - CaptureBasePtr C(std::make_shared<CaptureBase>("DUMMY", 1.2)); // timestamp = 1.2 - // FeatureBasePtr f_first = C->addFeature(std::make_shared<FeatureBase>("DUMMY", Vector2s::Zero(), Matrix2s::Identity())); - auto f_first = FeatureBase::emplace<FeatureBase>(C, "DUMMY", Vector2s::Zero(), Matrix2s::Identity()); - ASSERT_EQ(C->getFeatureList().size(), (unsigned int) 1); - - // make a list to add - std::list<FeatureBasePtr> fl; - for (int i = 0; i<3; i++) - { - fl.push_back(std::make_shared<FeatureBase>("DUMMY", Vector2s::Zero(), Matrix2s::Identity())); - } - FeatureBasePtr f_last = fl.back(); - - C->addFeatureList((fl)); - ASSERT_EQ(C->getFeatureList().size(), (unsigned int) 4); - ASSERT_EQ(fl.size(), (unsigned int) 0); // features have been moved, not copied // EDIT 02-2019: features have been copied - ASSERT_EQ(C->getFeatureList().front(), f_first); - ASSERT_EQ(C->getFeatureList().back(), f_last); -} - TEST(CaptureBase, process) { SensorBasePtr S(std::make_shared<SensorBase>("DUMMY", nullptr, nullptr, nullptr, 2)); diff --git a/test/gtest_frame_base.cpp b/test/gtest_frame_base.cpp index 4cbc927bf..77051e6e8 100644 --- a/test/gtest_frame_base.cpp +++ b/test/gtest_frame_base.cpp @@ -134,8 +134,8 @@ TEST(FrameBase, LinksToTree) ASSERT_TRUE(F1->isKey()); ASSERT_TRUE(F1->isKeyOrAux()); - // Unlink - F1->unlinkCapture(C); + // Unlink capture + C->unlink(); ASSERT_TRUE(F1->getCaptureList().empty()); } diff --git a/test/gtest_track_matrix.cpp b/test/gtest_track_matrix.cpp index 2f956b084..898fab241 100644 --- a/test/gtest_track_matrix.cpp +++ b/test/gtest_track_matrix.cpp @@ -24,34 +24,68 @@ class TrackMatrixTest : public testing::Test virtual void SetUp() { - C0 = std::make_shared<CaptureBase>("BASE", 0.0); - C1 = std::make_shared<CaptureBase>("BASE", 1.0); - C2 = std::make_shared<CaptureBase>("BASE", 2.0); - C3 = std::make_shared<CaptureBase>("BASE", 3.0); - C4 = std::make_shared<CaptureBase>("BASE", 4.0); - - f0 = std::make_shared<FeatureBase>("BASE", m, m_cov); - f1 = std::make_shared<FeatureBase>("BASE", m, m_cov); - f2 = std::make_shared<FeatureBase>("BASE", m, m_cov); - f3 = std::make_shared<FeatureBase>("BASE", m, m_cov); - f4 = std::make_shared<FeatureBase>("BASE", m, m_cov); + // unlinked captures + C0 = CaptureBase::emplace<CaptureBase>(nullptr, "BASE", 0.0); + C1 = CaptureBase::emplace<CaptureBase>(nullptr, "BASE", 0.0); + C2 = CaptureBase::emplace<CaptureBase>(nullptr, "BASE", 0.0); + C3 = CaptureBase::emplace<CaptureBase>(nullptr, "BASE", 0.0); + C4 = CaptureBase::emplace<CaptureBase>(nullptr, "BASE", 0.0); + + // unlinked features + f0 = FeatureBase::emplace<FeatureBase>(nullptr, "BASE", m, m_cov); + f1 = FeatureBase::emplace<FeatureBase>(nullptr, "BASE", m, m_cov); + f2 = FeatureBase::emplace<FeatureBase>(nullptr, "BASE", m, m_cov); + f3 = FeatureBase::emplace<FeatureBase>(nullptr, "BASE", m, m_cov); + f4 = FeatureBase::emplace<FeatureBase>(nullptr, "BASE", m, m_cov); } }; TEST_F(TrackMatrixTest, newTrack) { - track_matrix.newTrack(C0, f0); + f0->link(C0); + f1->link(C1); + + track_matrix.newTrack(f0); ASSERT_EQ(track_matrix.numTracks(), (unsigned int) 1); - track_matrix.newTrack(C0, f1); + track_matrix.newTrack(f1); ASSERT_EQ(track_matrix.numTracks(), (unsigned int) 2); } TEST_F(TrackMatrixTest, add) { - track_matrix.newTrack(C0, f0); + f0->link(C0); + f1->link(C1); + f2->link(C2); + + track_matrix.newTrack(f0); + + track_matrix.add(f0->trackId(), f1); + /* C0 C1 C2 snapshots + * + * f0---f1 trk 0 + */ + ASSERT_EQ(track_matrix.trackSize(f1->trackId()), (unsigned int) 2); + ASSERT_EQ(f1->trackId(), f0->trackId()); + + track_matrix.add(f0->trackId(), f2); + /* C0 C1 C2 snapshots + * + * f0---f1---f2 trk 0 + */ + ASSERT_EQ(track_matrix.trackSize(f2->trackId()), (unsigned int) 3); + ASSERT_EQ(f2->trackId(), f0->trackId()); +} + +TEST_F(TrackMatrixTest, add2) +{ + f0->link(C0); + f1->link(C1); + f2->link(C2); - track_matrix.add(f0->trackId(), C1, f1); + track_matrix.newTrack(f0); + + track_matrix.add(f0, f1); /* C0 C1 C2 snapshots * * f0---f1 trk 0 @@ -59,7 +93,7 @@ TEST_F(TrackMatrixTest, add) ASSERT_EQ(track_matrix.trackSize(f1->trackId()), (unsigned int) 2); ASSERT_EQ(f1->trackId(), f0->trackId()); - track_matrix.add(f0->trackId(), C2, f2); + track_matrix.add(f1, f2); /* C0 C1 C2 snapshots * * f0---f1---f2 trk 0 @@ -70,8 +104,12 @@ TEST_F(TrackMatrixTest, add) TEST_F(TrackMatrixTest, numTracks) { - track_matrix.newTrack(C0, f0); - track_matrix.add(f0->trackId(), C1, f1); + f0->link(C0); + f1->link(C1); + f2->link(C0); + + track_matrix.newTrack(f0); + track_matrix.add(f0->trackId(), f1); /* C0 C1 C2 snapshots * @@ -80,16 +118,20 @@ TEST_F(TrackMatrixTest, numTracks) ASSERT_EQ(track_matrix.numTracks(), (unsigned int) 1); - track_matrix.add(f0->trackId(), C0, f2); + track_matrix.add(f0->trackId(), f2); ASSERT_EQ(track_matrix.numTracks(), (unsigned int) 1); } TEST_F(TrackMatrixTest, trackSize) { - track_matrix.newTrack(C0, f0); - track_matrix.add(f0->trackId(), C1, f1); - track_matrix.newTrack(C0, f2); + f0->link(C0); + f1->link(C1); + f2->link(C0); + + track_matrix.newTrack(f0); + track_matrix.add(f0->trackId(), f1); + track_matrix.newTrack(f2); /* C0 C1 C2 snapshots * @@ -111,9 +153,13 @@ TEST_F(TrackMatrixTest, first_last_Feature) * f2 trk 1 */ - track_matrix.newTrack(C0, f0); - track_matrix.add(f0->trackId(), C1, f1); - track_matrix.newTrack(C1, f2); + f0->link(C0); + f1->link(C1); + f2->link(C1); + + track_matrix.newTrack(f0); + track_matrix.add(f0->trackId(), f1); + track_matrix.newTrack(f2); ASSERT_EQ(track_matrix.firstFeature(f0->trackId()), f0); ASSERT_EQ(track_matrix.lastFeature (f0->trackId()), f1); @@ -124,9 +170,13 @@ TEST_F(TrackMatrixTest, first_last_Feature) TEST_F(TrackMatrixTest, remove_ftr) { - track_matrix.newTrack(C0, f0); - track_matrix.add(f0->trackId(), C1, f1); - track_matrix.newTrack(C0, f2); + f0->link(C0); + f1->link(C1); + f2->link(C0); + + track_matrix.newTrack(f0); + track_matrix.add(f0->trackId(), f1); + track_matrix.newTrack(f2); /* C0 C1 C2 snapshots * @@ -159,9 +209,13 @@ TEST_F(TrackMatrixTest, remove_ftr) TEST_F(TrackMatrixTest, remove_trk) { - track_matrix.newTrack(C0, f0); - track_matrix.add(f0->trackId(), C1, f1); - track_matrix.newTrack(C0, f2); + f0->link(C0); + f1->link(C1); + f2->link(C0); + + track_matrix.newTrack(f0); + track_matrix.add(f0->trackId(), f1); + track_matrix.newTrack(f2); /* C0 C1 C2 snapshots * @@ -182,9 +236,13 @@ TEST_F(TrackMatrixTest, remove_trk) TEST_F(TrackMatrixTest, remove_snapshot) { - track_matrix.newTrack(C0, f0); - track_matrix.add(f0->trackId(), C1, f1); - track_matrix.newTrack(C0, f2); + f0->link(C0); + f1->link(C1); + f2->link(C0); + + track_matrix.newTrack(f0); + track_matrix.add(f0->trackId(), f1); + track_matrix.newTrack(f2); /* C0 C1 C2 snapshots * @@ -209,9 +267,13 @@ TEST_F(TrackMatrixTest, remove_snapshot) TEST_F(TrackMatrixTest, track) { - track_matrix.newTrack(C0, f0); - track_matrix.add(f0->trackId(), C1, f1); - track_matrix.newTrack(C0, f2); + f0->link(C0); + f1->link(C1); + f2->link(C0); + + track_matrix.newTrack(f0); + track_matrix.add(f0->trackId(), f1); + track_matrix.newTrack(f2); /* C0 C1 C2 snapshots * @@ -233,9 +295,13 @@ TEST_F(TrackMatrixTest, track) TEST_F(TrackMatrixTest, snapshot) { - track_matrix.newTrack(C0, f0); - track_matrix.add(f0->trackId(), C1, f1); - track_matrix.newTrack(C0, f2); + f0->link(C0); + f1->link(C1); + f2->link(C0); + + track_matrix.newTrack(f0); + track_matrix.add(f0->trackId(), f1); + track_matrix.newTrack(f2); /* C0 C1 C2 snapshots * @@ -257,9 +323,13 @@ TEST_F(TrackMatrixTest, snapshot) TEST_F(TrackMatrixTest, trackAsVector) { - track_matrix.newTrack(C0, f0); - track_matrix.add(f0->trackId(), C1, f1); - track_matrix.newTrack(C0, f2); + f0->link(C0); + f1->link(C1); + f2->link(C0); + + track_matrix.newTrack(f0); + track_matrix.add(f0->trackId(), f1); + track_matrix.newTrack(f2); /* C0 C1 C2 snapshots * @@ -277,9 +347,13 @@ TEST_F(TrackMatrixTest, trackAsVector) TEST_F(TrackMatrixTest, snapshotAsList) { - track_matrix.newTrack(C0, f0); - track_matrix.add(f0->trackId(), C1, f1); - track_matrix.newTrack(C0, f2); + f0->link(C0); + f1->link(C1); + f2->link(C0); + + track_matrix.newTrack(f0); + track_matrix.add(f0->trackId(), f1); + track_matrix.newTrack(f2); /* C0 C1 C2 snapshots * @@ -297,11 +371,17 @@ TEST_F(TrackMatrixTest, snapshotAsList) TEST_F(TrackMatrixTest, matches) { - track_matrix.newTrack(C0, f0); - track_matrix.add(f0->trackId(), C1, f1); - track_matrix.add(f0->trackId(), C2, f2); - track_matrix.newTrack(C0, f3); - track_matrix.add(f3->trackId(), C1, f4); + f0->link(C0); + f1->link(C1); + f2->link(C2); + f3->link(C0); + f4->link(C1); + + track_matrix.newTrack(f0); + track_matrix.add(f0->trackId(), f1); + track_matrix.add(f0->trackId(), f2); + track_matrix.newTrack(f3); + track_matrix.add(f3->trackId(), f4); /* C0 C1 C2 C3 snapshots * diff --git a/test/gtest_trajectory.cpp b/test/gtest_trajectory.cpp index 50a78bc0f..a88b35113 100644 --- a/test/gtest_trajectory.cpp +++ b/test/gtest_trajectory.cpp @@ -57,14 +57,10 @@ TEST(TrajectoryBase, ClosestKeyFrame) // 1 2 3 4 time stamps // --+-----+-----+-----+---> time - FrameBasePtr F1 = std::make_shared<FrameBase>(KEY, 1, nullptr, nullptr); - FrameBasePtr F2 = std::make_shared<FrameBase>(KEY, 2, nullptr, nullptr); - FrameBasePtr F3 = std::make_shared<FrameBase>(AUXILIARY, 3, nullptr, nullptr); - FrameBasePtr F4 = std::make_shared<FrameBase>(NON_ESTIMATED, 4, nullptr, nullptr); - T->addFrame(F1); - T->addFrame(F2); - T->addFrame(F3); - T->addFrame(F4); + FrameBasePtr F1 = P->emplaceFrame(KEY, Eigen::Vector3s::Zero(), 1); + FrameBasePtr F2 = P->emplaceFrame(KEY, Eigen::Vector3s::Zero(), 2); + FrameBasePtr F3 = P->emplaceFrame(AUXILIARY, Eigen::Vector3s::Zero(), 3); + FrameBasePtr F4 = P->emplaceFrame(NON_ESTIMATED, Eigen::Vector3s::Zero(), 4); FrameBasePtr KF; // closest key-frame queried @@ -98,9 +94,9 @@ TEST(TrajectoryBase, ClosestKeyOrAuxFrame) // 1 2 3 time stamps // --+-----+-----+---> time - FrameBasePtr F1 = FrameBase::emplace<FrameBase>(T, KEY, 1, nullptr, nullptr); - FrameBasePtr F2 = FrameBase::emplace<FrameBase>(T, AUXILIARY, 2, nullptr, nullptr); - FrameBasePtr F3 = FrameBase::emplace<FrameBase>(T, NON_ESTIMATED, 3, nullptr, nullptr); + FrameBasePtr F1 = P->emplaceFrame(KEY, Eigen::Vector3s::Zero(), 1); + FrameBasePtr F2 = P->emplaceFrame(AUXILIARY, Eigen::Vector3s::Zero(), 2); + FrameBasePtr F3 = P->emplaceFrame(NON_ESTIMATED, Eigen::Vector3s::Zero(), 3); FrameBasePtr KF; // closest key-frame queried @@ -134,30 +130,24 @@ TEST(TrajectoryBase, Add_Remove_Frame) // 1 2 3 time stamps // --+-----+-----+---> time - FrameBasePtr F1 = std::make_shared<FrameBase>(KEY, 1, make_shared<StateBlock>(2), make_shared<StateBlock>(1)); // 2 non-fixed - FrameBasePtr F2 = std::make_shared<FrameBase>(KEY, 2, make_shared<StateBlock>(2), make_shared<StateBlock>(1, true)); // 1 fixed, 1 not - FrameBasePtr F3 = std::make_shared<FrameBase>(NON_ESTIMATED, 3, make_shared<StateBlock>(2), make_shared<StateBlock>(1)); // non-key-frame - - // FrameBasePtr f1 = FrameBase::emplace<FrameBase>(T, KEY_FRAME, 1, make_shared<StateBlock>(2), make_shared<StateBlock>(1)); // 2 non-fixed - // FrameBasePtr f2 = FrameBase::emplace<FrameBase>(T, KEY_FRAME, 2, make_shared<StateBlock>(2), make_shared<StateBlock>(1, true)); // 1 fixed, 1 not - // FrameBasePtr f3 = FrameBase::emplace<FrameBase>(T, NON_KEY_FRAME, 3, make_shared<StateBlock>(2), make_shared<StateBlock>(1)); // non-key-frame - std::cout << __LINE__ << std::endl; - // add frames and keyframes - F1->link(T); + // add F1 + FrameBasePtr F1 = P->emplaceFrame(KEY, Eigen::Vector3s::Zero(), 1); // 2 non-fixed if (debug) P->print(2,0,0,0); ASSERT_EQ(T->getFrameList(). size(), (SizeStd) 1); ASSERT_EQ(P->getStateBlockNotificationMapSize(), (SizeStd) 2); std::cout << __LINE__ << std::endl; - F2->link(T); + // add F2 + FrameBasePtr F2 = P->emplaceFrame(KEY, Eigen::Vector3s::Zero(), 2); // 1 fixed, 1 not if (debug) P->print(2,0,0,0); ASSERT_EQ(T->getFrameList(). size(), (SizeStd) 2); ASSERT_EQ(P->getStateBlockNotificationMapSize(), (SizeStd) 4); std::cout << __LINE__ << std::endl; - F3->link(T); + // add F3 + FrameBasePtr F3 = P->emplaceFrame(NON_ESTIMATED, Eigen::Vector3s::Zero(), 3); if (debug) P->print(2,0,0,0); ASSERT_EQ(T->getFrameList(). size(), (SizeStd) 3); ASSERT_EQ(P->getStateBlockNotificationMapSize(), (SizeStd) 4); @@ -212,24 +202,20 @@ TEST(TrajectoryBase, KeyFramesAreSorted) // 1 2 3 time stamps // --+-----+-----+---> time - FrameBasePtr F1 = std::make_shared<FrameBase>(KEY, 1, make_shared<StateBlock>(2), make_shared<StateBlock>(1)); // 2 non-fixed - FrameBasePtr F2 = std::make_shared<FrameBase>(KEY, 2, make_shared<StateBlock>(2), make_shared<StateBlock>(1, true)); // 1 fixed, 1 not - FrameBasePtr F3 = std::make_shared<FrameBase>(NON_ESTIMATED, 3, make_shared<StateBlock>(2), make_shared<StateBlock>(1)); // non-key-frame - // add frames and keyframes in random order --> keyframes must be sorted after that - F2->link(T); + FrameBasePtr F2 = P->emplaceFrame(KEY, Eigen::Vector3s::Zero(), 2); if (debug) P->print(2,0,0,0); ASSERT_EQ(T->getLastFrame() ->id(), F2->id()); ASSERT_EQ(T->getLastKeyOrAuxFrame()->id(), F2->id()); ASSERT_EQ(T->getLastKeyFrame() ->id(), F2->id()); - F3->link(T); + FrameBasePtr F3 = P->emplaceFrame(NON_ESTIMATED, Eigen::Vector3s::Zero(), 3); // non-key-frame if (debug) P->print(2,0,0,0); ASSERT_EQ(T->getLastFrame() ->id(), F3->id()); ASSERT_EQ(T->getLastKeyOrAuxFrame()->id(), F2->id()); ASSERT_EQ(T->getLastKeyFrame() ->id(), F2->id()); - F1->link(T); + FrameBasePtr F1 = P->emplaceFrame(KEY, Eigen::Vector3s::Zero(), 1); if (debug) P->print(2,0,0,0); ASSERT_EQ(T->getLastFrame() ->id(), F3->id()); ASSERT_EQ(T->getLastKeyOrAuxFrame()->id(), F2->id()); -- GitLab