GCC Code Coverage Report


Directory: ./
File: openvdb/openvdb/unittest/TestGridIO.cc
Date: 2022-07-25 17:40:05
Exec Total Coverage
Lines: 88 88 100.0%
Functions: 10 10 100.0%
Branches: 141 591 23.9%

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/openvdb.h>
6 #include <gtest/gtest.h>
7
8 #include <cstdio> // for remove()
9
10
11 4 class TestGridIO: public ::testing::Test
12 {
13 public:
14 typedef openvdb::tree::Tree<
15 openvdb::tree::RootNode<
16 openvdb::tree::InternalNode<
17 openvdb::tree::InternalNode<
18 openvdb::tree::InternalNode<
19 openvdb::tree::LeafNode<float, 2>, 3>, 4>, 5> > >
20 Float5432Tree;
21 typedef openvdb::Grid<Float5432Tree> Float5432Grid;
22
23 4 void SetUp() override { openvdb::initialize(); }
24 4 void TearDown() override { openvdb::uninitialize(); }
25
26 protected:
27 template<typename GridType> void readAllTest();
28 };
29
30
31 ////////////////////////////////////////
32
33
34 template<typename GridType>
35 void
36
1/2
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
8 TestGridIO::readAllTest()
37 {
38 using namespace openvdb;
39
40 typedef typename GridType::TreeType TreeType;
41 typedef typename TreeType::Ptr TreePtr;
42 typedef typename TreeType::ValueType ValueT;
43 typedef typename TreeType::NodeCIter NodeCIter;
44
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 const ValueT zero = zeroVal<ValueT>();
45
46 // For each level of the tree, compute a bit mask for use in converting
47 // global coordinates to node origins for nodes at that level.
48 // That is, node_origin = global_coordinates & mask[node_level].
49 std::vector<Index> mask;
50
1/2
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
8 TreeType::getNodeLog2Dims(mask);
51 const size_t height = mask.size();
52
2/2
✓ Branch 0 taken 17 times.
✓ Branch 1 taken 4 times.
42 for (size_t i = 0; i < height; ++i) {
53 Index dim = 0;
54
2/2
✓ Branch 0 taken 45 times.
✓ Branch 1 taken 17 times.
124 for (size_t j = i; j < height; ++j) dim += mask[j];
55 34 mask[i] = ~((1 << dim) - 1);
56 }
57
1/2
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
8 const Index childDim = 1 + ~(mask[0]);
58
59 // Choose sample coordinate pairs (coord0, coord1) and (coord0, coord2)
60 // that are guaranteed to lie in different children of the root node
61 // (because they are separated by more than the child node dimension).
62 const Coord
63 coord0(0, 0, 0),
64
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
8 coord1(int(1.1 * childDim), 0, 0),
65 coord2(0, int(1.1 * childDim), 0);
66
67 // Create trees.
68 TreePtr
69
2/7
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
10 tree1(new TreeType(zero + 1)),
70
2/6
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 4 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
16 tree2(new TreeType(zero + 2));
71
72 // Set some values.
73
2/4
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
16 tree1->setValue(coord0, zero + 5);
74
2/4
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
16 tree1->setValue(coord1, zero + 6);
75
2/4
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
16 tree2->setValue(coord0, zero + 10);
76
1/4
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
8 tree2->setValue(coord2, zero + 11);
77
78 // Create grids with trees and assign transforms.
79
1/2
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
8 math::Transform::Ptr trans1(math::Transform::createLinearTransform(0.1)),
80
1/2
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
8 trans2(math::Transform::createLinearTransform(0.1));
81
4/12
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 4 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
24 GridBase::Ptr grid1 = createGrid(tree1), grid2 = createGrid(tree2);
82
2/4
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
16 grid1->setTransform(trans1);
83
2/4
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
16 grid1->setName("density");
84
2/4
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
16 grid2->setTransform(trans2);
85
3/6
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 3 times.
✗ Branch 8 not taken.
16 grid2->setName("temperature");
86
87 OPENVDB_NO_FP_EQUALITY_WARNING_BEGIN
88
2/16
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 4 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.
8 EXPECT_EQ(ValueT(zero + 5), tree1->getValue(coord0));
89
2/16
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 4 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.
8 EXPECT_EQ(ValueT(zero + 6), tree1->getValue(coord1));
90
2/16
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 4 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.
8 EXPECT_EQ(ValueT(zero + 10), tree2->getValue(coord0));
91
2/16
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 4 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.
8 EXPECT_EQ(ValueT(zero + 11), tree2->getValue(coord2));
92 OPENVDB_NO_FP_EQUALITY_WARNING_END
93
94 // count[d] is the number of nodes already visited at depth d.
95 // There should be exactly two nodes at each depth (apart from the root).
96
1/4
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
8 std::vector<int> count(height, 0);
97
98 // Verify that tree1 has correct node origins.
99
2/2
✓ Branch 0 taken 30 times.
✓ Branch 1 taken 4 times.
68 for (NodeCIter iter = tree1->cbeginNode(); iter; ++iter) {
100 const Index depth = iter.getDepth();
101 const Coord expected[2] = {
102
1/2
✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
60 coord0 & mask[depth], // origin of the first node at this depth
103 60 coord1 & mask[depth] // origin of the second node at this depth
104 };
105
3/18
✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 30 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 30 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.
60 EXPECT_EQ(expected[count[depth]], iter.getCoord());
106
1/2
✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
60 ++count[depth];
107 }
108 // Verify that tree2 has correct node origins.
109
1/4
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
8 count.assign(height, 0); // reset node counts
110
2/2
✓ Branch 0 taken 30 times.
✓ Branch 1 taken 4 times.
68 for (NodeCIter iter = tree2->cbeginNode(); iter; ++iter) {
111 const Index depth = iter.getDepth();
112
1/2
✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
60 const Coord expected[2] = { coord0 & mask[depth], coord2 & mask[depth] };
113
3/18
✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 30 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 30 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.
60 EXPECT_EQ(expected[count[depth]], iter.getCoord());
114
1/2
✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
60 ++count[depth];
115 }
116
117
1/2
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
8 MetaMap::Ptr meta(new MetaMap);
118
4/8
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 8 not taken.
✓ Branch 12 taken 4 times.
✗ Branch 13 not taken.
24 meta->insertMeta("author", StringMetadata("Einstein"));
119
2/6
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
8 meta->insertMeta("year", Int32Metadata(2009));
120
121
1/2
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
8 GridPtrVecPtr grids(new GridPtrVec);
122
1/2
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
8 grids->push_back(grid1);
123
1/2
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
8 grids->push_back(grid2);
124
125 // Write grids and metadata out to a file.
126 {
127
3/6
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 8 not taken.
16 io::File vdbfile("something.vdb2");
128
1/2
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
8 vdbfile.write(*grids, *meta);
129 }
130 meta.reset();
131 grids.reset();
132
133
3/6
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 8 not taken.
24 io::File vdbfile("something.vdb2");
134
4/20
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4 times.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 4 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 4 times.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
16 EXPECT_THROW(vdbfile.getGrids(), openvdb::IoError); // file has not been opened
135
136 // Read the grids back in.
137
1/2
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
8 vdbfile.open();
138
2/18
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 4 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(vdbfile.isOpen());
139
140
1/2
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
8 grids = vdbfile.getGrids();
141
2/4
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 4 times.
16 meta = vdbfile.getMetadata();
142
143 // Ensure we have the metadata.
144
1/16
✗ Branch 0 not taken.
✓ Branch 1 taken 4 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(meta.get() != NULL);
145
2/16
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 4 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.
8 EXPECT_EQ(2, int(meta->metaCount()));
146
4/20
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 4 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.
16 EXPECT_EQ(std::string("Einstein"), meta->metaValue<std::string>("author"));
147
4/20
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 4 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(2009, meta->metaValue<int32_t>("year"));
148
149 // Ensure we got both grids.
150
1/16
✗ Branch 0 not taken.
✓ Branch 1 taken 4 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(grids.get() != NULL);
151
2/16
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 4 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.
8 EXPECT_EQ(2, int(grids->size()));
152
153 grid1.reset();
154
3/6
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 4 times.
16 grid1 = findGridByName(*grids, "density");
155
1/16
✗ Branch 0 not taken.
✓ Branch 1 taken 4 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(grid1.get() != NULL);
156
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
8 TreePtr density = gridPtrCast<GridType>(grid1)->treePtr();
157
1/16
✗ Branch 0 not taken.
✓ Branch 1 taken 4 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(density.get() != NULL);
158
159 grid2.reset();
160
3/6
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 4 times.
16 grid2 = findGridByName(*grids, "temperature");
161
1/16
✗ Branch 0 not taken.
✓ Branch 1 taken 4 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(grid2.get() != NULL);
162
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 4 times.
8 TreePtr temperature = gridPtrCast<GridType>(grid2)->treePtr();
163
1/16
✗ Branch 0 not taken.
✓ Branch 1 taken 4 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(temperature.get() != NULL);
164
165 OPENVDB_NO_FP_EQUALITY_WARNING_BEGIN
166
2/16
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 4 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.
8 EXPECT_EQ(ValueT(zero + 5), density->getValue(coord0));
167
2/16
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 4 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.
8 EXPECT_EQ(ValueT(zero + 6), density->getValue(coord1));
168
2/16
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 4 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.
8 EXPECT_EQ(ValueT(zero + 10), temperature->getValue(coord0));
169
2/16
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 4 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.
8 EXPECT_EQ(ValueT(zero + 11), temperature->getValue(coord2));
170 OPENVDB_NO_FP_EQUALITY_WARNING_END
171
172 // Check if we got the correct node origins.
173
1/2
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
8 count.assign(height, 0);
174
2/2
✓ Branch 0 taken 30 times.
✓ Branch 1 taken 4 times.
68 for (NodeCIter iter = density->cbeginNode(); iter; ++iter) {
175 const Index depth = iter.getDepth();
176
1/2
✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
60 const Coord expected[2] = { coord0 & mask[depth], coord1 & mask[depth] };
177
3/18
✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 30 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 30 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.
60 EXPECT_EQ(expected[count[depth]], iter.getCoord());
178
1/2
✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
60 ++count[depth];
179 }
180
1/4
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
8 count.assign(height, 0);
181
2/2
✓ Branch 0 taken 30 times.
✓ Branch 1 taken 4 times.
68 for (NodeCIter iter = temperature->cbeginNode(); iter; ++iter) {
182 const Index depth = iter.getDepth();
183
1/2
✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
60 const Coord expected[2] = { coord0 & mask[depth], coord2 & mask[depth] };
184
3/18
✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 30 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 30 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.
60 EXPECT_EQ(expected[count[depth]], iter.getCoord());
185
1/2
✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
60 ++count[depth];
186 }
187
188
1/2
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
8 vdbfile.close();
189
190 8 ::remove("something.vdb2");
191 8 }
192
193
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 TEST_F(TestGridIO, testReadAllBool) { readAllTest<openvdb::BoolGrid>(); }
194
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 TEST_F(TestGridIO, testReadAllFloat) { readAllTest<openvdb::FloatGrid>(); }
195
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 TEST_F(TestGridIO, testReadAllVec3S) { readAllTest<openvdb::Vec3SGrid>(); }
196
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 TEST_F(TestGridIO, testReadAllFloat5432) { Float5432Grid::registerGrid(); readAllTest<Float5432Grid>(); }
197