@@ -350,7 +350,7 @@ TEST(ShapedImageNeighborhoodRange, IteratorsCanBePassedToStdVectorConstructor)
350350// second argument of std::reverse (which requires bidirectional iterators).
351351TEST (ShapedImageNeighborhoodRange, IteratorsCanBePassedToStdReverseCopy)
352352{
353- using PixelType = unsigned char ;
353+ using PixelType = unsigned short ;
354354 using ImageType = itk::Image<PixelType>;
355355 enum
356356 {
@@ -366,11 +366,14 @@ TEST(ShapedImageNeighborhoodRange, IteratorsCanBePassedToStdReverseCopy)
366366 itk::ShapedImageNeighborhoodRange<ImageType> range{ *image, location, offsets };
367367
368368 const unsigned int numberOfNeighborhoodPixels = 3 ;
369+ ASSERT_EQ (numberOfNeighborhoodPixels, range.size ());
369370
370371 const std::vector<PixelType> stdVector (range.begin (), range.end ());
371- std::vector<PixelType> reversedStdVector1 (numberOfNeighborhoodPixels);
372- std::vector<PixelType> reversedStdVector2 (numberOfNeighborhoodPixels);
373- std::vector<PixelType> reversedStdVector3 (numberOfNeighborhoodPixels);
372+ ASSERT_EQ (stdVector.size (), numberOfNeighborhoodPixels);
373+
374+ std::vector<PixelType> reversedStdVector1 (numberOfNeighborhoodPixels);
375+ std::vector<PixelType> reversedStdVector2 (numberOfNeighborhoodPixels);
376+ std::vector<PixelType> reversedStdVector3 (numberOfNeighborhoodPixels);
374377
375378 // Checks bidirectionality of the ShapedImageNeighborhoodRange iterators!
376379 std::reverse_copy (stdVector.cbegin (), stdVector.cend (), reversedStdVector1.begin ());
@@ -455,11 +458,13 @@ TEST(ShapedImageNeighborhoodRange, CanBeUsedAsExpressionOfRangeBasedForLoop)
455458 const itk::Size<ImageType::ImageDimension> radius = { { 0 , 1 } };
456459 const std::vector<itk::Offset<ImageType::ImageDimension>> offsets =
457460 itk::GenerateRectangularImageNeighborhoodOffsets (radius);
458- RangeType range{ *image, location, offsets };
461+ RangeType range{ *image, location, offsets };
462+ constexpr PixelType reference_value = 42 ;
459463
460464 for (const PixelType pixel : range)
461465 {
462- EXPECT_NE (pixel, 42 );
466+ // Initially not set to reference value
467+ EXPECT_NE (pixel, reference_value);
463468 }
464469
465470 // Note: instead of 'iterator::reference', you may also type 'auto&&', but
@@ -471,12 +476,12 @@ TEST(ShapedImageNeighborhoodRange, CanBeUsedAsExpressionOfRangeBasedForLoop)
471476 // https://bugs.llvm.org/show_bug.cgi?id=37392
472477 for (RangeType::iterator::reference pixel : range)
473478 {
474- pixel = 42 ;
479+ pixel = reference_value ;
475480 }
476481
477482 for (const PixelType pixel : range)
478483 {
479- EXPECT_EQ (pixel, 42 );
484+ EXPECT_EQ (pixel, reference_value );
480485 }
481486}
482487
@@ -895,7 +900,7 @@ TEST(ShapedImageNeighborhoodRange, SupportsSubscript)
895900
896901TEST (ShapedImageNeighborhoodRange, ProvidesReverseIterators)
897902{
898- using PixelType = unsigned char ;
903+ using PixelType = unsigned short ;
899904 using ImageType = itk::Image<PixelType>;
900905 using RangeType = itk::ShapedImageNeighborhoodRange<ImageType>;
901906 enum
@@ -911,12 +916,15 @@ TEST(ShapedImageNeighborhoodRange, ProvidesReverseIterators)
911916 itk::GenerateRectangularImageNeighborhoodOffsets (radius);
912917 RangeType range{ *image, location, offsets };
913918
914- const unsigned int numberOfNeighborhoodPixels = 3 ;
919+ constexpr unsigned int numberOfNeighborhoodPixels = 3 ;
920+ ASSERT_EQ (numberOfNeighborhoodPixels, range.size ());
915921
916922 const std::vector<PixelType> stdVector (range.begin (), range.end ());
917- std::vector<PixelType> reversedStdVector1 (numberOfNeighborhoodPixels);
918- std::vector<PixelType> reversedStdVector2 (numberOfNeighborhoodPixels);
919- std::vector<PixelType> reversedStdVector3 (numberOfNeighborhoodPixels);
923+ ASSERT_EQ (stdVector.size (), numberOfNeighborhoodPixels);
924+
925+ std::vector<PixelType> reversedStdVector1 (numberOfNeighborhoodPixels);
926+ std::vector<PixelType> reversedStdVector2 (numberOfNeighborhoodPixels);
927+ std::vector<PixelType> reversedStdVector3 (numberOfNeighborhoodPixels);
920928
921929 std::reverse_copy (stdVector.cbegin (), stdVector.cend (), reversedStdVector1.begin ());
922930
0 commit comments