diff --git a/Modules/Filtering/DiffusionTensorImage/test/CMakeLists.txt b/Modules/Filtering/DiffusionTensorImage/test/CMakeLists.txt index 8b2151c3fdf..39a7b206f7c 100644 --- a/Modules/Filtering/DiffusionTensorImage/test/CMakeLists.txt +++ b/Modules/Filtering/DiffusionTensorImage/test/CMakeLists.txt @@ -11,7 +11,7 @@ CreateTestDriver(ITKDiffusionTensorImage "${ITKDiffusionTensorImage-Test_LIBRAR itk_add_test(NAME itkDiffusionTensor3DTest COMMAND ITKDiffusionTensorImageTestDriver itkDiffusionTensor3DTest) itk_add_test(NAME itkDiffusionTensor3DReconstructionImageFilterTest - COMMAND ITKDiffusionTensorImageTestDriver itkDiffusionTensor3DReconstructionImageFilterTest) + COMMAND ITKDiffusionTensorImageTestDriver itkDiffusionTensor3DReconstructionImageFilterTest 1.0) itk_add_test(NAME itkTensorRelativeAnisotropyImageFilterTest COMMAND ITKDiffusionTensorImageTestDriver itkTensorRelativeAnisotropyImageFilterTest) itk_add_test(NAME itkTensorFractionalAnisotropyImageFilterTest diff --git a/Modules/Filtering/DiffusionTensorImage/test/itkDiffusionTensor3DReconstructionImageFilterTest.cxx b/Modules/Filtering/DiffusionTensorImage/test/itkDiffusionTensor3DReconstructionImageFilterTest.cxx index e5eb5aa39f4..65b45ca6f11 100644 --- a/Modules/Filtering/DiffusionTensorImage/test/itkDiffusionTensor3DReconstructionImageFilterTest.cxx +++ b/Modules/Filtering/DiffusionTensorImage/test/itkDiffusionTensor3DReconstructionImageFilterTest.cxx @@ -18,11 +18,21 @@ #include "itkDiffusionTensor3DReconstructionImageFilter.h" #include "itkImageRegionIteratorWithIndex.h" #include "itkSimpleFilterWatcher.h" +#include "itkTestingMacros.h" #include int -itkDiffusionTensor3DReconstructionImageFilterTest(int, char *[]) +itkDiffusionTensor3DReconstructionImageFilterTest(int argc, char * argv[]) { + // Check parameters + if (argc != 2) + { + std::cerr << "Missing parameters." << std::endl; + std::cerr << "Usage: " << std::endl; + std::cerr << itkNameOfTestExecutableMacro(argv) << " bValue" << std::endl; + return EXIT_FAILURE; + } + using ReferencePixelType = short int; using GradientPixelType = short int; using TensorPrecisionType = double; @@ -37,6 +47,17 @@ itkDiffusionTensor3DReconstructionImageFilterTest(int, char *[]) TensorReconstructionImageFilterType::Pointer tensorReconstructionFilter = TensorReconstructionImageFilterType::New(); + ITK_EXERCISE_BASIC_OBJECT_METHODS( + tensorReconstructionFilter, DiffusionTensor3DReconstructionImageFilter, ImageToImageFilter); + + auto threshold = itk::NumericTraits::min(); + tensorReconstructionFilter->SetThreshold(threshold); + ITK_TEST_SET_GET_VALUE(threshold, tensorReconstructionFilter->GetThreshold()); + + auto bValue = static_cast(std::stod(argv[1])); + tensorReconstructionFilter->SetBValue(bValue); + ITK_TEST_SET_GET_VALUE(bValue, tensorReconstructionFilter->GetBValue()); + // Create a reference image // using ReferenceImageType = TensorReconstructionImageFilterType::ReferenceImageType; @@ -119,6 +140,8 @@ itkDiffusionTensor3DReconstructionImageFilterTest(int, char *[]) tensorReconstructionFilter->SetMaskSpatialObject(maskSpatialObject); } tensorReconstructionFilter->SetReferenceImage(referenceImage); + ITK_TEST_SET_GET_VALUE(referenceImage, tensorReconstructionFilter->GetReferenceImage()); + // TODO: remove this when netlib is made thread safe tensorReconstructionFilter->SetNumberOfWorkUnits(1); @@ -201,5 +224,7 @@ itkDiffusionTensor3DReconstructionImageFilterTest(int, char *[]) << std::endl; } + + std::cout << "Test finished" << std::endl; return result; } diff --git a/Modules/Filtering/DiffusionTensorImage/test/itkTensorFractionalAnisotropyImageFilterTest.cxx b/Modules/Filtering/DiffusionTensorImage/test/itkTensorFractionalAnisotropyImageFilterTest.cxx index e281a9d99d8..22716adb8da 100644 --- a/Modules/Filtering/DiffusionTensorImage/test/itkTensorFractionalAnisotropyImageFilterTest.cxx +++ b/Modules/Filtering/DiffusionTensorImage/test/itkTensorFractionalAnisotropyImageFilterTest.cxx @@ -19,6 +19,7 @@ #include "itkHessianRecursiveGaussianImageFilter.h" #include "itkTensorFractionalAnisotropyImageFilter.h" #include "itkDiffusionTensor3D.h" +#include "itkTestingMacros.h" int @@ -122,6 +123,9 @@ itkTensorFractionalAnisotropyImageFilterTest(int, char *[]) FAFilterType::Pointer fractionalAnisotropyFilter = FAFilterType::New(); + ITK_EXERCISE_BASIC_OBJECT_METHODS( + fractionalAnisotropyFilter, TensorFractionalAnisotropyImageFilter, UnaryFunctorImageFilter); + fractionalAnisotropyFilter->SetInput(filter->GetOutput()); // Execute the filter @@ -150,6 +154,6 @@ itkTensorFractionalAnisotropyImageFilterTest(int, char *[]) } - // All objects should be automatically destroyed at this point + std::cout << "Test finished" << std::endl; return EXIT_SUCCESS; } diff --git a/Modules/Filtering/DiffusionTensorImage/test/itkTensorRelativeAnisotropyImageFilterTest.cxx b/Modules/Filtering/DiffusionTensorImage/test/itkTensorRelativeAnisotropyImageFilterTest.cxx index 9775ea0d596..4c0d9c28b6b 100644 --- a/Modules/Filtering/DiffusionTensorImage/test/itkTensorRelativeAnisotropyImageFilterTest.cxx +++ b/Modules/Filtering/DiffusionTensorImage/test/itkTensorRelativeAnisotropyImageFilterTest.cxx @@ -19,6 +19,7 @@ #include "itkHessianRecursiveGaussianImageFilter.h" #include "itkTensorRelativeAnisotropyImageFilter.h" #include "itkDiffusionTensor3D.h" +#include "itkTestingMacros.h" int @@ -122,6 +123,9 @@ itkTensorRelativeAnisotropyImageFilterTest(int, char *[]) FAFilterType::Pointer relativeAnisotropyFilter = FAFilterType::New(); + ITK_EXERCISE_BASIC_OBJECT_METHODS( + relativeAnisotropyFilter, TensorRelativeAnisotropyImageFilter, UnaryFunctorImageFilter); + relativeAnisotropyFilter->SetInput(filter->GetOutput()); // Execute the filter @@ -150,6 +154,6 @@ itkTensorRelativeAnisotropyImageFilterTest(int, char *[]) } - // All objects should be automatically destroyed at this point + std::cout << "Test finished" << std::endl; return EXIT_SUCCESS; }