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

Function TEST

test/unit/KDIndexTest.cpp:40–116  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

38using namespace pdal;
39
40TEST(KDIndex, neighbors2D)
41{
42 PointTable table;
43 PointLayoutPtr layout = table.layout();
44 PointView view(table);
45
46 layout->registerDim(Dimension::Id::X);
47 layout->registerDim(Dimension::Id::Y);
48
49 view.setField(Dimension::Id::X, 0, 0);
50 view.setField(Dimension::Id::Y, 0, 0);
51
52 view.setField(Dimension::Id::X, 1, 1);
53 view.setField(Dimension::Id::Y, 1, 1);
54
55 view.setField(Dimension::Id::X, 2, 3);
56 view.setField(Dimension::Id::Y, 2, 3);
57
58 view.setField(Dimension::Id::X, 3, 6);
59 view.setField(Dimension::Id::Y, 3, 6);
60
61 view.setField(Dimension::Id::X, 4, 10);
62 view.setField(Dimension::Id::Y, 4, 10);
63
64 KD2Index index(view);
65 index.build();
66
67 EXPECT_EQ(index.neighbor(0, 0), 0u);
68 EXPECT_EQ(index.neighbor(1.1, 1.1), 1u);
69 EXPECT_EQ(index.neighbor(3.3, 3.3), 2u);
70 EXPECT_EQ(index.neighbor(6.1, 6.1), 3u);
71 EXPECT_EQ(index.neighbor(15, 15), 4u);
72
73 PointIdList ids;
74 ids = index.neighbors(0, 0, 5);
75 EXPECT_EQ(ids.size(), 5u);
76 EXPECT_EQ(ids[0], 0u);
77 EXPECT_EQ(ids[1], 1u);
78 EXPECT_EQ(ids[2], 2u);
79 EXPECT_EQ(ids[3], 3u);
80 EXPECT_EQ(ids[4], 4u);
81
82 ids = index.neighbors(0, 0, 25);
83 EXPECT_EQ(ids.size(), 5u);
84 EXPECT_EQ(ids[0], 0u);
85 EXPECT_EQ(ids[1], 1u);
86 EXPECT_EQ(ids[2], 2u);
87 EXPECT_EQ(ids[3], 3u);
88 EXPECT_EQ(ids[4], 4u);
89
90 ids = index.neighbors(3.1, 3.1, 5);
91 EXPECT_EQ(ids.size(), 5u);
92 EXPECT_EQ(ids[0], 2u);
93 EXPECT_EQ(ids[1], 1u);
94 EXPECT_EQ(ids[2], 3u);
95 EXPECT_EQ(ids[3], 0u);
96 EXPECT_EQ(ids[4], 4u);
97

Callers

nothing calls this directly

Calls 8

registerDimMethod · 0.80
neighborMethod · 0.80
pointMethod · 0.80
setFieldMethod · 0.45
buildMethod · 0.45
neighborsMethod · 0.45
sizeMethod · 0.45
radiusMethod · 0.45

Tested by

no test coverage detected