From 1e70ecbcf98149c81aeb05641d893add05dca27a Mon Sep 17 00:00:00 2001 From: Hans Johnson Date: Wed, 7 Oct 2026 12:33:15 -0500 Subject: [PATCH] BUG: Name the real superclass in ITK_EXERCISE_BASIC_OBJECT_METHODS calls ITK_EXERCISE_BASIC_OBJECT_METHODS compares Superclass::GetNameOfClass() with the stringified third argument and fails the test on a mismatch. Nine calls named a class that is not the object's direct superclass: - MaximumFeatureAggregator derives from FeatureAggregator, not UnaryFunctorImageFilter (itkDescoteauxSheetnessFeatureGeneratorMultiScaleTest1). - LesionSegmentationMethod derives from ProcessObject, not LightObject (itkLesionSegmentationMethodTest10). - SatoVesselnessSigmoidFeatureGenerator derives from SatoVesselnessFeatureGenerator, not FeatureGenerator (itkSatoVesselnessSigmoidFeatureGeneratorMultiScaleTest1, four calls; itkFeatureAggregatorTest1, one call). - LungWallFeatureGenerator and SigmoidFeatureGenerator derive from FeatureGenerator, not FeatureAggregator (itkFeatureAggregatorTest1). The first three tests fail identically against ITK main and ITK release-5.4 in the downstream build matrix. itkFeatureAggregatorTest1 is only built when TEST_CORNELL_DATA_ROOT is set, so its three mismatches were latent. --- ...teauxSheetnessFeatureGeneratorMultiScaleTest1.cxx | 2 +- test/itkFeatureAggregatorTest1.cxx | 7 ++++--- test/itkLesionSegmentationMethodTest10.cxx | 2 +- ...selnessSigmoidFeatureGeneratorMultiScaleTest1.cxx | 12 ++++++++---- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/test/itkDescoteauxSheetnessFeatureGeneratorMultiScaleTest1.cxx b/test/itkDescoteauxSheetnessFeatureGeneratorMultiScaleTest1.cxx index 5edf5fef..62278003 100644 --- a/test/itkDescoteauxSheetnessFeatureGeneratorMultiScaleTest1.cxx +++ b/test/itkDescoteauxSheetnessFeatureGeneratorMultiScaleTest1.cxx @@ -60,7 +60,7 @@ itkDescoteauxSheetnessFeatureGeneratorMultiScaleTest1(int argc, char * argv[]) AggregatorType::Pointer featureAggregator = AggregatorType::New(); - ITK_EXERCISE_BASIC_OBJECT_METHODS(featureAggregator, MaximumFeatureAggregator, UnaryFunctorImageFilter); + ITK_EXERCISE_BASIC_OBJECT_METHODS(featureAggregator, MaximumFeatureAggregator, FeatureAggregator); using DescoteauxSheetnessFeatureGeneratorType = itk::DescoteauxSheetnessFeatureGenerator; using SpatialObjectType = DescoteauxSheetnessFeatureGeneratorType::SpatialObjectType; diff --git a/test/itkFeatureAggregatorTest1.cxx b/test/itkFeatureAggregatorTest1.cxx index a341466b..207a1138 100644 --- a/test/itkFeatureAggregatorTest1.cxx +++ b/test/itkFeatureAggregatorTest1.cxx @@ -158,18 +158,19 @@ itkFeatureAggregatorTest1(int argc, char * argv[]) using VesselnessGeneratorType = itk::SatoVesselnessSigmoidFeatureGenerator; VesselnessGeneratorType::Pointer vesselnessGenerator = VesselnessGeneratorType::New(); - ITK_EXERCISE_BASIC_OBJECT_METHODS(vesselnessGenerator, SatoVesselnessSigmoidFeatureGenerator, FeatureAggregator); + ITK_EXERCISE_BASIC_OBJECT_METHODS( + vesselnessGenerator, SatoVesselnessSigmoidFeatureGenerator, SatoVesselnessFeatureGenerator); using LungWallGeneratorType = itk::LungWallFeatureGenerator; LungWallGeneratorType::Pointer lungWallGenerator = LungWallGeneratorType::New(); - ITK_EXERCISE_BASIC_OBJECT_METHODS(lungWallGenerator, LungWallFeatureGenerator, FeatureAggregator); + ITK_EXERCISE_BASIC_OBJECT_METHODS(lungWallGenerator, LungWallFeatureGenerator, FeatureGenerator); using SigmoidFeatureGeneratorType = itk::SigmoidFeatureGenerator; SigmoidFeatureGeneratorType::Pointer sigmoidGenerator = SigmoidFeatureGeneratorType::New(); - ITK_EXERCISE_BASIC_OBJECT_METHODS(sigmoidGenerator, SigmoidFeatureGenerator, FeatureAggregator); + ITK_EXERCISE_BASIC_OBJECT_METHODS(sigmoidGenerator, SigmoidFeatureGenerator, FeatureGenerator); featureAggregator->AddFeatureGenerator(lungWallGenerator); featureAggregator->AddFeatureGenerator(vesselnessGenerator); diff --git a/test/itkLesionSegmentationMethodTest10.cxx b/test/itkLesionSegmentationMethodTest10.cxx index 48e506b5..f12fa341 100644 --- a/test/itkLesionSegmentationMethodTest10.cxx +++ b/test/itkLesionSegmentationMethodTest10.cxx @@ -73,7 +73,7 @@ itkLesionSegmentationMethodTest10(int argc, char * argv[]) MethodType::Pointer lesionSegmentationMethod = MethodType::New(); - ITK_EXERCISE_BASIC_OBJECT_METHODS(lesionSegmentationMethod, LesionSegmentationMethod, LightObject); + ITK_EXERCISE_BASIC_OBJECT_METHODS(lesionSegmentationMethod, LesionSegmentationMethod, ProcessObject); using ImageMaskSpatialObjectType = itk::ImageMaskSpatialObject; diff --git a/test/itkSatoVesselnessSigmoidFeatureGeneratorMultiScaleTest1.cxx b/test/itkSatoVesselnessSigmoidFeatureGeneratorMultiScaleTest1.cxx index 206214c6..ada025e8 100644 --- a/test/itkSatoVesselnessSigmoidFeatureGeneratorMultiScaleTest1.cxx +++ b/test/itkSatoVesselnessSigmoidFeatureGeneratorMultiScaleTest1.cxx @@ -57,19 +57,23 @@ itkSatoVesselnessSigmoidFeatureGeneratorMultiScaleTest1(int argc, char * argv[]) FeatureGeneratorType::Pointer featureGenerator1 = FeatureGeneratorType::New(); - ITK_EXERCISE_BASIC_OBJECT_METHODS(featureGenerator1, SatoVesselnessSigmoidFeatureGenerator, FeatureGenerator); + ITK_EXERCISE_BASIC_OBJECT_METHODS( + featureGenerator1, SatoVesselnessSigmoidFeatureGenerator, SatoVesselnessFeatureGenerator); FeatureGeneratorType::Pointer featureGenerator2 = FeatureGeneratorType::New(); - ITK_EXERCISE_BASIC_OBJECT_METHODS(featureGenerator2, SatoVesselnessSigmoidFeatureGenerator, FeatureGenerator); + ITK_EXERCISE_BASIC_OBJECT_METHODS( + featureGenerator2, SatoVesselnessSigmoidFeatureGenerator, SatoVesselnessFeatureGenerator); FeatureGeneratorType::Pointer featureGenerator3 = FeatureGeneratorType::New(); - ITK_EXERCISE_BASIC_OBJECT_METHODS(featureGenerator3, SatoVesselnessSigmoidFeatureGenerator, FeatureGenerator); + ITK_EXERCISE_BASIC_OBJECT_METHODS( + featureGenerator3, SatoVesselnessSigmoidFeatureGenerator, SatoVesselnessFeatureGenerator); FeatureGeneratorType::Pointer featureGenerator4 = FeatureGeneratorType::New(); - ITK_EXERCISE_BASIC_OBJECT_METHODS(featureGenerator4, SatoVesselnessSigmoidFeatureGenerator, FeatureGenerator); + ITK_EXERCISE_BASIC_OBJECT_METHODS( + featureGenerator4, SatoVesselnessSigmoidFeatureGenerator, SatoVesselnessFeatureGenerator); double smallestSigma = 1.0;