Skip to content

Commit e2cdab4

Browse files
authored
Merge pull request #4642 from cookpa/fix_niftiio_test_path
BUG: Fix path to write itkNiftiImageIOTest14 data
2 parents 4926c2f + 21b74f0 commit e2cdab4

File tree

1 file changed

+19
-18
lines changed

1 file changed

+19
-18
lines changed

Modules/IO/NIFTI/test/itkNiftiImageIOTest14.cxx

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ itkNiftiImageIOTest14(int argc, char * argv[])
9090
}
9191
}
9292

93-
const char * output_test_fn = "xyzt_units_output_check.nii";
93+
const std::string output_test_fn = std::string(test_dir) + "/xyzt_units_output_check.nii";
9494

9595
// set the origin of time to a non-zero value
9696
auto newOrigin = ImageType::PointType();
@@ -100,15 +100,16 @@ itkNiftiImageIOTest14(int argc, char * argv[])
100100
newOrigin[3] = 2.0;
101101
test_image->SetOrigin(newOrigin);
102102

103-
itk::IOTestHelper::WriteImage<ImageType, itk::NiftiImageIO>(test_image, std::string(output_test_fn));
103+
itk::IOTestHelper::WriteImage<ImageType, itk::NiftiImageIO>(test_image, output_test_fn);
104104

105-
bool fileHasCorrectXYZTTUnits = false;
106-
bool fileHasCorrectTimeOrigin = false;
105+
bool metadataHasCorrectXYZTTUnits = false;
106+
bool metadataHasCorrectToffset = false;
107+
bool imageHasCorrectTimeOrigin = false;
107108

108109
try
109110
{
110111
// read the image back in
111-
ImageType::Pointer image_from_disk = itk::IOTestHelper::ReadImage<ImageType>(std::string(output_test_fn));
112+
ImageType::Pointer image_from_disk = itk::IOTestHelper::ReadImage<ImageType>(output_test_fn);
112113

113114
// check the metadata for xyzt_units and toffset
114115
itk::MetaDataDictionary & dictionary = image_from_disk->GetMetaDataDictionary();
@@ -118,52 +119,52 @@ itkNiftiImageIOTest14(int argc, char * argv[])
118119
{
119120
std::cerr << "toffset not found in metadata" << std::endl;
120121
}
121-
if (!itk::Math::FloatAlmostEqual(std::stod(toffset), 2.0, 4, 1e-6))
122+
if (itk::Math::FloatAlmostEqual(std::stod(toffset), 2.0, 4, 1e-6))
122123
{
123-
fileHasCorrectTimeOrigin = true;
124+
metadataHasCorrectToffset = true;
124125
}
125126
else
126127
{
127-
std::cerr << "toffset not set correctly in metadata" << std::endl;
128-
fileHasCorrectTimeOrigin = false;
128+
std::cerr << "toffset: " << std::stod(toffset) << " is not set correctly in metadata" << std::endl;
129+
metadataHasCorrectToffset = false;
129130
}
130131

131132
auto read_origin = test_image->GetOrigin();
132133

133-
if (!itk::Math::FloatAlmostEqual(read_origin[3], 2.0, 4, 1e-6))
134+
if (itk::Math::FloatAlmostEqual(read_origin[3], 2.0, 4, 1e-6))
134135
{
135-
std::cerr << "Time origin not read back correctly from toffset field" << std::endl;
136-
fileHasCorrectTimeOrigin = false;
136+
imageHasCorrectTimeOrigin = true;
137137
}
138138
else
139139
{
140-
fileHasCorrectTimeOrigin = true;
140+
std::cerr << "Time origin not read back correctly from toffset field" << std::endl;
141+
imageHasCorrectTimeOrigin = false;
141142
}
142143

143-
144144
std::string xyzt_units;
145145
if (!itk::ExposeMetaData<std::string>(dictionary, "xyzt_units", xyzt_units))
146146
{
147147
std::cerr << "xyzt_units not found in metadata" << std::endl;
148148
}
149149
if (xyzt_units == "10")
150150
{
151-
fileHasCorrectXYZTTUnits = true;
151+
metadataHasCorrectXYZTTUnits = true;
152152
}
153153
else
154154
{
155155
std::cerr << "xyzt_units not set correctly in metadata" << std::endl;
156-
fileHasCorrectXYZTTUnits = false;
156+
metadataHasCorrectXYZTTUnits = false;
157157
}
158158
}
159159
catch (...)
160160
{
161161
std::cerr << "Exception caught while reading image back in" << std::endl;
162+
throw;
162163
}
163164

164-
itk::IOTestHelper::Remove(output_test_fn);
165+
itk::IOTestHelper::Remove(output_test_fn.c_str());
165166

166-
if (fileHasCorrectXYZTTUnits && fileHasCorrectTimeOrigin)
167+
if (metadataHasCorrectXYZTTUnits && metadataHasCorrectToffset && imageHasCorrectTimeOrigin)
167168
{
168169
return EXIT_SUCCESS;
169170
}

0 commit comments

Comments
 (0)