MCPcopy Create free account
hub / github.com/PDAL/PDAL / TEST

Function TEST

test/unit/SegmentationTest.cpp:47–97  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

45using namespace pdal;
46
47TEST(SegmentationTest, BasicClustering)
48{
49 using namespace Segmentation;
50
51 std::deque<PointIdList> clusters;
52
53 PointTable table;
54 PointLayoutPtr layout(table.layout());
55
56 layout->registerDim(Dimension::Id::X);
57 layout->registerDim(Dimension::Id::Y);
58 layout->registerDim(Dimension::Id::Z);
59
60 PointViewPtr src(new PointView(table));
61
62 // Single point, single cluster
63 src->setField(Dimension::Id::X, 0, 0.0);
64 src->setField(Dimension::Id::Y, 0, 0.0);
65 src->setField(Dimension::Id::Z, 0, 0.0);
66 clusters = extractClusters<KD3Index>(*src, 1, 10, 1.0);
67 EXPECT_EQ(1u, clusters.size());
68 EXPECT_EQ(1u, clusters[0].size());
69
70 // Two separate clusters, both with single point
71 src->setField(Dimension::Id::X, 1, 10.0);
72 src->setField(Dimension::Id::Y, 1, 10.0);
73 src->setField(Dimension::Id::Z, 1, 10.0);
74 clusters = extractClusters<KD3Index>(*src, 1, 10, 1.0);
75 EXPECT_EQ(2u, clusters.size());
76 EXPECT_EQ(1u, clusters[0].size());
77 EXPECT_EQ(1u, clusters[1].size());
78
79 // Still two clusters, one with two points
80 src->setField(Dimension::Id::X, 2, 0.5);
81 src->setField(Dimension::Id::Y, 2, 0.5);
82 src->setField(Dimension::Id::Z, 2, 0.5);
83 clusters = extractClusters<KD3Index>(*src, 1, 10, 1.0);
84 EXPECT_EQ(2u, clusters.size());
85 EXPECT_EQ(2u, clusters[0].size());
86 EXPECT_EQ(1u, clusters[1].size());
87
88 // Reject the cluster with only one point
89 clusters = extractClusters<KD3Index>(*src, 2, 10, 1.0);
90 EXPECT_EQ(1u, clusters.size());
91 EXPECT_EQ(2u, clusters[0].size());
92
93 // Reject the cluster with two points
94 clusters = extractClusters<KD3Index>(*src, 1, 1, 1.0);
95 EXPECT_EQ(1u, clusters.size());
96 EXPECT_EQ(1u, clusters[0].size());
97}
98
99TEST(SegmentationTest, Clustering2D)
100{

Callers

nothing calls this directly

Calls 4

segmentReturnsFunction · 0.85
registerDimMethod · 0.80
setFieldMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected