Skip to content

Commit c3e1e02

Browse files
authored
Merge pull request #5650 from N-Dekker/ImageBufferRange-ImageAlgorithmCopyTest2
Use ImageBufferRange in ImagePCADecompositionCalculatorTest, ImageAlgorithmCopyTest2 and BSplineTransformGTest
2 parents 44690ac + 5d07076 commit c3e1e02

File tree

3 files changed

+26
-32
lines changed

3 files changed

+26
-32
lines changed

Modules/Core/Common/test/itkImageAlgorithmCopyTest2.cxx

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,29 +24,25 @@
2424
#include "itkTestingComparisonImageFilter.h"
2525

2626
#include "itkImageAdaptor.h"
27+
#include "itkImageBufferRange.h"
2728
#include "itkAbsImageAdaptor.h"
2829
#include "itkMath.h"
2930

31+
#include <algorithm> // For all_of.
32+
3033
namespace
3134
{
3235

3336
template <typename TImageType>
3437
bool
3538
CheckBuffer(const TImageType * image, typename TImageType::PixelType p)
3639
{
37-
using ImageIterator = itk::ImageRegionConstIterator<TImageType>;
38-
39-
ImageIterator iter(image, image->GetBufferedRegion());
40-
41-
while (!iter.IsAtEnd())
42-
{
43-
if (itk::Math::NotExactlyEquals(iter.Get(), p))
44-
{
45-
return false;
46-
}
47-
++iter;
48-
}
49-
return true;
40+
const itk::ImageBufferRange<const TImageType> imageBufferRange(*image);
41+
42+
return std::all_of(
43+
imageBufferRange.cbegin(), imageBufferRange.cend(), [p](const typename TImageType::PixelType pixelValue) {
44+
return itk::Math::ExactlyEquals(pixelValue, p);
45+
});
5046
}
5147

5248
} // namespace

Modules/Core/Transform/test/itkBSplineTransformGTest.cxx

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,11 @@
2121
#include "itkGTest.h"
2222
#include "itkBSplineTransform.h"
2323

24+
#include "itkImageBufferRange.h"
2425
#include "itkImageRegionConstIterator.h"
2526

27+
#include <algorithm> // For generate.
28+
2629
namespace
2730
{
2831

@@ -107,7 +110,6 @@ TEST(ITKBSplineTransform, CopyingClone)
107110

108111
using BSplineType = itk::BSplineTransform<double, 2, 3>;
109112
using ImageType = typename BSplineType::ImageType;
110-
using ImageIterator = typename itk::ImageRegionIterator<ImageType>;
111113

112114
typename BSplineType::CoefficientImageArray coeffImageArray;
113115

@@ -139,14 +141,8 @@ TEST(ITKBSplineTransform, CopyingClone)
139141

140142
coeffImage->Allocate();
141143

142-
ImageIterator iter(coeffImage, coeffImage->GetBufferedRegion());
143-
144-
145-
while (!iter.IsAtEnd())
146-
{
147-
iter.Set(px_value++);
148-
++iter;
149-
}
144+
const itk::ImageBufferRange<ImageType> imageBufferRange(*coeffImage);
145+
std::generate(imageBufferRange.begin(), imageBufferRange.end(), [&px_value] { return px_value++; });
150146
}
151147

152148
auto bspline1 = BSplineType::New();

Modules/Filtering/ImageStatistics/test/itkImagePCADecompositionCalculatorTest.cxx

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,12 @@
2121
#include "itkTextOutput.h"
2222

2323
#include "itkImagePCADecompositionCalculator.h"
24+
#include "itkImageBufferRange.h"
2425
#include "itkTestingMacros.h"
2526

27+
#include <algorithm> // For copy.
28+
#include <iterator>
29+
2630
// class to support progress feedback
2731

2832

@@ -337,11 +341,10 @@ itkImagePCADecompositionCalculatorTest(int, char *[])
337341
for (const auto & basis_it : basis_check)
338342
{
339343
std::cout << '[';
340-
InputImageIterator basisImage_it(basis_it, basis_it->GetBufferedRegion());
341-
for (basisImage_it.GoToBegin(); !basisImage_it.IsAtEnd(); ++basisImage_it)
342-
{
343-
std::cout << basisImage_it.Get() << ' ';
344-
}
344+
const itk::ImageBufferRange<const InputImageType> imageBufferRange(*basis_it);
345+
std::copy(imageBufferRange.cbegin(),
346+
imageBufferRange.cend(),
347+
std::ostream_iterator<InputImageType::PixelType>(std::cout, " "));
345348
std::cout << ']' << std::endl;
346349
}
347350

@@ -358,11 +361,10 @@ itkImagePCADecompositionCalculatorTest(int, char *[])
358361
for (const auto & basis_it : basis_check_2)
359362
{
360363
std::cout << '[';
361-
InputImageIterator basisImage_it(basis_it, basis_it->GetBufferedRegion());
362-
for (basisImage_it.GoToBegin(); !basisImage_it.IsAtEnd(); ++basisImage_it)
363-
{
364-
std::cout << basisImage_it.Get() << ' ';
365-
}
364+
const itk::ImageBufferRange<const InputImageType> imageBufferRange(*basis_it);
365+
std::copy(imageBufferRange.cbegin(),
366+
imageBufferRange.cend(),
367+
std::ostream_iterator<InputImageType::PixelType>(std::cout, " "));
366368
std::cout << ']' << std::endl;
367369
}
368370

0 commit comments

Comments
 (0)