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

Function TEST

plugins/tiledb/test/TileDBBitFieldsTest.cpp:59–179  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

57{
58
59TEST(CombineBitFields, round_trip)
60{
61 // Create buffers with the data.
62 std::vector<double> xData{0.0, 1.0, 2.0, 3.0};
63 std::vector<double> yData{0.0, 1.0, 2.0, 3.0};
64 std::vector<double> zData{0.0, 1.0, 2.0, 3.0};
65 std::vector<uint8_t> returnNum{0, 15, 12, 7}; // 4 bits
66 std::vector<uint8_t> numReturns{15, 13, 1, 0}; // 4 bits
67 std::vector<uint8_t> classFlags{2, 6, 0, 15}; // 4 bits
68 std::vector<uint8_t> scanChannel{0, 1, 2, 3}; // 2 bits
69 std::vector<uint8_t> scanDirFlag{0, 0, 1, 1}; // 1 bit
70 std::vector<uint8_t> flightEdge{1, 0, 1, 0}; // 1 bit
71
72 // Clean-up previous tests.
73 std::string uri = Support::temppath("tiledb_test_bit_fields");
74 if (FileUtils::directoryExists(uri))
75 FileUtils::deleteDirectory(uri);
76
77 // Write to TileDB.
78 {
79 // Create point table with dimension registry.
80 PointTable table;
81 table.layout()->registerDims(
82 {Dimension::Id::X, Dimension::Id::Y, Dimension::Id::Z,
83 Dimension::Id::ReturnNumber, Dimension::Id::NumberOfReturns,
84 Dimension::Id::ClassFlags, Dimension::Id::ScanChannel,
85 Dimension::Id::ScanDirectionFlag,
86 Dimension::Id::EdgeOfFlightLine});
87
88 // Create buffer reader with data.
89 BufferReader bufferReader;
90 PointViewPtr view(new PointView(table));
91 for (uint32_t index = 0; index < 4; ++index)
92 {
93 view->setField(Dimension::Id::X, index, xData[index]);
94 view->setField(Dimension::Id::Y, index, yData[index]);
95 view->setField(Dimension::Id::Z, index, zData[index]);
96 view->setField(Dimension::Id::ReturnNumber, index,
97 returnNum[index]);
98 view->setField(Dimension::Id::NumberOfReturns, index,
99 numReturns[index]);
100 view->setField(Dimension::Id::ClassFlags, index, classFlags[index]);
101 view->setField(Dimension::Id::ScanChannel, index,
102 scanChannel[index]);
103 view->setField(Dimension::Id::ScanDirectionFlag, index,
104 scanDirFlag[index]);
105 view->setField(Dimension::Id::EdgeOfFlightLine, index,
106 flightEdge[index]);
107 }
108 bufferReader.addView(view);
109
110 // Set TileDB writer options.
111 Options writerOptions;
112 writerOptions.add("filename", uri);
113 writerOptions.add("x_tile_size", 4);
114 writerOptions.add("y_tile_size", 4);
115 writerOptions.add("z_tile_size", 4);
116 writerOptions.add("combine_bit_fields", true);

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
typeMethod · 0.45
beginMethod · 0.45

Tested by

no test coverage detected