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