@@ -35,13 +35,26 @@ template class itk::IndexRange<2, false>;
3535
3636using itk::IndexRange;
3737using itk::ImageRegionIndexRange;
38+ using itk::MakeIndexRange;
3839using itk::ZeroBasedIndexRange;
3940using itk::RangeGTestUtilities;
4041
4142
4243static_assert (sizeof (ZeroBasedIndexRange<3 >) < sizeof (ImageRegionIndexRange<3 >),
4344 " ZeroBasedIndexRange does not need to store the index of a region, so it should take less memory." );
4445
46+ static_assert (std::is_same_v<decltype (MakeIndexRange(itk::Size<2 >{})), ZeroBasedIndexRange<2 >> &&
47+ std::is_same_v<decltype (MakeIndexRange(itk::Size<3 >{})), ZeroBasedIndexRange<3 >>,
48+ " MakeIndexRange(size) should return a ZeroBasedIndexRange." );
49+
50+ static_assert (std::is_same_v<decltype (MakeIndexRange(itk::ImageRegion<2 >{})), ImageRegionIndexRange<2 >> &&
51+ std::is_same_v<decltype (MakeIndexRange(itk::ImageRegion<3 >{})), ImageRegionIndexRange<3 >>,
52+ " MakeIndexRange(imageRegion) should return an ImageRegionIndexRange." );
53+
54+ static_assert (std::is_same_v<decltype (MakeIndexRange(itk::Index<2 >{}, itk::Size<2 >{})), ImageRegionIndexRange<2 >> &&
55+ std::is_same_v<decltype (MakeIndexRange(itk::Index<3 >{}, itk::Size<3 >{})), ImageRegionIndexRange<3 >>,
56+ " MakeIndexRange(index, size) should return an ImageRegionIndexRange." );
57+
4558namespace
4659{
4760template <unsigned int VDimension>
@@ -107,7 +120,9 @@ ExpectRangeIsEmptyWhenRegionSizeIsZero(std::mt19937 & randomNumberEngine)
107120 const itk::Index<VDimension> randomRegionIndex = GenerateRandomIndex<VDimension>(randomNumberEngine);
108121 const itk::ImageRegion<VDimension> zeroSizedImageRegion{ randomRegionIndex, zeroSize };
109122
110- EXPECT_TRUE (ImageRegionIndexRange<VDimension>{ zeroSizedImageRegion }.empty ());
123+ EXPECT_TRUE (MakeIndexRange (zeroSize).empty ());
124+ EXPECT_TRUE (MakeIndexRange (zeroSizedImageRegion).empty ());
125+ EXPECT_TRUE (MakeIndexRange (randomRegionIndex, zeroSize).empty ());
111126}
112127
113128
0 commit comments