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/Stream.h> | ||
6 | #include <openvdb/Metadata.h> | ||
7 | #include <openvdb/math/Maps.h> | ||
8 | #include <openvdb/math/Transform.h> | ||
9 | #include <openvdb/version.h> | ||
10 | #include <openvdb/openvdb.h> | ||
11 | #include "gtest/gtest.h" | ||
12 | #include <cstdio> // for remove() | ||
13 | #include <fstream> | ||
14 | |||
15 | #define ASSERT_DOUBLES_EXACTLY_EQUAL(a, b) \ | ||
16 | EXPECT_NEAR((a), (b), /*tolerance=*/0.0); | ||
17 | |||
18 | |||
19 | 3 | class TestStream: public ::testing::Test | |
20 | { | ||
21 | public: | ||
22 | void SetUp() override; | ||
23 | void TearDown() override; | ||
24 | |||
25 | void testFileReadFromStream(); | ||
26 | |||
27 | protected: | ||
28 | static openvdb::GridPtrVecPtr createTestGrids(openvdb::MetaMap::Ptr&); | ||
29 | static void verifyTestGrids(openvdb::GridPtrVecPtr, openvdb::MetaMap::Ptr); | ||
30 | }; | ||
31 | |||
32 | |||
33 | //////////////////////////////////////// | ||
34 | |||
35 | |||
36 | void | ||
37 | 3 | TestStream::SetUp() | |
38 | { | ||
39 | 3 | openvdb::uninitialize(); | |
40 | |||
41 | 3 | openvdb::Int32Grid::registerGrid(); | |
42 | 3 | openvdb::FloatGrid::registerGrid(); | |
43 | |||
44 | 3 | openvdb::StringMetadata::registerType(); | |
45 | 3 | openvdb::Int32Metadata::registerType(); | |
46 | 3 | openvdb::Int64Metadata::registerType(); | |
47 | 3 | openvdb::Vec3IMetadata::registerType(); | |
48 | 3 | openvdb::io::DelayedLoadMetadata::registerType(); | |
49 | |||
50 | // Register maps | ||
51 | 3 | openvdb::math::MapRegistry::clear(); | |
52 | 3 | openvdb::math::AffineMap::registerMap(); | |
53 | 3 | openvdb::math::ScaleMap::registerMap(); | |
54 | 3 | openvdb::math::UniformScaleMap::registerMap(); | |
55 | 3 | openvdb::math::TranslationMap::registerMap(); | |
56 | 3 | openvdb::math::ScaleTranslateMap::registerMap(); | |
57 | 3 | openvdb::math::UniformScaleTranslateMap::registerMap(); | |
58 | 3 | openvdb::math::NonlinearFrustumMap::registerMap(); | |
59 | 3 | } | |
60 | |||
61 | |||
62 | void | ||
63 | 3 | TestStream::TearDown() | |
64 | { | ||
65 | 3 | openvdb::uninitialize(); | |
66 | 3 | } | |
67 | |||
68 | |||
69 | //////////////////////////////////////// | ||
70 | |||
71 | |||
72 | openvdb::GridPtrVecPtr | ||
73 | 3 | TestStream::createTestGrids(openvdb::MetaMap::Ptr& metadata) | |
74 | { | ||
75 | using namespace openvdb; | ||
76 | |||
77 | // Create trees | ||
78 |
1/2✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
|
3 | Int32Tree::Ptr tree1(new Int32Tree(1)); |
79 |
2/6✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 3 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
|
6 | FloatTree::Ptr tree2(new FloatTree(2.0)); |
80 | |||
81 | // Set some values | ||
82 |
2/4✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 5 not taken.
|
6 | tree1->setValue(Coord(0, 0, 0), 5); |
83 |
2/4✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 5 not taken.
|
6 | tree1->setValue(Coord(100, 0, 0), 6); |
84 |
2/4✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 5 not taken.
|
6 | tree2->setValue(Coord(0, 0, 0), 10); |
85 |
1/2✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
|
6 | tree2->setValue(Coord(0, 100, 0), 11); |
86 | |||
87 | // Create grids | ||
88 | GridBase::Ptr | ||
89 |
2/6✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 3 times.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
6 | grid1 = createGrid(tree1), |
90 |
2/6✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 3 times.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
6 | grid2 = createGrid(tree1), // instance of grid1 |
91 |
3/8✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 3 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 3 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
|
6 | grid3 = createGrid(tree2); |
92 |
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 | grid1->setName("density"); |
93 |
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 | grid2->setName("density_copy"); |
94 |
2/4✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 5 not taken.
|
3 | grid3->setName("temperature"); |
95 | |||
96 | // Create transforms | ||
97 |
1/2✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
|
3 | math::Transform::Ptr trans1 = math::Transform::createLinearTransform(0.1); |
98 |
1/2✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
|
3 | math::Transform::Ptr trans2 = math::Transform::createLinearTransform(0.1); |
99 |
1/2✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
|
6 | grid1->setTransform(trans1); |
100 |
1/2✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
|
6 | grid2->setTransform(trans2); |
101 |
1/2✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
|
3 | grid3->setTransform(trans2); |
102 | |||
103 |
2/4✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 5 not taken.
|
3 | metadata.reset(new MetaMap); |
104 |
4/8✓ 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.
✓ Branch 12 taken 3 times.
✗ Branch 13 not taken.
|
9 | metadata->insertMeta("author", StringMetadata("Einstein")); |
105 |
2/6✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
|
3 | metadata->insertMeta("year", Int32Metadata(2009)); |
106 | |||
107 |
1/2✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
|
3 | GridPtrVecPtr grids(new GridPtrVec); |
108 |
1/2✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
|
3 | grids->push_back(grid1); |
109 |
1/2✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
|
3 | grids->push_back(grid2); |
110 |
1/2✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
|
3 | grids->push_back(grid3); |
111 | |||
112 | 3 | return grids; | |
113 | } | ||
114 | |||
115 | |||
116 | void | ||
117 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
|
3 | TestStream::verifyTestGrids(openvdb::GridPtrVecPtr grids, openvdb::MetaMap::Ptr meta) |
118 | { | ||
119 | using namespace openvdb; | ||
120 | |||
121 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 3 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.
|
3 | EXPECT_TRUE(grids.get() != nullptr); |
122 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 3 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.
|
3 | EXPECT_TRUE(meta.get() != nullptr); |
123 | |||
124 | // Verify the metadata. | ||
125 |
1/14✗ Branch 1 not taken.
✓ Branch 2 taken 3 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.
|
3 | EXPECT_EQ(2, int(meta->metaCount())); |
126 |
4/20✓ 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.
✗ Branch 10 not taken.
✓ Branch 11 taken 3 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.
|
6 | EXPECT_EQ(std::string("Einstein"), meta->metaValue<std::string>("author")); |
127 |
4/20✓ 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.
✗ Branch 10 not taken.
✓ Branch 11 taken 3 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 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
|
3 | EXPECT_EQ(2009, meta->metaValue<int32_t>("year")); |
128 | |||
129 | // Verify the grids. | ||
130 |
1/14✗ Branch 1 not taken.
✓ Branch 2 taken 3 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.
|
3 | EXPECT_EQ(3, int(grids->size())); |
131 | |||
132 |
3/6✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 3 times.
|
6 | GridBase::Ptr grid = findGridByName(*grids, "density"); |
133 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 3 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.
|
3 | EXPECT_TRUE(grid.get() != nullptr); |
134 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
|
3 | Int32Tree::Ptr density = gridPtrCast<Int32Grid>(grid)->treePtr(); |
135 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 3 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.
|
3 | EXPECT_TRUE(density.get() != nullptr); |
136 | |||
137 | grid.reset(); | ||
138 |
3/6✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 3 times.
|
6 | grid = findGridByName(*grids, "density_copy"); |
139 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 3 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.
|
3 | EXPECT_TRUE(grid.get() != nullptr); |
140 |
3/20✓ Branch 0 taken 3 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 3 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 3 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.
|
9 | EXPECT_TRUE(gridPtrCast<Int32Grid>(grid)->treePtr().get() != nullptr); |
141 | // Verify that "density_copy" is an instance of (i.e., shares a tree with) "density". | ||
142 |
2/20✓ Branch 0 taken 3 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 3 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.
|
6 | EXPECT_EQ(density, gridPtrCast<Int32Grid>(grid)->treePtr()); |
143 | |||
144 | grid.reset(); | ||
145 |
3/6✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 3 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 3 times.
|
6 | grid = findGridByName(*grids, "temperature"); |
146 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 3 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.
|
3 | EXPECT_TRUE(grid.get() != nullptr); |
147 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
|
3 | FloatTree::Ptr temperature = gridPtrCast<FloatGrid>(grid)->treePtr(); |
148 |
1/16✗ Branch 0 not taken.
✓ Branch 1 taken 3 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.
|
3 | EXPECT_TRUE(temperature.get() != nullptr); |
149 | |||
150 |
2/16✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 3 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.
|
3 | ASSERT_DOUBLES_EXACTLY_EQUAL(5, density->getValue(Coord(0, 0, 0))); |
151 |
2/16✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 3 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.
|
3 | ASSERT_DOUBLES_EXACTLY_EQUAL(6, density->getValue(Coord(100, 0, 0))); |
152 |
2/16✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 3 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.
|
3 | ASSERT_DOUBLES_EXACTLY_EQUAL(10, temperature->getValue(Coord(0, 0, 0))); |
153 |
2/16✓ Branch 1 taken 3 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 3 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.
|
3 | ASSERT_DOUBLES_EXACTLY_EQUAL(11, temperature->getValue(Coord(0, 100, 0))); |
154 | 3 | } | |
155 | |||
156 | |||
157 | //////////////////////////////////////// | ||
158 | |||
159 | |||
160 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | TEST_F(TestStream, testWrite) |
161 | { | ||
162 | using namespace openvdb; | ||
163 | |||
164 | // Create test grids and stream them to a string. | ||
165 | 1 | MetaMap::Ptr meta; | |
166 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridPtrVecPtr grids = createTestGrids(meta); |
167 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::ostringstream ostr(std::ios_base::binary); |
168 |
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.
|
1 | io::Stream(ostr).write(*grids, *meta); |
169 | //std::ofstream file("debug.vdb2", std::ios_base::binary); | ||
170 | //file << ostr.str(); | ||
171 | |||
172 | // Stream the grids back in. | ||
173 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::istringstream is(ostr.str(), std::ios_base::binary); |
174 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | io::Stream strm(is); |
175 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | meta = strm.getMetadata(); |
176 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | grids = strm.getGrids(); |
177 | |||
178 |
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.
|
3 | verifyTestGrids(grids, meta); |
179 | 1 | } | |
180 | |||
181 | |||
182 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | TEST_F(TestStream, testRead) |
183 | { | ||
184 | using namespace openvdb; | ||
185 | |||
186 | // Create test grids and write them to a file. | ||
187 | 1 | MetaMap::Ptr meta; | |
188 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridPtrVecPtr grids = createTestGrids(meta); |
189 | const char* filename = "something.vdb2"; | ||
190 |
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.
|
1 | io::File(filename).write(*grids, *meta); |
191 | SharedPtr<const char> scopedFile(filename, ::remove); | ||
192 | |||
193 | // Stream the grids back in. | ||
194 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | std::ifstream is(filename, std::ios_base::binary); |
195 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | io::Stream strm(is); |
196 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | meta = strm.getMetadata(); |
197 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | grids = strm.getGrids(); |
198 | |||
199 |
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.
|
3 | verifyTestGrids(grids, meta); |
200 | 1 | } | |
201 | |||
202 | |||
203 | /// Stream grids to a file using io::Stream, then read the file back using io::File. | ||
204 | void | ||
205 | 1 | TestStream::testFileReadFromStream() | |
206 | { | ||
207 | using namespace openvdb; | ||
208 | |||
209 | 1 | MetaMap::Ptr meta; | |
210 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | GridPtrVecPtr grids; |
211 | |||
212 | // Create test grids and stream them to a file (and then close the file). | ||
213 | const char* filename = "something.vdb2"; | ||
214 | SharedPtr<const char> scopedFile(filename, ::remove); | ||
215 | { | ||
216 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | std::ofstream os(filename, std::ios_base::binary); |
217 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | grids = createTestGrids(meta); |
218 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
1 | io::Stream(os).write(*grids, *meta); |
219 | } | ||
220 | |||
221 | // Read the grids back in. | ||
222 |
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 | io::File file(filename); |
223 |
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(file.inputHasGridOffsets()); |
224 |
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(file.getGrids(), IoError); |
225 | |||
226 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | file.open(); |
227 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
1 | meta = file.getMetadata(); |
228 |
2/4✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
|
2 | grids = file.getGrids(); |
229 | |||
230 |
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(!file.inputHasGridOffsets()); |
231 |
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); |
232 |
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); |
233 |
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()); |
234 | |||
235 |
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.
|
3 | verifyTestGrids(grids, meta); |
236 | 1 | } | |
237 |
1/2✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
2 | TEST_F(TestStream, testFileReadFromStream) { testFileReadFromStream(); } |
238 |