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

gtests finished and passing

parent 3a4833d3
No related branches found
No related tags found
1 merge request!419Resolve "Processor motion model"
Pipeline #6753 passed
...@@ -40,7 +40,7 @@ class ProcessorFixWingModelTest : public testing::Test ...@@ -40,7 +40,7 @@ class ProcessorFixWingModelTest : public testing::Test
ParamsProcessorFixWingModelPtr params = std::make_shared<ParamsProcessorFixWingModel>(); ParamsProcessorFixWingModelPtr params = std::make_shared<ParamsProcessorFixWingModel>();
params->velocity_local = (Vector3d() << 1, 0, 0).finished(); params->velocity_local = (Vector3d() << 1, 0, 0).finished();
params->angle_stdev = 0.1; params->angle_stdev = 0.1;
params->min_vel_norm = 1; params->min_vel_norm = 0;
processor = ProcessorBase::emplace<ProcessorFixWingModel>(sensor, params); processor = ProcessorBase::emplace<ProcessorFixWingModel>(sensor, params);
} }
...@@ -73,12 +73,8 @@ TEST_F(ProcessorFixWingModelTest, keyFrameCallback) ...@@ -73,12 +73,8 @@ TEST_F(ProcessorFixWingModelTest, keyFrameCallback)
ASSERT_EQ(cap->getFeatureList().size(), 1); ASSERT_EQ(cap->getFeatureList().size(), 1);
// check one factor // check one factor
//auto fac = frm1->getFactorOf(processor, "FactorVelocityLocalDirection3d"); auto fac = frm1->getFactorOf(processor, "FactorVelocityLocalDirection3d");
auto fac = frm1->getFactorOf(processor);
WOLF_INFO("processor ", processor);
WOLF_INFO("factor processor ", cap->getFeatureList().front()->getFactorList().front()->getProcessor());
ASSERT_TRUE(fac != nullptr); ASSERT_TRUE(fac != nullptr);
WOLF_INFO("fac type", fac->getType());
ASSERT_TRUE(fac->getFeature() != nullptr); ASSERT_TRUE(fac->getFeature() != nullptr);
ASSERT_TRUE(fac->getCapture() == cap); ASSERT_TRUE(fac->getCapture() == cap);
} }
...@@ -106,113 +102,33 @@ TEST_F(ProcessorFixWingModelTest, keyFrameCallbackRepeated) ...@@ -106,113 +102,33 @@ TEST_F(ProcessorFixWingModelTest, keyFrameCallbackRepeated)
auto fac = frm1->getFactorOf(processor, "FactorVelocityLocalDirection3d"); auto fac = frm1->getFactorOf(processor, "FactorVelocityLocalDirection3d");
ASSERT_TRUE(fac != nullptr); ASSERT_TRUE(fac != nullptr);
ASSERT_TRUE(fac->getFeature() != nullptr); ASSERT_TRUE(fac->getFeature() != nullptr);
ASSERT_TRUE(fac->getCapture() == frm1->getCaptureOf(sensor)); ASSERT_TRUE(fac->getCapture() == cap);
} }
/*TEST_F(ProcessorFixWingModelTest, captureCallbackMatch) TEST_F(ProcessorFixWingModelTest, solve_origin)
{ {
// new frame // new frame
auto frm1 = emplaceFrame(1, Vector3d::Zero()); auto frm1 = emplaceFrame(1, (Vector10d() << 0,0,0,0,0,0,1,1,0,0).finished());
auto frm2 = emplaceFrame(2, Vector3d::Zero());
auto frm3 = emplaceFrame(3, Vector3d::Zero());
auto frm4 = emplaceFrame(4, Vector3d::Zero());
auto frm5 = emplaceFrame(5, Vector3d::Zero());
// new captures
auto cap4 = createCapture(4);
// keyframecallback // keyframecallback
problem->keyFrameCallback(frm1, nullptr, 0.5); problem->keyFrameCallback(frm1, nullptr, 0.5);
problem->keyFrameCallback(frm2, nullptr, 0.5);
problem->keyFrameCallback(frm3, nullptr, 0.5);
problem->keyFrameCallback(frm4, nullptr, 0.5);
problem->keyFrameCallback(frm5, nullptr, 0.5);
// captureCallback // perturb
processor->captureCallback(cap4); frm1->getP()->fix();
frm1->getO()->fix();
frm1->getV()->unfix();
frm1->getV()->setState(Vector3d::Random());
EXPECT_EQ(frm1->getCaptureList().size(), 0); // solve
EXPECT_EQ(frm2->getCaptureList().size(), 0); std::string report = solver->solve(SolverManager::ReportVerbosity::FULL);
EXPECT_EQ(frm3->getCaptureList().size(), 0);
EXPECT_EQ(frm4->getCaptureList().size(), 1);
EXPECT_EQ(frm5->getCaptureList().size(), 0);
EXPECT_TRUE(cap4->getFrame() == frm4); WOLF_INFO(report);
EXPECT_EQ(cap4->getFeatureList().size(), 1);
EXPECT_EQ(processor->getNStoredFrames(), 1); // all oldest frames are removed from buffer
EXPECT_EQ(processor->getNStoredCaptures(), 0);
}
TEST_F(ProcessorFixWingModelTest, keyFrameCallbackMatch) ASSERT_GT(frm1->getV()->getState()(0), 0);
{ ASSERT_NEAR(frm1->getV()->getState()(1), 0, Constants::EPS);
// new frame ASSERT_NEAR(frm1->getV()->getState()(2), 0, Constants::EPS);
auto frm2 = emplaceFrame(2, Vector3d::Zero());
// new captures
auto cap1 = createCapture(1);
auto cap2 = createCapture(2);
auto cap3 = createCapture(3);
auto cap4 = createCapture(4);
auto cap5 = createCapture(5);
// captureCallback
processor->captureCallback(cap1);
processor->captureCallback(cap2);
processor->captureCallback(cap3);
processor->captureCallback(cap4);
processor->captureCallback(cap5);
// keyframecallback
problem->keyFrameCallback(frm2, nullptr, 0.5);
EXPECT_TRUE(cap1->getFrame() == nullptr);
EXPECT_TRUE(cap2->getFrame() == frm2);
EXPECT_TRUE(cap3->getFrame() == nullptr);
EXPECT_TRUE(cap4->getFrame() == nullptr);
EXPECT_TRUE(cap5->getFrame() == nullptr);
EXPECT_EQ(cap1->getFeatureList().size(), 0);
EXPECT_EQ(cap2->getFeatureList().size(), 1);
EXPECT_EQ(cap3->getFeatureList().size(), 0);
EXPECT_EQ(cap4->getFeatureList().size(), 0);
EXPECT_EQ(cap5->getFeatureList().size(), 0);
EXPECT_EQ(processor->getNStoredFrames(), 0);
EXPECT_EQ(processor->getNStoredCaptures(), 4);
} }
TEST_F(ProcessorFixWingModelTest, emplaceFactors)
{
// emplace frame and capture
auto cap1 = emplaceCapture(emplaceFrame(1, Vector3d::Zero()));
processor->captureCallback(cap1);
auto cap2 = emplaceCapture(emplaceFrame(2, Vector3d::Ones()));
processor->captureCallback(cap2);
auto cap3 = emplaceCapture(emplaceFrame(3, 2*Vector3d::Ones()));
processor->captureCallback(cap3);
auto cap4 = emplaceCapture(emplaceFrame(4, Vector3d::Zero()));
processor->captureCallback(cap4);
EXPECT_EQ(cap1->getFrame()->getConstrainedByList().size(), 1);
EXPECT_EQ(cap2->getFrame()->getConstrainedByList().size(), 0);
EXPECT_EQ(cap3->getFrame()->getConstrainedByList().size(), 0);
EXPECT_EQ(cap4->getFrame()->getConstrainedByList().size(), 0);
EXPECT_EQ(cap1->getFeatureList().size(), 1);
EXPECT_EQ(cap2->getFeatureList().size(), 1);
EXPECT_EQ(cap3->getFeatureList().size(), 1);
EXPECT_EQ(cap4->getFeatureList().size(), 1);
EXPECT_EQ(cap1->getFeatureList().front()->getFactorList().size(), 0);
EXPECT_EQ(cap2->getFeatureList().front()->getFactorList().size(), 0);
EXPECT_EQ(cap3->getFeatureList().front()->getFactorList().size(), 0);
EXPECT_EQ(cap4->getFeatureList().front()->getFactorList().size(), 1);
EXPECT_EQ(cap1->getFrame()->getConstrainedByList().front(), cap4->getFeatureList().front()->getFactorList().front());
}*/
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
testing::InitGoogleTest(&argc, argv); testing::InitGoogleTest(&argc, argv);
......
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