Skip to content

Commit

Permalink
Added test for DistanceLimitDataPointsFilter.
Browse files Browse the repository at this point in the history
  • Loading branch information
simonpierredeschenes committed Jul 30, 2018
1 parent 3bf7628 commit 124d7df
Show file tree
Hide file tree
Showing 3 changed files with 119 additions and 0 deletions.
@@ -0,0 +1,4 @@
0.9801148772239685 -0.1606823354959488 0.1164287924766541 -0.1039974689483643
0.1777812242507935 0.9716974496841431 -0.1555580049753189 -0.216127872467041
-0.08813809603452682 0.173163577914238 0.9809413552284241 -0.05247235298156738
0 0 0 1
39 changes: 39 additions & 0 deletions examples/data/icp_data/defaultDistanceLimitDataPointsFilter.yaml
@@ -0,0 +1,39 @@
readingDataPointsFilters:
- DistanceLimitDataPointsFilter:
dist: 200

referenceDataPointsFilters:
- SamplingSurfaceNormalDataPointsFilter:
knn: 10
ratio: 0.666666
samplingMethod: 1
averageExistingDescriptors: 0

matcher:
KDTreeMatcher:
knn: 1
epsilon: 0

outlierFilters:
- TrimmedDistOutlierFilter:
ratio: 0.75

errorMinimizer:
PointToPlaneErrorMinimizer

transformationCheckers:
- CounterTransformationChecker:
maxIterationCount: 40
- DifferentialTransformationChecker:
minDiffRotErr: 0.001
minDiffTransErr: 0.01
smoothLength: 4

inspector:
NullInspector
# VTKFileInspector

logger:
NullLogger
# FileLogger

76 changes: 76 additions & 0 deletions utest/ui/DataFilters.cpp
Expand Up @@ -729,3 +729,79 @@ TEST_F(DataFilterTest, CutAtDescriptorThresholdDataPointsFilter)
}
}
}

TEST_F(DataFilterTest, DistanceLimitDataPointsFilter)
{
params = PM::Parameters();
params["dim"] = "0";
params["dist"] = toParam(6.0);
params["removeInside"] = "0";

// Filter on x axis
params["dim"] = "0";
icp.readingDataPointsFilters.clear();
addFilter("DistanceLimitDataPointsFilter", params);
validate2dTransformation();
validate3dTransformation();

// Filter on y axis
params["dim"] = "1";
icp.readingDataPointsFilters.clear();
addFilter("DistanceLimitDataPointsFilter", params);
validate2dTransformation();
validate3dTransformation();

// Filter on z axis (not existing)
params["dim"] = "2";
icp.readingDataPointsFilters.clear();
addFilter("DistanceLimitDataPointsFilter", params);
EXPECT_ANY_THROW(validate2dTransformation());
validate3dTransformation();

// Filter on a radius
params["dim"] = "-1";
icp.readingDataPointsFilters.clear();
addFilter("DistanceLimitDataPointsFilter", params);
validate2dTransformation();
validate3dTransformation();

// Parameter outside valid range
params["dim"] = "3";
//TODO: specify the exception, move that to GenericTest
EXPECT_ANY_THROW(addFilter("DistanceLimitDataPointsFilter", params));


params = PM::Parameters();
params["dim"] = "0";
params["dist"] = toParam(0.05);
params["removeInside"] = "1";

// Filter on x axis
params["dim"] = "0";
icp.readingDataPointsFilters.clear();
addFilter("DistanceLimitDataPointsFilter", params);
validate2dTransformation();
validate3dTransformation();

// Filter on y axis
params["dim"] = "1";
icp.readingDataPointsFilters.clear();
addFilter("DistanceLimitDataPointsFilter", params);
validate2dTransformation();
validate3dTransformation();

//TODO: move that to specific 2D test
// Filter on z axis (not existing)
params["dim"] = "2";
icp.readingDataPointsFilters.clear();
addFilter("DistanceLimitDataPointsFilter", params);
EXPECT_ANY_THROW(validate2dTransformation());
validate3dTransformation();

// Filter on a radius
params["dim"] = "-1";
icp.readingDataPointsFilters.clear();
addFilter("DistanceLimitDataPointsFilter", params);
validate2dTransformation();
validate3dTransformation();
}

0 comments on commit 124d7df

Please sign in to comment.