16 #include <mrpt/containers/yaml.h> 
   17 #include <mrpt/core/exceptions.h> 
   18 #include <mrpt/maps/CSimplePointsMap.h> 
   22 int main([[maybe_unused]] 
int argc, [[maybe_unused]] 
char** argv)
 
   28         const auto inFile = 
std::string(
"happy_buddha_decim.xyz.gz");
 
   30         const auto                        fileFullPath = datasetDir + inFile;
 
   33         mrpt::containers::yaml params;
 
   35         params[
"ncols"] = 100;
 
   43         params[
"sigma"] = 0.1;
 
   51             const auto viewPose = mrpt::poses::CPose3D(-0.2, 0, 0, 0, 0, 0);
 
   52             pts->changeCoordinatesReference(viewPose);
 
   56         std::vector<std::tuple<mrpt::poses::CPose3D, mrpt::poses::CPose3D, double>> testPairs = {
 
   58             {{.0, .0, .0, .0, .0, .0}, {.0, .0, .0, .0, .0, .0}, 1.0},
 
   60             {{1.0, 1.0, .0, .0, .0, .0}, {1.0, 1.0, .0, .0, .0, .0}, 1.0},
 
   62             {{.1, .1, .2, .0, .0, .0}, {.101, .1, .2, .0, .0, .0}, 0.93},
 
   66         for (
const auto& p : testPairs)
 
   68             const mrpt::poses::CPose3D& relPoseGT   = std::get<0>(p);
 
   69             const mrpt::poses::CPose3D& relPoseTest = std::get<1>(p);
 
   70             const double                expectedVal = std::get<2>(p);
 
   72             auto p1 = mrpt::maps::CSimplePointsMap::Create();
 
   73             p1->insertAnotherMap(pts.get(), mrpt::poses::CPose3D::Identity());
 
   75             auto p2 = mrpt::maps::CSimplePointsMap::Create();
 
   76             p2->insertAnotherMap(pts.get(), relPoseGT);
 
   84             const auto   res     = 
q.evaluate(pcG, pcL, relPoseTest, {});
 
   85             const double quality = 
res.quality;
 
   87             if (std::abs(quality - expectedVal) > 0.1)
 
   89                 std::cerr << 
"Failed for test case:\n" 
   90                           << 
" relPoseGT   : " << relPoseGT << 
"\n" 
   91                           << 
" relPoseTest : " << relPoseTest << 
"\n" 
   92                           << 
" expectedVal : " << expectedVal << 
"\n" 
   93                           << 
" quality     : " << quality << 
"\n";
 
   95                 throw std::runtime_error(
"test failed (see cerr above)");
 
   99     catch (std::exception& e)
 
  101         std::cerr << mrpt::exception_to_str(e) << 
"\n";