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

Function exec6

test/unit/WhereTest.cpp:268–320  ·  view source on GitHub ↗

Support for filter that returns no point views.

Source from the content-addressed store, hash-verified

266
267// Support for filter that returns no point views.
268void exec6(const std::string& where, size_t expKeep, size_t expViews,
269 Stage::WhereMergeMode mm = Stage::WhereMergeMode::Auto)
270{
271 StageFactory factory;
272
273 Stage *r = factory.createStage("readers.faux");
274 Options ro;
275 ro.add("count", 100);
276 ro.add("bounds", BOX3D(0, 0, 100, 99, 9.9, 199));
277 ro.add("mode", "ramp");
278 r->setOptions(ro);
279
280 class TestFilter : public Filter
281 {
282 public:
283 TestFilter()
284 {
285 g_count = 0;
286 }
287
288 private:
289 std::string getName() const
290 { return "filters.test"; }
291
292 PointViewSet run(PointViewPtr v)
293 {
294 PointViewSet s;
295 if (v->empty())
296 return s;
297
298 g_count = v->size();
299 s.insert(v);
300 return s;
301 }
302 };
303
304 TestFilter f;
305 Options fo;
306 fo.add("where", where);
307 fo.add("where_merge", mm);
308 f.setOptions(fo);
309 f.setInput(*r);
310
311 PointTable t;
312 f.prepare(t);
313 PointViewSet s = f.execute(t);
314 EXPECT_EQ(s.size(), expViews);
315 size_t total = 0;
316 for (auto vp : s)
317 total += vp->size();
318 EXPECT_EQ(total, 100u);
319 EXPECT_EQ(g_count, expKeep);
320}
321
322
323TEST(WhereTest, filter)

Callers 1

TESTFunction · 0.85

Calls 7

createStageMethod · 0.80
setOptionsMethod · 0.80
BOX3DClass · 0.70
addMethod · 0.45
prepareMethod · 0.45
executeMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected