| 455 | } |
| 456 | |
| 457 | TEST(AdditionalTileDBWriterTimeDimTest, domain_from_stats) |
| 458 | { |
| 459 | |
| 460 | // Create buffers with the data. |
| 461 | std::vector<double> xData{0.0, 3.0}; |
| 462 | std::vector<double> yData{4.0, 9.0}; |
| 463 | std::vector<double> zData{-13.0, -10.0}; |
| 464 | std::vector<double> timeData{100.0, 300.0}; |
| 465 | std::vector<uint16_t> intensityData{1, 1}; |
| 466 | |
| 467 | // Clean-up previous tests. |
| 468 | std::string uri = Support::temppath("tiledb_domain_with_time_from_stats"); |
| 469 | if (FileUtils::directoryExists(uri)) |
| 470 | FileUtils::deleteDirectory(uri); |
| 471 | |
| 472 | // Write to TileDB. |
| 473 | // Create point table with dimension registry. |
| 474 | PointTable table; |
| 475 | table.layout()->registerDims({Dimension::Id::X, Dimension::Id::Y, |
| 476 | Dimension::Id::Z, Dimension::Id::Intensity, |
| 477 | Dimension::Id::GpsTime}); |
| 478 | |
| 479 | // Create buffer reader with data. |
| 480 | BufferReader bufferReader; |
| 481 | PointViewPtr view(new PointView(table)); |
| 482 | for (uint32_t index = 0; index < 2; ++index) |
| 483 | { |
| 484 | view->setField(Dimension::Id::X, index, xData[index]); |
| 485 | view->setField(Dimension::Id::Y, index, yData[index]); |
| 486 | view->setField(Dimension::Id::Z, index, zData[index]); |
| 487 | view->setField(Dimension::Id::GpsTime, index, timeData[index]); |
| 488 | view->setField(Dimension::Id::Intensity, index, intensityData[index]); |
| 489 | } |
| 490 | bufferReader.addView(view); |
| 491 | |
| 492 | // Create the stage factory. |
| 493 | StageFactory factory; |
| 494 | |
| 495 | // Create stats filter and link it to the faux reader. |
| 496 | Stage* stats_filter = factory.createStage("filters.stats"); |
| 497 | stats_filter->setInput(bufferReader); |
| 498 | |
| 499 | // Create TileDB writer, set options, and write data. |
| 500 | Stage* writer = factory.createStage("writers.tiledb"); |
| 501 | |
| 502 | // Set TileDB writer options. |
| 503 | Options writerOptions; |
| 504 | writerOptions.add("filename", uri); |
| 505 | writerOptions.add("use_time_dim", true); |
| 506 | writer->setOptions(writerOptions); |
| 507 | writer->setInput(*stats_filter); |
| 508 | |
| 509 | // Submit. |
| 510 | writer->prepare(table); |
| 511 | writer->execute(table); |
| 512 | |
| 513 | // Check schema. |
| 514 | { |
nothing calls this directly
no test coverage detected