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

Function TEST

plugins/tiledb/test/TileDBReaderTest.cpp:301–410  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

299}
300
301TEST(TileDBRoundTripTest, delta_filter_test)
302{
303 // Raw data.
304 std::string uri = Support::temppath("tiledb_test_intensity_compression");
305 std::vector<double> xValues{0.0, 1.0, 2.0, 3.0, 4.0, 5.0};
306 std::vector<double> yValues(6, 0.0);
307 std::vector<double> zValues(6, 0.0);
308 std::vector<uint16_t> intensityValues{1, 1, 0, 0, 2, 3};
309 std::vector<double> gpsTimeValues{1306604063.0, 1306604064.0, 1306604078.0,
310 1306604064.0, 1306604064.0, 1306603982.0};
311
312 // Clean-up previous tests.
313 if (FileUtils::directoryExists(uri))
314 FileUtils::deleteDirectory(uri);
315
316 // Write the original data
317 {
318 // Create point table with dimension registry.
319 PointTable table;
320 table.layout()->registerDims(
321 {Dimension::Id::X, Dimension::Id::Y, Dimension::Id::Z,
322 Dimension::Id::Intensity, Dimension::Id::GpsTime});
323
324 // Create buffer reader with data.
325 BufferReader bufferReader;
326 PointViewPtr view(new PointView(table));
327 for (uint32_t index = 0; index < 6; ++index)
328 {
329 view->setField(Dimension::Id::X, index, xValues[index]);
330 view->setField(Dimension::Id::Y, index, yValues[index]);
331 view->setField(Dimension::Id::Z, index, zValues[index]);
332 view->setField(Dimension::Id::Intensity, index,
333 intensityValues[index]);
334 view->setField(Dimension::Id::GpsTime, index, gpsTimeValues[index]);
335 }
336 bufferReader.addView(view);
337
338 // Set TileDB writer options.
339 Options writerOptions;
340 writerOptions.add("filename", uri);
341 writerOptions.add("x_tile_size", 6);
342 writerOptions.add("y_tile_size", 6);
343 writerOptions.add("z_tile_size", 6);
344 NL::json filters({});
345 filters["Intensity"] = {
346 {{"compression", "delta"}},
347 {{"compression", "zstd"}, {"compression_level", 5}}};
348 filters["GpsTime"] = {
349 {{"compression", "delta"}, {"reinterpret_datatype", "UINT64"}},
350 {{"compression", "bit_width_reduction"}},
351 {{"compression", "zstd"}, {"compression_level", 7}}};
352 writerOptions.add("filters", filters);
353
354 // Create TileDB writer, set options, and write data.
355 TileDBWriter writer;
356 writer.setOptions(writerOptions);
357 writer.setInput(bufferReader);
358 writer.prepare(table);

Callers

nothing calls this directly

Calls 11

temppathFunction · 0.85
directoryExistsFunction · 0.85
deleteDirectoryFunction · 0.85
registerDimsMethod · 0.80
setOptionsMethod · 0.80
setFieldMethod · 0.45
addMethod · 0.45
prepareMethod · 0.45
executeMethod · 0.45
filterMethod · 0.45
beginMethod · 0.45

Tested by

no test coverage detected