| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | // Copyright Contributors to the OpenVDB Project | ||
| 2 | // SPDX-License-Identifier: MPL-2.0 | ||
| 3 | |||
| 4 | #include <openvdb/Exceptions.h> | ||
| 5 | #include <openvdb/io/File.h> | ||
| 6 | #include <openvdb/io/io.h> | ||
| 7 | #include <openvdb/io/Queue.h> | ||
| 8 | #include <openvdb/io/Stream.h> | ||
| 9 | #include <openvdb/Metadata.h> | ||
| 10 | #include <openvdb/math/Transform.h> | ||
| 11 | #include <openvdb/tools/Count.h> | ||
| 12 | #include <openvdb/tools/LevelSetUtil.h> // for tools::sdfToFogVolume() | ||
| 13 | #include <openvdb/util/logging.h> | ||
| 14 | #include <openvdb/version.h> | ||
| 15 | #include <openvdb/openvdb.h> | ||
| 16 | #include "util.h" // for unittest_util::makeSphere() | ||
| 17 | |||
| 18 | #include <gtest/gtest.h> | ||
| 19 | |||
| 20 | #include <thread> | ||
| 21 | #include <chrono> | ||
| 22 | #include <algorithm> // for std::sort() | ||
| 23 | #include <cstdio> // for remove() and rename() | ||
| 24 | #include <fstream> | ||
| 25 | #include <functional> // for std::bind() | ||
| 26 | #include <iostream> | ||
| 27 | #include <map> | ||
| 28 | #include <memory> | ||
| 29 | #include <set> | ||
| 30 | #include <sstream> | ||
| 31 | #include <string> | ||
| 32 | #include <vector> | ||
| 33 | #include <sys/types.h> // for stat() | ||
| 34 | #include <sys/stat.h> | ||
| 35 | #ifndef _WIN32 | ||
| 36 | #include <unistd.h> | ||
| 37 | #endif | ||
| 38 | #ifdef OPENVDB_USE_BLOSC | ||
| 39 | #include <blosc.h> | ||
| 40 | #include <cstring> // for memset() | ||
| 41 | #endif | ||
| 42 | |||
| 43 | |||
| 44 | 25 | class TestFile: public ::testing::Test | |
| 45 | { | ||
| 46 | public: | ||
| 47 | 25 | void SetUp() override {} | |
| 48 | 25 | void TearDown() override { openvdb::uninitialize(); } | |
| 49 | |||
| 50 | void testHeader(); | ||
| 51 | void testWriteGrid(); | ||
| 52 | void testWriteMultipleGrids(); | ||
| 53 | void testReadGridDescriptors(); | ||
| 54 | void testEmptyGridIO(); | ||
| 55 | void testOpen(); | ||
| 56 | void testDelayedLoadMetadata(); | ||
| 57 | void testNonVdbOpen(); | ||
| 58 | }; | ||
| 59 | |||
| 60 | |||
| 61 | //////////////////////////////////////// | ||
| 62 | |||
| 63 | void | ||
| 64 | 1 | TestFile::testHeader() | |
| 65 | { | ||
| 66 | using namespace openvdb::io; | ||
| 67 | |||
| 68 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | File file("something.vdb2"); |
| 69 | |||
| 70 | std::ostringstream | ||
| 71 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | ostr(std::ios_base::binary), |
| 72 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | ostr2(std::ios_base::binary); |
| 73 | |||
| 74 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | file.writeHeader(ostr2, /*seekable=*/true); |
| 75 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | std::string uuidStr = file.getUniqueTag(); |
| 76 | |||
| 77 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | file.writeHeader(ostr, /*seekable=*/true); |
| 78 | // Verify that a file gets a new UUID each time it is written. | ||
| 79 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(!file.isIdentical(uuidStr)); |
| 80 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | uuidStr = file.getUniqueTag(); |
| 81 | |||
| 82 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::istringstream istr(ostr.str(), std::ios_base::binary); |
| 83 | |||
| 84 | bool unique=true; | ||
| 85 |
5/22✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
|
1 | EXPECT_NO_THROW(unique=file.readHeader(istr)); |
| 86 | |||
| 87 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(!unique);//reading same file again |
| 88 | |||
| 89 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | uint32_t version = openvdb::OPENVDB_FILE_VERSION; |
| 90 | |||
| 91 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(version, file.fileVersion()); |
| 92 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(openvdb::OPENVDB_LIBRARY_MAJOR_VERSION, file.libraryVersion().first); |
| 93 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(openvdb::OPENVDB_LIBRARY_MINOR_VERSION, file.libraryVersion().second); |
| 94 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | EXPECT_EQ(uuidStr, file.getUniqueTag()); |
| 95 | |||
| 96 | //std::cerr << "\nuuid=" << uuidStr << std::endl; | ||
| 97 | |||
| 98 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(file.isIdentical(uuidStr)); |
| 99 | |||
| 100 | 1 | remove("something.vdb2"); | |
| 101 | 1 | } | |
| 102 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | TEST_F(TestFile, testHeader) { testHeader(); } |
| 103 | |||
| 104 | |||
| 105 | void | ||
| 106 | 1 | TestFile::testWriteGrid() | |
| 107 | { | ||
| 108 | using namespace openvdb; | ||
| 109 | using namespace openvdb::io; | ||
| 110 | |||
| 111 | using TreeType = Int32Tree; | ||
| 112 | using GridType = Grid<TreeType>; | ||
| 113 | |||
| 114 | logging::LevelScope suppressLogging{logging::Level::Fatal}; | ||
| 115 | |||
| 116 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | File file("something.vdb2"); |
| 117 | |||
| 118 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::ostringstream ostr(std::ios_base::binary); |
| 119 | |||
| 120 | // Create a grid with transform. | ||
| 121 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::Transform::Ptr trans = math::Transform::createLinearTransform(0.1); |
| 122 | |||
| 123 |
1/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
|
1 | GridType::Ptr grid = createGrid<GridType>(/*bg=*/1); |
| 124 | TreeType& tree = grid->tree(); | ||
| 125 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | grid->setTransform(trans); |
| 126 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | tree.setValue(Coord(10, 1, 2), 10); |
| 127 |
1/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
|
1 | tree.setValue(Coord(0, 0, 0), 5); |
| 128 | |||
| 129 | // Add some metadata. | ||
| 130 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | Metadata::clearRegistry(); |
| 131 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | StringMetadata::registerType(); |
| 132 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | const std::string meta0Val, meta1Val("Hello, world."); |
| 133 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
2 | Metadata::Ptr stringMetadata = Metadata::createMetadata(typeNameAsString<std::string>()); |
| 134 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(stringMetadata); |
| 135 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | if (stringMetadata) { |
| 136 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | grid->insertMeta("meta0", *stringMetadata); |
| 137 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | grid->metaValue<std::string>("meta0") = meta0Val; |
| 138 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | grid->insertMeta("meta1", *stringMetadata); |
| 139 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | grid->metaValue<std::string>("meta1") = meta1Val; |
| 140 | } | ||
| 141 | |||
| 142 | // Create the grid descriptor out of this grid. | ||
| 143 |
3/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
|
3 | GridDescriptor gd(Name("temperature"), grid->type()); |
| 144 | |||
| 145 | // Write out the grid. | ||
| 146 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
|
2 | file.writeGrid(gd, grid, ostr, /*seekable=*/true); |
| 147 | |||
| 148 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(gd.getGridPos() != 0); |
| 149 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(gd.getBlockPos() != 0); |
| 150 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(gd.getEndPos() != 0); |
| 151 | |||
| 152 | // Read in the grid descriptor. | ||
| 153 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | GridDescriptor gd2; |
| 154 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::istringstream istr(ostr.str(), std::ios_base::binary); |
| 155 | |||
| 156 | // Since the input is only a fragment of a VDB file (in particular, | ||
| 157 | // it doesn't have a header), set the file format version number explicitly. | ||
| 158 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | io::setCurrentVersion(istr); |
| 159 | |||
| 160 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridBase::Ptr gd2_grid; |
| 161 |
4/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
2 | EXPECT_THROW(gd2.read(istr), openvdb::LookupError); |
| 162 | |||
| 163 | // Register the grid and the transform and the blocks. | ||
| 164 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridBase::clearRegistry(); |
| 165 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridType::registerGrid(); |
| 166 | |||
| 167 | // Register transform maps | ||
| 168 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::MapRegistry::clear(); |
| 169 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::AffineMap::registerMap(); |
| 170 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::ScaleMap::registerMap(); |
| 171 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::UniformScaleMap::registerMap(); |
| 172 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::TranslationMap::registerMap(); |
| 173 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::ScaleTranslateMap::registerMap(); |
| 174 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::UniformScaleTranslateMap::registerMap(); |
| 175 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::NonlinearFrustumMap::registerMap(); |
| 176 | |||
| 177 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | istr.seekg(0, std::ios_base::beg); |
| 178 |
5/22✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
|
1 | EXPECT_NO_THROW(gd2_grid = gd2.read(istr)); |
| 179 | |||
| 180 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(gd.gridName(), gd2.gridName()); |
| 181 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
2 | EXPECT_EQ(GridType::gridType(), gd2_grid->type()); |
| 182 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(gd.getGridPos(), gd2.getGridPos()); |
| 183 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(gd.getBlockPos(), gd2.getBlockPos()); |
| 184 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(gd.getEndPos(), gd2.getEndPos()); |
| 185 | |||
| 186 | // Position the stream to beginning of the grid storage and read the grid. | ||
| 187 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd2.seekToGrid(istr); |
| 188 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | Archive::readGridCompression(istr); |
| 189 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd2_grid->readMeta(istr); |
| 190 | gd2_grid->readTransform(istr); | ||
| 191 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd2_grid->readTopology(istr); |
| 192 | |||
| 193 | // Remove delay load metadata if it exists. | ||
| 194 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
|
2 | if ((*gd2_grid)["file_delayed_load"]) { |
| 195 | ✗ | gd2_grid->removeMeta("file_delayed_load"); | |
| 196 | } | ||
| 197 | |||
| 198 | // Ensure that we have the same metadata. | ||
| 199 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(grid->metaCount(), gd2_grid->metaCount()); |
| 200 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
|
2 | EXPECT_TRUE((*gd2_grid)["meta0"]); |
| 201 |
2/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
2 | EXPECT_TRUE((*gd2_grid)["meta1"]); |
| 202 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
2 | EXPECT_EQ(meta0Val, gd2_grid->metaValue<std::string>("meta0")); |
| 203 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
2 | EXPECT_EQ(meta1Val, gd2_grid->metaValue<std::string>("meta1")); |
| 204 | |||
| 205 | // Ensure that we have the same topology and transform. | ||
| 206 |
5/22✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
1 | EXPECT_EQ( |
| 207 | grid->baseTree().leafCount(), gd2_grid->baseTree().leafCount()); | ||
| 208 |
5/22✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
1 | EXPECT_EQ( |
| 209 | grid->baseTree().nonLeafCount(), gd2_grid->baseTree().nonLeafCount()); | ||
| 210 |
5/22✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
1 | EXPECT_EQ( |
| 211 | grid->baseTree().treeDepth(), gd2_grid->baseTree().treeDepth()); | ||
| 212 | |||
| 213 | //EXPECT_EQ(0.1, gd2_grid->getTransform()->getVoxelSizeX()); | ||
| 214 | //EXPECT_EQ(0.1, gd2_grid->getTransform()->getVoxelSizeY()); | ||
| 215 | //EXPECT_EQ(0.1, gd2_grid->getTransform()->getVoxelSizeZ()); | ||
| 216 | |||
| 217 | // Read in the data blocks. | ||
| 218 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd2.seekToBlocks(istr); |
| 219 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd2_grid->readBuffers(istr); |
| 220 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
|
2 | TreeType::Ptr tree2 = DynamicPtrCast<TreeType>(gd2_grid->baseTreePtr()); |
| 221 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(tree2.get() != nullptr); |
| 222 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(10, tree2->getValue(Coord(10, 1, 2))); |
| 223 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(5, tree2->getValue(Coord(0, 0, 0))); |
| 224 | |||
| 225 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(1, tree2->getValue(Coord(1000, 1000, 16000))); |
| 226 | // Clear registries. | ||
| 227 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridBase::clearRegistry(); |
| 228 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | Metadata::clearRegistry(); |
| 229 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::MapRegistry::clear(); |
| 230 | |||
| 231 | 1 | remove("something.vdb2"); | |
| 232 | 1 | } | |
| 233 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | TEST_F(TestFile, testWriteGrid) { testWriteGrid(); } |
| 234 | |||
| 235 | |||
| 236 | void | ||
| 237 | 1 | TestFile::testWriteMultipleGrids() | |
| 238 | { | ||
| 239 | using namespace openvdb; | ||
| 240 | using namespace openvdb::io; | ||
| 241 | |||
| 242 | using TreeType = Int32Tree; | ||
| 243 | using GridType = Grid<TreeType>; | ||
| 244 | |||
| 245 | logging::LevelScope suppressLogging{logging::Level::Fatal}; | ||
| 246 | |||
| 247 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | File file("something.vdb2"); |
| 248 | |||
| 249 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::ostringstream ostr(std::ios_base::binary); |
| 250 | |||
| 251 | // Create a grid with transform. | ||
| 252 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | GridType::Ptr grid = createGrid<GridType>(/*bg=*/1); |
| 253 | TreeType& tree = grid->tree(); | ||
| 254 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | tree.setValue(Coord(10, 1, 2), 10); |
| 255 |
1/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
|
1 | tree.setValue(Coord(0, 0, 0), 5); |
| 256 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::Transform::Ptr trans = math::Transform::createLinearTransform(0.1); |
| 257 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | grid->setTransform(trans); |
| 258 | |||
| 259 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
1 | GridType::Ptr grid2 = createGrid<GridType>(/*bg=*/2); |
| 260 | TreeType& tree2 = grid2->tree(); | ||
| 261 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | tree2.setValue(Coord(0, 0, 0), 10); |
| 262 |
1/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
|
1 | tree2.setValue(Coord(1000, 1000, 1000), 50); |
| 263 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::Transform::Ptr trans2 = math::Transform::createLinearTransform(0.2); |
| 264 |
2/4✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
2 | grid2->setTransform(trans2); |
| 265 | |||
| 266 | // Create the grid descriptor out of this grid. | ||
| 267 |
4/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
3 | GridDescriptor gd(Name("temperature"), grid->type()); |
| 268 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
3 | GridDescriptor gd2(Name("density"), grid2->type()); |
| 269 | |||
| 270 | // Write out the grids. | ||
| 271 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | file.writeGrid(gd, grid, ostr, /*seekable=*/true); |
| 272 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
|
2 | file.writeGrid(gd2, grid2, ostr, /*seekable=*/true); |
| 273 | |||
| 274 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(gd.getGridPos() != 0); |
| 275 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(gd.getBlockPos() != 0); |
| 276 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(gd.getEndPos() != 0); |
| 277 | |||
| 278 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(gd2.getGridPos() != 0); |
| 279 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(gd2.getBlockPos() != 0); |
| 280 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(gd2.getEndPos() != 0); |
| 281 | |||
| 282 | // register the grid | ||
| 283 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridBase::clearRegistry(); |
| 284 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridType::registerGrid(); |
| 285 | |||
| 286 | // register maps | ||
| 287 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::MapRegistry::clear(); |
| 288 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::AffineMap::registerMap(); |
| 289 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::ScaleMap::registerMap(); |
| 290 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::UniformScaleMap::registerMap(); |
| 291 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::TranslationMap::registerMap(); |
| 292 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::ScaleTranslateMap::registerMap(); |
| 293 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::UniformScaleTranslateMap::registerMap(); |
| 294 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::NonlinearFrustumMap::registerMap(); |
| 295 | |||
| 296 | // Read in the first grid descriptor. | ||
| 297 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | GridDescriptor gd_in; |
| 298 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::istringstream istr(ostr.str(), std::ios_base::binary); |
| 299 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | io::setCurrentVersion(istr); |
| 300 | |||
| 301 | 1 | GridBase::Ptr gd_in_grid; | |
| 302 |
5/22✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
|
1 | EXPECT_NO_THROW(gd_in_grid = gd_in.read(istr)); |
| 303 | |||
| 304 | // Ensure read in the right values. | ||
| 305 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(gd.gridName(), gd_in.gridName()); |
| 306 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
2 | EXPECT_EQ(GridType::gridType(), gd_in_grid->type()); |
| 307 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(gd.getGridPos(), gd_in.getGridPos()); |
| 308 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(gd.getBlockPos(), gd_in.getBlockPos()); |
| 309 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_EQ(gd.getEndPos(), gd_in.getEndPos()); |
| 310 | |||
| 311 | // Position the stream to beginning of the grid storage and read the grid. | ||
| 312 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd_in.seekToGrid(istr); |
| 313 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | Archive::readGridCompression(istr); |
| 314 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd_in_grid->readMeta(istr); |
| 315 | gd_in_grid->readTransform(istr); | ||
| 316 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd_in_grid->readTopology(istr); |
| 317 | |||
| 318 | // Ensure that we have the same topology and transform. | ||
| 319 |
5/22✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
1 | EXPECT_EQ( |
| 320 | grid->baseTree().leafCount(), gd_in_grid->baseTree().leafCount()); | ||
| 321 |
5/22✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
1 | EXPECT_EQ( |
| 322 | grid->baseTree().nonLeafCount(), gd_in_grid->baseTree().nonLeafCount()); | ||
| 323 |
5/22✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
1 | EXPECT_EQ( |
| 324 | grid->baseTree().treeDepth(), gd_in_grid->baseTree().treeDepth()); | ||
| 325 | |||
| 326 | // EXPECT_EQ(0.1, gd_in_grid->getTransform()->getVoxelSizeX()); | ||
| 327 | // EXPECT_EQ(0.1, gd_in_grid->getTransform()->getVoxelSizeY()); | ||
| 328 | // EXPECT_EQ(0.1, gd_in_grid->getTransform()->getVoxelSizeZ()); | ||
| 329 | |||
| 330 | // Read in the data blocks. | ||
| 331 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd_in.seekToBlocks(istr); |
| 332 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd_in_grid->readBuffers(istr); |
| 333 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
|
2 | TreeType::Ptr grid_in = DynamicPtrCast<TreeType>(gd_in_grid->baseTreePtr()); |
| 334 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(grid_in.get() != nullptr); |
| 335 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(10, grid_in->getValue(Coord(10, 1, 2))); |
| 336 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(5, grid_in->getValue(Coord(0, 0, 0))); |
| 337 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(1, grid_in->getValue(Coord(1000, 1000, 16000))); |
| 338 | |||
| 339 | ///////////////////////////////////////////////////////////////// | ||
| 340 | // Now read in the second grid descriptor. Make use of hte end offset. | ||
| 341 | /////////////////////////////////////////////////////////////// | ||
| 342 | |||
| 343 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd_in.seekToEnd(istr); |
| 344 | |||
| 345 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | GridDescriptor gd2_in; |
| 346 | 1 | GridBase::Ptr gd2_in_grid; | |
| 347 |
5/22✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
|
1 | EXPECT_NO_THROW(gd2_in_grid = gd2_in.read(istr)); |
| 348 | |||
| 349 | // Ensure that we read in the right values. | ||
| 350 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(gd2.gridName(), gd2_in.gridName()); |
| 351 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | EXPECT_EQ(TreeType::treeType(), gd2_in_grid->type()); |
| 352 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(gd2.getGridPos(), gd2_in.getGridPos()); |
| 353 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(gd2.getBlockPos(), gd2_in.getBlockPos()); |
| 354 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_EQ(gd2.getEndPos(), gd2_in.getEndPos()); |
| 355 | |||
| 356 | // Position the stream to beginning of the grid storage and read the grid. | ||
| 357 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd2_in.seekToGrid(istr); |
| 358 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | Archive::readGridCompression(istr); |
| 359 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd2_in_grid->readMeta(istr); |
| 360 | gd2_in_grid->readTransform(istr); | ||
| 361 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd2_in_grid->readTopology(istr); |
| 362 | |||
| 363 | // Ensure that we have the same topology and transform. | ||
| 364 |
5/22✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
1 | EXPECT_EQ( |
| 365 | grid2->baseTree().leafCount(), gd2_in_grid->baseTree().leafCount()); | ||
| 366 |
5/22✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
1 | EXPECT_EQ( |
| 367 | grid2->baseTree().nonLeafCount(), gd2_in_grid->baseTree().nonLeafCount()); | ||
| 368 |
5/22✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
1 | EXPECT_EQ( |
| 369 | grid2->baseTree().treeDepth(), gd2_in_grid->baseTree().treeDepth()); | ||
| 370 | // EXPECT_EQ(0.2, gd2_in_grid->getTransform()->getVoxelSizeX()); | ||
| 371 | // EXPECT_EQ(0.2, gd2_in_grid->getTransform()->getVoxelSizeY()); | ||
| 372 | // EXPECT_EQ(0.2, gd2_in_grid->getTransform()->getVoxelSizeZ()); | ||
| 373 | |||
| 374 | // Read in the data blocks. | ||
| 375 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd2_in.seekToBlocks(istr); |
| 376 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd2_in_grid->readBuffers(istr); |
| 377 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
|
2 | TreeType::Ptr grid2_in = DynamicPtrCast<TreeType>(gd2_in_grid->baseTreePtr()); |
| 378 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(grid2_in.get() != nullptr); |
| 379 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(50, grid2_in->getValue(Coord(1000, 1000, 1000))); |
| 380 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(10, grid2_in->getValue(Coord(0, 0, 0))); |
| 381 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(2, grid2_in->getValue(Coord(100000, 100000, 16000))); |
| 382 | |||
| 383 | // Clear registries. | ||
| 384 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridBase::clearRegistry(); |
| 385 | |||
| 386 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::MapRegistry::clear(); |
| 387 | 1 | remove("something.vdb2"); | |
| 388 | 1 | } | |
| 389 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | TEST_F(TestFile, testWriteMultipleGrids) { testWriteMultipleGrids(); } |
| 390 | |||
| 391 | |||
| 392 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | TEST_F(TestFile, testWriteFloatAsHalf) |
| 393 | { | ||
| 394 | using namespace openvdb; | ||
| 395 | using namespace openvdb::io; | ||
| 396 | |||
| 397 | using TreeType = Vec3STree; | ||
| 398 | using GridType = Grid<TreeType>; | ||
| 399 | |||
| 400 | // Register all grid types. | ||
| 401 | 1 | initialize(); | |
| 402 | // Ensure that the registry is cleared on exit. | ||
| 403 | 1 | struct Local { static void uninitialize(char*) { openvdb::uninitialize(); } }; | |
| 404 | SharedPtr<char> onExit(nullptr, Local::uninitialize); | ||
| 405 | |||
| 406 | // Create two test grids. | ||
| 407 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
1 | GridType::Ptr grid1 = createGrid<GridType>(/*bg=*/Vec3s(1, 1, 1)); |
| 408 | TreeType& tree1 = grid1->tree(); | ||
| 409 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(grid1.get() != nullptr); |
| 410 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | grid1->setTransform(math::Transform::createLinearTransform(0.1)); |
| 411 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | grid1->setName("grid1"); |
| 412 | |||
| 413 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
1 | GridType::Ptr grid2 = createGrid<GridType>(/*bg=*/Vec3s(2, 2, 2)); |
| 414 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(grid2.get() != nullptr); |
| 415 | TreeType& tree2 = grid2->tree(); | ||
| 416 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | grid2->setTransform(math::Transform::createLinearTransform(0.2)); |
| 417 | // Flag this grid for 16-bit float output. | ||
| 418 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | grid2->setSaveFloatAsHalf(true); |
| 419 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | grid2->setName("grid2"); |
| 420 | |||
| 421 |
2/2✓ Branch 0 taken 40 times.
✓ Branch 1 taken 1 times.
|
41 | for (int x = 0; x < 40; ++x) { |
| 422 |
2/2✓ Branch 0 taken 1600 times.
✓ Branch 1 taken 40 times.
|
1640 | for (int y = 0; y < 40; ++y) { |
| 423 |
2/2✓ Branch 0 taken 64000 times.
✓ Branch 1 taken 1600 times.
|
65600 | for (int z = 0; z < 40; ++z) { |
| 424 |
2/4✓ Branch 1 taken 64000 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 64000 times.
✗ Branch 5 not taken.
|
128000 | tree1.setValue(Coord(x, y, z), Vec3s(float(x), float(y), float(z))); |
| 425 |
0/2✗ Branch 0 not taken.
✗ Branch 1 not taken.
|
64000 | tree2.setValue(Coord(x, y, z), Vec3s(float(x), float(y), float(z))); |
| 426 | } | ||
| 427 | } | ||
| 428 | } | ||
| 429 | |||
| 430 | 1 | GridPtrVec grids; | |
| 431 | 1 | grids.push_back(grid1); | |
| 432 | ✗ | grids.push_back(grid2); | |
| 433 | |||
| 434 | const char* filename = "something.vdb2"; | ||
| 435 | { | ||
| 436 | // Write both grids to a file. | ||
| 437 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | File vdbFile(filename); |
| 438 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | vdbFile.write(grids); |
| 439 | } | ||
| 440 | { | ||
| 441 | // Verify that both grids can be read back successfully from the file. | ||
| 442 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
3 | File vdbFile(filename); |
| 443 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | vdbFile.open(); |
| 444 | GridBase::Ptr | ||
| 445 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | bgrid1 = vdbFile.readGrid("grid1"), |
| 446 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | bgrid2 = vdbFile.readGrid("grid2"); |
| 447 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | vdbFile.close(); |
| 448 | |||
| 449 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(bgrid1.get() != nullptr); |
| 450 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(bgrid1->isType<GridType>()); |
| 451 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(bgrid2.get() != nullptr); |
| 452 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(bgrid2->isType<GridType>()); |
| 453 | |||
| 454 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | const TreeType& btree1 = StaticPtrCast<GridType>(bgrid1)->tree(); |
| 455 |
1/14✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
|
1 | EXPECT_EQ(Vec3s(10, 10, 10), btree1.getValue(Coord(10, 10, 10))); |
| 456 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | const TreeType& btree2 = StaticPtrCast<GridType>(bgrid2)->tree(); |
| 457 |
1/14✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
|
1 | EXPECT_EQ(Vec3s(10, 10, 10), btree2.getValue(Coord(10, 10, 10))); |
| 458 | } | ||
| 459 | 1 | } | |
| 460 | |||
| 461 | |||
| 462 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | TEST_F(TestFile, testWriteInstancedGrids) |
| 463 | { | ||
| 464 | using namespace openvdb; | ||
| 465 | |||
| 466 | // Register data types. | ||
| 467 | 1 | openvdb::initialize(); | |
| 468 | |||
| 469 | // Remove something.vdb2 when done. We must declare this here before the | ||
| 470 | // other grid smart_ptr's because we re-use them in the test several times. | ||
| 471 | // We will not be able to remove something.vdb2 on Windows if the pointers | ||
| 472 | // are still referencing data opened by the "file" variable. | ||
| 473 | const char* filename = "something.vdb2"; | ||
| 474 | SharedPtr<const char> scopedFile(filename, ::remove); | ||
| 475 | |||
| 476 | // Create grids. | ||
| 477 |
1/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
|
1 | Int32Tree::Ptr tree1(new Int32Tree(1)); |
| 478 |
1/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
|
2 | FloatTree::Ptr tree2(new FloatTree(2.0)); |
| 479 | GridBase::Ptr | ||
| 480 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
2 | grid1 = createGrid(tree1), |
| 481 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
2 | grid2 = createGrid(tree1), // instance of grid1 |
| 482 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
2 | grid3 = createGrid(tree2), |
| 483 |
3/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
|
2 | grid4 = createGrid(tree2); // instance of grid3 |
| 484 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | grid1->setName("density"); |
| 485 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | grid2->setName("density_copy"); |
| 486 | // Leave grid3 and grid4 unnamed. | ||
| 487 | |||
| 488 | // Create transforms. | ||
| 489 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::Transform::Ptr trans1 = math::Transform::createLinearTransform(0.1); |
| 490 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::Transform::Ptr trans2 = math::Transform::createLinearTransform(0.1); |
| 491 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | grid1->setTransform(trans1); |
| 492 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | grid2->setTransform(trans2); |
| 493 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | grid3->setTransform(trans2); |
| 494 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | grid4->setTransform(trans1); |
| 495 | |||
| 496 | // Set some values. | ||
| 497 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | tree1->setValue(Coord(0, 0, 0), 5); |
| 498 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | tree1->setValue(Coord(100, 0, 0), 6); |
| 499 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | tree2->setValue(Coord(0, 0, 0), 10); |
| 500 |
1/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
|
1 | tree2->setValue(Coord(0, 100, 0), 11); |
| 501 | |||
| 502 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | MetaMap::Ptr meta(new MetaMap); |
| 503 |
4/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
|
3 | meta->insertMeta("author", StringMetadata("Einstein")); |
| 504 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
1 | meta->insertMeta("year", Int32Metadata(2009)); |
| 505 | |||
| 506 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridPtrVecPtr grids(new GridPtrVec); |
| 507 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | grids->push_back(grid1); |
| 508 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | grids->push_back(grid2); |
| 509 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | grids->push_back(grid3); |
| 510 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | grids->push_back(grid4); |
| 511 | |||
| 512 | // Write the grids to a file and then close the file. | ||
| 513 | { | ||
| 514 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | io::File vdbFile(filename); |
| 515 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | vdbFile.write(*grids, *meta); |
| 516 | } | ||
| 517 | meta.reset(); | ||
| 518 | |||
| 519 | // Read the grids back in. | ||
| 520 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
3 | io::File file(filename); |
| 521 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | file.open(); |
| 522 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | grids = file.getGrids(); |
| 523 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
|
2 | meta = file.getMetadata(); |
| 524 | |||
| 525 | // Verify the metadata. | ||
| 526 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(meta.get() != nullptr); |
| 527 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(2, int(meta->metaCount())); |
| 528 |
4/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
|
2 | EXPECT_EQ(std::string("Einstein"), meta->metaValue<std::string>("author")); |
| 529 |
4/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
1 | EXPECT_EQ(2009, meta->metaValue<int32_t>("year")); |
| 530 | |||
| 531 | // Verify the grids. | ||
| 532 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(grids.get() != nullptr); |
| 533 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(4, int(grids->size())); |
| 534 | |||
| 535 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
2 | GridBase::Ptr grid = findGridByName(*grids, "density"); |
| 536 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(grid.get() != nullptr); |
| 537 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | Int32Tree::Ptr density = gridPtrCast<Int32Grid>(grid)->treePtr(); |
| 538 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(density.get() != nullptr); |
| 539 | |||
| 540 | grid.reset(); | ||
| 541 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
|
2 | grid = findGridByName(*grids, "density_copy"); |
| 542 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(grid.get() != nullptr); |
| 543 |
3/20✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
3 | EXPECT_TRUE(gridPtrCast<Int32Grid>(grid)->treePtr().get() != nullptr); |
| 544 | // Verify that "density_copy" is an instance of (i.e., shares a tree with) "density". | ||
| 545 |
2/20✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
2 | EXPECT_EQ(density, gridPtrCast<Int32Grid>(grid)->treePtr()); |
| 546 | |||
| 547 | grid.reset(); | ||
| 548 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
|
2 | grid = findGridByName(*grids, ""); |
| 549 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(grid.get() != nullptr); |
| 550 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | FloatTree::Ptr temperature = gridPtrCast<FloatGrid>(grid)->treePtr(); |
| 551 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(temperature.get() != nullptr); |
| 552 | |||
| 553 | grid.reset(); | ||
| 554 |
3/4✓ Branch 0 taken 3 times.
✓ Branch 1 taken 1 times.
✓ Branch 2 taken 3 times.
✗ Branch 3 not taken.
|
4 | for (GridPtrVec::reverse_iterator it = grids->rbegin(); !grid && it != grids->rend(); ++it) { |
| 555 | // Search for the second unnamed grid starting from the end of the list. | ||
| 556 |
3/4✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✓ Branch 4 taken 2 times.
|
6 | if ((*it)->getName() == "") grid = *it; |
| 557 | } | ||
| 558 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(grid.get() != nullptr); |
| 559 |
3/20✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
3 | EXPECT_TRUE(gridPtrCast<FloatGrid>(grid)->treePtr().get() != nullptr); |
| 560 | // Verify that the second unnamed grid is an instance of the first. | ||
| 561 |
2/18✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
2 | EXPECT_EQ(temperature, gridPtrCast<FloatGrid>(grid)->treePtr()); |
| 562 | |||
| 563 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_NEAR(5, density->getValue(Coord(0, 0, 0)), /*tolerance=*/0); |
| 564 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_NEAR(6, density->getValue(Coord(100, 0, 0)), /*tolerance=*/0); |
| 565 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_NEAR(10, temperature->getValue(Coord(0, 0, 0)), /*tolerance=*/0); |
| 566 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_NEAR(11, temperature->getValue(Coord(0, 100, 0)), /*tolerance=*/0); |
| 567 | |||
| 568 | // Reread with instancing disabled. | ||
| 569 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | file.close(); |
| 570 | file.setInstancingEnabled(false); | ||
| 571 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | file.open(); |
| 572 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | grids = file.getGrids(); |
| 573 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(4, int(grids->size())); |
| 574 | |||
| 575 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
|
2 | grid = findGridByName(*grids, "density"); |
| 576 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(grid.get() != nullptr); |
| 577 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
2 | density = gridPtrCast<Int32Grid>(grid)->treePtr(); |
| 578 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(density.get() != nullptr); |
| 579 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
|
2 | grid = findGridByName(*grids, "density_copy"); |
| 580 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(grid.get() != nullptr); |
| 581 |
3/20✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
3 | EXPECT_TRUE(gridPtrCast<Int32Grid>(grid)->treePtr().get() != nullptr); |
| 582 | // Verify that "density_copy" is *not* an instance of "density". | ||
| 583 |
2/18✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
|
2 | EXPECT_TRUE(gridPtrCast<Int32Grid>(grid)->treePtr() != density); |
| 584 | |||
| 585 | // Verify that the two unnamed grids are not instances of each other. | ||
| 586 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
|
2 | grid = findGridByName(*grids, ""); |
| 587 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(grid.get() != nullptr); |
| 588 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
2 | temperature = gridPtrCast<FloatGrid>(grid)->treePtr(); |
| 589 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(temperature.get() != nullptr); |
| 590 | grid.reset(); | ||
| 591 |
3/4✓ Branch 0 taken 3 times.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 3 times.
|
4 | for (GridPtrVec::reverse_iterator it = grids->rbegin(); !grid && it != grids->rend(); ++it) { |
| 592 | // Search for the second unnamed grid starting from the end of the list. | ||
| 593 |
3/4✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✓ Branch 4 taken 2 times.
|
6 | if ((*it)->getName() == "") grid = *it; |
| 594 | } | ||
| 595 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(grid.get() != nullptr); |
| 596 |
3/20✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
3 | EXPECT_TRUE(gridPtrCast<FloatGrid>(grid)->treePtr().get() != nullptr); |
| 597 |
2/18✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
|
2 | EXPECT_TRUE(gridPtrCast<FloatGrid>(grid)->treePtr() != temperature); |
| 598 | |||
| 599 | // Rewrite with instancing disabled, then reread with instancing enabled. | ||
| 600 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | file.close(); |
| 601 | { | ||
| 602 | /// @todo (FX-7063) For now, write to a new file, then, when there's | ||
| 603 | /// no longer a need for delayed load from the old file, replace it | ||
| 604 | /// with the new file. | ||
| 605 | const char* tempFilename = "somethingelse.vdb"; | ||
| 606 | SharedPtr<const char> scopedTempFile(tempFilename, ::remove); | ||
| 607 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
3 | io::File vdbFile(tempFilename); |
| 608 | vdbFile.setInstancingEnabled(false); | ||
| 609 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | vdbFile.write(*grids, *meta); |
| 610 | grids.reset(); | ||
| 611 | // Note: Windows requires that the destination not exist, before we can rename to it. | ||
| 612 | 1 | std::remove(filename); | |
| 613 | 1 | std::rename(tempFilename, filename); | |
| 614 | } | ||
| 615 | file.setInstancingEnabled(true); | ||
| 616 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | file.open(); |
| 617 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | grids = file.getGrids(); |
| 618 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_EQ(4, int(grids->size())); |
| 619 | |||
| 620 | // Verify that "density_copy" is not an instance of "density". | ||
| 621 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
|
2 | grid = findGridByName(*grids, "density"); |
| 622 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(grid.get() != nullptr); |
| 623 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
2 | density = gridPtrCast<Int32Grid>(grid)->treePtr(); |
| 624 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(density.get() != nullptr); |
| 625 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(density->unallocatedLeafCount() > 0); |
| 626 |
4/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
1 | EXPECT_EQ(density->leafCount(), density->unallocatedLeafCount()); |
| 627 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
|
2 | grid = findGridByName(*grids, "density_copy"); |
| 628 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(grid.get() != nullptr); |
| 629 |
3/20✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
3 | EXPECT_TRUE(gridPtrCast<Int32Grid>(grid)->treePtr().get() != nullptr); |
| 630 |
2/18✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
|
2 | EXPECT_TRUE(gridPtrCast<Int32Grid>(grid)->treePtr() != density); |
| 631 | |||
| 632 | // Verify that the two unnamed grids are not instances of each other. | ||
| 633 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
|
2 | grid = findGridByName(*grids, ""); |
| 634 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(grid.get() != nullptr); |
| 635 |
2/4✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
|
2 | temperature = gridPtrCast<FloatGrid>(grid)->treePtr(); |
| 636 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(temperature.get() != nullptr); |
| 637 | grid.reset(); | ||
| 638 |
3/4✓ Branch 0 taken 3 times.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 3 times.
|
4 | for (GridPtrVec::reverse_iterator it = grids->rbegin(); !grid && it != grids->rend(); ++it) { |
| 639 | // Search for the second unnamed grid starting from the end of the list. | ||
| 640 |
3/4✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✓ Branch 4 taken 2 times.
|
6 | if ((*it)->getName() == "") grid = *it; |
| 641 | } | ||
| 642 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(grid.get() != nullptr); |
| 643 |
3/20✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
3 | EXPECT_TRUE(gridPtrCast<FloatGrid>(grid)->treePtr().get() != nullptr); |
| 644 |
2/18✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
|
2 | EXPECT_TRUE(gridPtrCast<FloatGrid>(grid)->treePtr() != temperature); |
| 645 | 1 | } | |
| 646 | |||
| 647 | |||
| 648 | void | ||
| 649 | 1 | TestFile::testReadGridDescriptors() | |
| 650 | { | ||
| 651 | using namespace openvdb; | ||
| 652 | using namespace openvdb::io; | ||
| 653 | |||
| 654 | using GridType = Int32Grid; | ||
| 655 | using TreeType = GridType::TreeType; | ||
| 656 | |||
| 657 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | File file("something.vdb2"); |
| 658 | |||
| 659 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::ostringstream ostr(std::ios_base::binary); |
| 660 | |||
| 661 | // Create a grid with transform. | ||
| 662 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | GridType::Ptr grid = createGrid<GridType>(1); |
| 663 | TreeType& tree = grid->tree(); | ||
| 664 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | tree.setValue(Coord(10, 1, 2), 10); |
| 665 |
1/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
|
1 | tree.setValue(Coord(0, 0, 0), 5); |
| 666 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::Transform::Ptr trans = math::Transform::createLinearTransform(0.1); |
| 667 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | grid->setTransform(trans); |
| 668 | |||
| 669 | // Create another grid with transform. | ||
| 670 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
1 | GridType::Ptr grid2 = createGrid<GridType>(2); |
| 671 | TreeType& tree2 = grid2->tree(); | ||
| 672 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | tree2.setValue(Coord(0, 0, 0), 10); |
| 673 |
1/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
|
1 | tree2.setValue(Coord(1000, 1000, 1000), 50); |
| 674 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::Transform::Ptr trans2 = math::Transform::createLinearTransform(0.2); |
| 675 |
2/4✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
2 | grid2->setTransform(trans2); |
| 676 | |||
| 677 | // Create the grid descriptor out of this grid. | ||
| 678 |
4/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
3 | GridDescriptor gd(Name("temperature"), grid->type()); |
| 679 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
3 | GridDescriptor gd2(Name("density"), grid2->type()); |
| 680 | |||
| 681 | // Write out the number of grids. | ||
| 682 | 1 | int32_t gridCount = 2; | |
| 683 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | ostr.write(reinterpret_cast<char*>(&gridCount), sizeof(int32_t)); |
| 684 | // Write out the grids. | ||
| 685 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | file.writeGrid(gd, grid, ostr, /*seekable=*/true); |
| 686 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | file.writeGrid(gd2, grid2, ostr, /*seekable=*/true); |
| 687 | |||
| 688 | // Register the grid and the transform and the blocks. | ||
| 689 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridBase::clearRegistry(); |
| 690 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridType::registerGrid(); |
| 691 | // register maps | ||
| 692 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::MapRegistry::clear(); |
| 693 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::AffineMap::registerMap(); |
| 694 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::ScaleMap::registerMap(); |
| 695 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::UniformScaleMap::registerMap(); |
| 696 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::TranslationMap::registerMap(); |
| 697 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::ScaleTranslateMap::registerMap(); |
| 698 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::UniformScaleTranslateMap::registerMap(); |
| 699 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::NonlinearFrustumMap::registerMap(); |
| 700 | |||
| 701 | // Read in the grid descriptors. | ||
| 702 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
3 | File file2("something.vdb2"); |
| 703 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::istringstream istr(ostr.str(), std::ios_base::binary); |
| 704 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | io::setCurrentVersion(istr); |
| 705 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | file2.readGridDescriptors(istr); |
| 706 | |||
| 707 | // Compare with the initial grid descriptors. | ||
| 708 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | File::NameMapCIter it = file2.findDescriptor("temperature"); |
| 709 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(it != file2.gridDescriptors().end()); |
| 710 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | GridDescriptor file2gd = it->second; |
| 711 |
1/14✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
|
1 | EXPECT_EQ(gd.gridName(), file2gd.gridName()); |
| 712 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(gd.getGridPos(), file2gd.getGridPos()); |
| 713 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(gd.getBlockPos(), file2gd.getBlockPos()); |
| 714 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(gd.getEndPos(), file2gd.getEndPos()); |
| 715 | |||
| 716 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | it = file2.findDescriptor("density"); |
| 717 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(it != file2.gridDescriptors().end()); |
| 718 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | file2gd = it->second; |
| 719 |
1/14✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
|
1 | EXPECT_EQ(gd2.gridName(), file2gd.gridName()); |
| 720 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(gd2.getGridPos(), file2gd.getGridPos()); |
| 721 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(gd2.getBlockPos(), file2gd.getBlockPos()); |
| 722 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(gd2.getEndPos(), file2gd.getEndPos()); |
| 723 | |||
| 724 | // Clear registries. | ||
| 725 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridBase::clearRegistry(); |
| 726 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::MapRegistry::clear(); |
| 727 | |||
| 728 | 1 | remove("something.vdb2"); | |
| 729 | 1 | } | |
| 730 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | TEST_F(TestFile, testReadGridDescriptors) { testReadGridDescriptors(); } |
| 731 | |||
| 732 | |||
| 733 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | TEST_F(TestFile, testGridNaming) |
| 734 | { | ||
| 735 | using namespace openvdb; | ||
| 736 | using namespace openvdb::io; | ||
| 737 | |||
| 738 | using TreeType = Int32Tree; | ||
| 739 | |||
| 740 | // Register data types. | ||
| 741 | 1 | openvdb::initialize(); | |
| 742 | |||
| 743 | logging::LevelScope suppressLogging{logging::Level::Fatal}; | ||
| 744 | |||
| 745 | // Create several grids that share a single tree. | ||
| 746 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
2 | TreeType::Ptr tree(new TreeType(1)); |
| 747 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | tree->setValue(Coord(10, 1, 2), 10); |
| 748 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | tree->setValue(Coord(0, 0, 0), 5); |
| 749 | GridBase::Ptr | ||
| 750 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
2 | grid1 = openvdb::createGrid(tree), |
| 751 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
2 | grid2 = openvdb::createGrid(tree), |
| 752 |
3/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
|
2 | grid3 = openvdb::createGrid(tree); |
| 753 | |||
| 754 | 1 | std::vector<GridBase::Ptr> gridVec; | |
| 755 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gridVec.push_back(grid1); |
| 756 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gridVec.push_back(grid2); |
| 757 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gridVec.push_back(grid3); |
| 758 | |||
| 759 | // Give all grids the same name, but also some metadata to distinguish them. | ||
| 760 |
2/2✓ Branch 0 taken 3 times.
✓ Branch 1 taken 1 times.
|
4 | for (int n = 0; n <= 2; ++n) { |
| 761 |
3/6✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 3 times.
✗ Branch 8 not taken.
|
6 | gridVec[n]->setName("grid"); |
| 762 |
2/4✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 5 not taken.
|
6 | gridVec[n]->insertMeta("index", Int32Metadata(n)); |
| 763 | } | ||
| 764 | |||
| 765 | const char* filename = "testGridNaming.vdb2"; | ||
| 766 | SharedPtr<const char> scopedFile(filename, ::remove); | ||
| 767 | |||
| 768 | // Test first with grid instancing disabled, then with instancing enabled. | ||
| 769 |
2/2✓ Branch 0 taken 2 times.
✓ Branch 1 taken 1 times.
|
3 | for (int instancing = 0; instancing <= 1; ++instancing) { |
| 770 | { | ||
| 771 | // Write the grids out to a file. | ||
| 772 |
2/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
|
2 | File file(filename); |
| 773 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | file.setInstancingEnabled(instancing); |
| 774 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
4 | file.write(gridVec); |
| 775 | } | ||
| 776 | |||
| 777 | // Open the file for reading. | ||
| 778 |
3/6✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
|
6 | File file(filename); |
| 779 | file.setInstancingEnabled(instancing); | ||
| 780 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | file.open(); |
| 781 | |||
| 782 | 2 | int n = 0; | |
| 783 |
4/6✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 6 times.
✓ Branch 7 taken 2 times.
|
8 | for (File::NameIterator i = file.beginName(), e = file.endName(); i != e; ++i, ++n) { |
| 784 |
2/18✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
12 | EXPECT_TRUE(file.hasGrid(i.gridName())); |
| 785 | } | ||
| 786 | // Verify that the file contains three grids. | ||
| 787 |
2/16✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | EXPECT_EQ(3, n); |
| 788 | |||
| 789 | // Read each grid. | ||
| 790 |
2/2✓ Branch 0 taken 8 times.
✓ Branch 1 taken 2 times.
|
10 | for (n = -1; n <= 2; ++n) { |
| 791 |
1/2✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
|
8 | openvdb::Name name("grid"); |
| 792 | |||
| 793 | // On the first iteration, read the grid named "grid", then read "grid[0]" | ||
| 794 | // (which is synonymous with "grid"), then "grid[1]", then "grid[2]". | ||
| 795 |
2/2✓ Branch 0 taken 6 times.
✓ Branch 1 taken 2 times.
|
8 | if (n >= 0) { |
| 796 |
2/4✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 6 times.
✗ Branch 5 not taken.
|
12 | name = GridDescriptor::nameAsString(GridDescriptor::addSuffix(name, n)); |
| 797 | } | ||
| 798 | |||
| 799 |
2/18✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 8 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
8 | EXPECT_TRUE(file.hasGrid(name)); |
| 800 | |||
| 801 | // Read the current grid. | ||
| 802 |
1/2✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
|
8 | GridBase::ConstPtr grid = file.readGrid(name); |
| 803 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 8 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
8 | EXPECT_TRUE(grid.get() != nullptr); |
| 804 | |||
| 805 | // Verify that the grid is named "grid". | ||
| 806 |
3/20✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 8 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 8 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
16 | EXPECT_EQ(openvdb::Name("grid"), grid->getName()); |
| 807 |
4/20✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 8 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 8 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 8 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
8 | EXPECT_EQ((n < 0 ? 0 : n), grid->metaValue<openvdb::Int32>("index")); |
| 808 | } | ||
| 809 | |||
| 810 | // Read all three grids at once. | ||
| 811 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | GridPtrVecPtr allGrids = file.getGrids(); |
| 812 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
2 | EXPECT_TRUE(allGrids.get() != nullptr); |
| 813 |
2/18✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
2 | EXPECT_EQ(3, int(allGrids->size())); |
| 814 | |||
| 815 | 2 | GridBase::ConstPtr firstGrid; | |
| 816 | std::vector<int> indices; | ||
| 817 |
2/2✓ Branch 0 taken 6 times.
✓ Branch 1 taken 2 times.
|
8 | for (GridPtrVecCIter i = allGrids->begin(), e = allGrids->end(); i != e; ++i) { |
| 818 | GridBase::ConstPtr grid = *i; | ||
| 819 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
6 | EXPECT_TRUE(grid.get() != nullptr); |
| 820 | |||
| 821 |
3/6✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 6 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 6 times.
✗ Branch 8 not taken.
|
6 | indices.push_back(grid->metaValue<openvdb::Int32>("index")); |
| 822 | |||
| 823 | // If instancing is enabled, verify that all grids share the same tree. | ||
| 824 |
2/2✓ Branch 0 taken 3 times.
✓ Branch 1 taken 3 times.
|
6 | if (instancing) { |
| 825 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 2 times.
|
3 | if (!firstGrid) firstGrid = grid; |
| 826 |
3/22✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 3 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 3 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
9 | EXPECT_EQ(firstGrid->baseTreePtr(), grid->baseTreePtr()); |
| 827 | } | ||
| 828 | } | ||
| 829 | // Verify that three distinct grids were read, | ||
| 830 | // by examining their "index" metadata. | ||
| 831 |
2/16✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | EXPECT_EQ(3, int(indices.size())); |
| 832 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | std::sort(indices.begin(), indices.end()); |
| 833 |
2/16✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | EXPECT_EQ(0, indices[0]); |
| 834 |
2/16✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | EXPECT_EQ(1, indices[1]); |
| 835 |
2/18✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
2 | EXPECT_EQ(2, indices[2]); |
| 836 | } | ||
| 837 | |||
| 838 | { | ||
| 839 | // Try writing and then reading a grid with a weird name | ||
| 840 | // that might conflict with the grid name indexing scheme. | ||
| 841 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
1 | const openvdb::Name weirdName("grid[4]"); |
| 842 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gridVec[0]->setName(weirdName); |
| 843 | { | ||
| 844 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | File file(filename); |
| 845 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | file.write(gridVec); |
| 846 | } | ||
| 847 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
3 | File file(filename); |
| 848 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | file.open(); |
| 849 | |||
| 850 | // Verify that the grid can be read and that its index is 0. | ||
| 851 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridBase::ConstPtr grid = file.readGrid(weirdName); |
| 852 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(grid.get() != nullptr); |
| 853 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2 | EXPECT_EQ(weirdName, grid->getName()); |
| 854 |
4/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
1 | EXPECT_EQ(0, grid->metaValue<openvdb::Int32>("index")); |
| 855 | |||
| 856 | // Verify that the other grids can still be read successfully. | ||
| 857 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | grid = file.readGrid("grid[0]"); |
| 858 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(grid.get() != nullptr); |
| 859 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
|
2 | EXPECT_EQ(openvdb::Name("grid"), grid->getName()); |
| 860 | // Because there are now only two grids named "grid", the one with | ||
| 861 | // index 1 is now "grid[0]". | ||
| 862 |
4/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
1 | EXPECT_EQ(1, grid->metaValue<openvdb::Int32>("index")); |
| 863 | |||
| 864 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | grid = file.readGrid("grid[1]"); |
| 865 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(grid.get() != nullptr); |
| 866 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
|
2 | EXPECT_EQ(openvdb::Name("grid"), grid->getName()); |
| 867 | // Because there are now only two grids named "grid", the one with | ||
| 868 | // index 2 is now "grid[1]". | ||
| 869 |
4/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
1 | EXPECT_EQ(2, grid->metaValue<openvdb::Int32>("index")); |
| 870 | |||
| 871 | // Verify that there is no longer a third grid named "grid". | ||
| 872 |
5/24✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✓ Branch 26 taken 1 times.
✗ Branch 27 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
|
3 | EXPECT_THROW(file.readGrid("grid[2]"), openvdb::KeyError); |
| 873 | } | ||
| 874 | 1 | } | |
| 875 | |||
| 876 | |||
| 877 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | TEST_F(TestFile, testEmptyFile) |
| 878 | { | ||
| 879 | using namespace openvdb; | ||
| 880 | using namespace openvdb::io; | ||
| 881 | |||
| 882 | const char* filename = "testEmptyFile.vdb2"; | ||
| 883 | SharedPtr<const char> scopedFile(filename, ::remove); | ||
| 884 | |||
| 885 | { | ||
| 886 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | File file(filename); |
| 887 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | file.write(GridPtrVec(), MetaMap()); |
| 888 | } | ||
| 889 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
3 | File file(filename); |
| 890 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | file.open(); |
| 891 | |||
| 892 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridPtrVecPtr grids = file.getGrids(); |
| 893 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | MetaMap::Ptr meta = file.getMetadata(); |
| 894 | |||
| 895 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(grids.get() != nullptr); |
| 896 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(grids->empty()); |
| 897 | |||
| 898 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(meta.get() != nullptr); |
| 899 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_EQ(0, int(meta->metaCount())); |
| 900 | 1 | } | |
| 901 | |||
| 902 | |||
| 903 | void | ||
| 904 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | TestFile::testEmptyGridIO() |
| 905 | { | ||
| 906 | using namespace openvdb; | ||
| 907 | using namespace openvdb::io; | ||
| 908 | |||
| 909 | using GridType = Int32Grid; | ||
| 910 | |||
| 911 | logging::LevelScope suppressLogging{logging::Level::Fatal}; | ||
| 912 | |||
| 913 | const char* filename = "something.vdb2"; | ||
| 914 | SharedPtr<const char> scopedFile(filename, ::remove); | ||
| 915 | |||
| 916 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | File file(filename); |
| 917 | |||
| 918 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::ostringstream ostr(std::ios_base::binary); |
| 919 | |||
| 920 | // Create a grid with transform. | ||
| 921 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridType::Ptr grid = createGrid<GridType>(/*bg=*/1); |
| 922 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::Transform::Ptr trans = math::Transform::createLinearTransform(0.1); |
| 923 |
1/4✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
|
1 | grid->setTransform(trans); |
| 924 | |||
| 925 | // Create another grid with transform. | ||
| 926 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::Transform::Ptr trans2 = math::Transform::createLinearTransform(0.2); |
| 927 |
1/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
|
1 | GridType::Ptr grid2 = createGrid<GridType>(/*bg=*/2); |
| 928 |
2/4✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
2 | grid2->setTransform(trans2); |
| 929 | |||
| 930 | // Create the grid descriptor out of this grid. | ||
| 931 |
4/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
|
3 | GridDescriptor gd(Name("temperature"), grid->type()); |
| 932 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
3 | GridDescriptor gd2(Name("density"), grid2->type()); |
| 933 | |||
| 934 | // Write out the number of grids. | ||
| 935 | 1 | int32_t gridCount = 2; | |
| 936 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | ostr.write(reinterpret_cast<char*>(&gridCount), sizeof(int32_t)); |
| 937 | // Write out the grids. | ||
| 938 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | file.writeGrid(gd, grid, ostr, /*seekable=*/true); |
| 939 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | file.writeGrid(gd2, grid2, ostr, /*seekable=*/true); |
| 940 | |||
| 941 | // Ensure that the block offset and the end offsets are equivalent. | ||
| 942 |
4/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
1 | EXPECT_EQ(0, int(grid->baseTree().leafCount())); |
| 943 |
4/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
1 | EXPECT_EQ(0, int(grid2->baseTree().leafCount())); |
| 944 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(gd.getEndPos(), gd.getBlockPos()); |
| 945 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(gd2.getEndPos(), gd2.getBlockPos()); |
| 946 | |||
| 947 | // Register the grid and the transform and the blocks. | ||
| 948 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridBase::clearRegistry(); |
| 949 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridType::registerGrid(); |
| 950 | // register maps | ||
| 951 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::MapRegistry::clear(); |
| 952 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::AffineMap::registerMap(); |
| 953 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::ScaleMap::registerMap(); |
| 954 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::UniformScaleMap::registerMap(); |
| 955 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::TranslationMap::registerMap(); |
| 956 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::ScaleTranslateMap::registerMap(); |
| 957 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::UniformScaleTranslateMap::registerMap(); |
| 958 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::NonlinearFrustumMap::registerMap(); |
| 959 | |||
| 960 | // Read in the grid descriptors. | ||
| 961 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
3 | File file2(filename); |
| 962 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::istringstream istr(ostr.str(), std::ios_base::binary); |
| 963 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | io::setCurrentVersion(istr); |
| 964 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | file2.readGridDescriptors(istr); |
| 965 | |||
| 966 | // Compare with the initial grid descriptors. | ||
| 967 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | File::NameMapCIter it = file2.findDescriptor("temperature"); |
| 968 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(it != file2.gridDescriptors().end()); |
| 969 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | GridDescriptor file2gd = it->second; |
| 970 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | file2gd.seekToGrid(istr); |
| 971 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridBase::Ptr gd_grid = GridBase::createGrid(file2gd.gridType()); |
| 972 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | Archive::readGridCompression(istr); |
| 973 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd_grid->readMeta(istr); |
| 974 | gd_grid->readTransform(istr); | ||
| 975 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd_grid->readTopology(istr); |
| 976 |
1/14✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
|
1 | EXPECT_EQ(gd.gridName(), file2gd.gridName()); |
| 977 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(gd_grid.get() != nullptr); |
| 978 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(0, int(gd_grid->baseTree().leafCount())); |
| 979 | //EXPECT_EQ(8, int(gd_grid->baseTree().nonLeafCount())); | ||
| 980 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(4, int(gd_grid->baseTree().treeDepth())); |
| 981 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(gd.getGridPos(), file2gd.getGridPos()); |
| 982 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(gd.getBlockPos(), file2gd.getBlockPos()); |
| 983 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(gd.getEndPos(), file2gd.getEndPos()); |
| 984 | |||
| 985 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | it = file2.findDescriptor("density"); |
| 986 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(it != file2.gridDescriptors().end()); |
| 987 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | file2gd = it->second; |
| 988 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | file2gd.seekToGrid(istr); |
| 989 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd_grid = GridBase::createGrid(file2gd.gridType()); |
| 990 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | Archive::readGridCompression(istr); |
| 991 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd_grid->readMeta(istr); |
| 992 | gd_grid->readTransform(istr); | ||
| 993 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd_grid->readTopology(istr); |
| 994 |
1/14✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
|
1 | EXPECT_EQ(gd2.gridName(), file2gd.gridName()); |
| 995 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(gd_grid.get() != nullptr); |
| 996 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(0, int(gd_grid->baseTree().leafCount())); |
| 997 | //EXPECT_EQ(8, int(gd_grid->nonLeafCount())); | ||
| 998 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(4, int(gd_grid->baseTree().treeDepth())); |
| 999 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(gd2.getGridPos(), file2gd.getGridPos()); |
| 1000 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(gd2.getBlockPos(), file2gd.getBlockPos()); |
| 1001 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_EQ(gd2.getEndPos(), file2gd.getEndPos()); |
| 1002 | |||
| 1003 | // Clear registries. | ||
| 1004 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridBase::clearRegistry(); |
| 1005 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::MapRegistry::clear(); |
| 1006 | 1 | } | |
| 1007 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | TEST_F(TestFile, testEmptyGridIO) { testEmptyGridIO(); } |
| 1008 | |||
| 1009 | |||
| 1010 | 1 | void TestFile::testOpen() | |
| 1011 | { | ||
| 1012 | using namespace openvdb; | ||
| 1013 | |||
| 1014 | using FloatGrid = openvdb::FloatGrid; | ||
| 1015 | using IntGrid = openvdb::Int32Grid; | ||
| 1016 | using FloatTree = FloatGrid::TreeType; | ||
| 1017 | using IntTree = Int32Grid::TreeType; | ||
| 1018 | |||
| 1019 | // Create a VDB to write. | ||
| 1020 | |||
| 1021 | // Create grids | ||
| 1022 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | IntGrid::Ptr grid = createGrid<IntGrid>(/*bg=*/1); |
| 1023 | IntTree& tree = grid->tree(); | ||
| 1024 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | grid->setName("density"); |
| 1025 | |||
| 1026 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
1 | FloatGrid::Ptr grid2 = createGrid<FloatGrid>(/*bg=*/2.0); |
| 1027 | FloatTree& tree2 = grid2->tree(); | ||
| 1028 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | grid2->setName("temperature"); |
| 1029 | |||
| 1030 | // Create transforms | ||
| 1031 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::Transform::Ptr trans = math::Transform::createLinearTransform(0.1); |
| 1032 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::Transform::Ptr trans2 = math::Transform::createLinearTransform(0.1); |
| 1033 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | grid->setTransform(trans); |
| 1034 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | grid2->setTransform(trans2); |
| 1035 | |||
| 1036 | // Set some values | ||
| 1037 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | tree.setValue(Coord(0, 0, 0), 5); |
| 1038 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | tree.setValue(Coord(100, 0, 0), 6); |
| 1039 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | tree2.setValue(Coord(0, 0, 0), 10); |
| 1040 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
2 | tree2.setValue(Coord(0, 100, 0), 11); |
| 1041 | |||
| 1042 | MetaMap meta; | ||
| 1043 |
4/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
|
3 | meta.insertMeta("author", StringMetadata("Einstein")); |
| 1044 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | meta.insertMeta("year", Int32Metadata(2009)); |
| 1045 | |||
| 1046 | 1 | GridPtrVec grids; | |
| 1047 | 1 | grids.push_back(grid); | |
| 1048 | ✗ | grids.push_back(grid2); | |
| 1049 | |||
| 1050 |
3/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
2 | EXPECT_TRUE(findGridByName(grids, "density") == grid); |
| 1051 |
3/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
2 | EXPECT_TRUE(findGridByName(grids, "temperature") == grid2); |
| 1052 |
3/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
2 | EXPECT_TRUE(meta.metaValue<std::string>("author") == "Einstein"); |
| 1053 |
4/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
1 | EXPECT_EQ(2009, meta.metaValue<int32_t>("year")); |
| 1054 | |||
| 1055 | // Register grid and transform. | ||
| 1056 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridBase::clearRegistry(); |
| 1057 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | IntGrid::registerGrid(); |
| 1058 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | FloatGrid::registerGrid(); |
| 1059 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | Metadata::clearRegistry(); |
| 1060 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | StringMetadata::registerType(); |
| 1061 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | Int32Metadata::registerType(); |
| 1062 | // register maps | ||
| 1063 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::MapRegistry::clear(); |
| 1064 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::AffineMap::registerMap(); |
| 1065 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::ScaleMap::registerMap(); |
| 1066 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::UniformScaleMap::registerMap(); |
| 1067 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::TranslationMap::registerMap(); |
| 1068 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::ScaleTranslateMap::registerMap(); |
| 1069 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::UniformScaleTranslateMap::registerMap(); |
| 1070 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::NonlinearFrustumMap::registerMap(); |
| 1071 | |||
| 1072 | // Write the vdb out to a file. | ||
| 1073 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | io::File vdbfile("something.vdb2"); |
| 1074 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | vdbfile.write(grids, meta); |
| 1075 | |||
| 1076 | // Now we can read in the file. | ||
| 1077 |
3/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
|
1 | EXPECT_TRUE(!vdbfile.open());//opening the same file |
| 1078 | // Can't open same file multiple times without closing. | ||
| 1079 |
5/22✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
|
2 | EXPECT_THROW(vdbfile.open(), openvdb::IoError); |
| 1080 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | vdbfile.close(); |
| 1081 |
3/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
|
1 | EXPECT_TRUE(!vdbfile.open());//opening the same file |
| 1082 | |||
| 1083 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(vdbfile.isOpen()); |
| 1084 | |||
| 1085 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | uint32_t version = OPENVDB_FILE_VERSION; |
| 1086 | |||
| 1087 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(version, vdbfile.fileVersion()); |
| 1088 |
4/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
1 | EXPECT_EQ(version, io::getFormatVersion(vdbfile.inputStream())); |
| 1089 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(OPENVDB_LIBRARY_MAJOR_VERSION, vdbfile.libraryVersion().first); |
| 1090 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(OPENVDB_LIBRARY_MINOR_VERSION, vdbfile.libraryVersion().second); |
| 1091 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
2 | EXPECT_EQ(OPENVDB_LIBRARY_MAJOR_VERSION, |
| 1092 | io::getLibraryVersion(vdbfile.inputStream()).first); | ||
| 1093 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
2 | EXPECT_EQ(OPENVDB_LIBRARY_MINOR_VERSION, |
| 1094 | io::getLibraryVersion(vdbfile.inputStream()).second); | ||
| 1095 | |||
| 1096 | // Ensure that we read in the vdb metadata. | ||
| 1097 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
2 | EXPECT_TRUE(vdbfile.getMetadata()); |
| 1098 |
5/24✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
|
3 | EXPECT_TRUE(vdbfile.getMetadata()->metaValue<std::string>("author") == "Einstein"); |
| 1099 |
6/24✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
|
2 | EXPECT_EQ(2009, vdbfile.getMetadata()->metaValue<int32_t>("year")); |
| 1100 | |||
| 1101 | // Ensure we got the grid descriptors. | ||
| 1102 |
4/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
2 | EXPECT_EQ(1, int(vdbfile.gridDescriptors().count("density"))); |
| 1103 |
4/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
2 | EXPECT_EQ(1, int(vdbfile.gridDescriptors().count("temperature"))); |
| 1104 | |||
| 1105 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | io::File::NameMapCIter it = vdbfile.findDescriptor("density"); |
| 1106 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(it != vdbfile.gridDescriptors().end()); |
| 1107 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | io::GridDescriptor gd = it->second; |
| 1108 |
1/14✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
|
1 | EXPECT_EQ(IntTree::treeType(), gd.gridType()); |
| 1109 | |||
| 1110 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | it = vdbfile.findDescriptor("temperature"); |
| 1111 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(it != vdbfile.gridDescriptors().end()); |
| 1112 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd = it->second; |
| 1113 |
1/14✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
|
1 | EXPECT_EQ(FloatTree::treeType(), gd.gridType()); |
| 1114 | |||
| 1115 | // Ensure we throw an error if there is no file. | ||
| 1116 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
3 | io::File vdbfile2("somethingelses.vdb2"); |
| 1117 |
5/22✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
|
2 | EXPECT_THROW(vdbfile2.open(), openvdb::IoError); |
| 1118 |
4/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
2 | EXPECT_THROW(vdbfile2.inputStream(), openvdb::IoError); |
| 1119 | |||
| 1120 | // Clear registries. | ||
| 1121 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridBase::clearRegistry(); |
| 1122 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | Metadata::clearRegistry(); |
| 1123 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::MapRegistry::clear(); |
| 1124 | |||
| 1125 | // Test closing the file. | ||
| 1126 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | vdbfile.close(); |
| 1127 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(vdbfile.isOpen() == false); |
| 1128 |
3/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
|
1 | EXPECT_TRUE(vdbfile.fileMetadata().get() == nullptr); |
| 1129 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(0, int(vdbfile.gridDescriptors().size())); |
| 1130 |
4/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
2 | EXPECT_THROW(vdbfile.inputStream(), openvdb::IoError); |
| 1131 | |||
| 1132 | 1 | remove("something.vdb2"); | |
| 1133 | 1 | } | |
| 1134 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | TEST_F(TestFile, testOpen) { testOpen(); } |
| 1135 | |||
| 1136 | |||
| 1137 | void | ||
| 1138 | 1 | TestFile::testNonVdbOpen() | |
| 1139 | { | ||
| 1140 | 2 | std::ofstream file("dummy.vdb2", std::ios_base::binary); | |
| 1141 | |||
| 1142 | 1 | int64_t something = 1; | |
| 1143 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | file.write(reinterpret_cast<char*>(&something), sizeof(int64_t)); |
| 1144 | |||
| 1145 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | file.close(); |
| 1146 | |||
| 1147 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
3 | openvdb::io::File vdbfile("dummy.vdb2"); |
| 1148 |
5/22✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
|
2 | EXPECT_THROW(vdbfile.open(), openvdb::IoError); |
| 1149 |
4/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
2 | EXPECT_THROW(vdbfile.inputStream(), openvdb::IoError); |
| 1150 | |||
| 1151 | 1 | remove("dummy.vdb2"); | |
| 1152 | 1 | } | |
| 1153 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | TEST_F(TestFile, testNonVdbOpen) { testNonVdbOpen(); } |
| 1154 | |||
| 1155 | |||
| 1156 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | TEST_F(TestFile, testGetMetadata) |
| 1157 | { | ||
| 1158 | using namespace openvdb; | ||
| 1159 | |||
| 1160 | 1 | GridPtrVec grids; | |
| 1161 | MetaMap meta; | ||
| 1162 | |||
| 1163 |
4/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
|
3 | meta.insertMeta("author", StringMetadata("Einstein")); |
| 1164 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | meta.insertMeta("year", Int32Metadata(2009)); |
| 1165 | |||
| 1166 | // Adjust registry before writing. | ||
| 1167 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | Metadata::clearRegistry(); |
| 1168 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | StringMetadata::registerType(); |
| 1169 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | Int32Metadata::registerType(); |
| 1170 | |||
| 1171 | // Write the vdb out to a file. | ||
| 1172 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | io::File vdbfile("something.vdb2"); |
| 1173 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | vdbfile.write(grids, meta); |
| 1174 | |||
| 1175 | // Check if reading without opening the file | ||
| 1176 |
4/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
2 | EXPECT_THROW(vdbfile.getMetadata(), openvdb::IoError); |
| 1177 | |||
| 1178 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | vdbfile.open(); |
| 1179 | |||
| 1180 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | MetaMap::Ptr meta2 = vdbfile.getMetadata(); |
| 1181 | |||
| 1182 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_EQ(2, int(meta2->metaCount())); |
| 1183 | |||
| 1184 |
3/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
2 | EXPECT_TRUE(meta2->metaValue<std::string>("author") == "Einstein"); |
| 1185 |
4/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
1 | EXPECT_EQ(2009, meta2->metaValue<int32_t>("year")); |
| 1186 | |||
| 1187 | // Clear registry. | ||
| 1188 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | Metadata::clearRegistry(); |
| 1189 | |||
| 1190 | 1 | remove("something.vdb2"); | |
| 1191 | 1 | } | |
| 1192 | |||
| 1193 | |||
| 1194 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | TEST_F(TestFile, testReadAll) |
| 1195 | { | ||
| 1196 | using namespace openvdb; | ||
| 1197 | |||
| 1198 | using FloatGrid = openvdb::FloatGrid; | ||
| 1199 | using IntGrid = openvdb::Int32Grid; | ||
| 1200 | using FloatTree = FloatGrid::TreeType; | ||
| 1201 | using IntTree = Int32Grid::TreeType; | ||
| 1202 | |||
| 1203 | // Create a vdb to write. | ||
| 1204 | |||
| 1205 | // Create grids | ||
| 1206 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | IntGrid::Ptr grid1 = createGrid<IntGrid>(/*bg=*/1); |
| 1207 | IntTree& tree = grid1->tree(); | ||
| 1208 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | grid1->setName("density"); |
| 1209 | |||
| 1210 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
1 | FloatGrid::Ptr grid2 = createGrid<FloatGrid>(/*bg=*/2.0); |
| 1211 | FloatTree& tree2 = grid2->tree(); | ||
| 1212 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | grid2->setName("temperature"); |
| 1213 | |||
| 1214 | // Create transforms | ||
| 1215 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::Transform::Ptr trans = math::Transform::createLinearTransform(0.1); |
| 1216 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::Transform::Ptr trans2 = math::Transform::createLinearTransform(0.1); |
| 1217 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | grid1->setTransform(trans); |
| 1218 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | grid2->setTransform(trans2); |
| 1219 | |||
| 1220 | // Set some values | ||
| 1221 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | tree.setValue(Coord(0, 0, 0), 5); |
| 1222 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | tree.setValue(Coord(100, 0, 0), 6); |
| 1223 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | tree2.setValue(Coord(0, 0, 0), 10); |
| 1224 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
2 | tree2.setValue(Coord(0, 100, 0), 11); |
| 1225 | |||
| 1226 | MetaMap meta; | ||
| 1227 |
4/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
|
3 | meta.insertMeta("author", StringMetadata("Einstein")); |
| 1228 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | meta.insertMeta("year", Int32Metadata(2009)); |
| 1229 | |||
| 1230 | 1 | GridPtrVec grids; | |
| 1231 | 1 | grids.push_back(grid1); | |
| 1232 | ✗ | grids.push_back(grid2); | |
| 1233 | |||
| 1234 | // Register grid and transform. | ||
| 1235 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | openvdb::initialize(); |
| 1236 | |||
| 1237 | // Write the vdb out to a file. | ||
| 1238 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | io::File vdbfile("something.vdb2"); |
| 1239 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | vdbfile.write(grids, meta); |
| 1240 | |||
| 1241 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
3 | io::File vdbfile2("something.vdb2"); |
| 1242 |
4/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
2 | EXPECT_THROW(vdbfile2.getGrids(), openvdb::IoError); |
| 1243 | |||
| 1244 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | vdbfile2.open(); |
| 1245 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(vdbfile2.isOpen()); |
| 1246 | |||
| 1247 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridPtrVecPtr grids2 = vdbfile2.getGrids(); |
| 1248 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | MetaMap::Ptr meta2 = vdbfile2.getMetadata(); |
| 1249 | |||
| 1250 | // Ensure we have the metadata. | ||
| 1251 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(2, int(meta2->metaCount())); |
| 1252 |
3/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
2 | EXPECT_TRUE(meta2->metaValue<std::string>("author") == "Einstein"); |
| 1253 |
4/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
1 | EXPECT_EQ(2009, meta2->metaValue<int32_t>("year")); |
| 1254 | |||
| 1255 | // Ensure we got the grids. | ||
| 1256 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_EQ(2, int(grids2->size())); |
| 1257 | |||
| 1258 | 1 | GridBase::Ptr grid; | |
| 1259 | grid.reset(); | ||
| 1260 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
|
2 | grid = findGridByName(*grids2, "density"); |
| 1261 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(grid.get() != nullptr); |
| 1262 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IntTree::Ptr density = gridPtrCast<IntGrid>(grid)->treePtr(); |
| 1263 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(density.get() != nullptr); |
| 1264 | |||
| 1265 | grid.reset(); | ||
| 1266 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
|
2 | grid = findGridByName(*grids2, "temperature"); |
| 1267 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(grid.get() != nullptr); |
| 1268 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | FloatTree::Ptr temperature = gridPtrCast<FloatGrid>(grid)->treePtr(); |
| 1269 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(temperature.get() != nullptr); |
| 1270 | |||
| 1271 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_NEAR(5, density->getValue(Coord(0, 0, 0)), /*tolerance=*/0); |
| 1272 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_NEAR(6, density->getValue(Coord(100, 0, 0)), /*tolerance=*/0); |
| 1273 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_NEAR(10, temperature->getValue(Coord(0, 0, 0)), /*tolerance=*/0); |
| 1274 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_NEAR(11, temperature->getValue(Coord(0, 100, 0)), /*tolerance=*/0); |
| 1275 | |||
| 1276 | // Clear registries. | ||
| 1277 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridBase::clearRegistry(); |
| 1278 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | Metadata::clearRegistry(); |
| 1279 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::MapRegistry::clear(); |
| 1280 | |||
| 1281 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | vdbfile2.close(); |
| 1282 | |||
| 1283 | 1 | remove("something.vdb2"); | |
| 1284 | 1 | } | |
| 1285 | |||
| 1286 | |||
| 1287 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | TEST_F(TestFile, testWriteOpenFile) |
| 1288 | { | ||
| 1289 | using namespace openvdb; | ||
| 1290 | |||
| 1291 | 1 | MetaMap::Ptr meta(new MetaMap); | |
| 1292 |
4/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
|
3 | meta->insertMeta("author", StringMetadata("Einstein")); |
| 1293 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
1 | meta->insertMeta("year", Int32Metadata(2009)); |
| 1294 | |||
| 1295 | // Register metadata | ||
| 1296 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | Metadata::clearRegistry(); |
| 1297 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | StringMetadata::registerType(); |
| 1298 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | Int32Metadata::registerType(); |
| 1299 | |||
| 1300 | // Write the metadata out to a file. | ||
| 1301 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
3 | io::File vdbfile("something.vdb2"); |
| 1302 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | vdbfile.write(GridPtrVec(), *meta); |
| 1303 | |||
| 1304 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
3 | io::File vdbfile2("something.vdb2"); |
| 1305 |
4/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
2 | EXPECT_THROW(vdbfile2.getGrids(), openvdb::IoError); |
| 1306 | |||
| 1307 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | vdbfile2.open(); |
| 1308 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(vdbfile2.isOpen()); |
| 1309 | |||
| 1310 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridPtrVecPtr grids = vdbfile2.getGrids(); |
| 1311 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
|
2 | meta = vdbfile2.getMetadata(); |
| 1312 | |||
| 1313 | // Ensure we have the metadata. | ||
| 1314 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(meta.get() != nullptr); |
| 1315 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(2, int(meta->metaCount())); |
| 1316 |
3/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
2 | EXPECT_TRUE(meta->metaValue<std::string>("author") == "Einstein"); |
| 1317 |
4/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
1 | EXPECT_EQ(2009, meta->metaValue<int32_t>("year")); |
| 1318 | |||
| 1319 | // Ensure we got the grids. | ||
| 1320 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(grids.get() != nullptr); |
| 1321 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(0, int(grids->size())); |
| 1322 | |||
| 1323 | // Cannot write an open file. | ||
| 1324 |
5/22✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
|
2 | EXPECT_THROW(vdbfile2.write(*grids), openvdb::IoError); |
| 1325 | |||
| 1326 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | vdbfile2.close(); |
| 1327 | |||
| 1328 |
5/24✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
|
2 | EXPECT_NO_THROW(vdbfile2.write(*grids)); |
| 1329 | |||
| 1330 | // Clear registries. | ||
| 1331 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | Metadata::clearRegistry(); |
| 1332 | |||
| 1333 | 1 | remove("something.vdb2"); | |
| 1334 | 1 | } | |
| 1335 | |||
| 1336 | |||
| 1337 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | TEST_F(TestFile, testReadGridMetadata) |
| 1338 | { | ||
| 1339 | using namespace openvdb; | ||
| 1340 | |||
| 1341 | 1 | openvdb::initialize(); | |
| 1342 | |||
| 1343 | const char* filename = "testReadGridMetadata.vdb2"; | ||
| 1344 | SharedPtr<const char> scopedFile(filename, ::remove); | ||
| 1345 | |||
| 1346 | // Create grids | ||
| 1347 |
1/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
|
1 | Int32Grid::Ptr igrid = createGrid<Int32Grid>(/*bg=*/1); |
| 1348 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
1 | FloatGrid::Ptr fgrid = createGrid<FloatGrid>(/*bg=*/2.0); |
| 1349 | |||
| 1350 | // Add metadata. | ||
| 1351 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | igrid->setName("igrid"); |
| 1352 |
4/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
|
3 | igrid->insertMeta("author", StringMetadata("Einstein")); |
| 1353 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | igrid->insertMeta("year", Int32Metadata(2012)); |
| 1354 | |||
| 1355 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | fgrid->setName("fgrid"); |
| 1356 |
4/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
|
3 | fgrid->insertMeta("author", StringMetadata("Einstein")); |
| 1357 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
1 | fgrid->insertMeta("year", Int32Metadata(2012)); |
| 1358 | |||
| 1359 | // Add transforms. | ||
| 1360 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::Transform::Ptr trans = math::Transform::createLinearTransform(0.1); |
| 1361 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | igrid->setTransform(trans); |
| 1362 |
2/4✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
2 | fgrid->setTransform(trans); |
| 1363 | |||
| 1364 | // Set some values. | ||
| 1365 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | igrid->tree().setValue(Coord(0, 0, 0), 5); |
| 1366 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | igrid->tree().setValue(Coord(100, 0, 0), 6); |
| 1367 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | fgrid->tree().setValue(Coord(0, 0, 0), 10); |
| 1368 |
1/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
|
2 | fgrid->tree().setValue(Coord(0, 100, 0), 11); |
| 1369 | |||
| 1370 | 1 | GridPtrVec srcGrids; | |
| 1371 | 1 | srcGrids.push_back(igrid); | |
| 1372 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | srcGrids.push_back(fgrid); |
| 1373 | std::map<std::string, GridBase::Ptr> srcGridMap; | ||
| 1374 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | srcGridMap[igrid->getName()] = igrid; |
| 1375 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | srcGridMap[fgrid->getName()] = fgrid; |
| 1376 | |||
| 1377 | enum { OUTPUT_TO_FILE = 0, OUTPUT_TO_STREAM = 1 }; | ||
| 1378 |
2/2✓ Branch 0 taken 2 times.
✓ Branch 1 taken 1 times.
|
3 | for (int outputMethod = OUTPUT_TO_FILE; outputMethod <= OUTPUT_TO_STREAM; ++outputMethod) |
| 1379 | { | ||
| 1380 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
|
2 | if (outputMethod == OUTPUT_TO_FILE) { |
| 1381 | // Write the grids to a file. | ||
| 1382 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | io::File vdbfile(filename); |
| 1383 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | vdbfile.write(srcGrids); |
| 1384 | } else { | ||
| 1385 | // Stream the grids to a file (i.e., without file offsets). | ||
| 1386 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | std::ofstream ostrm(filename, std::ios_base::binary); |
| 1387 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | io::Stream(ostrm).write(srcGrids); |
| 1388 | } | ||
| 1389 | |||
| 1390 | // Read just the grid-level metadata from the file. | ||
| 1391 |
3/6✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
|
6 | io::File vdbfile(filename); |
| 1392 | |||
| 1393 | // Verify that reading from an unopened file generates an exception. | ||
| 1394 |
5/22✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✓ Branch 26 taken 2 times.
✗ Branch 27 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
|
6 | EXPECT_THROW(vdbfile.readGridMetadata("igrid"), openvdb::IoError); |
| 1395 |
5/22✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✓ Branch 26 taken 2 times.
✗ Branch 27 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
|
6 | EXPECT_THROW(vdbfile.readGridMetadata("noname"), openvdb::IoError); |
| 1396 |
4/20✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
4 | EXPECT_THROW(vdbfile.readAllGridMetadata(), openvdb::IoError); |
| 1397 | |||
| 1398 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | vdbfile.open(); |
| 1399 | |||
| 1400 |
2/18✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
2 | EXPECT_TRUE(vdbfile.isOpen()); |
| 1401 | |||
| 1402 | // Verify that reading a nonexistent grid generates an exception. | ||
| 1403 |
5/22✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✓ Branch 26 taken 2 times.
✗ Branch 27 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
|
6 | EXPECT_THROW(vdbfile.readGridMetadata("noname"), openvdb::KeyError); |
| 1404 | |||
| 1405 | // Read all grids and store them in a list. | ||
| 1406 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | GridPtrVecPtr gridMetadata = vdbfile.readAllGridMetadata(); |
| 1407 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
2 | EXPECT_TRUE(gridMetadata.get() != nullptr); |
| 1408 |
2/18✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
2 | EXPECT_EQ(2, int(gridMetadata->size())); |
| 1409 | |||
| 1410 | // Read individual grids and append them to the list. | ||
| 1411 |
3/6✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 2 times.
|
4 | GridBase::Ptr grid = vdbfile.readGridMetadata("igrid"); |
| 1412 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
2 | EXPECT_TRUE(grid.get() != nullptr); |
| 1413 |
3/18✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
|
4 | EXPECT_EQ(std::string("igrid"), grid->getName()); |
| 1414 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | gridMetadata->push_back(grid); |
| 1415 | |||
| 1416 |
3/6✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
|
4 | grid = vdbfile.readGridMetadata("fgrid"); |
| 1417 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
2 | EXPECT_TRUE(grid.get() != nullptr); |
| 1418 |
3/18✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
|
4 | EXPECT_EQ(std::string("fgrid"), grid->getName()); |
| 1419 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | gridMetadata->push_back(grid); |
| 1420 | |||
| 1421 | // Verify that the grids' metadata and transforms match the original grids'. | ||
| 1422 |
2/2✓ Branch 0 taken 8 times.
✓ Branch 1 taken 2 times.
|
10 | for (size_t i = 0, N = gridMetadata->size(); i < N; ++i) { |
| 1423 | grid = (*gridMetadata)[i]; | ||
| 1424 | |||
| 1425 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 8 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
8 | EXPECT_TRUE(grid.get() != nullptr); |
| 1426 |
8/28✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4 times.
✓ Branch 4 taken 4 times.
✓ Branch 6 taken 4 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 4 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 4 times.
✓ Branch 11 taken 4 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 8 times.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
|
28 | EXPECT_TRUE(grid->getName() == "igrid" || grid->getName() == "fgrid"); |
| 1427 |
3/20✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 8 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 8 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
|
16 | EXPECT_TRUE(grid->baseTreePtr().get() != nullptr); |
| 1428 | |||
| 1429 | // Since we didn't read the grid's topology, the tree should be empty. | ||
| 1430 |
5/24✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 8 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 8 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 8 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 8 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
|
16 | EXPECT_EQ(0, int(grid->constBaseTreePtr()->leafCount())); |
| 1431 |
5/24✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 8 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 8 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 8 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 8 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
|
16 | EXPECT_EQ(0, int(grid->constBaseTreePtr()->activeVoxelCount())); |
| 1432 | |||
| 1433 | // Retrieve the source grid of the same name. | ||
| 1434 |
3/8✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 8 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 8 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
|
16 | GridBase::ConstPtr srcGrid = srcGridMap[grid->getName()]; |
| 1435 | |||
| 1436 | // Compare grid types and transforms. | ||
| 1437 |
3/20✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 8 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 8 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
|
16 | EXPECT_EQ(srcGrid->type(), grid->type()); |
| 1438 |
1/14✗ Branch 0 not taken.
✓ Branch 1 taken 8 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
|
8 | EXPECT_EQ(srcGrid->transform(), grid->transform()); |
| 1439 | |||
| 1440 | // Compare metadata, ignoring fields that were added when the file was written. | ||
| 1441 | MetaMap::Ptr | ||
| 1442 |
1/2✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
|
8 | statsMetadata = grid->getStatsMetadata(), |
| 1443 |
1/2✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
|
8 | otherMetadata = grid->copyMeta(); // shallow copy |
| 1444 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 8 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
8 | EXPECT_TRUE(statsMetadata->metaCount() != 0); |
| 1445 |
3/6✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 8 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 8 times.
✗ Branch 8 not taken.
|
24 | statsMetadata->insertMeta(GridBase::META_FILE_COMPRESSION, StringMetadata("")); |
| 1446 | for (MetaMap::ConstMetaIterator it = grid->beginMeta(), end = grid->endMeta(); | ||
| 1447 |
2/2✓ Branch 0 taken 64 times.
✓ Branch 1 taken 8 times.
|
72 | it != end; ++it) |
| 1448 | { | ||
| 1449 | // Keep all fields that exist in the source grid. | ||
| 1450 |
2/2✓ Branch 1 taken 24 times.
✓ Branch 2 taken 40 times.
|
128 | if ((*srcGrid)[it->first]) continue; |
| 1451 | // Remove any remaining grid statistics fields. | ||
| 1452 |
1/2✓ Branch 1 taken 40 times.
✗ Branch 2 not taken.
|
80 | if ((*statsMetadata)[it->first]) { |
| 1453 |
1/2✓ Branch 1 taken 40 times.
✗ Branch 2 not taken.
|
40 | otherMetadata->removeMeta(it->first); |
| 1454 | } | ||
| 1455 | // Remove delay load metadata if it exists. | ||
| 1456 |
2/6✓ Branch 1 taken 40 times.
✗ Branch 2 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 40 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
|
80 | if ((*otherMetadata)["file_delayed_load"]) { |
| 1457 | ✗ | otherMetadata->removeMeta("file_delayed_load"); | |
| 1458 | } | ||
| 1459 | } | ||
| 1460 |
5/22✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 8 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 8 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 8 times.
✗ Branch 11 not taken.
✗ Branch 15 not taken.
✓ Branch 16 taken 8 times.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
|
16 | EXPECT_EQ(srcGrid->str(), otherMetadata->str()); |
| 1461 | |||
| 1462 |
1/2✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
|
8 | const CoordBBox srcBBox = srcGrid->evalActiveVoxelBoundingBox(); |
| 1463 |
4/20✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 8 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 8 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 8 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
8 | EXPECT_EQ(srcBBox.min().asVec3i(), grid->metaValue<Vec3i>("file_bbox_min")); |
| 1464 |
4/20✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 8 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 8 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 8 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
8 | EXPECT_EQ(srcBBox.max().asVec3i(), grid->metaValue<Vec3i>("file_bbox_max")); |
| 1465 |
5/22✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 8 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 8 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 8 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✓ Branch 14 taken 8 times.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
|
8 | EXPECT_EQ(srcGrid->activeVoxelCount(), |
| 1466 | Index64(grid->metaValue<Int64>("file_voxel_count"))); | ||
| 1467 |
5/22✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 8 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 8 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 8 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✓ Branch 14 taken 8 times.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
|
8 | EXPECT_EQ(srcGrid->memUsage(), |
| 1468 | Index64(grid->metaValue<Int64>("file_mem_bytes"))); | ||
| 1469 | } | ||
| 1470 | } | ||
| 1471 | 1 | } | |
| 1472 | |||
| 1473 | |||
| 1474 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | TEST_F(TestFile, testReadGrid) |
| 1475 | { | ||
| 1476 | using namespace openvdb; | ||
| 1477 | |||
| 1478 | using FloatGrid = openvdb::FloatGrid; | ||
| 1479 | using IntGrid = openvdb::Int32Grid; | ||
| 1480 | using FloatTree = FloatGrid::TreeType; | ||
| 1481 | using IntTree = Int32Grid::TreeType; | ||
| 1482 | |||
| 1483 | // Create a vdb to write. | ||
| 1484 | |||
| 1485 | // Create grids | ||
| 1486 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | IntGrid::Ptr grid = createGrid<IntGrid>(/*bg=*/1); |
| 1487 | IntTree& tree = grid->tree(); | ||
| 1488 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | grid->setName("density"); |
| 1489 | |||
| 1490 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
1 | FloatGrid::Ptr grid2 = createGrid<FloatGrid>(/*bg=*/2.0); |
| 1491 | FloatTree& tree2 = grid2->tree(); | ||
| 1492 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | grid2->setName("temperature"); |
| 1493 | |||
| 1494 | // Create transforms | ||
| 1495 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::Transform::Ptr trans = math::Transform::createLinearTransform(0.1); |
| 1496 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::Transform::Ptr trans2 = math::Transform::createLinearTransform(0.1); |
| 1497 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | grid->setTransform(trans); |
| 1498 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | grid2->setTransform(trans2); |
| 1499 | |||
| 1500 | // Set some values | ||
| 1501 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | tree.setValue(Coord(0, 0, 0), 5); |
| 1502 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | tree.setValue(Coord(100, 0, 0), 6); |
| 1503 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | tree2.setValue(Coord(0, 0, 0), 10); |
| 1504 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
2 | tree2.setValue(Coord(0, 100, 0), 11); |
| 1505 | |||
| 1506 | MetaMap meta; | ||
| 1507 |
4/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
|
3 | meta.insertMeta("author", StringMetadata("Einstein")); |
| 1508 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | meta.insertMeta("year", Int32Metadata(2009)); |
| 1509 | |||
| 1510 | 1 | GridPtrVec grids; | |
| 1511 | 1 | grids.push_back(grid); | |
| 1512 | ✗ | grids.push_back(grid2); | |
| 1513 | |||
| 1514 | // Register grid and transform. | ||
| 1515 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | openvdb::initialize(); |
| 1516 | |||
| 1517 | // Write the vdb out to a file. | ||
| 1518 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | io::File vdbfile("something.vdb2"); |
| 1519 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | vdbfile.write(grids, meta); |
| 1520 | |||
| 1521 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
3 | io::File vdbfile2("something.vdb2"); |
| 1522 | |||
| 1523 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | vdbfile2.open(); |
| 1524 | |||
| 1525 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(vdbfile2.isOpen()); |
| 1526 | |||
| 1527 | // Get Temperature | ||
| 1528 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
2 | GridBase::Ptr temperature = vdbfile2.readGrid("temperature"); |
| 1529 | |||
| 1530 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(temperature.get() != nullptr); |
| 1531 | |||
| 1532 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | FloatTree::Ptr typedTemperature = gridPtrCast<FloatGrid>(temperature)->treePtr(); |
| 1533 | |||
| 1534 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(typedTemperature.get() != nullptr); |
| 1535 | |||
| 1536 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_NEAR(10, typedTemperature->getValue(Coord(0, 0, 0)), 0); |
| 1537 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_NEAR(11, typedTemperature->getValue(Coord(0, 100, 0)), 0); |
| 1538 | |||
| 1539 | // Get Density | ||
| 1540 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
|
2 | GridBase::Ptr density = vdbfile2.readGrid("density"); |
| 1541 | |||
| 1542 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(density.get() != nullptr); |
| 1543 | |||
| 1544 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IntTree::Ptr typedDensity = gridPtrCast<IntGrid>(density)->treePtr(); |
| 1545 | |||
| 1546 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(typedDensity.get() != nullptr); |
| 1547 | |||
| 1548 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_NEAR(5,typedDensity->getValue(Coord(0, 0, 0)), /*tolerance=*/0); |
| 1549 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_NEAR(6,typedDensity->getValue(Coord(100, 0, 0)), /*tolerance=*/0); |
| 1550 | |||
| 1551 | // Clear registries. | ||
| 1552 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridBase::clearRegistry(); |
| 1553 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | Metadata::clearRegistry(); |
| 1554 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::MapRegistry::clear(); |
| 1555 | |||
| 1556 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | vdbfile2.close(); |
| 1557 | |||
| 1558 | 1 | remove("something.vdb2"); | |
| 1559 | 1 | } | |
| 1560 | |||
| 1561 | |||
| 1562 | //////////////////////////////////////// | ||
| 1563 | |||
| 1564 | |||
| 1565 | template<typename GridT> | ||
| 1566 | void | ||
| 1567 | 18 | validateClippedGrid(const GridT& clipped, const typename GridT::ValueType& fg) | |
| 1568 | { | ||
| 1569 | using namespace openvdb; | ||
| 1570 | |||
| 1571 | using ValueT = typename GridT::ValueType; | ||
| 1572 | |||
| 1573 | 18 | const CoordBBox bbox = clipped.evalActiveVoxelBoundingBox(); | |
| 1574 |
1/14✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
18 | EXPECT_EQ(4, bbox.min().x()); |
| 1575 |
1/14✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
18 | EXPECT_EQ(4, bbox.min().y()); |
| 1576 |
1/14✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
18 | EXPECT_EQ(-6, bbox.min().z()); |
| 1577 |
1/14✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
18 | EXPECT_EQ(4, bbox.max().x()); |
| 1578 |
1/14✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
18 | EXPECT_EQ(4, bbox.max().y()); |
| 1579 |
1/14✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
18 | EXPECT_EQ(6, bbox.max().z()); |
| 1580 |
1/14✗ Branch 2 not taken.
✓ Branch 3 taken 9 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
|
18 | EXPECT_EQ(6 + 6 + 1, int(clipped.activeVoxelCount())); |
| 1581 |
1/14✗ Branch 2 not taken.
✓ Branch 3 taken 9 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
|
18 | EXPECT_EQ(2, int(clipped.constTree().leafCount())); |
| 1582 | |||
| 1583 | typename GridT::ConstAccessor acc = clipped.getConstAccessor(); | ||
| 1584 | 18 | const ValueT bg = clipped.background(); | |
| 1585 | Coord xyz; | ||
| 1586 | int &x = xyz[0], &y = xyz[1], &z = xyz[2]; | ||
| 1587 |
2/2✓ Branch 0 taken 189 times.
✓ Branch 1 taken 9 times.
|
396 | for (x = -10; x <= 10; ++x) { |
| 1588 |
2/2✓ Branch 0 taken 3969 times.
✓ Branch 1 taken 189 times.
|
8316 | for (y = -10; y <= 10; ++y) { |
| 1589 |
2/2✓ Branch 0 taken 83349 times.
✓ Branch 1 taken 3969 times.
|
174636 | for (z = -10; z <= 10; ++z) { |
| 1590 |
8/8✓ Branch 0 taken 3969 times.
✓ Branch 1 taken 79380 times.
✓ Branch 2 taken 189 times.
✓ Branch 3 taken 3780 times.
✓ Branch 4 taken 153 times.
✓ Branch 5 taken 36 times.
✓ Branch 6 taken 117 times.
✓ Branch 7 taken 36 times.
|
166698 | if (x == 4 && y == 4 && z >= -6 && z <= 6) { |
| 1591 |
3/21✓ Branch 1 taken 78 times.
✓ Branch 2 taken 39 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 78 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
702 | EXPECT_EQ(fg, acc.getValue(Coord(4, 4, z))); |
| 1592 | } else { | ||
| 1593 |
3/21✓ Branch 1 taken 55488 times.
✓ Branch 2 taken 27744 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 55488 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
332928 | EXPECT_EQ(bg, acc.getValue(Coord(x, y, z))); |
| 1594 | } | ||
| 1595 | } | ||
| 1596 | } | ||
| 1597 | } | ||
| 1598 | 18 | } | |
| 1599 | |||
| 1600 | |||
| 1601 | // See also TestGrid::testClipping() | ||
| 1602 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | TEST_F(TestFile, testReadClippedGrid) |
| 1603 | { | ||
| 1604 | using namespace openvdb; | ||
| 1605 | |||
| 1606 | // Register types. | ||
| 1607 | 1 | openvdb::initialize(); | |
| 1608 | |||
| 1609 | // World-space clipping region | ||
| 1610 | 1 | const BBoxd clipBox(Vec3d(4.0, 4.0, -6.0), Vec3d(4.9, 4.9, 6.0)); | |
| 1611 | |||
| 1612 | // Create grids of several types and fill a cubic region of each with a foreground value. | ||
| 1613 | |||
| 1614 | 1 | const bool bfg = true; | |
| 1615 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | BoolGrid::Ptr bgrid = BoolGrid::create(/*bg=*/zeroVal<bool>()); |
| 1616 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | bgrid->setName("bgrid"); |
| 1617 | ✗ | bgrid->fill(CoordBBox(Coord(-10), Coord(10)), /*value=*/bfg, /*active=*/true); | |
| 1618 | |||
| 1619 | 1 | const float ffg = 5.f; | |
| 1620 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
1 | FloatGrid::Ptr fgrid = FloatGrid::create(/*bg=*/zeroVal<float>()); |
| 1621 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | fgrid->setName("fgrid"); |
| 1622 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | fgrid->fill(CoordBBox(Coord(-10), Coord(10)), /*value=*/ffg, /*active=*/true); |
| 1623 | |||
| 1624 | const Vec3s vfg(1.f, -2.f, 3.f); | ||
| 1625 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
1 | Vec3SGrid::Ptr vgrid = Vec3SGrid::create(/*bg=*/zeroVal<Vec3s>()); |
| 1626 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | vgrid->setName("vgrid"); |
| 1627 |
0/2✗ Branch 1 not taken.
✗ Branch 2 not taken.
|
1 | vgrid->fill(CoordBBox(Coord(-10), Coord(10)), /*value=*/vfg, /*active=*/true); |
| 1628 | |||
| 1629 | 1 | GridPtrVec srcGrids; | |
| 1630 | 1 | srcGrids.push_back(bgrid); | |
| 1631 | 1 | srcGrids.push_back(fgrid); | |
| 1632 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | srcGrids.push_back(vgrid); |
| 1633 | |||
| 1634 | const char* filename = "testReadClippedGrid.vdb"; | ||
| 1635 | SharedPtr<const char> scopedFile(filename, ::remove); | ||
| 1636 | |||
| 1637 | enum { OUTPUT_TO_FILE = 0, OUTPUT_TO_STREAM = 1 }; | ||
| 1638 |
2/2✓ Branch 0 taken 2 times.
✓ Branch 1 taken 1 times.
|
3 | for (int outputMethod = OUTPUT_TO_FILE; outputMethod <= OUTPUT_TO_STREAM; ++outputMethod) |
| 1639 | { | ||
| 1640 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
|
2 | if (outputMethod == OUTPUT_TO_FILE) { |
| 1641 | // Write the grids to a file. | ||
| 1642 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | io::File vdbfile(filename); |
| 1643 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | vdbfile.write(srcGrids); |
| 1644 | } else { | ||
| 1645 | // Stream the grids to a file (i.e., without file offsets). | ||
| 1646 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | std::ofstream ostrm(filename, std::ios_base::binary); |
| 1647 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | io::Stream(ostrm).write(srcGrids); |
| 1648 | } | ||
| 1649 | |||
| 1650 | // Open the file for reading. | ||
| 1651 |
3/6✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
|
6 | io::File vdbfile(filename); |
| 1652 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | vdbfile.open(); |
| 1653 | |||
| 1654 | 2 | GridBase::Ptr grid; | |
| 1655 | |||
| 1656 | // Read and clip each grid. | ||
| 1657 | |||
| 1658 |
6/24✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 2 times.
✗ Branch 15 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
|
4 | EXPECT_NO_THROW(grid = vdbfile.readGrid("bgrid", clipBox)); |
| 1659 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
2 | EXPECT_TRUE(grid.get() != nullptr); |
| 1660 |
4/20✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
|
4 | EXPECT_NO_THROW(bgrid = gridPtrCast<BoolGrid>(grid)); |
| 1661 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | validateClippedGrid(*bgrid, bfg); |
| 1662 | |||
| 1663 |
6/24✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 2 times.
✗ Branch 15 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
|
4 | EXPECT_NO_THROW(grid = vdbfile.readGrid("fgrid", clipBox)); |
| 1664 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
2 | EXPECT_TRUE(grid.get() != nullptr); |
| 1665 |
4/20✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
|
4 | EXPECT_NO_THROW(fgrid = gridPtrCast<FloatGrid>(grid)); |
| 1666 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | validateClippedGrid(*fgrid, ffg); |
| 1667 | |||
| 1668 |
6/24✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 2 times.
✗ Branch 15 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
|
4 | EXPECT_NO_THROW(grid = vdbfile.readGrid("vgrid", clipBox)); |
| 1669 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
2 | EXPECT_TRUE(grid.get() != nullptr); |
| 1670 |
4/22✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
4 | EXPECT_NO_THROW(vgrid = gridPtrCast<Vec3SGrid>(grid)); |
| 1671 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
2 | validateClippedGrid(*vgrid, vfg); |
| 1672 | } | ||
| 1673 | 1 | } | |
| 1674 | |||
| 1675 | |||
| 1676 | //////////////////////////////////////// | ||
| 1677 | |||
| 1678 | |||
| 1679 | namespace { | ||
| 1680 | |||
| 1681 | template<typename T, openvdb::Index Log2Dim> struct MultiPassLeafNode; // forward declaration | ||
| 1682 | |||
| 1683 | // Dummy value type | ||
| 1684 | using MultiPassValue = openvdb::PointIndex<openvdb::Index32, 1000>; | ||
| 1685 | |||
| 1686 | // Tree configured to match the default OpenVDB configuration | ||
| 1687 | using MultiPassTree = openvdb::tree::Tree< | ||
| 1688 | openvdb::tree::RootNode< | ||
| 1689 | openvdb::tree::InternalNode< | ||
| 1690 | openvdb::tree::InternalNode< | ||
| 1691 | MultiPassLeafNode<MultiPassValue, 3>, 4>, 5>>>; | ||
| 1692 | |||
| 1693 | using MultiPassGrid = openvdb::Grid<MultiPassTree>; | ||
| 1694 | |||
| 1695 | |||
| 1696 | template<typename T, openvdb::Index Log2Dim> | ||
| 1697 | struct MultiPassLeafNode: public openvdb::tree::LeafNode<T, Log2Dim>, openvdb::io::MultiPass | ||
| 1698 | { | ||
| 1699 | // The following had to be copied from the LeafNode class | ||
| 1700 | // to make the derived class compatible with the tree structure. | ||
| 1701 | |||
| 1702 | using LeafNodeType = MultiPassLeafNode; | ||
| 1703 | using Ptr = openvdb::SharedPtr<MultiPassLeafNode>; | ||
| 1704 | using BaseLeaf = openvdb::tree::LeafNode<T, Log2Dim>; | ||
| 1705 | using NodeMaskType = openvdb::util::NodeMask<Log2Dim>; | ||
| 1706 | using ValueType = T; | ||
| 1707 | using ValueOnCIter = typename BaseLeaf::template ValueIter<typename NodeMaskType::OnIterator, | ||
| 1708 | const MultiPassLeafNode, const ValueType, typename BaseLeaf::ValueOn>; | ||
| 1709 | using ChildOnIter = typename BaseLeaf::template ChildIter<typename NodeMaskType::OnIterator, | ||
| 1710 | MultiPassLeafNode, typename BaseLeaf::ChildOn>; | ||
| 1711 | using ChildOnCIter = typename BaseLeaf::template ChildIter< | ||
| 1712 | typename NodeMaskType::OnIterator, const MultiPassLeafNode, typename BaseLeaf::ChildOn>; | ||
| 1713 | |||
| 1714 | 2 | MultiPassLeafNode(const openvdb::Coord& coords, const T& value, bool active = false) | |
| 1715 |
1/6✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
|
2 | : BaseLeaf(coords, value, active) {} |
| 1716 | 6 | MultiPassLeafNode(openvdb::PartialCreate, const openvdb::Coord& coords, const T& value, | |
| 1717 | 6 | bool active = false): BaseLeaf(openvdb::PartialCreate(), coords, value, active) {} | |
| 1718 | ✗ | MultiPassLeafNode(const MultiPassLeafNode& rhs): BaseLeaf(rhs) {} | |
| 1719 | |||
| 1720 | ✗ | ValueOnCIter cbeginValueOn() const { return ValueOnCIter(this->getValueMask().beginOn(),this); } | |
| 1721 | ✗ | ChildOnCIter cbeginChildOn() const { return ChildOnCIter(this->getValueMask().endOn(), this); } | |
| 1722 | 7 | ChildOnIter beginChildOn() { return ChildOnIter(this->getValueMask().endOn(), this); } | |
| 1723 | |||
| 1724 | // Methods in use for reading and writing multiple buffers | ||
| 1725 | |||
| 1726 | void readBuffers(std::istream& is, const openvdb::CoordBBox&, bool fromHalf = false) | ||
| 1727 | { | ||
| 1728 | ✗ | this->readBuffers(is, fromHalf); | |
| 1729 | } | ||
| 1730 | |||
| 1731 | 18 | void readBuffers(std::istream& is, bool /*fromHalf*/ = false) | |
| 1732 | { | ||
| 1733 | 18 | const openvdb::io::StreamMetadata::Ptr meta = openvdb::io::getStreamMetadataPtr(is); | |
| 1734 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 18 times.
|
18 | if (!meta) { |
| 1735 | ✗ | OPENVDB_THROW(openvdb::IoError, | |
| 1736 | "Cannot write out a MultiBufferLeaf without StreamMetadata."); | ||
| 1737 | } | ||
| 1738 | |||
| 1739 | // clamp pass to 16-bit integer | ||
| 1740 |
1/2✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
|
18 | const uint32_t pass(static_cast<uint16_t>(meta->pass())); |
| 1741 | |||
| 1742 | // Read in the stored pass number. | ||
| 1743 | uint32_t readPass; | ||
| 1744 |
1/2✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
|
18 | is.read(reinterpret_cast<char*>(&readPass), sizeof(uint32_t)); |
| 1745 |
1/14✗ Branch 0 not taken.
✓ Branch 1 taken 18 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
|
18 | EXPECT_EQ(pass, readPass); |
| 1746 | // Record the pass number. | ||
| 1747 |
1/4✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
|
18 | mReadPasses.push_back(readPass); |
| 1748 | |||
| 1749 |
2/2✓ Branch 0 taken 6 times.
✓ Branch 1 taken 12 times.
|
18 | if (pass == 0) { |
| 1750 | // Read in the node's origin. | ||
| 1751 | openvdb::Coord origin; | ||
| 1752 |
1/2✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
|
6 | is.read(reinterpret_cast<char*>(&origin), sizeof(openvdb::Coord)); |
| 1753 |
2/16✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
6 | EXPECT_EQ(origin, this->origin()); |
| 1754 | } | ||
| 1755 | 18 | } | |
| 1756 | |||
| 1757 | 16 | void writeBuffers(std::ostream& os, bool /*toHalf*/ = false) const | |
| 1758 | { | ||
| 1759 | 16 | const openvdb::io::StreamMetadata::Ptr meta = openvdb::io::getStreamMetadataPtr(os); | |
| 1760 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 16 times.
|
16 | if (!meta) { |
| 1761 | ✗ | OPENVDB_THROW(openvdb::IoError, | |
| 1762 | "Cannot read in a MultiBufferLeaf without StreamMetadata."); | ||
| 1763 | } | ||
| 1764 | |||
| 1765 | // clamp pass to 16-bit integer | ||
| 1766 |
2/4✓ Branch 1 taken 16 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 16 times.
✗ Branch 5 not taken.
|
16 | const uint32_t pass(static_cast<uint16_t>(meta->pass())); |
| 1767 | |||
| 1768 | // Leaf traversal analysis deduces the number of passes to perform for this leaf | ||
| 1769 | // then updates the leaf traversal value to ensure all passes will be written. | ||
| 1770 |
3/4✓ Branch 1 taken 16 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4 times.
✓ Branch 4 taken 12 times.
|
16 | if (meta->countingPasses()) { |
| 1771 |
3/4✓ Branch 0 taken 2 times.
✓ Branch 1 taken 2 times.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
|
4 | if (mNumPasses > pass) meta->setPass(mNumPasses); |
| 1772 | return; | ||
| 1773 | } | ||
| 1774 | |||
| 1775 | // Record the pass number. | ||
| 1776 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
12 | EXPECT_TRUE(mWritePassesPtr); |
| 1777 |
1/4✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
|
12 | const_cast<std::vector<int>&>(*mWritePassesPtr).push_back(pass); |
| 1778 | |||
| 1779 | // Write out the pass number. | ||
| 1780 |
1/2✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
|
12 | os.write(reinterpret_cast<const char*>(&pass), sizeof(uint32_t)); |
| 1781 |
2/2✓ Branch 0 taken 4 times.
✓ Branch 1 taken 8 times.
|
12 | if (pass == 0) { |
| 1782 | // Write out the node's origin and the pass number. | ||
| 1783 | 4 | const auto origin = this->origin(); | |
| 1784 |
1/2✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
|
4 | os.write(reinterpret_cast<const char*>(&origin), sizeof(openvdb::Coord)); |
| 1785 | } | ||
| 1786 | } | ||
| 1787 | |||
| 1788 | |||
| 1789 | uint32_t mNumPasses = 0; | ||
| 1790 | // Pointer to external vector in which to record passes as they are written | ||
| 1791 | std::vector<int>* mWritePassesPtr = nullptr; | ||
| 1792 | // Vector in which to record passes as they are read | ||
| 1793 | // (this needs to be internal, because leaf nodes are constructed as a grid is read) | ||
| 1794 | std::vector<int> mReadPasses; | ||
| 1795 | }; // struct MultiPassLeafNode | ||
| 1796 | |||
| 1797 | } // anonymous namespace | ||
| 1798 | |||
| 1799 | |||
| 1800 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | TEST_F(TestFile, testMultiPassIO) |
| 1801 | { | ||
| 1802 | using namespace openvdb; | ||
| 1803 | |||
| 1804 | 1 | openvdb::initialize(); | |
| 1805 | 1 | MultiPassGrid::registerGrid(); | |
| 1806 | |||
| 1807 | // Create a multi-buffer grid. | ||
| 1808 | const MultiPassGrid::Ptr grid = openvdb::createGrid<MultiPassGrid>(); | ||
| 1809 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | grid->setName("test"); |
| 1810 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | grid->setTransform(math::Transform::createLinearTransform(1.0)); |
| 1811 | MultiPassGrid::TreeType& tree = grid->tree(); | ||
| 1812 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | tree.setValue(Coord(0, 0, 0), 5); |
| 1813 | 1 | tree.setValue(Coord(0, 10, 0), 5); | |
| 1814 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(2, int(tree.leafCount())); |
| 1815 | |||
| 1816 |
2/8✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
|
3 | const GridPtrVec grids{grid}; |
| 1817 | |||
| 1818 | // Vector in which to record pass numbers (to ensure blocked ordering) | ||
| 1819 | std::vector<int> writePasses; | ||
| 1820 | { | ||
| 1821 | // Specify the required number of I/O passes for each leaf node. | ||
| 1822 | MultiPassGrid::TreeType::LeafIter leafIter = tree.beginLeaf(); | ||
| 1823 | 1 | leafIter->mNumPasses = 3; | |
| 1824 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | leafIter->mWritePassesPtr = &writePasses; |
| 1825 | ++leafIter; | ||
| 1826 | 1 | leafIter->mNumPasses = 2; | |
| 1827 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | leafIter->mWritePassesPtr = &writePasses; |
| 1828 | } | ||
| 1829 | |||
| 1830 | const char* filename = "testMultiPassIO.vdb"; | ||
| 1831 | SharedPtr<const char> scopedFile(filename, ::remove); | ||
| 1832 | { | ||
| 1833 | // Verify that passes are written to a file in the correct order. | ||
| 1834 |
4/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
|
2 | io::File(filename).write(grids); |
| 1835 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(6, int(writePasses.size())); |
| 1836 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(0, writePasses[0]); // leaf 0 |
| 1837 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(0, writePasses[1]); // leaf 1 |
| 1838 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(1, writePasses[2]); // leaf 0 |
| 1839 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(1, writePasses[3]); // leaf 1 |
| 1840 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(2, writePasses[4]); // leaf 0 |
| 1841 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_EQ(2, writePasses[5]); // leaf 1 |
| 1842 | } | ||
| 1843 | { | ||
| 1844 | // Verify that passes are read in the correct order. | ||
| 1845 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
3 | io::File file(filename); |
| 1846 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | file.open(); |
| 1847 |
4/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
|
2 | const auto newGrid = GridBase::grid<MultiPassGrid>(file.readGrid("test")); |
| 1848 | |||
| 1849 | auto leafIter = newGrid->tree().beginLeaf(); | ||
| 1850 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(3, int(leafIter->mReadPasses.size())); |
| 1851 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(0, leafIter->mReadPasses[0]); |
| 1852 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(1, leafIter->mReadPasses[1]); |
| 1853 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(2, leafIter->mReadPasses[2]); |
| 1854 | ++leafIter; | ||
| 1855 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(3, int(leafIter->mReadPasses.size())); |
| 1856 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(0, leafIter->mReadPasses[0]); |
| 1857 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(1, leafIter->mReadPasses[1]); |
| 1858 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_EQ(2, leafIter->mReadPasses[2]); |
| 1859 | } | ||
| 1860 | { | ||
| 1861 | // Verify that when using multi-pass and bbox clipping that each leaf node | ||
| 1862 | // is still being read before being clipped | ||
| 1863 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
3 | io::File file(filename); |
| 1864 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | file.open(); |
| 1865 | const auto newGrid = GridBase::grid<MultiPassGrid>( | ||
| 1866 |
4/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
|
2 | file.readGrid("test", BBoxd(Vec3d(0), Vec3d(1)))); |
| 1867 |
3/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(Index32(1), newGrid->tree().leafCount()); |
| 1868 | |||
| 1869 | auto leafIter = newGrid->tree().beginLeaf(); | ||
| 1870 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(3, int(leafIter->mReadPasses.size())); |
| 1871 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(0, leafIter->mReadPasses[0]); |
| 1872 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(1, leafIter->mReadPasses[1]); |
| 1873 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_EQ(2, leafIter->mReadPasses[2]); |
| 1874 | ++leafIter; | ||
| 1875 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(!leafIter); // second leaf node has now been clipped |
| 1876 | } | ||
| 1877 | |||
| 1878 | // Clear the pass data. | ||
| 1879 | writePasses.clear(); | ||
| 1880 | |||
| 1881 | { | ||
| 1882 | // Verify that passes are written to and read from a non-seekable stream | ||
| 1883 | // in the correct order. | ||
| 1884 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::ostringstream ostr(std::ios_base::binary); |
| 1885 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
2 | io::Stream(ostr).write(grids); |
| 1886 | |||
| 1887 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(6, int(writePasses.size())); |
| 1888 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(0, writePasses[0]); // leaf 0 |
| 1889 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(0, writePasses[1]); // leaf 1 |
| 1890 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(1, writePasses[2]); // leaf 0 |
| 1891 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(1, writePasses[3]); // leaf 1 |
| 1892 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(2, writePasses[4]); // leaf 0 |
| 1893 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(2, writePasses[5]); // leaf 1 |
| 1894 | |||
| 1895 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::istringstream is(ostr.str(), std::ios_base::binary); |
| 1896 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | io::Stream strm(is); |
| 1897 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | const auto streamedGrids = strm.getGrids(); |
| 1898 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_EQ(1, int(streamedGrids->size())); |
| 1899 | |||
| 1900 | const auto newGrid = gridPtrCast<MultiPassGrid>(*streamedGrids->begin()); | ||
| 1901 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(bool(newGrid)); |
| 1902 | auto leafIter = newGrid->tree().beginLeaf(); | ||
| 1903 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(3, int(leafIter->mReadPasses.size())); |
| 1904 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(0, leafIter->mReadPasses[0]); |
| 1905 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(1, leafIter->mReadPasses[1]); |
| 1906 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(2, leafIter->mReadPasses[2]); |
| 1907 | ++leafIter; | ||
| 1908 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(3, int(leafIter->mReadPasses.size())); |
| 1909 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(0, leafIter->mReadPasses[0]); |
| 1910 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(1, leafIter->mReadPasses[1]); |
| 1911 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_EQ(2, leafIter->mReadPasses[2]); |
| 1912 | } | ||
| 1913 | 1 | } | |
| 1914 | |||
| 1915 | |||
| 1916 | //////////////////////////////////////// | ||
| 1917 | |||
| 1918 | |||
| 1919 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | TEST_F(TestFile, testHasGrid) |
| 1920 | { | ||
| 1921 | using namespace openvdb; | ||
| 1922 | using namespace openvdb::io; | ||
| 1923 | |||
| 1924 | using FloatGrid = openvdb::FloatGrid; | ||
| 1925 | using IntGrid = openvdb::Int32Grid; | ||
| 1926 | using FloatTree = FloatGrid::TreeType; | ||
| 1927 | using IntTree = Int32Grid::TreeType; | ||
| 1928 | |||
| 1929 | // Create a vdb to write. | ||
| 1930 | |||
| 1931 | // Create grids | ||
| 1932 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | IntGrid::Ptr grid = createGrid<IntGrid>(/*bg=*/1); |
| 1933 | IntTree& tree = grid->tree(); | ||
| 1934 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | grid->setName("density"); |
| 1935 | |||
| 1936 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
1 | FloatGrid::Ptr grid2 = createGrid<FloatGrid>(/*bg=*/2.0); |
| 1937 | FloatTree& tree2 = grid2->tree(); | ||
| 1938 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | grid2->setName("temperature"); |
| 1939 | |||
| 1940 | // Create transforms | ||
| 1941 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::Transform::Ptr trans = math::Transform::createLinearTransform(0.1); |
| 1942 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::Transform::Ptr trans2 = math::Transform::createLinearTransform(0.1); |
| 1943 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
2 | grid->setTransform(trans); |
| 1944 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | grid2->setTransform(trans2); |
| 1945 | |||
| 1946 | // Set some values | ||
| 1947 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | tree.setValue(Coord(0, 0, 0), 5); |
| 1948 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | tree.setValue(Coord(100, 0, 0), 6); |
| 1949 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | tree2.setValue(Coord(0, 0, 0), 10); |
| 1950 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
2 | tree2.setValue(Coord(0, 100, 0), 11); |
| 1951 | |||
| 1952 | MetaMap meta; | ||
| 1953 |
4/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
|
3 | meta.insertMeta("author", StringMetadata("Einstein")); |
| 1954 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | meta.insertMeta("year", Int32Metadata(2009)); |
| 1955 | |||
| 1956 | 1 | GridPtrVec grids; | |
| 1957 | 1 | grids.push_back(grid); | |
| 1958 | ✗ | grids.push_back(grid2); | |
| 1959 | |||
| 1960 | // Register grid and transform. | ||
| 1961 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridBase::clearRegistry(); |
| 1962 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | IntGrid::registerGrid(); |
| 1963 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | FloatGrid::registerGrid(); |
| 1964 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | Metadata::clearRegistry(); |
| 1965 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | StringMetadata::registerType(); |
| 1966 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | Int32Metadata::registerType(); |
| 1967 | // register maps | ||
| 1968 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::MapRegistry::clear(); |
| 1969 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::AffineMap::registerMap(); |
| 1970 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::ScaleMap::registerMap(); |
| 1971 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::UniformScaleMap::registerMap(); |
| 1972 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::TranslationMap::registerMap(); |
| 1973 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::ScaleTranslateMap::registerMap(); |
| 1974 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::UniformScaleTranslateMap::registerMap(); |
| 1975 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::NonlinearFrustumMap::registerMap(); |
| 1976 | |||
| 1977 | // Write the vdb out to a file. | ||
| 1978 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | io::File vdbfile("something.vdb2"); |
| 1979 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | vdbfile.write(grids, meta); |
| 1980 | |||
| 1981 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
3 | io::File vdbfile2("something.vdb2"); |
| 1982 | |||
| 1983 |
5/22✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
|
3 | EXPECT_THROW(vdbfile2.hasGrid("density"), openvdb::IoError); |
| 1984 | |||
| 1985 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | vdbfile2.open(); |
| 1986 | |||
| 1987 |
3/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
2 | EXPECT_TRUE(vdbfile2.hasGrid("density")); |
| 1988 |
3/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
|
2 | EXPECT_TRUE(vdbfile2.hasGrid("temperature")); |
| 1989 |
3/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
1 | EXPECT_TRUE(!vdbfile2.hasGrid("Temperature")); |
| 1990 |
3/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
1 | EXPECT_TRUE(!vdbfile2.hasGrid("densitY")); |
| 1991 | |||
| 1992 | // Clear registries. | ||
| 1993 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridBase::clearRegistry(); |
| 1994 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | Metadata::clearRegistry(); |
| 1995 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | math::MapRegistry::clear(); |
| 1996 | |||
| 1997 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | vdbfile2.close(); |
| 1998 | |||
| 1999 | 1 | remove("something.vdb2"); | |
| 2000 | 1 | } | |
| 2001 | |||
| 2002 | |||
| 2003 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | TEST_F(TestFile, testNameIterator) |
| 2004 | { | ||
| 2005 | using namespace openvdb; | ||
| 2006 | using namespace openvdb::io; | ||
| 2007 | |||
| 2008 | using FloatGrid = openvdb::FloatGrid; | ||
| 2009 | using FloatTree = FloatGrid::TreeType; | ||
| 2010 | using IntTree = Int32Grid::TreeType; | ||
| 2011 | |||
| 2012 | // Create trees. | ||
| 2013 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
|
2 | IntTree::Ptr itree(new IntTree(1)); |
| 2014 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | itree->setValue(Coord(0, 0, 0), 5); |
| 2015 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | itree->setValue(Coord(100, 0, 0), 6); |
| 2016 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
|
2 | FloatTree::Ptr ftree(new FloatTree(2.0)); |
| 2017 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | ftree->setValue(Coord(0, 0, 0), 10.0); |
| 2018 |
1/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
|
2 | ftree->setValue(Coord(0, 100, 0), 11.0); |
| 2019 | |||
| 2020 | // Create grids. | ||
| 2021 | 1 | GridPtrVec grids; | |
| 2022 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
2 | GridBase::Ptr grid = createGrid(itree); |
| 2023 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | grid->setName("density"); |
| 2024 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | grids.push_back(grid); |
| 2025 | |||
| 2026 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
3 | grid = createGrid(ftree); |
| 2027 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | grid->setName("temperature"); |
| 2028 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | grids.push_back(grid); |
| 2029 | |||
| 2030 | // Create two unnamed grids. | ||
| 2031 |
3/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
|
3 | grids.push_back(createGrid(ftree)); |
| 2032 |
3/10✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
|
3 | grids.push_back(createGrid(ftree)); |
| 2033 | |||
| 2034 | // Create two grids with the same name. | ||
| 2035 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
3 | grid = createGrid(ftree); |
| 2036 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | grid->setName("level_set"); |
| 2037 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | grids.push_back(grid); |
| 2038 |
3/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
|
3 | grid = createGrid(ftree); |
| 2039 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | grid->setName("level_set"); |
| 2040 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | grids.push_back(grid); |
| 2041 | |||
| 2042 | // Register types. | ||
| 2043 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | openvdb::initialize(); |
| 2044 | |||
| 2045 | const char* filename = "testNameIterator.vdb2"; | ||
| 2046 | SharedPtr<const char> scopedFile(filename, ::remove); | ||
| 2047 | |||
| 2048 | // Write the grids out to a file. | ||
| 2049 | { | ||
| 2050 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | io::File vdbfile(filename); |
| 2051 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | vdbfile.write(grids); |
| 2052 | } | ||
| 2053 | |||
| 2054 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
3 | io::File vdbfile(filename); |
| 2055 | |||
| 2056 | // Verify that name iteration fails if the file is not open. | ||
| 2057 |
4/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
2 | EXPECT_THROW(vdbfile.beginName(), openvdb::IoError); |
| 2058 | |||
| 2059 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | vdbfile.open(); |
| 2060 | |||
| 2061 | // Names should appear in lexicographic order. | ||
| 2062 |
8/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 6 times.
✓ Branch 19 taken 1 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
|
8 | Name names[6] = { "[0]", "[1]", "density", "level_set[0]", "level_set[1]", "temperature" }; |
| 2063 | 1 | int count = 0; | |
| 2064 |
4/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 7 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 6 times.
✓ Branch 7 taken 1 times.
|
7 | for (io::File::NameIterator iter = vdbfile.beginName(); iter != vdbfile.endName(); ++iter) { |
| 2065 |
2/16✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
12 | EXPECT_EQ(names[count], *iter); |
| 2066 |
2/16✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
12 | EXPECT_EQ(names[count], iter.gridName()); |
| 2067 |
1/2✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
|
6 | ++count; |
| 2068 |
2/4✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 6 times.
|
12 | grid = vdbfile.readGrid(*iter); |
| 2069 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
6 | EXPECT_TRUE(grid); |
| 2070 | } | ||
| 2071 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(6, count); |
| 2072 | |||
| 2073 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | vdbfile.close(); |
| 2074 | 1 | } | |
| 2075 | |||
| 2076 | |||
| 2077 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | TEST_F(TestFile, testReadOldFileFormat) |
| 2078 | { | ||
| 2079 | /// @todo Save some old-format (prior to OPENVDB_FILE_VERSION) .vdb2 files | ||
| 2080 | /// to /work/rd/fx_tools/vdb_unittest/TestFile::testReadOldFileFormat/ | ||
| 2081 | /// Verify that the files can still be read correctly. | ||
| 2082 | 1 | } | |
| 2083 | |||
| 2084 | |||
| 2085 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | TEST_F(TestFile, testCompression) |
| 2086 | { | ||
| 2087 | using namespace openvdb; | ||
| 2088 | using namespace openvdb::io; | ||
| 2089 | |||
| 2090 | using IntGrid = openvdb::Int32Grid; | ||
| 2091 | |||
| 2092 | // Register types. | ||
| 2093 | 1 | openvdb::initialize(); | |
| 2094 | |||
| 2095 | // Create reference grids. | ||
| 2096 |
1/2✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
1 | IntGrid::Ptr intGrid = IntGrid::create(/*background=*/0); |
| 2097 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | intGrid->fill(CoordBBox(Coord(0), Coord(49)), /*value=*/999, /*active=*/true); |
| 2098 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | intGrid->fill(CoordBBox(Coord(6), Coord(43)), /*value=*/0, /*active=*/false); |
| 2099 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | intGrid->fill(CoordBBox(Coord(21), Coord(22)), /*value=*/1, /*active=*/false); |
| 2100 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | intGrid->fill(CoordBBox(Coord(23), Coord(24)), /*value=*/2, /*active=*/false); |
| 2101 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_EQ(8, int(IntGrid::TreeType::LeafNodeType::DIM)); |
| 2102 | |||
| 2103 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | FloatGrid::Ptr lsGrid = createLevelSet<FloatGrid>(); |
| 2104 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | unittest_util::makeSphere(/*dim=*/Coord(100), /*ctr=*/Vec3f(50, 50, 50), /*r=*/20.0, |
| 2105 | *lsGrid, unittest_util::SPHERE_SPARSE_NARROW_BAND); | ||
| 2106 |
3/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_EQ(int(GRID_LEVEL_SET), int(lsGrid->getGridClass())); |
| 2107 | |||
| 2108 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | FloatGrid::Ptr fogGrid = lsGrid->deepCopy(); |
| 2109 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | tools::sdfToFogVolume(*fogGrid); |
| 2110 |
3/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_EQ(int(GRID_FOG_VOLUME), int(fogGrid->getGridClass())); |
| 2111 | |||
| 2112 | |||
| 2113 | 1 | GridPtrVec grids; | |
| 2114 | 1 | grids.push_back(intGrid); | |
| 2115 | 1 | grids.push_back(lsGrid); | |
| 2116 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | grids.push_back(fogGrid); |
| 2117 | |||
| 2118 | const char* filename = "testCompression.vdb2"; | ||
| 2119 | SharedPtr<const char> scopedFile(filename, ::remove); | ||
| 2120 | |||
| 2121 | size_t uncompressedSize = 0; | ||
| 2122 | { | ||
| 2123 | // Write the grids out to a file with compression disabled. | ||
| 2124 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | io::File vdbfile(filename); |
| 2125 | vdbfile.setCompression(io::COMPRESS_NONE); | ||
| 2126 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | vdbfile.write(grids); |
| 2127 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | vdbfile.close(); |
| 2128 | |||
| 2129 | // Get the size of the file in bytes. | ||
| 2130 | struct stat buf; | ||
| 2131 | 1 | buf.st_size = 0; | |
| 2132 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(0, ::stat(filename, &buf)); |
| 2133 | 1 | uncompressedSize = buf.st_size; | |
| 2134 | } | ||
| 2135 | |||
| 2136 | // Write the grids out with various combinations of compression options | ||
| 2137 | // and verify that they can be read back successfully. | ||
| 2138 | // See io/Compression.h for the flag values. | ||
| 2139 | |||
| 2140 | #ifdef OPENVDB_USE_BLOSC | ||
| 2141 | #ifdef OPENVDB_USE_ZLIB | ||
| 2142 |
1/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
|
1 | std::vector<uint32_t> validFlags{0x0,0x1,0x2,0x3,0x4,0x6}; |
| 2143 | #else | ||
| 2144 | std::vector<uint32_t> validFlags{0x0,0x2,0x4,0x6}; | ||
| 2145 | #endif | ||
| 2146 | #else | ||
| 2147 | #ifdef OPENVDB_USE_ZLIB | ||
| 2148 | std::vector<uint32_t> validFlags{0x0,0x1,0x2,0x3}; | ||
| 2149 | #else | ||
| 2150 | std::vector<uint32_t> validFlags{0x0,0x2}; | ||
| 2151 | #endif | ||
| 2152 | #endif | ||
| 2153 |
2/2✓ Branch 0 taken 6 times.
✓ Branch 1 taken 1 times.
|
7 | for (uint32_t flags : validFlags) { |
| 2154 | |||
| 2155 |
2/2✓ Branch 0 taken 5 times.
✓ Branch 1 taken 1 times.
|
6 | if (flags != io::COMPRESS_NONE) { |
| 2156 |
3/6✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 5 times.
✗ Branch 8 not taken.
|
15 | io::File vdbfile(filename); |
| 2157 | vdbfile.setCompression(flags); | ||
| 2158 |
1/2✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
|
5 | vdbfile.write(grids); |
| 2159 |
1/2✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
|
5 | vdbfile.close(); |
| 2160 | } | ||
| 2161 |
2/2✓ Branch 0 taken 5 times.
✓ Branch 1 taken 1 times.
|
6 | if (flags != io::COMPRESS_NONE) { |
| 2162 | // Verify that the compressed file is significantly smaller than | ||
| 2163 | // the uncompressed file. | ||
| 2164 | size_t compressedSize = 0; | ||
| 2165 | struct stat buf; | ||
| 2166 | 5 | buf.st_size = 0; | |
| 2167 |
2/18✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 5 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
5 | EXPECT_EQ(0, ::stat(filename, &buf)); |
| 2168 | 5 | compressedSize = buf.st_size; | |
| 2169 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 5 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
5 | EXPECT_TRUE(compressedSize < size_t(0.75 * double(uncompressedSize))); |
| 2170 | } | ||
| 2171 | { | ||
| 2172 | // Verify that the grids can be read back successfully. | ||
| 2173 | |||
| 2174 |
3/6✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 6 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 6 times.
✗ Branch 8 not taken.
|
18 | io::File vdbfile(filename); |
| 2175 |
1/2✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
|
6 | vdbfile.open(); |
| 2176 | |||
| 2177 |
1/2✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
|
6 | GridPtrVecPtr inGrids = vdbfile.getGrids(); |
| 2178 |
2/18✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
6 | EXPECT_EQ(3, int(inGrids->size())); |
| 2179 | |||
| 2180 | // Verify that the original and input grids are equal. | ||
| 2181 | { | ||
| 2182 | const IntGrid::Ptr grid = gridPtrCast<IntGrid>((*inGrids)[0]); | ||
| 2183 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
6 | EXPECT_TRUE(grid.get() != nullptr); |
| 2184 |
4/20✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 6 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 6 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 6 times.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
6 | EXPECT_EQ(int(intGrid->getGridClass()), int(grid->getGridClass())); |
| 2185 | |||
| 2186 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
6 | EXPECT_TRUE(grid->tree().hasSameTopology(intGrid->tree())); |
| 2187 | |||
| 2188 |
1/14✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
|
6 | EXPECT_EQ( |
| 2189 | intGrid->tree().getValue(Coord(0)), | ||
| 2190 | grid->tree().getValue(Coord(0))); | ||
| 2191 | // Verify that leaf nodes with more than two distinct inactive values | ||
| 2192 | // are handled correctly (FX-7085). | ||
| 2193 |
1/14✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
|
6 | EXPECT_EQ( |
| 2194 | intGrid->tree().getValue(Coord(6)), | ||
| 2195 | grid->tree().getValue(Coord(6))); | ||
| 2196 |
1/14✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
|
6 | EXPECT_EQ( |
| 2197 | intGrid->tree().getValue(Coord(21)), | ||
| 2198 | grid->tree().getValue(Coord(21))); | ||
| 2199 |
1/14✗ Branch 0 not taken.
✓ Branch 1 taken 6 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
|
6 | EXPECT_EQ( |
| 2200 | intGrid->tree().getValue(Coord(23)), | ||
| 2201 | grid->tree().getValue(Coord(23))); | ||
| 2202 | |||
| 2203 | // Verify that the only active value in this grid is 999. | ||
| 2204 |
1/2✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
|
6 | const math::MinMax<Int32> extrema = tools::minMax(grid->tree()); |
| 2205 |
2/16✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
6 | EXPECT_EQ(999, extrema.min()); |
| 2206 |
2/18✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
6 | EXPECT_EQ(999, extrema.max()); |
| 2207 | } | ||
| 2208 |
2/2✓ Branch 0 taken 12 times.
✓ Branch 1 taken 6 times.
|
18 | for (int idx = 1; idx <= 2; ++idx) { |
| 2209 | const FloatGrid::Ptr | ||
| 2210 |
1/2✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
|
12 | grid = gridPtrCast<FloatGrid>((*inGrids)[idx]), |
| 2211 | refGrid = gridPtrCast<FloatGrid>(grids[idx]); | ||
| 2212 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
12 | EXPECT_TRUE(grid.get() != nullptr); |
| 2213 |
4/20✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 12 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 12 times.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
|
12 | EXPECT_EQ(int(refGrid->getGridClass()), int(grid->getGridClass())); |
| 2214 | |||
| 2215 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
12 | EXPECT_TRUE(grid->tree().hasSameTopology(refGrid->tree())); |
| 2216 | |||
| 2217 | FloatGrid::ConstAccessor refAcc = refGrid->getConstAccessor(); | ||
| 2218 |
2/2✓ Branch 0 taken 1371354 times.
✓ Branch 1 taken 12 times.
|
1371366 | for (FloatGrid::ValueAllCIter it = grid->cbeginValueAll(); it; ++it) { |
| 2219 |
2/16✓ Branch 1 taken 1371354 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1371354 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
2742708 | EXPECT_EQ(refAcc.getValue(it.getCoord()), *it); |
| 2220 | } | ||
| 2221 | } | ||
| 2222 | } | ||
| 2223 | } | ||
| 2224 | 1 | } | |
| 2225 | |||
| 2226 | |||
| 2227 | //////////////////////////////////////// | ||
| 2228 | |||
| 2229 | |||
| 2230 | namespace { | ||
| 2231 | |||
| 2232 | using namespace openvdb; | ||
| 2233 | |||
| 2234 | struct TestAsyncHelper | ||
| 2235 | { | ||
| 2236 | std::set<io::Queue::Id> ids; | ||
| 2237 | std::map<io::Queue::Id, std::string> filenames; | ||
| 2238 | size_t refFileSize; | ||
| 2239 | bool verbose; | ||
| 2240 | |||
| 2241 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | TestAsyncHelper(size_t _refFileSize): refFileSize(_refFileSize), verbose(false) {} |
| 2242 | |||
| 2243 | 2 | ~TestAsyncHelper() | |
| 2244 | 2 | { | |
| 2245 | // Remove output files. | ||
| 2246 | 2 | for (std::map<io::Queue::Id, std::string>::iterator it = filenames.begin(); | |
| 2247 |
2/2✓ Branch 0 taken 18 times.
✓ Branch 1 taken 2 times.
|
20 | it != filenames.end(); ++it) |
| 2248 | { | ||
| 2249 | 18 | ::remove(it->second.c_str()); | |
| 2250 | } | ||
| 2251 | filenames.clear(); | ||
| 2252 | ids.clear(); | ||
| 2253 | 2 | } | |
| 2254 | |||
| 2255 | io::Queue::Notifier notifier() | ||
| 2256 | { | ||
| 2257 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | return std::bind(&TestAsyncHelper::validate, this, |
| 2258 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | std::placeholders::_1, std::placeholders::_2); |
| 2259 | } | ||
| 2260 | |||
| 2261 | 18 | void insert(io::Queue::Id id, const std::string& filename) | |
| 2262 | { | ||
| 2263 | ids.insert(id); | ||
| 2264 | 18 | filenames[id] = filename; | |
| 2265 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 18 times.
|
18 | if (verbose) std::cerr << "queued " << filename << " as task " << id << "\n"; |
| 2266 | 18 | } | |
| 2267 | |||
| 2268 | 18 | void validate(io::Queue::Id id, io::Queue::Status status) | |
| 2269 | { | ||
| 2270 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 18 times.
|
18 | if (verbose) { |
| 2271 | ✗ | std::ostringstream ostr; | |
| 2272 | ✗ | ostr << "task " << id; | |
| 2273 | ✗ | switch (status) { | |
| 2274 | ✗ | case io::Queue::UNKNOWN: ostr << " is unknown"; break; | |
| 2275 | ✗ | case io::Queue::PENDING: ostr << " is pending"; break; | |
| 2276 | ✗ | case io::Queue::SUCCEEDED: ostr << " succeeded"; break; | |
| 2277 | ✗ | case io::Queue::FAILED: ostr << " failed"; break; | |
| 2278 | } | ||
| 2279 | ✗ | std::cerr << ostr.str() << "\n"; | |
| 2280 | } | ||
| 2281 | |||
| 2282 |
1/2✓ Branch 0 taken 18 times.
✗ Branch 1 not taken.
|
18 | if (status == io::Queue::SUCCEEDED) { |
| 2283 | // If the task completed successfully, verify that the output file's | ||
| 2284 | // size matches the reference file's size. | ||
| 2285 | struct stat buf; | ||
| 2286 | 18 | buf.st_size = 0; | |
| 2287 |
1/14✗ Branch 2 not taken.
✓ Branch 3 taken 18 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
|
36 | EXPECT_EQ(0, ::stat(filenames[id].c_str(), &buf)); |
| 2288 |
1/14✗ Branch 1 not taken.
✓ Branch 2 taken 18 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
|
18 | EXPECT_EQ(Index64(refFileSize), Index64(buf.st_size)); |
| 2289 | } | ||
| 2290 | |||
| 2291 |
1/2✓ Branch 0 taken 18 times.
✗ Branch 1 not taken.
|
18 | if (status == io::Queue::SUCCEEDED || status == io::Queue::FAILED) { |
| 2292 | ids.erase(id); | ||
| 2293 | } | ||
| 2294 | 18 | } | |
| 2295 | }; // struct TestAsyncHelper | ||
| 2296 | |||
| 2297 | } // unnamed namespace | ||
| 2298 | |||
| 2299 | |||
| 2300 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | TEST_F(TestFile, testAsync) |
| 2301 | { | ||
| 2302 | using namespace openvdb; | ||
| 2303 | |||
| 2304 | // Register types. | ||
| 2305 | 1 | openvdb::initialize(); | |
| 2306 | |||
| 2307 | // Create a grid. | ||
| 2308 | 1 | FloatGrid::Ptr lsGrid = createLevelSet<FloatGrid>(); | |
| 2309 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
1 | unittest_util::makeSphere(/*dim=*/Coord(100), /*ctr=*/Vec3f(50, 50, 50), /*r=*/20.0, |
| 2310 | *lsGrid, unittest_util::SPHERE_SPARSE_NARROW_BAND); | ||
| 2311 | |||
| 2312 | MetaMap fileMetadata; | ||
| 2313 |
4/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
|
3 | fileMetadata.insertMeta("author", StringMetadata("Einstein")); |
| 2314 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | fileMetadata.insertMeta("year", Int32Metadata(2013)); |
| 2315 | |||
| 2316 | 1 | GridPtrVec grids; | |
| 2317 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | grids.push_back(lsGrid); |
| 2318 |
3/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
|
2 | grids.push_back(lsGrid->deepCopy()); |
| 2319 |
3/8✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
|
2 | grids.push_back(lsGrid->deepCopy()); |
| 2320 | |||
| 2321 | size_t refFileSize = 0; | ||
| 2322 | { | ||
| 2323 | // Write a reference file without using asynchronous I/O. | ||
| 2324 | const char* filename = "testAsyncref.vdb"; | ||
| 2325 | SharedPtr<const char> scopedFile(filename, ::remove); | ||
| 2326 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | io::File f(filename); |
| 2327 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | f.write(grids, fileMetadata); |
| 2328 | |||
| 2329 | // Record the size of the reference file. | ||
| 2330 | struct stat buf; | ||
| 2331 | 1 | buf.st_size = 0; | |
| 2332 |
2/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_EQ(0, ::stat(filename, &buf)); |
| 2333 | 1 | refFileSize = buf.st_size; | |
| 2334 | } | ||
| 2335 | |||
| 2336 | { | ||
| 2337 | // Output multiple files using asynchronous I/O. | ||
| 2338 | // Use polling to get the status of the I/O tasks. | ||
| 2339 | |||
| 2340 | 1 | TestAsyncHelper helper(refFileSize); | |
| 2341 | |||
| 2342 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | io::Queue queue; |
| 2343 |
2/2✓ Branch 0 taken 9 times.
✓ Branch 1 taken 1 times.
|
10 | for (int i = 1; i < 10; ++i) { |
| 2344 |
1/2✓ Branch 1 taken 9 times.
✗ Branch 2 not taken.
|
18 | std::ostringstream ostr; |
| 2345 |
2/4✓ Branch 1 taken 9 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
|
9 | ostr << "testAsync." << i << ".vdb"; |
| 2346 | const std::string filename = ostr.str(); | ||
| 2347 |
2/4✓ Branch 1 taken 9 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
|
9 | io::Queue::Id id = queue.write(grids, io::File(filename), fileMetadata); |
| 2348 |
1/2✓ Branch 1 taken 9 times.
✗ Branch 2 not taken.
|
9 | helper.insert(id, filename); |
| 2349 | } | ||
| 2350 | |||
| 2351 | 1 | auto start = std::chrono::steady_clock::now(); | |
| 2352 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
|
2 | while (!helper.ids.empty()) { |
| 2353 | auto duration = std::chrono::duration_cast<std::chrono::seconds>( | ||
| 2354 | 1 | std::chrono::steady_clock::now() - start); | |
| 2355 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | if (size_t(duration.count()) > 60) break; // time out after 1 minute |
| 2356 | |||
| 2357 | // Wait one second for tasks to complete. | ||
| 2358 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | std::this_thread::sleep_for(std::chrono::seconds(1)); |
| 2359 | |||
| 2360 | // Poll each task in the pending map. | ||
| 2361 | std::set<io::Queue::Id> ids = helper.ids; // iterate over a copy | ||
| 2362 |
2/2✓ Branch 0 taken 9 times.
✓ Branch 1 taken 1 times.
|
10 | for (std::set<io::Queue::Id>::iterator it = ids.begin(); it != ids.end(); ++it) { |
| 2363 | 9 | const io::Queue::Id id = *it; | |
| 2364 |
1/2✓ Branch 1 taken 9 times.
✗ Branch 2 not taken.
|
9 | const io::Queue::Status status = queue.status(id); |
| 2365 |
1/2✓ Branch 1 taken 9 times.
✗ Branch 2 not taken.
|
9 | helper.validate(id, status); |
| 2366 | } | ||
| 2367 | } | ||
| 2368 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_TRUE(helper.ids.empty()); |
| 2369 |
2/18✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
|
1 | EXPECT_TRUE(queue.empty()); |
| 2370 | } | ||
| 2371 | { | ||
| 2372 | // Output multiple files using asynchronous I/O. | ||
| 2373 | // Use notifications to get the status of the I/O tasks. | ||
| 2374 | |||
| 2375 | 1 | TestAsyncHelper helper(refFileSize); | |
| 2376 | |||
| 2377 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | io::Queue queue(/*capacity=*/2); |
| 2378 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | queue.addNotifier(helper.notifier()); |
| 2379 | |||
| 2380 |
2/2✓ Branch 0 taken 9 times.
✓ Branch 1 taken 1 times.
|
10 | for (int i = 1; i < 10; ++i) { |
| 2381 |
1/2✓ Branch 1 taken 9 times.
✗ Branch 2 not taken.
|
18 | std::ostringstream ostr; |
| 2382 |
2/4✓ Branch 1 taken 9 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
|
9 | ostr << "testAsync" << i << ".vdb"; |
| 2383 | const std::string filename = ostr.str(); | ||
| 2384 |
2/4✓ Branch 1 taken 9 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
|
9 | io::Queue::Id id = queue.write(grids, io::File(filename), fileMetadata); |
| 2385 |
1/2✓ Branch 1 taken 9 times.
✗ Branch 2 not taken.
|
9 | helper.insert(id, filename); |
| 2386 | } | ||
| 2387 |
3/4✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✓ Branch 4 taken 1 times.
|
2 | while (!queue.empty()) { |
| 2388 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | std::this_thread::sleep_for(std::chrono::seconds(1)); |
| 2389 | } | ||
| 2390 | } | ||
| 2391 | { | ||
| 2392 | // Test queue timeout. | ||
| 2393 | |||
| 2394 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | io::Queue queue(/*capacity=*/1); |
| 2395 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | queue.setTimeout(0/*sec*/); |
| 2396 | |||
| 2397 | SharedPtr<const char> | ||
| 2398 | scopedFile1("testAsyncIOa.vdb", ::remove), | ||
| 2399 | scopedFile2("testAsyncIOb.vdb", ::remove); | ||
| 2400 | std::ofstream | ||
| 2401 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | file1(scopedFile1.get()), |
| 2402 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | file2(scopedFile2.get()); |
| 2403 | |||
| 2404 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
|
1 | queue.write(grids, io::Stream(file1)); |
| 2405 | |||
| 2406 | // With the queue length restricted to 1 and the timeout to 0 seconds, | ||
| 2407 | // the next write() call should time out immediately with an exception. | ||
| 2408 | // (It is possible, though highly unlikely, for the previous task to complete | ||
| 2409 | // in time for this write() to actually succeed.) | ||
| 2410 |
6/24✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 27 taken 1 times.
✗ Branch 28 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 32 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
|
3 | EXPECT_THROW(queue.write(grids, io::Stream(file2)), openvdb::RuntimeError); |
| 2411 | |||
| 2412 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
|
1 | while (!queue.empty()) { |
| 2413 | ✗ | std::this_thread::sleep_for(std::chrono::seconds(1)); | |
| 2414 | } | ||
| 2415 | } | ||
| 2416 | 1 | } | |
| 2417 | |||
| 2418 | |||
| 2419 | #ifdef OPENVDB_USE_BLOSC | ||
| 2420 | // This tests for a data corruption bug that existed in versions of Blosc prior to 1.5.0 | ||
| 2421 | // (see https://github.com/Blosc/c-blosc/pull/63). | ||
| 2422 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | TEST_F(TestFile, testBlosc) |
| 2423 | { | ||
| 2424 | 1 | openvdb::initialize(); | |
| 2425 | |||
| 2426 | 1 | const unsigned char rawdata[] = { | |
| 2427 | 0x93, 0xb0, 0x49, 0xaf, 0x62, 0xad, 0xe3, 0xaa, 0xe4, 0xa5, 0x43, 0x20, 0x24, | ||
| 2428 | 0x29, 0xc9, 0xaf, 0xee, 0xad, 0x0b, 0xac, 0x3d, 0xa8, 0x1f, 0x99, 0x53, 0x27, | ||
| 2429 | 0xb6, 0x2b, 0x16, 0xb0, 0x5f, 0xae, 0x89, 0xac, 0x51, 0xa9, 0xfc, 0xa1, 0xc9, | ||
| 2430 | 0x24, 0x59, 0x2a, 0x2f, 0x2d, 0xb4, 0xae, 0xeb, 0xac, 0x2f, 0xaa, 0xec, 0xa4, | ||
| 2431 | 0x53, 0x21, 0x31, 0x29, 0x8f, 0x2c, 0x8e, 0x2e, 0x31, 0xad, 0xd6, 0xaa, 0x6d, | ||
| 2432 | 0xa6, 0xad, 0x1b, 0x3e, 0x28, 0x0a, 0x2c, 0xfd, 0x2d, 0xf8, 0x2f, 0x45, 0xab, | ||
| 2433 | 0x81, 0xa7, 0x1f, 0x95, 0x02, 0x27, 0x3d, 0x2b, 0x85, 0x2d, 0x75, 0x2f, 0xb6, | ||
| 2434 | 0x30, 0x13, 0xa8, 0xb2, 0x9c, 0xf3, 0x25, 0x9c, 0x2a, 0x28, 0x2d, 0x0b, 0x2f, | ||
| 2435 | 0x7b, 0x30, 0x68, 0x9e, 0x51, 0x25, 0x31, 0x2a, 0xe6, 0x2c, 0xbc, 0x2e, 0x4e, | ||
| 2436 | 0x30, 0x5a, 0xb0, 0xe6, 0xae, 0x0e, 0xad, 0x59, 0xaa, 0x08, 0xa5, 0x89, 0x21, | ||
| 2437 | 0x59, 0x29, 0xb0, 0x2c, 0x57, 0xaf, 0x8c, 0xad, 0x6f, 0xab, 0x65, 0xa7, 0xd3, | ||
| 2438 | 0x12, 0xf5, 0x27, 0xeb, 0x2b, 0xf6, 0x2d, 0xee, 0xad, 0x27, 0xac, 0xab, 0xa8, | ||
| 2439 | 0xb1, 0x9f, 0xa2, 0x25, 0xaa, 0x2a, 0x4a, 0x2d, 0x47, 0x2f, 0x7b, 0xac, 0x6d, | ||
| 2440 | 0xa9, 0x45, 0xa3, 0x73, 0x23, 0x9d, 0x29, 0xb7, 0x2c, 0xa8, 0x2e, 0x51, 0x30, | ||
| 2441 | 0xf7, 0xa9, 0xec, 0xa4, 0x79, 0x20, 0xc5, 0x28, 0x3f, 0x2c, 0x24, 0x2e, 0x09, | ||
| 2442 | 0x30, 0xc8, 0xa5, 0xb1, 0x1c, 0x23, 0x28, 0xc3, 0x2b, 0xba, 0x2d, 0x9c, 0x2f, | ||
| 2443 | 0xc3, 0x30, 0x44, 0x18, 0x6e, 0x27, 0x3d, 0x2b, 0x6b, 0x2d, 0x40, 0x2f, 0x8f, | ||
| 2444 | 0x30, 0x02, 0x27, 0xed, 0x2a, 0x36, 0x2d, 0xfe, 0x2e, 0x68, 0x30, 0x66, 0xae, | ||
| 2445 | 0x9e, 0xac, 0x96, 0xa9, 0x7c, 0xa3, 0xa9, 0x23, 0xc5, 0x29, 0xd8, 0x2c, 0xd7, | ||
| 2446 | 0x2e, 0x0e, 0xad, 0x90, 0xaa, 0xe4, 0xa5, 0xf8, 0x1d, 0x82, 0x28, 0x2b, 0x2c, | ||
| 2447 | 0x1e, 0x2e, 0x0c, 0x30, 0x53, 0xab, 0x9c, 0xa7, 0xd4, 0x96, 0xe7, 0x26, 0x30, | ||
| 2448 | 0x2b, 0x7f, 0x2d, 0x6e, 0x2f, 0xb3, 0x30, 0x74, 0xa8, 0xb1, 0x9f, 0x36, 0x25, | ||
| 2449 | 0x3e, 0x2a, 0xfa, 0x2c, 0xdd, 0x2e, 0x65, 0x30, 0xfc, 0xa1, 0xe0, 0x23, 0x82, | ||
| 2450 | 0x29, 0x8f, 0x2c, 0x66, 0x2e, 0x23, 0x30, 0x2d, 0x22, 0xfb, 0x28, 0x3f, 0x2c, | ||
| 2451 | 0x0a, 0x2e, 0xde, 0x2f, 0xaa, 0x28, 0x0a, 0x2c, 0xc8, 0x2d, 0x8f, 0x2f, 0xb0, | ||
| 2452 | 0x30, 0xde, 0x2b, 0xa0, 0x2d, 0x5a, 0x2f, 0x8f, 0x30, 0x12, 0xac, 0x9d, 0xa8, | ||
| 2453 | 0x0f, 0xa0, 0x51, 0x25, 0x66, 0x2a, 0x1b, 0x2d, 0x0b, 0x2f, 0x82, 0x30, 0x7b, | ||
| 2454 | 0xa9, 0xea, 0xa3, 0x63, 0x22, 0x3f, 0x29, 0x7b, 0x2c, 0x60, 0x2e, 0x26, 0x30, | ||
| 2455 | 0x76, 0xa5, 0xf8, 0x1d, 0x4c, 0x28, 0xeb, 0x2b, 0xce, 0x2d, 0xb0, 0x2f, 0xd3, | ||
| 2456 | 0x12, 0x1d, 0x27, 0x15, 0x2b, 0x57, 0x2d, 0x2c, 0x2f, 0x85, 0x30, 0x0e, 0x26, | ||
| 2457 | 0x74, 0x2a, 0xfa, 0x2c, 0xc3, 0x2e, 0x4a, 0x30, 0x08, 0x2a, 0xb7, 0x2c, 0x74, | ||
| 2458 | 0x2e, 0x1d, 0x30, 0x8f, 0x2c, 0x3f, 0x2e, 0xf8, 0x2f, 0x24, 0x2e, 0xd0, 0x2f, | ||
| 2459 | 0xc3, 0x30, 0xdb, 0xa6, 0xd3, 0x0e, 0x38, 0x27, 0x3d, 0x2b, 0x78, 0x2d, 0x5a, | ||
| 2460 | 0x2f, 0xa3, 0x30, 0x68, 0x9e, 0x51, 0x25, 0x31, 0x2a, 0xe6, 0x2c, 0xbc, 0x2e, | ||
| 2461 | 0x4e, 0x30, 0xa9, 0x23, 0x59, 0x29, 0x6e, 0x2c, 0x38, 0x2e, 0x06, 0x30, 0xb8, | ||
| 2462 | 0x28, 0x10, 0x2c, 0xce, 0x2d, 0x95, 0x2f, 0xb3, 0x30, 0x9b, 0x2b, 0x7f, 0x2d, | ||
| 2463 | 0x39, 0x2f, 0x7f, 0x30, 0x4a, 0x2d, 0xf8, 0x2e, 0x58, 0x30, 0xd0, 0x2e, 0x3d, | ||
| 2464 | 0x30, 0x30, 0x30, 0x53, 0x21, 0xc5, 0x28, 0x24, 0x2c, 0xef, 0x2d, 0xc3, 0x2f, | ||
| 2465 | 0xda, 0x27, 0x58, 0x2b, 0x6b, 0x2d, 0x33, 0x2f, 0x82, 0x30, 0x9c, 0x2a, 0x00, | ||
| 2466 | 0x2d, 0xbc, 0x2e, 0x41, 0x30, 0xb0, 0x2c, 0x60, 0x2e, 0x0c, 0x30, 0x1e, 0x2e, | ||
| 2467 | 0xca, 0x2f, 0xc0, 0x30, 0x95, 0x2f, 0x9f, 0x30, 0x8c, 0x30, 0x23, 0x2a, 0xc4, | ||
| 2468 | 0x2c, 0x81, 0x2e, 0x23, 0x30, 0x5a, 0x2c, 0x0a, 0x2e, 0xc3, 0x2f, 0xc3, 0x30, | ||
| 2469 | 0xad, 0x2d, 0x5a, 0x2f, 0x88, 0x30, 0x0b, 0x2f, 0x5b, 0x30, 0x3a, 0x30, 0x7f, | ||
| 2470 | 0x2d, 0x2c, 0x2f, 0x72, 0x30, 0xc3, 0x2e, 0x37, 0x30, 0x09, 0x30, 0xb6, 0x30 | ||
| 2471 | }; | ||
| 2472 | |||
| 2473 | const char* indata = reinterpret_cast<const char*>(rawdata); | ||
| 2474 | size_t inbytes = sizeof(rawdata); | ||
| 2475 | |||
| 2476 | const int | ||
| 2477 | compbufbytes = int(inbytes + BLOSC_MAX_OVERHEAD), | ||
| 2478 | decompbufbytes = int(inbytes + BLOSC_MAX_OVERHEAD); | ||
| 2479 | |||
| 2480 | std::unique_ptr<char[]> | ||
| 2481 | 1 | compresseddata(new char[compbufbytes]), | |
| 2482 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | outdata(new char[decompbufbytes]); |
| 2483 | |||
| 2484 |
2/2✓ Branch 0 taken 5 times.
✓ Branch 1 taken 1 times.
|
6 | for (int compcode = 0; compcode <= BLOSC_ZLIB; ++compcode) { |
| 2485 | 5 | char* compname = nullptr; | |
| 2486 | #if BLOSC_VERSION_MAJOR > 1 || (BLOSC_VERSION_MAJOR == 1 && BLOSC_VERSION_MINOR >= 15) | ||
| 2487 | if (0 > blosc_compcode_to_compname(compcode, const_cast<const char**>(&compname))) | ||
| 2488 | #else | ||
| 2489 |
2/4✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 5 times.
|
5 | if (0 > blosc_compcode_to_compname(compcode, &compname)) |
| 2490 | #endif | ||
| 2491 | ✗ | continue; | |
| 2492 | /// @todo This changes the compressor setting globally. | ||
| 2493 |
2/4✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 5 times.
|
5 | if (blosc_set_compressor(compname) < 0) continue; |
| 2494 | |||
| 2495 |
2/2✓ Branch 0 taken 20 times.
✓ Branch 1 taken 5 times.
|
25 | for (int typesize = 1; typesize <= 4; ++typesize) { |
| 2496 | |||
| 2497 | // Compress the data. | ||
| 2498 | 20 | ::memset(compresseddata.get(), 0, compbufbytes); | |
| 2499 |
1/2✓ Branch 1 taken 20 times.
✗ Branch 2 not taken.
|
20 | int compressedbytes = blosc_compress( |
| 2500 | /*clevel=*/9, | ||
| 2501 | /*doshuffle=*/true, | ||
| 2502 | typesize, | ||
| 2503 | /*srcsize=*/inbytes, | ||
| 2504 | /*src=*/indata, | ||
| 2505 | /*dest=*/compresseddata.get(), | ||
| 2506 | /*destsize=*/compbufbytes); | ||
| 2507 | |||
| 2508 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 20 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
20 | EXPECT_TRUE(compressedbytes > 0); |
| 2509 | |||
| 2510 | // Decompress the data. | ||
| 2511 | 20 | ::memset(outdata.get(), 0, decompbufbytes); | |
| 2512 |
1/2✓ Branch 1 taken 20 times.
✗ Branch 2 not taken.
|
20 | int outbytes = blosc_decompress( |
| 2513 | 20 | compresseddata.get(), outdata.get(), decompbufbytes); | |
| 2514 | |||
| 2515 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 20 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
|
20 | EXPECT_TRUE(outbytes > 0); |
| 2516 |
2/16✓ Branch 1 taken 20 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 20 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
|
20 | EXPECT_EQ(int(inbytes), outbytes); |
| 2517 | |||
| 2518 | // Compare original and decompressed data. | ||
| 2519 | int diff = 0; | ||
| 2520 |
2/2✓ Branch 0 taken 11440 times.
✓ Branch 1 taken 20 times.
|
11460 | for (size_t i = 0; i < inbytes; ++i) { |
| 2521 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 11440 times.
|
11440 | if (outdata[i] != indata[i]) ++diff; |
| 2522 | } | ||
| 2523 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 20 times.
|
20 | if (diff > 0) { |
| 2524 | if (diff != 0) { | ||
| 2525 | ✗ | FAIL() << "Your version of the Blosc library is most likely" | |
| 2526 | " out of date; please install the latest version. " | ||
| 2527 | ✗ | "(Earlier versions have a bug that can cause data corruption.)"; | |
| 2528 | } | ||
| 2529 | return; | ||
| 2530 | } | ||
| 2531 | } | ||
| 2532 | } | ||
| 2533 | } | ||
| 2534 | #endif | ||
| 2535 | |||
| 2536 | |||
| 2537 | void | ||
| 2538 | 1 | TestFile::testDelayedLoadMetadata() | |
| 2539 | { | ||
| 2540 | 1 | openvdb::initialize(); | |
| 2541 | |||
| 2542 | using namespace openvdb; | ||
| 2543 | |||
| 2544 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | io::File file("something.vdb2"); |
| 2545 | |||
| 2546 | // Create a level set grid. | ||
| 2547 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | auto lsGrid = createLevelSet<FloatGrid>(); |
| 2548 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
2 | lsGrid->setName("sphere"); |
| 2549 |
1/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
|
1 | unittest_util::makeSphere(/*dim=*/Coord(100), /*ctr=*/Vec3f(50, 50, 50), /*r=*/20.0, |
| 2550 | *lsGrid, unittest_util::SPHERE_SPARSE_NARROW_BAND); | ||
| 2551 | |||
| 2552 | // Write the VDB to a string stream. | ||
| 2553 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::ostringstream ostr(std::ios_base::binary); |
| 2554 | |||
| 2555 | // Create the grid descriptor out of this grid. | ||
| 2556 |
3/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
|
3 | io::GridDescriptor gd(Name("sphere"), lsGrid->type()); |
| 2557 | |||
| 2558 | // Write out the grid. | ||
| 2559 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | file.writeGrid(gd, lsGrid, ostr, /*seekable=*/true); |
| 2560 | |||
| 2561 | // Duplicate VDB string stream. | ||
| 2562 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::ostringstream ostr2(std::ios_base::binary); |
| 2563 | |||
| 2564 | { // Read back in, clip and write out again to verify metadata is rebuilt. | ||
| 2565 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
3 | std::istringstream istr(ostr.str(), std::ios_base::binary); |
| 2566 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | io::setVersion(istr, file.libraryVersion(), file.fileVersion()); |
| 2567 | |||
| 2568 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | io::GridDescriptor gd2; |
| 2569 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridBase::Ptr grid = gd2.read(istr); |
| 2570 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd2.seekToGrid(istr); |
| 2571 | |||
| 2572 | 1 | const BBoxd clipBbox(Vec3d(-10.0,-10.0,-10.0), Vec3d(10.0,10.0,10.0)); | |
| 2573 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
2 | io::Archive::readGrid(grid, gd2, istr, clipBbox); |
| 2574 | |||
| 2575 | // Verify clipping is working as expected. | ||
| 2576 |
5/24✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
|
2 | EXPECT_TRUE(grid->baseTreePtr()->leafCount() < lsGrid->tree().leafCount()); |
| 2577 | |||
| 2578 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
|
2 | file.writeGrid(gd, grid, ostr2, /*seekable=*/true); |
| 2579 | } | ||
| 2580 | |||
| 2581 | // Since the input is only a fragment of a VDB file (in particular, | ||
| 2582 | // it doesn't have a header), set the file format version number explicitly. | ||
| 2583 | // On read, the delayed load metadata for OpenVDB library versions less than 6.1 | ||
| 2584 | // should be removed to ensure correctness as it possible for the metadata to | ||
| 2585 | // have been treated as unknown and blindly copied over when read and re-written | ||
| 2586 | // using this library version resulting in out-of-sync metadata. | ||
| 2587 | |||
| 2588 | // By default, DelayedLoadMetadata is dropped from the grid during read so | ||
| 2589 | // as not to be exposed to the user. | ||
| 2590 | |||
| 2591 | { // read using current library version | ||
| 2592 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
3 | std::istringstream istr(ostr2.str(), std::ios_base::binary); |
| 2593 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | io::setVersion(istr, file.libraryVersion(), file.fileVersion()); |
| 2594 | |||
| 2595 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | io::GridDescriptor gd2; |
| 2596 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridBase::Ptr grid = gd2.read(istr); |
| 2597 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd2.seekToGrid(istr); |
| 2598 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | io::Archive::readGrid(grid, gd2, istr); |
| 2599 | |||
| 2600 |
3/22✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
|
1 | EXPECT_TRUE(!((*grid)[GridBase::META_FILE_DELAYED_LOAD])); |
| 2601 | } | ||
| 2602 | |||
| 2603 | // To test the version mechanism, a stream metadata object is created with | ||
| 2604 | // a non-zero test value and set on the input stream. This disables the | ||
| 2605 | // behaviour where the DelayedLoadMetadata is dropped from the grid. | ||
| 2606 | |||
| 2607 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | io::StreamMetadata::Ptr streamMetadata(new io::StreamMetadata); |
| 2608 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | streamMetadata->__setTest(uint32_t(1)); |
| 2609 | |||
| 2610 | { // read using current library version | ||
| 2611 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
3 | std::istringstream istr(ostr2.str(), std::ios_base::binary); |
| 2612 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | io::setVersion(istr, file.libraryVersion(), file.fileVersion()); |
| 2613 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | io::setStreamMetadataPtr(istr, streamMetadata, /*transfer=*/false); |
| 2614 | |||
| 2615 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | io::GridDescriptor gd2; |
| 2616 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridBase::Ptr grid = gd2.read(istr); |
| 2617 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd2.seekToGrid(istr); |
| 2618 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | io::Archive::readGrid(grid, gd2, istr); |
| 2619 | |||
| 2620 |
2/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
2 | EXPECT_TRUE(((*grid)[GridBase::META_FILE_DELAYED_LOAD])); |
| 2621 | } | ||
| 2622 | |||
| 2623 | { // read using library version of 5.0 | ||
| 2624 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
3 | std::istringstream istr(ostr2.str(), std::ios_base::binary); |
| 2625 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | io::setVersion(istr, VersionId(5,0), file.fileVersion()); |
| 2626 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | io::setStreamMetadataPtr(istr, streamMetadata, /*transfer=*/false); |
| 2627 | |||
| 2628 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | io::GridDescriptor gd2; |
| 2629 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridBase::Ptr grid = gd2.read(istr); |
| 2630 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd2.seekToGrid(istr); |
| 2631 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | io::Archive::readGrid(grid, gd2, istr); |
| 2632 | |||
| 2633 |
3/22✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
|
1 | EXPECT_TRUE(!((*grid)[GridBase::META_FILE_DELAYED_LOAD])); |
| 2634 | } | ||
| 2635 | |||
| 2636 | { // read using library version of 4.9 | ||
| 2637 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
3 | std::istringstream istr(ostr2.str(), std::ios_base::binary); |
| 2638 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | io::setVersion(istr, VersionId(4,9), file.fileVersion()); |
| 2639 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | io::setStreamMetadataPtr(istr, streamMetadata, /*transfer=*/false); |
| 2640 | |||
| 2641 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | io::GridDescriptor gd2; |
| 2642 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridBase::Ptr grid = gd2.read(istr); |
| 2643 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd2.seekToGrid(istr); |
| 2644 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | io::Archive::readGrid(grid, gd2, istr); |
| 2645 | |||
| 2646 |
3/22✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
|
1 | EXPECT_TRUE(!((*grid)[GridBase::META_FILE_DELAYED_LOAD])); |
| 2647 | } | ||
| 2648 | |||
| 2649 | { // read using library version of 6.1 | ||
| 2650 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
3 | std::istringstream istr(ostr2.str(), std::ios_base::binary); |
| 2651 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | io::setVersion(istr, VersionId(6,1), file.fileVersion()); |
| 2652 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | io::setStreamMetadataPtr(istr, streamMetadata, /*transfer=*/false); |
| 2653 | |||
| 2654 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | io::GridDescriptor gd2; |
| 2655 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridBase::Ptr grid = gd2.read(istr); |
| 2656 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd2.seekToGrid(istr); |
| 2657 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | io::Archive::readGrid(grid, gd2, istr); |
| 2658 | |||
| 2659 |
3/22✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
|
1 | EXPECT_TRUE(!((*grid)[GridBase::META_FILE_DELAYED_LOAD])); |
| 2660 | } | ||
| 2661 | |||
| 2662 | { // read using library version of 6.2 | ||
| 2663 |
2/6✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
|
3 | std::istringstream istr(ostr2.str(), std::ios_base::binary); |
| 2664 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | io::setVersion(istr, VersionId(6,2), file.fileVersion()); |
| 2665 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | io::setStreamMetadataPtr(istr, streamMetadata, /*transfer=*/false); |
| 2666 | |||
| 2667 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | io::GridDescriptor gd2; |
| 2668 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridBase::Ptr grid = gd2.read(istr); |
| 2669 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | gd2.seekToGrid(istr); |
| 2670 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | io::Archive::readGrid(grid, gd2, istr); |
| 2671 | |||
| 2672 |
2/20✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
2 | EXPECT_TRUE(((*grid)[GridBase::META_FILE_DELAYED_LOAD])); |
| 2673 | } | ||
| 2674 | |||
| 2675 | 1 | remove("something.vdb2"); | |
| 2676 | 1 | } | |
| 2677 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | TEST_F(TestFile, testDelayedLoadMetadata) { testDelayedLoadMetadata(); } |
| 2678 | |||
| 2679 |