4 #include <VoxelFileParser.h>
47 std::string vfPath =
testDir +
"semitransparent_voxels.vox";
49 std::vector<std::shared_ptr<DetailedVoxel>> dvoxels = vfp.
parseDetailed(
54 if(dvoxels.size()!=36)
return false;
55 std::shared_ptr<DetailedVoxel> dv;
56 double xDiff, yDiff, zDiff;
59 int EXPECTED_nbEchos[36] = {
60 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
61 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
62 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
65 int EXPECTED_nbSampling[36] = {
66 49, 120, 169, 180, 153, 139, 302, 216, 116, 38,
67 35, 153, 168, 124, 253, 219, 69, 69, 69, 216,
68 116, 38, 35, 153, 168, 124, 253, 219, 69, 50,
69 16, 8, 38, 54, 174, 48
73 for(
size_t i = 0 ; i < dvoxels.size() ; i++){
75 if(dv->getNbEchos() != EXPECTED_nbEchos[i])
return false;
76 if(dv->getNbSampling() != EXPECTED_nbSampling[i])
return false;
80 double EXPECTED_PadBVTotal[36] = {
81 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
82 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
83 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
86 double EXPECTED_angleMean[36] = {
87 89.7859174, 89.9096456, 89.6270244, 89.3006538, 88.9270184,
88 88.6899252, 88.3412947, 88.0299087, 87.6877344, 87.3695616,
89 87.120519, 86.7490226, 86.382687, 86.0816272, 85.7616811,
90 85.4599773, 85.1357778, 85.1357778, 85.1357778, 88.0299087,
91 87.6877344, 87.3695616, 87.120519, 86.7490226, 86.382687,
92 86.0816272, 85.7616811, 85.4599773, 85.1357778, 84.7967107,
93 84.606863, 84.2140568, 83.8143775, 83.5161812, 83.234543,
96 double EXPECTED_bsPotential[36] = {
97 0.1843913, 0.1772976, 0.1854843, 0.1794923, 0.186054,
98 0.180072, 0.1877376, 0.1861319, 0.1861689, 0.1845732,
99 0.1884445, 0.1901379, 0.1885587, 0.1875307, 0.1897892,
100 0.1915078, 0.1910439, 0.1910439, 0.1910439, 0.1861319,
101 0.1861689, 0.1845732, 0.1884445, 0.1901379, 0.1885587,
102 0.1875307, 0.1897892, 0.1915078, 0.1910439, 0.1889422,
103 0.1939671, 0.1940688, 0.1952733, 0.1931918, 0.1982526,
106 double EXPECTED_x[36] = {
110 15.0, 15.0, 15.0, 15.0,
111 15.0, 15.0, 15.0, 15.0,
112 15.0, 15.0, 15.0, 15.0,
113 25.0, 25.0, 25.0, 25.0,
114 25.0, 25.0, 25.0, 25.0,
115 25.0, 25.0, 25.0, 25.0
117 double EXPECTED_y[36] = {
119 15.0, 15.0, 15.0, 15.0,
120 25.0, 25.0, 25.0, 25.0,
122 15.0, 15.0, 15.0, 15.0,
123 25.0, 25.0, 25.0, 25.0,
125 15.0, 15.0, 15.0, 15.0,
126 25.0, 25.0, 25.0, 25.0
128 double EXPECTED_z[36] = {
129 5.0, 15.0, 25.0, 35.0,
130 5.0, 15.0, 25.0, 35.0,
131 5.0, 15.0, 25.0, 35.0,
132 5.0, 15.0, 25.0, 35.0,
133 5.0, 15.0, 25.0, 35.0,
134 5.0, 15.0, 25.0, 35.0,
135 5.0, 15.0, 25.0, 35.0,
136 5.0, 15.0, 25.0, 35.0,
137 5.0, 15.0, 25.0, 35.0
141 for(
size_t i = 0 ; i < dvoxels.size() ; i++){
143 if((*dv)[0] != EXPECTED_PadBVTotal[i])
return false;
144 if((*dv)[1] != EXPECTED_angleMean[i])
return false;
145 if((*dv)[
"bsPotential"] != EXPECTED_bsPotential[i])
return false;
146 xDiff = dv->getCentroid().x - EXPECTED_x[i];
147 if(xDiff < -eps || xDiff > eps)
return false;
148 yDiff = dv->getCentroid().y - EXPECTED_y[i];
149 if(yDiff < -eps || yDiff > eps)
return false;
150 zDiff = dv->getCentroid().z - EXPECTED_z[i];
151 if(zDiff < -eps || zDiff > eps)
return false;
152 if(dv->halfSize != 5.0)
return false;
BaseTest class.
Definition: BaseTest.h:20
Test for voxel parsing.
Definition: VoxelParsingTest.h:14
VoxelParsingTest(std::string testDir="data/test/")
Constructor for voxel parsing test.
Definition: VoxelParsingTest.h:31
bool run() override
Definition: VoxelParsingTest.h:45
std::string testDir
Where required test files are stored. For VoxelParsingTest it is required that a file named semitrans...
Definition: VoxelParsingTest.h:24
Class for parsing voxel files.
Definition: VoxelFileParser.h:19
std::vector< std::shared_ptr< DetailedVoxel > > parseDetailed(std::string const &path, size_t numHeaderLines=2, bool const exactFormat=true, bool const discardNullPad=false, std::string const separator=" ")
Parse detailed voxels specified at file located at given path.
Definition: VoxelFileParser.cpp:7