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

Function TEST

test/unit/filters/CovarianceFeaturesTest.cpp:46–90  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

44namespace pdal {
45
46TEST(DimensionalityTest, Linearity)
47{
48 using namespace Dimension;
49
50 PointTable table;
51 table.layout()->registerDims({Id::X, Id::Y, Id::Z});
52
53 BufferReader bufferReader;
54 CovarianceFeaturesFilter filter;
55 Options ops;
56 ops.add("knn", 3);
57 ops.add("feature_set", "Dimensionality,Omnivariance,Anisotropy,Eigenentropy,EigenvalueSum,SurfaceVariation,DemantkeVerticality");
58 filter.setInput(bufferReader);
59 filter.setOptions(ops);
60 filter.prepare(table);
61
62 PointViewPtr view(new PointView(table));
63 view->setField(Id::X, 0,0);
64 view->setField(Id::X, 1, 0);
65 view->setField(Id::X, 2, 0);
66 view->setField(Id::Y, 0, 0);
67 view->setField(Id::Y, 1, 0);
68 view->setField(Id::Y, 2, 0);
69 view->setField(Id::Z, 0, 0);
70 view->setField(Id::Z, 1, 1);
71 view->setField(Id::Z, 2, 2);
72 bufferReader.addView(view);
73
74 PointViewSet viewSet = filter.execute(table);
75 PointViewPtr outView = *viewSet.begin();
76
77 for (point_count_t i =0; i < outView->size(); i++)
78 {
79 ASSERT_FLOAT_EQ(outView->getFieldAs<float>(Id::Linearity, i) ,1);
80 ASSERT_FLOAT_EQ(outView->getFieldAs<float>(Id::Verticality, i) ,1);
81 ASSERT_FLOAT_EQ(outView->getFieldAs<float>(Id::Planarity, i) ,0);
82 ASSERT_FLOAT_EQ(outView->getFieldAs<float>(Id::Scattering, i) ,0);
83 ASSERT_FLOAT_EQ(outView->getFieldAs<float>(Id::Omnivariance, i), 0);
84 ASSERT_FLOAT_EQ(outView->getFieldAs<float>(Id::Anisotropy, i), 1);
85 ASSERT_TRUE(std::isnan(outView->getFieldAs<float>(Id::Eigenentropy, i)));
86 ASSERT_FLOAT_EQ(outView->getFieldAs<float>(Id::EigenvalueSum, i), 1);
87 ASSERT_FLOAT_EQ(outView->getFieldAs<float>(Id::SurfaceVariation, i), 0);
88 ASSERT_FLOAT_EQ(outView->getFieldAs<float>(Id::DemantkeVerticality, i), 1);
89 }
90}
91
92TEST(DimensionalityTest, Planarity)
93{

Callers

nothing calls this directly

Calls 8

registerDimsMethod · 0.80
setOptionsMethod · 0.80
addMethod · 0.45
prepareMethod · 0.45
setFieldMethod · 0.45
executeMethod · 0.45
beginMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected