From 7a26d60376abbf75f63327e5390a5ed1e5625b44 Mon Sep 17 00:00:00 2001 From: "Hans J. Johnson" Date: Sat, 25 Apr 2026 17:56:53 -0500 Subject: [PATCH 1/6] ENH: Convert itkAbsImageFilterAndAdaptorTest to *GTest --- .../ImageIntensity/test/CMakeLists.txt | 8 +--- ...x => itkAbsImageFilterAndAdaptorGTest.cxx} | 45 +++---------------- 2 files changed, 7 insertions(+), 46 deletions(-) rename Modules/Filtering/ImageIntensity/test/{itkAbsImageFilterAndAdaptorTest.cxx => itkAbsImageFilterAndAdaptorGTest.cxx} (68%) diff --git a/Modules/Filtering/ImageIntensity/test/CMakeLists.txt b/Modules/Filtering/ImageIntensity/test/CMakeLists.txt index b807e9e3c79e..4f8d57ddab39 100644 --- a/Modules/Filtering/ImageIntensity/test/CMakeLists.txt +++ b/Modules/Filtering/ImageIntensity/test/CMakeLists.txt @@ -1,7 +1,6 @@ itk_module_test() set( ITKImageIntensityTests - itkAbsImageFilterAndAdaptorTest.cxx itkAcosImageFilterAndAdaptorTest.cxx itkAdaptImageFilterTest.cxx itkAdaptImageFilterTest2.cxx @@ -412,12 +411,6 @@ itk_add_test( itkTernaryMagnitudeImageFilterTest ${ITK_TEST_OUTPUT_DIR}/itkTernaryMagnitudeImageFilterTest.png ) -itk_add_test( - NAME itkAbsImageFilterAndAdaptorTest - COMMAND - ITKImageIntensityTestDriver - itkAbsImageFilterAndAdaptorTest -) itk_add_test( NAME itkMaximumImageFilterTest COMMAND @@ -821,6 +814,7 @@ itk_add_test( set( ITKImageIntensityGTests + itkAbsImageFilterAndAdaptorGTest.cxx itkArithmeticOpsFunctorsTest.cxx itkBitwiseOpsFunctorsTest.cxx ) diff --git a/Modules/Filtering/ImageIntensity/test/itkAbsImageFilterAndAdaptorTest.cxx b/Modules/Filtering/ImageIntensity/test/itkAbsImageFilterAndAdaptorGTest.cxx similarity index 68% rename from Modules/Filtering/ImageIntensity/test/itkAbsImageFilterAndAdaptorTest.cxx rename to Modules/Filtering/ImageIntensity/test/itkAbsImageFilterAndAdaptorGTest.cxx index 880a2f44a834..233a2da4c81c 100644 --- a/Modules/Filtering/ImageIntensity/test/itkAbsImageFilterAndAdaptorTest.cxx +++ b/Modules/Filtering/ImageIntensity/test/itkAbsImageFilterAndAdaptorGTest.cxx @@ -23,13 +23,10 @@ #include "itkMath.h" #include "itkSubtractImageFilter.h" #include "itkUnaryGeneratorImageFilter.h" -#include "itkTestingMacros.h" +#include "itkGTest.h" -int -itkAbsImageFilterAndAdaptorTest(int, char *[]) +TEST(AbsImageFilterAndAdaptor, ConvertedLegacyTest) { - int testStatus = EXIT_SUCCESS; - // Define the dimension of the images constexpr unsigned int ImageDimension{ 3 }; @@ -63,12 +60,10 @@ itkAbsImageFilterAndAdaptorTest(int, char *[]) // Initialize the content of Image A const double pi = std::atan(1.0) * 4.0; const double value = pi / 6.0; - std::cout << "Content of the Input " << std::endl; it.GoToBegin(); while (!it.IsAtEnd()) { it.Set(value); - std::cout << it.Get() << std::endl; ++it; } @@ -78,7 +73,7 @@ itkAbsImageFilterAndAdaptorTest(int, char *[]) // Create an Abs Filter auto filter = FilterType::New(); - ITK_EXERCISE_BASIC_OBJECT_METHODS(filter, AbsImageFilter, UnaryGeneratorImageFilter); + ITK_GTEST_EXERCISE_BASIC_OBJECT_METHODS(filter, AbsImageFilter, UnaryGeneratorImageFilter); // Connect the input images filter->SetInput(inputImage); @@ -93,27 +88,15 @@ itkAbsImageFilterAndAdaptorTest(int, char *[]) OutputIteratorType ot(outputImage, outputImage->GetRequestedRegion()); // Check the content of the result image - std::cout << "Verification of the output " << std::endl; constexpr OutputImageType::PixelType epsilon{ 1e-6 }; ot.GoToBegin(); it.GoToBegin(); while (!ot.IsAtEnd()) { - std::cout.precision(static_cast(itk::Math::Absolute(std::log10(epsilon)))); - std::cout << ot.Get() << " = "; - std::cout << itk::Math::Absolute(it.Get()) << std::endl; const InputImageType::PixelType input = it.Get(); const OutputImageType::PixelType output = ot.Get(); const OutputImageType::PixelType absolute = itk::Math::Absolute(input); - if (!itk::Math::FloatAlmostEqual(absolute, output, 10, epsilon)) - { - std::cerr.precision(static_cast(itk::Math::Absolute(std::log10(epsilon)))); - std::cerr << "Error in itkAbsImageFilterTest " << std::endl; - std::cerr << " itk::Math::Absolute(" << input << ") = " << absolute << std::endl; - std::cerr << " differs from " << output; - std::cerr << " by more than " << epsilon << std::endl; - testStatus = EXIT_FAILURE; - } + EXPECT_NEAR(absolute, output, epsilon); ++ot; ++it; } @@ -126,7 +109,7 @@ itkAbsImageFilterAndAdaptorTest(int, char *[]) auto absAdaptor = AdaptorType::New(); - ITK_EXERCISE_BASIC_OBJECT_METHODS(absAdaptor, AbsImageAdaptor, ImageAdaptor); + ITK_GTEST_EXERCISE_BASIC_OBJECT_METHODS(absAdaptor, AbsImageAdaptor, ImageAdaptor); absAdaptor->SetImage(inputImage); @@ -143,30 +126,14 @@ itkAbsImageFilterAndAdaptorTest(int, char *[]) const OutputImageType::Pointer diffImage = diffFilter->GetOutput(); // Check the content of the diff image - std::cout << "Comparing the results with those of an Adaptor" << std::endl; - std::cout << "Verification of the output " << std::endl; - // Create an iterator for going through the image output OutputIteratorType dt(diffImage, diffImage->GetRequestedRegion()); dt.GoToBegin(); while (!dt.IsAtEnd()) { - std::cout.precision(static_cast(itk::Math::Absolute(std::log10(epsilon)))); - std::cout << dt.Get() << std::endl; const OutputImageType::PixelType diff = dt.Get(); - if (!itk::Math::FloatAlmostEqual(diff, OutputImageType::PixelType{ 0 }, 10, epsilon)) - { - std::cerr.precision(static_cast(itk::Math::Absolute(std::log10(epsilon)))); - std::cerr << "Error in itkAbsImageFilterTest " << std::endl; - std::cerr << "Comparing results with Adaptors" << std::endl; - std::cerr << " difference = " << diff << std::endl; - std::cerr << " differs from 0 "; - std::cerr << " by more than " << epsilon << std::endl; - testStatus = EXIT_FAILURE; - } + EXPECT_NEAR(diff, OutputImageType::PixelType{ 0 }, epsilon); ++dt; } - - return testStatus; } From 6ea9593378d744be3f286084de025f38dbf40acc Mon Sep 17 00:00:00 2001 From: "Hans J. Johnson" Date: Sat, 25 Apr 2026 17:59:22 -0500 Subject: [PATCH 2/6] ENH: Convert itkAcosImageFilterAndAdaptorTest to *GTest --- .../ImageIntensity/test/CMakeLists.txt | 8 +---- ... => itkAcosImageFilterAndAdaptorGTest.cxx} | 32 ++++--------------- 2 files changed, 7 insertions(+), 33 deletions(-) rename Modules/Filtering/ImageIntensity/test/{itkAcosImageFilterAndAdaptorTest.cxx => itkAcosImageFilterAndAdaptorGTest.cxx} (78%) diff --git a/Modules/Filtering/ImageIntensity/test/CMakeLists.txt b/Modules/Filtering/ImageIntensity/test/CMakeLists.txt index 4f8d57ddab39..9f331382775e 100644 --- a/Modules/Filtering/ImageIntensity/test/CMakeLists.txt +++ b/Modules/Filtering/ImageIntensity/test/CMakeLists.txt @@ -1,7 +1,6 @@ itk_module_test() set( ITKImageIntensityTests - itkAcosImageFilterAndAdaptorTest.cxx itkAdaptImageFilterTest.cxx itkAdaptImageFilterTest2.cxx itkAddImageAdaptorTest.cxx @@ -487,12 +486,6 @@ itk_add_test( ITKImageIntensityTestDriver itkHistogramMatchingImageFilterTest ) -itk_add_test( - NAME itkAcosImageFilterAndAdaptorTest - COMMAND - ITKImageIntensityTestDriver - itkAcosImageFilterAndAdaptorTest -) itk_add_test( NAME itkExpNegativeImageFilterAndAdaptorTest COMMAND @@ -815,6 +808,7 @@ itk_add_test( set( ITKImageIntensityGTests itkAbsImageFilterAndAdaptorGTest.cxx + itkAcosImageFilterAndAdaptorGTest.cxx itkArithmeticOpsFunctorsTest.cxx itkBitwiseOpsFunctorsTest.cxx ) diff --git a/Modules/Filtering/ImageIntensity/test/itkAcosImageFilterAndAdaptorTest.cxx b/Modules/Filtering/ImageIntensity/test/itkAcosImageFilterAndAdaptorGTest.cxx similarity index 78% rename from Modules/Filtering/ImageIntensity/test/itkAcosImageFilterAndAdaptorTest.cxx rename to Modules/Filtering/ImageIntensity/test/itkAcosImageFilterAndAdaptorGTest.cxx index 43db521e043a..101df3223a8b 100644 --- a/Modules/Filtering/ImageIntensity/test/itkAcosImageFilterAndAdaptorTest.cxx +++ b/Modules/Filtering/ImageIntensity/test/itkAcosImageFilterAndAdaptorGTest.cxx @@ -22,13 +22,11 @@ #include "itkMath.h" #include "itkSubtractImageFilter.h" #include "itkSimpleFilterWatcher.h" -#include "itkTestingMacros.h" +#include "itkGTest.h" -int -itkAcosImageFilterAndAdaptorTest(int, char *[]) +TEST(AcosImageFilterAndAdaptor, ConvertedLegacyTest) { - // Define the dimension of the images constexpr unsigned int ImageDimension{ 3 }; @@ -75,7 +73,7 @@ itkAcosImageFilterAndAdaptorTest(int, char *[]) // Create the Filter auto filter = FilterType::New(); - ITK_EXERCISE_BASIC_OBJECT_METHODS(filter, AcosImageFilter, UnaryGeneratorImageFilter); + ITK_GTEST_EXERCISE_BASIC_OBJECT_METHODS(filter, AcosImageFilter, UnaryGeneratorImageFilter); const itk::SimpleFilterWatcher watch(filter); @@ -101,15 +99,7 @@ itkAcosImageFilterAndAdaptorTest(int, char *[]) const InputImageType::PixelType input = it.Get(); const OutputImageType::PixelType output = ot.Get(); const OutputImageType::PixelType arccosinus = std::acos(input); - if (!itk::Math::FloatAlmostEqual(arccosinus, output, 10, epsilon)) - { - std::cerr.precision(static_cast(itk::Math::Absolute(std::log10(epsilon)))); - std::cerr << "Error " << std::endl; - std::cerr << " std::acos( " << input << ") = " << arccosinus << std::endl; - std::cerr << " differs from " << output; - std::cerr << " by more than " << epsilon << std::endl; - return EXIT_FAILURE; - } + EXPECT_NEAR(arccosinus, output, epsilon); ++ot; ++it; } @@ -123,7 +113,7 @@ itkAcosImageFilterAndAdaptorTest(int, char *[]) auto acosAdaptor = AdaptorType::New(); - ITK_EXERCISE_BASIC_OBJECT_METHODS(acosAdaptor, AcosImageAdaptor, ImageAdaptor); + ITK_GTEST_EXERCISE_BASIC_OBJECT_METHODS(acosAdaptor, AcosImageAdaptor, ImageAdaptor); acosAdaptor->SetImage(inputImage); @@ -149,17 +139,7 @@ itkAcosImageFilterAndAdaptorTest(int, char *[]) while (!dt.IsAtEnd()) { const OutputImageType::PixelType diff = dt.Get(); - if (itk::Math::Absolute(diff) > epsilon) - { - std::cerr.precision(static_cast(itk::Math::Absolute(std::log10(epsilon)))); - std::cerr << "Error comparing results with Adaptors" << std::endl; - std::cerr << " difference = " << diff << std::endl; - std::cerr << " differs from 0 "; - std::cerr << " by more than " << epsilon << std::endl; - return EXIT_FAILURE; - } + EXPECT_LE(itk::Math::Absolute(diff), epsilon); ++dt; } - - return EXIT_SUCCESS; } From 3b42331c456a32527d5c8e9d975903af6dcb98b5 Mon Sep 17 00:00:00 2001 From: "Hans J. Johnson" Date: Sat, 25 Apr 2026 18:01:40 -0500 Subject: [PATCH 3/6] ENH: Convert itkAdaptImageFilterTest to itkAdaptImageFilterGTest --- .../ImageIntensity/test/CMakeLists.txt | 8 +-- ...rTest.cxx => itkAdaptImageFilterGTest.cxx} | 65 +++---------------- 2 files changed, 9 insertions(+), 64 deletions(-) rename Modules/Filtering/ImageIntensity/test/{itkAdaptImageFilterTest.cxx => itkAdaptImageFilterGTest.cxx} (77%) diff --git a/Modules/Filtering/ImageIntensity/test/CMakeLists.txt b/Modules/Filtering/ImageIntensity/test/CMakeLists.txt index 9f331382775e..be2436b5f305 100644 --- a/Modules/Filtering/ImageIntensity/test/CMakeLists.txt +++ b/Modules/Filtering/ImageIntensity/test/CMakeLists.txt @@ -1,7 +1,6 @@ itk_module_test() set( ITKImageIntensityTests - itkAdaptImageFilterTest.cxx itkAdaptImageFilterTest2.cxx itkAddImageAdaptorTest.cxx itkAddImageFilterFrameTest.cxx @@ -536,12 +535,6 @@ if(NOT ITK_LEGACY_REMOVE) itkVectorExpandImageFilterTest ) endif() -itk_add_test( - NAME itkAdaptImageFilterTest - COMMAND - ITKImageIntensityTestDriver - itkAdaptImageFilterTest -) itk_add_test( NAME itkOrImageFilterTest COMMAND @@ -809,6 +802,7 @@ set( ITKImageIntensityGTests itkAbsImageFilterAndAdaptorGTest.cxx itkAcosImageFilterAndAdaptorGTest.cxx + itkAdaptImageFilterGTest.cxx itkArithmeticOpsFunctorsTest.cxx itkBitwiseOpsFunctorsTest.cxx ) diff --git a/Modules/Filtering/ImageIntensity/test/itkAdaptImageFilterTest.cxx b/Modules/Filtering/ImageIntensity/test/itkAdaptImageFilterGTest.cxx similarity index 77% rename from Modules/Filtering/ImageIntensity/test/itkAdaptImageFilterTest.cxx rename to Modules/Filtering/ImageIntensity/test/itkAdaptImageFilterGTest.cxx index b861405cd1a8..98b16fd7f062 100644 --- a/Modules/Filtering/ImageIntensity/test/itkAdaptImageFilterTest.cxx +++ b/Modules/Filtering/ImageIntensity/test/itkAdaptImageFilterGTest.cxx @@ -38,6 +38,7 @@ #include "itkImageRegionIteratorWithIndex.h" #include "itkSimpleFilterWatcher.h" #include "itkMath.h" +#include "itkGTest.h" #include // For generate. #include // For mt19937. @@ -46,6 +47,8 @@ //------------------------------------- // Typedefs for convenience //------------------------------------- +namespace +{ using myRGBImageType = itk::Image, 2>; using myRGBIteratorType = itk::ImageRegionIteratorWithIndex; @@ -55,17 +58,10 @@ using myBlueAccessorType = itk::BluePixelAccessor; using myImageType = itk::Image; using myIteratorType = itk::ImageRegionIteratorWithIndex; +} // namespace -//------------------------- -// -// Main code -// -//------------------------- -int -itkAdaptImageFilterTest(int, char *[]) +TEST(AdaptImageFilter, ConvertedLegacyTest) { - - auto size = myRGBImageType::SizeType::Filled(2); myRGBImageType::IndexType index; @@ -99,21 +95,6 @@ itkAdaptImageFilterTest(int, char *[]) ++it1; } - // Reading the values to verify the image content - std::cout << "--- Initial image --- " << std::endl; - it1.GoToBegin(); - while (!it1.IsAtEnd()) - { - const myRGBImageType::PixelType c(it1.Get()); - std::cout << c.GetRed() << " "; - std::cout << c.GetGreen() << " "; - std::cout << c.GetBlue() << std::endl; - ++it1; - } - - - bool passed = true; - // Convert to a red image const itk::AdaptImageFilter::Pointer adaptImageToRed = itk::AdaptImageFilter::New(); @@ -123,18 +104,11 @@ itkAdaptImageFilterTest(int, char *[]) myIteratorType it(adaptImageToRed->GetOutput(), adaptImageToRed->GetOutput()->GetRequestedRegion()); - std::cout << "--- Red values --- " << std::endl; - it.GoToBegin(); it1.GoToBegin(); while (!it.IsAtEnd()) { - std::cout << it.Get() << std::endl; - if (itk::Math::NotExactlyEquals(it.Get(), it1.Get().GetRed())) - { - passed = false; - } - + EXPECT_EQ(it.Get(), it1.Get().GetRed()); ++it; ++it1; } @@ -149,18 +123,11 @@ itkAdaptImageFilterTest(int, char *[]) it = myIteratorType(adaptImageToGreen->GetOutput(), adaptImageToGreen->GetOutput()->GetRequestedRegion()); - std::cout << "--- Green values --- " << std::endl; - it.GoToBegin(); it1.GoToBegin(); while (!it.IsAtEnd()) { - std::cout << it.Get() << std::endl; - if (itk::Math::NotExactlyEquals(it.Get(), it1.Get().GetGreen())) - { - passed = false; - } - + EXPECT_EQ(it.Get(), it1.Get().GetGreen()); ++it; ++it1; } @@ -175,28 +142,12 @@ itkAdaptImageFilterTest(int, char *[]) it = myIteratorType(adaptImageToBlue->GetOutput(), adaptImageToBlue->GetOutput()->GetRequestedRegion()); - std::cout << "--- Blue values --- " << std::endl; - it.GoToBegin(); it1.GoToBegin(); while (!it.IsAtEnd()) { - std::cout << it.Get() << std::endl; - if (itk::Math::NotExactlyEquals(it.Get(), it1.Get().GetBlue())) - { - passed = false; - } - + EXPECT_EQ(it.Get(), it1.Get().GetBlue()); ++it; ++it1; } - - std::cout << std::endl; - if (passed) - { - std::cout << "AdaptImageFilterTest passed." << std::endl; - return EXIT_SUCCESS; - } - std::cerr << "AdaptImageFilterTest failed." << std::endl; - return EXIT_FAILURE; } From 85eef88032e333e1f929866dc952191b3dc182d1 Mon Sep 17 00:00:00 2001 From: "Hans J. Johnson" Date: Sat, 25 Apr 2026 18:04:08 -0500 Subject: [PATCH 4/6] ENH: Convert itkAdaptImageFilterTest2 to itkAdaptImageFilterGTest2 --- .../ImageIntensity/test/CMakeLists.txt | 8 +-- ...est2.cxx => itkAdaptImageFilterGTest2.cxx} | 67 +++---------------- 2 files changed, 10 insertions(+), 65 deletions(-) rename Modules/Filtering/ImageIntensity/test/{itkAdaptImageFilterTest2.cxx => itkAdaptImageFilterGTest2.cxx} (73%) diff --git a/Modules/Filtering/ImageIntensity/test/CMakeLists.txt b/Modules/Filtering/ImageIntensity/test/CMakeLists.txt index be2436b5f305..e631823da499 100644 --- a/Modules/Filtering/ImageIntensity/test/CMakeLists.txt +++ b/Modules/Filtering/ImageIntensity/test/CMakeLists.txt @@ -1,7 +1,6 @@ itk_module_test() set( ITKImageIntensityTests - itkAdaptImageFilterTest2.cxx itkAddImageAdaptorTest.cxx itkAddImageFilterFrameTest.cxx itkAddImageFilterTest.cxx @@ -268,12 +267,6 @@ itk_add_test( itkAndImageFilterTest ${ITK_TEST_OUTPUT_DIR}/itkAndImageFilterTest.png ) -itk_add_test( - NAME itkAdaptImageFilterTest2 - COMMAND - ITKImageIntensityTestDriver - itkAdaptImageFilterTest2 -) itk_add_test( NAME itkLogImageFilterAndAdaptorTest COMMAND @@ -803,6 +796,7 @@ set( itkAbsImageFilterAndAdaptorGTest.cxx itkAcosImageFilterAndAdaptorGTest.cxx itkAdaptImageFilterGTest.cxx + itkAdaptImageFilterGTest2.cxx itkArithmeticOpsFunctorsTest.cxx itkBitwiseOpsFunctorsTest.cxx ) diff --git a/Modules/Filtering/ImageIntensity/test/itkAdaptImageFilterTest2.cxx b/Modules/Filtering/ImageIntensity/test/itkAdaptImageFilterGTest2.cxx similarity index 73% rename from Modules/Filtering/ImageIntensity/test/itkAdaptImageFilterTest2.cxx rename to Modules/Filtering/ImageIntensity/test/itkAdaptImageFilterGTest2.cxx index e7f4700515cf..f1e509237d99 100644 --- a/Modules/Filtering/ImageIntensity/test/itkAdaptImageFilterTest2.cxx +++ b/Modules/Filtering/ImageIntensity/test/itkAdaptImageFilterGTest2.cxx @@ -35,6 +35,7 @@ #include "itkImageRegionIteratorWithIndex.h" #include "itkNthElementPixelAccessor.h" #include "itkMath.h" +#include "itkGTest.h" #include // For generate. #include // For mt19937. @@ -43,6 +44,8 @@ //------------------------------------- // Typedefs for convenience //------------------------------------- +namespace +{ using myVectorImageType = itk::Image, 2>; using myVectorIteratorType = itk::ImageRegionIteratorWithIndex; @@ -50,17 +53,10 @@ using myAccessorType = itk::NthElementPixelAccessor using myImageType = itk::Image; using myIteratorType = itk::ImageRegionIteratorWithIndex; +} // namespace -//------------------------- -// -// Main code -// -//------------------------- -int -itkAdaptImageFilterTest2(int, char *[]) +TEST(AdaptImageFilter2, ConvertedLegacyTest) { - - auto size = myVectorImageType::SizeType::Filled(2); myVectorImageType::IndexType index; @@ -94,21 +90,6 @@ itkAdaptImageFilterTest2(int, char *[]) ++it1; } - // Reading the values to verify the image content - std::cout << "--- Initial image --- " << std::endl; - it1.GoToBegin(); - while (!it1.IsAtEnd()) - { - const myVectorImageType::PixelType c(it1.Get()); - std::cout << c[0] << " "; - std::cout << c[1] << " "; - std::cout << c[2] << std::endl; - ++it1; - } - - - bool passed = true; - // Get the first element using AdaptFilterType = itk::AdaptImageFilter; @@ -123,18 +104,11 @@ itkAdaptImageFilterTest2(int, char *[]) myIteratorType it(adaptImage->GetOutput(), adaptImage->GetOutput()->GetRequestedRegion()); - std::cout << "--- First component values --- " << std::endl; - it.GoToBegin(); it1.GoToBegin(); while (!it.IsAtEnd()) { - std::cout << it.Get() << std::endl; - if (itk::Math::NotExactlyEquals(it.Get(), it1.Get()[0])) - { - passed = false; - } - + EXPECT_EQ(it.Get(), it1.Get()[0]); ++it; ++it1; } @@ -146,18 +120,11 @@ itkAdaptImageFilterTest2(int, char *[]) it = myIteratorType(adaptImage->GetOutput(), adaptImage->GetOutput()->GetRequestedRegion()); - std::cout << "--- Second component values --- " << std::endl; - it.GoToBegin(); it1.GoToBegin(); while (!it.IsAtEnd()) { - std::cout << it.Get() << std::endl; - if (itk::Math::NotExactlyEquals(it.Get(), it1.Get()[1])) - { - passed = false; - } - + EXPECT_EQ(it.Get(), it1.Get()[1]); ++it; ++it1; } @@ -169,31 +136,15 @@ itkAdaptImageFilterTest2(int, char *[]) it = myIteratorType(adaptImage->GetOutput(), adaptImage->GetOutput()->GetRequestedRegion()); - std::cout << "--- Third component values --- " << std::endl; - it.GoToBegin(); it1.GoToBegin(); while (!it.IsAtEnd()) { - std::cout << it.Get() << std::endl; - if (itk::Math::NotExactlyEquals(it.Get(), it1.Get()[2])) - { - passed = false; - } - + EXPECT_EQ(it.Get(), it1.Get()[2]); ++it; ++it1; } // Test access to Accessor - std::cout << adaptImage->GetAccessor().GetElementNumber() << std::endl; - - std::cout << std::endl; - if (passed) - { - std::cout << "AdaptImageFilterTest2 passed" << std::endl; - return EXIT_SUCCESS; - } - std::cout << "AdaptImageFilterTest2 passed" << std::endl; - return EXIT_FAILURE; + EXPECT_EQ(adaptImage->GetAccessor().GetElementNumber(), 2u); } From 09eef3cfff3290278bd79cf9aade895152c9a8d2 Mon Sep 17 00:00:00 2001 From: "Hans J. Johnson" Date: Sat, 25 Apr 2026 18:06:28 -0500 Subject: [PATCH 5/6] ENH: Convert itkAddImageAdaptorTest to itkAddImageAdaptorGTest --- .../ImageIntensity/test/CMakeLists.txt | 8 +--- ...orTest.cxx => itkAddImageAdaptorGTest.cxx} | 39 ++++--------------- 2 files changed, 8 insertions(+), 39 deletions(-) rename Modules/Filtering/ImageIntensity/test/{itkAddImageAdaptorTest.cxx => itkAddImageAdaptorGTest.cxx} (75%) diff --git a/Modules/Filtering/ImageIntensity/test/CMakeLists.txt b/Modules/Filtering/ImageIntensity/test/CMakeLists.txt index e631823da499..e1f97202f685 100644 --- a/Modules/Filtering/ImageIntensity/test/CMakeLists.txt +++ b/Modules/Filtering/ImageIntensity/test/CMakeLists.txt @@ -1,7 +1,6 @@ itk_module_test() set( ITKImageIntensityTests - itkAddImageAdaptorTest.cxx itkAddImageFilterFrameTest.cxx itkAddImageFilterTest.cxx itkAddImageFilterTest2.cxx @@ -251,12 +250,6 @@ itk_add_test( ITKImageIntensityTestDriver itkComplexToModulusFilterAndAdaptorTest ) -itk_add_test( - NAME itkAddImageAdaptorTest - COMMAND - ITKImageIntensityTestDriver - itkAddImageAdaptorTest -) itk_add_test( NAME itkAndImageFilterTest COMMAND @@ -797,6 +790,7 @@ set( itkAcosImageFilterAndAdaptorGTest.cxx itkAdaptImageFilterGTest.cxx itkAdaptImageFilterGTest2.cxx + itkAddImageAdaptorGTest.cxx itkArithmeticOpsFunctorsTest.cxx itkBitwiseOpsFunctorsTest.cxx ) diff --git a/Modules/Filtering/ImageIntensity/test/itkAddImageAdaptorTest.cxx b/Modules/Filtering/ImageIntensity/test/itkAddImageAdaptorGTest.cxx similarity index 75% rename from Modules/Filtering/ImageIntensity/test/itkAddImageAdaptorTest.cxx rename to Modules/Filtering/ImageIntensity/test/itkAddImageAdaptorGTest.cxx index 8b760c08d6cc..ec46119ea28b 100644 --- a/Modules/Filtering/ImageIntensity/test/itkAddImageAdaptorTest.cxx +++ b/Modules/Filtering/ImageIntensity/test/itkAddImageAdaptorGTest.cxx @@ -19,11 +19,10 @@ #include "itkAddImageAdaptor.h" #include "itkImageRegionIteratorWithIndex.h" #include "itkSubtractImageFilter.h" +#include "itkGTest.h" -int -itkAddImageAdaptorTest(int, char *[]) +TEST(AddImageAdaptor, ConvertedLegacyTest) { - // Define the dimension of the images constexpr unsigned int Dimension{ 3 }; @@ -60,13 +59,11 @@ itkAddImageAdaptorTest(int, char *[]) IteratorType it1(inputImage, inputImage->GetBufferedRegion()); // Initialize the content of Image A - std::cout << "First operand " << std::endl; PixelType value = 13; while (!it1.IsAtEnd()) { it1.Set(value); value += 1; - std::cout << it1.Get() << std::endl; ++it1; } @@ -96,9 +93,6 @@ itkAddImageAdaptorTest(int, char *[]) const ImageType::Pointer diffImage = diffFilter->GetOutput(); // Check the content of the diff image - std::cout << "Comparing the results with those of an Adaptor" << std::endl; - std::cout << "Verification of the output " << std::endl; - // Create an iterator for going through the image output IteratorType dt(diffImage, diffImage->GetBufferedRegion()); @@ -108,22 +102,12 @@ itkAddImageAdaptorTest(int, char *[]) while (!dt.IsAtEnd()) { - std::cout << dt.Get() << std::endl; - auto v1 = static_cast(dt.Get()); auto v2 = static_cast(additiveConstant); const RealPixelType diff = itk::Math::Absolute(v1 - v2); - if (diff > itk::Math::eps) - { - std::cerr << "Error in itkAddImageFilterTest " << std::endl; - std::cerr << "Comparing results with Adaptors" << std::endl; - std::cerr << " difference = " << diff << std::endl; - std::cerr << " differs from 0 "; - std::cerr << " by more than " << itk::Math::eps << std::endl; - return EXIT_FAILURE; - } + EXPECT_LE(diff, itk::Math::eps); ++dt; } @@ -133,23 +117,14 @@ itkAddImageAdaptorTest(int, char *[]) index[1] = 1; index[2] = 1; - const PixelType p1 = addAdaptor->GetPixel(index); - - std::cout << " Pixel " << index << " had value = " << p1 << std::endl; + // Exercise GetPixel for code coverage; original test printed but did + // not assert on this read. + (void)addAdaptor->GetPixel(index); constexpr PixelType newValue{ 27 }; - std::cout << " We set Pixel " << index << " to value = " << newValue << std::endl; addAdaptor->SetPixel(index, newValue); const PixelType p2 = addAdaptor->GetPixel(index); - std::cout << " Now Pixel " << index << " has value = " << p2 << std::endl; - - if (p2 != newValue) - { - std::cerr << "SetPixel()/GetPixel() methods failed" << std::endl; - return EXIT_FAILURE; - } - - return EXIT_SUCCESS; + EXPECT_EQ(p2, newValue); } From 9f84796538304b195753581c191750b89b36e28a Mon Sep 17 00:00:00 2001 From: "Hans J. Johnson" Date: Sat, 25 Apr 2026 18:08:53 -0500 Subject: [PATCH 6/6] ENH: Convert itkAddImageFilterFrameTest to itkAddImageFilterFrameGTest --- .../ImageIntensity/test/CMakeLists.txt | 8 +-- ...st.cxx => itkAddImageFilterFrameGTest.cxx} | 49 +++---------------- 2 files changed, 9 insertions(+), 48 deletions(-) rename Modules/Filtering/ImageIntensity/test/{itkAddImageFilterFrameTest.cxx => itkAddImageFilterFrameGTest.cxx} (76%) diff --git a/Modules/Filtering/ImageIntensity/test/CMakeLists.txt b/Modules/Filtering/ImageIntensity/test/CMakeLists.txt index e1f97202f685..a730c151e696 100644 --- a/Modules/Filtering/ImageIntensity/test/CMakeLists.txt +++ b/Modules/Filtering/ImageIntensity/test/CMakeLists.txt @@ -1,7 +1,6 @@ itk_module_test() set( ITKImageIntensityTests - itkAddImageFilterFrameTest.cxx itkAddImageFilterTest.cxx itkAddImageFilterTest2.cxx itkAndImageFilterTest.cxx @@ -314,12 +313,6 @@ itk_add_test( DATA{${ITK_DATA_ROOT}/Input/HeadMRVolume.mha} ${TEMP}/itkAddImageFilterTest2.mha ) -itk_add_test( - NAME itkAddImageFilterFrameTest - COMMAND - ITKImageIntensityTestDriver - itkAddImageFilterFrameTest -) itk_add_test( NAME itkPowImageFilterTest COMMAND @@ -791,6 +784,7 @@ set( itkAdaptImageFilterGTest.cxx itkAdaptImageFilterGTest2.cxx itkAddImageAdaptorGTest.cxx + itkAddImageFilterFrameGTest.cxx itkArithmeticOpsFunctorsTest.cxx itkBitwiseOpsFunctorsTest.cxx ) diff --git a/Modules/Filtering/ImageIntensity/test/itkAddImageFilterFrameTest.cxx b/Modules/Filtering/ImageIntensity/test/itkAddImageFilterFrameGTest.cxx similarity index 76% rename from Modules/Filtering/ImageIntensity/test/itkAddImageFilterFrameTest.cxx rename to Modules/Filtering/ImageIntensity/test/itkAddImageFilterFrameGTest.cxx index c9ead9dce108..b2a08347b08b 100644 --- a/Modules/Filtering/ImageIntensity/test/itkAddImageFilterFrameTest.cxx +++ b/Modules/Filtering/ImageIntensity/test/itkAddImageFilterFrameGTest.cxx @@ -18,12 +18,11 @@ #include "itkAddImageFilter.h" #include "itkImageRegionIteratorWithIndex.h" +#include "itkGTest.h" -int -itkAddImageFilterFrameTest(int, char *[]) +TEST(AddImageFilterFrame, ConvertedLegacyTest) { - // Define the dimension of the images constexpr unsigned int myDimension{ 3 }; @@ -72,11 +71,9 @@ itkAddImageFilterFrameTest(int, char *[]) myIteratorType1 it1(inputImageA, inputImageA->GetBufferedRegion()); // Initialize the content of Image A - std::cout << "First operand " << std::endl; while (!it1.IsAtEnd()) { it1.Set(2.0); - std::cout << it1.Get() << std::endl; ++it1; } @@ -84,11 +81,9 @@ itkAddImageFilterFrameTest(int, char *[]) myIteratorType2 it2(inputImageB, inputImageB->GetBufferedRegion()); // Initialize the content of Image B - std::cout << "Second operand " << std::endl; while (!it2.IsAtEnd()) { it2.Set(3.0); - std::cout << it2.Get() << std::endl; ++it2; } @@ -110,17 +105,8 @@ itkAddImageFilterFrameTest(int, char *[]) inputImageB->SetOrigin(borigin); - // Execute the filter - try - { - filter->Update(); - std::cout << "No exception thrown for a difference in origins!" << std::endl; - return EXIT_FAILURE; - } - catch (const itk::ExceptionObject & exc) - { - std::cout << "Known exception caught (origin)! " << exc << std::endl; - } + // Execute the filter -- expect exception due to differing origins + EXPECT_THROW(filter->Update(), itk::ExceptionObject); // Make Image B have a different spacing @@ -129,17 +115,8 @@ itkAddImageFilterFrameTest(int, char *[]) auto bspacing = itk::MakeFilled(1.001); inputImageB->SetSpacing(bspacing); - // Execute the filter - try - { - filter->Update(); - std::cout << "No exception thrown for a difference in spacings!" << std::endl; - return EXIT_FAILURE; - } - catch (const itk::ExceptionObject & exc) - { - std::cout << "Known exception caught (spacing)! " << exc << std::endl; - } + // Execute the filter -- expect exception due to differing spacings + EXPECT_THROW(filter->Update(), itk::ExceptionObject); // Make Image B have different direction cosines @@ -150,19 +127,9 @@ itkAddImageFilterFrameTest(int, char *[]) bdirections[2][2] = -1.0; inputImageB->SetDirection(bdirections); - // Execute the filter - try - { - filter->Update(); - std::cout << "No exception thrown for a difference in directions!" << std::endl; - return EXIT_FAILURE; - } - catch (const itk::ExceptionObject & exc) - { - std::cout << "Known exception caught (directions)! " << exc << std::endl; - } + // Execute the filter -- expect exception due to differing directions + EXPECT_THROW(filter->Update(), itk::ExceptionObject); // All objects should be automatically destroyed at this point - return EXIT_SUCCESS; }