Skip to content

Commit

Permalink
ENH: Extend OutputTransformParameterFileFormat unit test
Browse files Browse the repository at this point in the history
Using TransformixFilter to check the output from itkElastixRegistrationMethod.
  • Loading branch information
N-Dekker committed Feb 14, 2025
1 parent 8e8a82b commit f3f213a
Showing 1 changed file with 23 additions and 12 deletions.
35 changes: 23 additions & 12 deletions Core/Main/GTesting/itkElastixRegistrationMethodGTest.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -2642,29 +2642,40 @@ GTEST_TEST(itkElastixRegistrationMethod, OutputTransformParameterFileFormat)
registration.SetMovingImage(&image);
registration.SetParameterObject(&parameterObject);

elx::ParameterObject::ParameterMapType parameterMap{ // Parameters in alphabetic order:
{ "ImageSampler", { "Full" } },
{ "MaximumNumberOfIterations", { "2" } },
{ "Metric", { "AdvancedNormalizedCorrelation" } },
{ "Optimizer", { "AdaptiveStochasticGradientDescent" } },
{ "Transform", { "TranslationTransform" } }
};

const auto check = [&parameterMap, &parameterObject, &registration, rootOutputDirectoryPath](
const auto check = [&parameterObject, &registration, rootOutputDirectoryPath](
const std::string & outputTransformParameterFileFormat,
const std::string & expectedTransformParameterFileExtension) {
const std::string outputDirectoryPath = rootOutputDirectoryPath + "/" + outputTransformParameterFileFormat;
itk::FileTools::CreateDirectory(outputDirectoryPath);

registration.SetOutputDirectory(outputDirectoryPath);
parameterMap["OutputTransformParameterFileFormat"] = { outputTransformParameterFileFormat };

elx::ParameterObject::ParameterMapType parameterMap{
// Parameters in alphabetic order:
{ "ImageSampler", { "Full" } },
{ "MaximumNumberOfIterations", { "2" } },
{ "Metric", { "AdvancedNormalizedCorrelation" } },
{ "Optimizer", { "AdaptiveStochasticGradientDescent" } },
{ "OutputTransformParameterFileFormat", { outputTransformParameterFileFormat } },
{ "Transform", { "TranslationTransform" } }
};

parameterObject.SetParameterMap(parameterMap);
registration.Update();

const std::string transformParameterFileName =
outputDirectoryPath + "/TransformParameters.0" + expectedTransformParameterFileExtension;

EXPECT_TRUE(itksys::SystemTools::FileExists(outputDirectoryPath + "/TransformParameters.0" +
expectedTransformParameterFileExtension));

elx::DefaultConstruct<itk::TransformixFilter<ImageType>> transformix{};
transformix.SetTransformParameterFileName(transformParameterFileName);
return itk::Deref(transformix.GetTransformParameterObject()).GetParameterMaps();
};

check("TOML", ".toml");
check("txt", ".txt");
const ParameterMapVectorType parameterMapsFromToml = check("TOML", ".toml");
const ParameterMapVectorType parameterMapsFromText = check("txt", ".txt");

EXPECT_EQ(parameterMapsFromToml, parameterMapsFromText);
}

0 comments on commit f3f213a

Please # to comment.