@@ -8386,6 +8386,38 @@ TEST_F(TestNanoVDB, CustomStreamGridHandleIO)
83868386 }
83878387}// CustomStreamGridHandleIO
83888388
8389+ // make -j testNanoVDB && ./unittest/testNanoVDB --gtest_filter="*GridHandleReadMultiGridRawBuffer"
8390+ TEST_F (TestNanoVDB, GridHandleReadMultiGridRawBuffer)
8391+ {
8392+ std::vector<nanovdb::GridHandle<>> handles;
8393+ handles.emplace_back (nanovdb::tools::createLevelSetSphere<float >(20.0 ));
8394+ handles.emplace_back (nanovdb::tools::createLevelSetSphere<float >(40.0 ));
8395+ ASSERT_EQ (2u , handles.size ());
8396+ ASSERT_NE (handles[0 ].bufferSize (), handles[1 ].bufferSize ());
8397+
8398+ auto mergedHandle = nanovdb::mergeGrids<nanovdb::HostBuffer, std::vector>(handles);
8399+ ASSERT_EQ (2u , mergedHandle.gridCount ());
8400+
8401+ std::stringstream stream (std::ios_base::in | std::ios_base::out | std::ios_base::binary);
8402+ mergedHandle.write (stream);
8403+ stream.seekg (0 );
8404+
8405+ nanovdb::GridHandle<> handle;
8406+ handle.read (stream);
8407+
8408+ EXPECT_EQ (mergedHandle.bufferSize (), handle.bufferSize ());
8409+ EXPECT_EQ (2u , handle.gridCount ());
8410+ for (uint32_t i = 0 ; i < handle.gridCount (); ++i) {
8411+ const auto * grid = handle.grid <float >(i);
8412+ ASSERT_TRUE (grid);
8413+ EXPECT_EQ (i, grid->gridIndex ());
8414+ EXPECT_EQ (2u , grid->gridCount ());
8415+ EXPECT_EQ (handles[i].bufferSize (), grid->gridSize ());
8416+ EXPECT_TRUE (nanovdb::tools::validateChecksum (grid));
8417+ EXPECT_TRUE (nanovdb::tools::validateChecksum (grid, nanovdb::CheckMode::Full));
8418+ }
8419+ }// GridHandleReadMultiGridRawBuffer
8420+
83898421// make -j testNanoVDB && ./unittest/testNanoVDB --gtest_filter="*strcpy"
83908422TEST_F (TestNanoVDB, strcpy)
83918423{
0 commit comments