Skip to content
Snippets Groups Projects
Commit bc95ea83 authored by Joan Vallvé Navarro's avatar Joan Vallvé Navarro
Browse files

adapted tests to new api

parent 98a0276a
No related branches found
No related tags found
1 merge request!274Resolve "Emplace API inconsistent with ProcessorTrackerFeature/Landmark functions"
This commit is part of merge request !274. Comments created here will be created in the context of that merge request.
......@@ -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));
......
......@@ -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());
}
......
......@@ -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
*
......
......@@ -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());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment