Skip to content

Commit

Permalink
ENH: Test itk::ImageFileReader image IO to requested region mismatch
Browse files Browse the repository at this point in the history
Test `itk::ImageFileReader` image IO to requested region mismatch
exception.
  • Loading branch information
jhlegarreta authored and dzenanz committed Sep 19, 2022
1 parent 7a121ac commit 182764b
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 0 deletions.
6 changes: 6 additions & 0 deletions Modules/Filtering/ImageCompare/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ itkConstrainedValueDifferenceImageFilterTest.cxx
itkSimilarityIndexImageFilterTest.cxx
itkSTAPLEImageFilterTest.cxx
itkTestingComparisonImageFilterTest.cxx
itkImageFileReaderIOToRequestedRegionMismatchTest.cxx
)

CreateTestDriver(ITKImageCompare "${ITKImageCompare-Test_LIBRARIES}" "${ITKImageCompareTests}")
Expand Down Expand Up @@ -38,3 +39,8 @@ itk_add_test(NAME itkTestingComparisonImageFilterTest
${ITK_TEST_OUTPUT_DIR}/itkTestingComparisonImageFilterTest.png
itkTestingComparisonImageFilterTest DATA{${ITK_DATA_ROOT}/Input/cake_easy.png} DATA{${ITK_DATA_ROOT}/Input/cake_hard.png} ${ITK_TEST_OUTPUT_DIR}/itkTestingComparisonImageFilterTest.png 0 10 1 1647 11 66 16.2999 26846
)
itk_add_test(NAME itkImageFileReaderIOToRequestedRegionMismatchTest
COMMAND ITKImageCompareTestDriver
itkImageFileReaderIOToRequestedRegionMismatchTest
DATA{${ITK_DATA_ROOT}/Input/STAPLE1.png} DATA{${ITK_DATA_ROOT}/Input/BinaryImageWithVariousShapes01.png}
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
/*=========================================================================
*
* Copyright NumFOCUS
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0.txt
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*=========================================================================*/

#include "itkSTAPLEImageFilter.h"
#include "itkImageFileReader.h"
#include "itkTestingMacros.h"


int
itkImageFileReaderIOToRequestedRegionMismatchTest(int argc, char * argv[])
{
if (argc < 3)
{
std::cerr << "Missing parameters." << std::endl;
std::cerr << "Usage: " << itkNameOfTestExecutableMacro(argv) << "file1 file2 ... fileN" << std::endl;
return EXIT_FAILURE;
}

constexpr unsigned int Dimension = 2;

using InputImageType = itk::Image<unsigned short, Dimension>;
using OutputImageType = itk::Image<double, Dimension>;

using STAPLEImageFilterType = itk::STAPLEImageFilter<InputImageType, OutputImageType>;
auto stapleImageFilter = STAPLEImageFilterType::New();

typename itk::ImageFileReader<InputImageType>::Pointer reader;
for (int i = 1; i < argc; ++i)
{
// Instantiate a new reader for each image
reader = itk::ImageFileReader<InputImageType>::New();

reader->SetFileName(argv[i]);
stapleImageFilter->SetInput(itk::Math::CastWithRangeCheck<unsigned int>(i - 1), reader->GetOutput());
}

// Expect an image region to requested region size mismatch exception
ITK_TRY_EXPECT_EXCEPTION(stapleImageFilter->Update());


std::cout << "Test finished." << std::endl;
return EXIT_SUCCESS;
}

0 comments on commit 182764b

Please sign in to comment.