Skip to content

Commit 31b64bf

Browse files
authored
Merge pull request #6521 from hjmjohnson/bug-shapelabelmap-relative-tolerance
COMP: Regenerate ShapeLabelMap baselines at full double precision
2 parents 812d7a8 + 2ed4092 commit 31b64bf

1 file changed

Lines changed: 37 additions & 31 deletions

File tree

Modules/Filtering/LabelMap/test/itkShapeLabelMapFilterGTest.cxx

Lines changed: 37 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -151,21 +151,21 @@ TEST_F(ShapeLabelMapFixture, 3D_T1x1x1)
151151
ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(5.0, 7.0, 9.0), labelObject->GetCentroid(), 1e-10);
152152
EXPECT_EQ(0.0, labelObject->GetElongation());
153153
ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(0.0, 0.0, 0.0), labelObject->GetEquivalentEllipsoidDiameter(), 1e-10);
154-
EXPECT_NEAR(4.83598, labelObject->GetEquivalentSphericalPerimeter(), 1e-4); // resulting value
155-
EXPECT_NEAR(0.62035, labelObject->GetEquivalentSphericalRadius(), 1e-4); // resulting value
154+
EXPECT_NEAR(4.8359758620494109, labelObject->GetEquivalentSphericalPerimeter(), 1e-5); // resulting value
155+
EXPECT_NEAR(0.62035049089940009, labelObject->GetEquivalentSphericalRadius(), 1e-5); // resulting value
156156
EXPECT_EQ(0.0, labelObject->GetFeretDiameter());
157157
EXPECT_EQ(0.0, labelObject->GetFlatness());
158158
EXPECT_EQ(1u, labelObject->GetNumberOfPixels());
159159
EXPECT_EQ(0u, labelObject->GetNumberOfPixelsOnBorder());
160160
ITK_EXPECT_VECTOR_NEAR(itk::MakeVector(1u, 1u, 1u), labelObject->GetOrientedBoundingBoxSize(), 1e-10);
161161
ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(4.5, 6.5, 8.5), labelObject->GetOrientedBoundingBoxOrigin(), 1e-10);
162-
EXPECT_NEAR(3.004, labelObject->GetPerimeter(), 1e-4); // resulting value
162+
EXPECT_NEAR(3.0040803078963907, labelObject->GetPerimeter(), 1e-5); // resulting value
163163
EXPECT_EQ(0.0, labelObject->GetPerimeterOnBorder());
164164
EXPECT_EQ(0.0, labelObject->GetPerimeterOnBorderRatio());
165165
EXPECT_EQ(1.0, labelObject->GetPhysicalSize());
166166
// labelObject->GetPrincipalAxes(); degenerate case
167167
EXPECT_EQ(itk::MakeVector(0.0, 0.0, 0.0), labelObject->GetPrincipalMoments());
168-
EXPECT_NEAR(1.6098, labelObject->GetRoundness(), 0.0001); // resulting value
168+
EXPECT_NEAR(1.6098024574568734, labelObject->GetRoundness(), 1e-5); // resulting value
169169

170170
EXPECT_EQ(labelObject->GetBoundingBox(), labelObject->GetRegion());
171171

@@ -197,21 +197,21 @@ TEST_F(ShapeLabelMapFixture, 3D_T3x2x1)
197197
EXPECT_EQ(itk::MakePoint(6.0, 9.5, 11.0), labelObject->GetCentroid());
198198
EXPECT_NEAR(1.63299, labelObject->GetElongation(), 1e-4);
199199
ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(0.0, 0.0, 0.0), labelObject->GetEquivalentEllipsoidDiameter(), 1e-10);
200-
EXPECT_NEAR(15.96804, labelObject->GetEquivalentSphericalPerimeter(), 1e-4); // resulting value
201-
EXPECT_NEAR(1.12725, labelObject->GetEquivalentSphericalRadius(), 1e-4); // resulting value
200+
EXPECT_NEAR(15.96804047389762, labelObject->GetEquivalentSphericalPerimeter(), 1e-5); // resulting value
201+
EXPECT_NEAR(1.1272516517868265, labelObject->GetEquivalentSphericalRadius(), 1e-5); // resulting value
202202
EXPECT_NEAR(2.23606, labelObject->GetFeretDiameter(), 1e-4);
203203
EXPECT_EQ(0.0, labelObject->GetFlatness());
204204
EXPECT_EQ(6u, labelObject->GetNumberOfPixels());
205205
EXPECT_EQ(0u, labelObject->GetNumberOfPixelsOnBorder());
206206
ITK_EXPECT_VECTOR_NEAR(itk::MakeVector(1u, 2u, 3u), labelObject->GetOrientedBoundingBoxSize(), 1e-10);
207207
ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(7.5, 8.5, 10.5), labelObject->GetOrientedBoundingBoxOrigin(), 1e-10);
208-
EXPECT_NEAR(14.62414, labelObject->GetPerimeter(), 1e-4); // resulting value
208+
EXPECT_NEAR(14.624143852112988, labelObject->GetPerimeter(), 1e-5); // resulting value
209209
EXPECT_EQ(0.0, labelObject->GetPerimeterOnBorder());
210210
EXPECT_EQ(0.0, labelObject->GetPerimeterOnBorderRatio());
211211
EXPECT_EQ(6.0, labelObject->GetPhysicalSize());
212212
// labelObject->GetPrincipalAxes(); omitted
213213
ITK_EXPECT_VECTOR_NEAR(itk::MakeVector(0.0, 0.25, 0.666667), labelObject->GetPrincipalMoments(), 1e-4);
214-
EXPECT_NEAR(1.09189, labelObject->GetRoundness(), 1e-4); // resulting value
214+
EXPECT_NEAR(1.0918957468809676, labelObject->GetRoundness(), 1e-5); // resulting value
215215

216216
EXPECT_EQ(labelObject->GetBoundingBox(), labelObject->GetRegion());
217217

@@ -249,25 +249,27 @@ TEST_F(ShapeLabelMapFixture, 3D_T3x2x1_Direction)
249249

250250
ITK_EXPECT_VECTOR_NEAR(itk::MakeIndex(5, 9, 11), labelObject->GetBoundingBox().GetIndex(), 1e-99);
251251
ITK_EXPECT_VECTOR_NEAR(itk::MakeSize(3, 2, 1), labelObject->GetBoundingBox().GetSize(), 1e-99);
252-
ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(5.06906, -3.25286, -14.5249), labelObject->GetCentroid(), 1e-4);
252+
ITK_EXPECT_VECTOR_NEAR(
253+
itk::MakePoint(5.0690644435107242, -3.2528635005915247, -14.524925635405358), labelObject->GetCentroid(), 1e-4);
253254
EXPECT_NEAR(1.63299, labelObject->GetElongation(), 1e-4);
254255
// ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(0.0,0.0,0.0), labelObject->GetEquivalentEllipsoidDiameter(), 1e-10);
255-
EXPECT_NEAR(15.96804, labelObject->GetEquivalentSphericalPerimeter(), 1e-4); // resulting value
256-
EXPECT_NEAR(1.12725, labelObject->GetEquivalentSphericalRadius(), 1e-4); // resulting value
256+
EXPECT_NEAR(15.96804047389762, labelObject->GetEquivalentSphericalPerimeter(), 1e-5); // resulting value
257+
EXPECT_NEAR(1.1272516517868265, labelObject->GetEquivalentSphericalRadius(), 1e-5); // resulting value
257258
EXPECT_NEAR(2.23606, labelObject->GetFeretDiameter(), 1e-4);
258259
// EXPECT_EQ(0.0, labelObject->GetFlatness()); unstable due to division near zero
259260
EXPECT_EQ(6u, labelObject->GetNumberOfPixels());
260261
EXPECT_EQ(0u, labelObject->GetNumberOfPixelsOnBorder());
261262
ITK_EXPECT_VECTOR_NEAR(itk::MakeVector(1u, 2u, 3u), labelObject->GetOrientedBoundingBoxSize(), 1e-10);
262-
ITK_EXPECT_VECTOR_NEAR(
263-
itk::MakePoint(6.02222, -4.47691, -15.57049), labelObject->GetOrientedBoundingBoxOrigin(), 1e-4);
264-
EXPECT_NEAR(14.62414, labelObject->GetPerimeter(), 1e-4); // resulting value
263+
ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(6.0222153120831488, -4.4769132554776352, -15.570490372427054),
264+
labelObject->GetOrientedBoundingBoxOrigin(),
265+
1e-4);
266+
EXPECT_NEAR(14.624143852112988, labelObject->GetPerimeter(), 1e-5); // resulting value
265267
EXPECT_EQ(0.0, labelObject->GetPerimeterOnBorder());
266268
EXPECT_EQ(0.0, labelObject->GetPerimeterOnBorderRatio());
267269
EXPECT_EQ(6.0, labelObject->GetPhysicalSize());
268270
// labelObject->GetPrincipalAxes(); omitted
269271
ITK_EXPECT_VECTOR_NEAR(itk::MakeVector(0.0, 0.25, 0.666667), labelObject->GetPrincipalMoments(), 1e-4);
270-
EXPECT_NEAR(1.09189, labelObject->GetRoundness(), 1e-4); // resulting value
272+
EXPECT_NEAR(1.0918957468809676, labelObject->GetRoundness(), 1e-5); // resulting value
271273

272274
if (::testing::Test::HasFailure())
273275
{
@@ -302,16 +304,17 @@ TEST_F(ShapeLabelMapFixture, 3D_T2x2x2_Spacing)
302304
ITK_EXPECT_VECTOR_NEAR(itk::MakeSize(2, 2, 2), labelObject->GetBoundingBox().GetSize(), 1e-99);
303305
ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(5.5, 10.45, 25.3), labelObject->GetCentroid(), 1e-4);
304306
EXPECT_NEAR(2.0, labelObject->GetElongation(), 1e-4);
305-
ITK_EXPECT_VECTOR_NEAR(
306-
itk::MakePoint(2.4814, 2.72954, 5.45908), labelObject->GetEquivalentEllipsoidDiameter(), 1e-4); // resulting value
307-
EXPECT_NEAR(34.86751, labelObject->GetEquivalentSphericalPerimeter(), 1e-4); // resulting value
308-
EXPECT_NEAR(1.66573, labelObject->GetEquivalentSphericalRadius(), 1e-4); // resulting value
307+
ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(2.4814019635976252, 2.7295421599572678, 5.4590843199148482),
308+
labelObject->GetEquivalentEllipsoidDiameter(),
309+
1e-5); // resulting value
310+
EXPECT_NEAR(34.867517413417708, labelObject->GetEquivalentSphericalPerimeter(), 1e-5); // resulting value
311+
EXPECT_NEAR(1.6657337346779293, labelObject->GetEquivalentSphericalRadius(), 1e-5); // resulting value
309312
EXPECT_NEAR(2.65518, labelObject->GetFeretDiameter(), 1e-4);
310313
EXPECT_NEAR(1.1, labelObject->GetFlatness(), 1e-4);
311314
EXPECT_EQ(8u, labelObject->GetNumberOfPixels());
312315
EXPECT_EQ(0u, labelObject->GetNumberOfPixelsOnBorder());
313316
ITK_EXPECT_VECTOR_NEAR(itk::MakeVector(2.0, 2.2, 4.4), labelObject->GetOrientedBoundingBoxSize(), 1e-10);
314-
EXPECT_NEAR(28.3919, labelObject->GetPerimeter(), 1e-4); // resulting value
317+
EXPECT_NEAR(28.391854811919647, labelObject->GetPerimeter(), 1e-5); // resulting value
315318
EXPECT_EQ(0.0, labelObject->GetPerimeterOnBorder());
316319
EXPECT_EQ(0.0, labelObject->GetPerimeterOnBorderRatio());
317320
EXPECT_NEAR(19.36, labelObject->GetPhysicalSize(), 1e-10);
@@ -321,7 +324,7 @@ TEST_F(ShapeLabelMapFixture, 3D_T2x2x2_Spacing)
321324
EXPECT_TRUE(Utils::TestListHasPoint(labelObject->GetOrientedBoundingBoxVertices(), itk::MakePoint(4.5, 9.35, 23.1)));
322325
// labelObject->GetPrincipalAxes(); omitted
323326
ITK_EXPECT_VECTOR_NEAR(itk::MakeVector(0.25, 0.3025, 1.21), labelObject->GetPrincipalMoments(), 1e-4);
324-
EXPECT_NEAR(1.22808, labelObject->GetRoundness(), 1e-4); // resulting value
327+
EXPECT_NEAR(1.2280817031643669, labelObject->GetRoundness(), 1e-5); // resulting value
325328

326329
if (::testing::Test::HasFailure())
327330
{
@@ -364,27 +367,30 @@ TEST_F(ShapeLabelMapFixture, 3D_T2x2x2_Spacing_Direction)
364367

365368
ITK_EXPECT_VECTOR_NEAR(itk::MakeIndex(5, 9, 11), labelObject->GetBoundingBox().GetIndex(), 1e-99);
366369
ITK_EXPECT_VECTOR_NEAR(itk::MakeSize(2, 2, 2), labelObject->GetBoundingBox().GetSize(), 1e-99);
367-
ITK_EXPECT_VECTOR_NEAR(
368-
itk::MakePoint(10.13655, 4.21035, -25.67227), labelObject->GetCentroid(), 1e-4); // resulting value
370+
ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(10.136550336022847, 4.2103580941358141, -25.672275551739141),
371+
labelObject->GetCentroid(),
372+
1e-4); // resulting value
369373
EXPECT_NEAR(2.0, labelObject->GetElongation(), 1e-4);
370-
ITK_EXPECT_VECTOR_NEAR(
371-
itk::MakePoint(2.4814, 2.72954, 5.45908), labelObject->GetEquivalentEllipsoidDiameter(), 1e-4); // resulting value
372-
EXPECT_NEAR(34.86751, labelObject->GetEquivalentSphericalPerimeter(), 1e-4); // resulting value
373-
EXPECT_NEAR(1.66573, labelObject->GetEquivalentSphericalRadius(), 1e-4); // resulting value
374+
ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(2.4814019635976252, 2.7295421599572678, 5.4590843199148482),
375+
labelObject->GetEquivalentEllipsoidDiameter(),
376+
1e-5); // resulting value
377+
EXPECT_NEAR(34.867517413417708, labelObject->GetEquivalentSphericalPerimeter(), 1e-5); // resulting value
378+
EXPECT_NEAR(1.6657337346779293, labelObject->GetEquivalentSphericalRadius(), 1e-5); // resulting value
374379
EXPECT_NEAR(2.65518, labelObject->GetFeretDiameter(), 1e-4);
375380
EXPECT_NEAR(1.1, labelObject->GetFlatness(), 1e-4);
376381
EXPECT_EQ(8u, labelObject->GetNumberOfPixels());
377382
EXPECT_EQ(0u, labelObject->GetNumberOfPixelsOnBorder());
378383
ITK_EXPECT_VECTOR_NEAR(itk::MakeVector(2.0, 2.2, 4.4), labelObject->GetOrientedBoundingBoxSize(), 1e-10);
379-
ITK_EXPECT_VECTOR_NEAR(
380-
itk::MakePoint(9.75747, 5.36134, -28.03480), labelObject->GetOrientedBoundingBoxOrigin(), 1e-4); // resulting value
381-
EXPECT_NEAR(28.3919, labelObject->GetPerimeter(), 1e-4); // resulting value
384+
ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(9.7574735481346888, 5.3613400676410672, -28.034804130519035),
385+
labelObject->GetOrientedBoundingBoxOrigin(),
386+
1e-4); // resulting value
387+
EXPECT_NEAR(28.391854811919647, labelObject->GetPerimeter(), 1e-5); // resulting value
382388
EXPECT_EQ(0.0, labelObject->GetPerimeterOnBorder());
383389
EXPECT_EQ(0.0, labelObject->GetPerimeterOnBorderRatio());
384390
EXPECT_NEAR(19.36, labelObject->GetPhysicalSize(), 1e-10);
385391
// labelObject->GetPrincipalAxes(); omitted
386392
ITK_EXPECT_VECTOR_NEAR(itk::MakeVector(0.25, 0.3025, 1.21), labelObject->GetPrincipalMoments(), 1e-4);
387-
EXPECT_NEAR(1.22808, labelObject->GetRoundness(), 1e-4); // resulting value
393+
EXPECT_NEAR(1.2280817031643669, labelObject->GetRoundness(), 1e-5); // resulting value
388394

389395
if (::testing::Test::HasFailure())
390396
{

0 commit comments

Comments
 (0)