Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 37 additions & 31 deletions Modules/Filtering/LabelMap/test/itkShapeLabelMapFilterGTest.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -151,21 +151,21 @@ TEST_F(ShapeLabelMapFixture, 3D_T1x1x1)
ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(5.0, 7.0, 9.0), labelObject->GetCentroid(), 1e-10);
EXPECT_EQ(0.0, labelObject->GetElongation());
ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(0.0, 0.0, 0.0), labelObject->GetEquivalentEllipsoidDiameter(), 1e-10);
EXPECT_NEAR(4.83598, labelObject->GetEquivalentSphericalPerimeter(), 1e-4); // resulting value
EXPECT_NEAR(0.62035, labelObject->GetEquivalentSphericalRadius(), 1e-4); // resulting value
EXPECT_NEAR(4.8359758620494109, labelObject->GetEquivalentSphericalPerimeter(), 1e-5); // resulting value
EXPECT_NEAR(0.62035049089940009, labelObject->GetEquivalentSphericalRadius(), 1e-5); // resulting value
EXPECT_EQ(0.0, labelObject->GetFeretDiameter());
EXPECT_EQ(0.0, labelObject->GetFlatness());
EXPECT_EQ(1u, labelObject->GetNumberOfPixels());
EXPECT_EQ(0u, labelObject->GetNumberOfPixelsOnBorder());
ITK_EXPECT_VECTOR_NEAR(itk::MakeVector(1u, 1u, 1u), labelObject->GetOrientedBoundingBoxSize(), 1e-10);
ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(4.5, 6.5, 8.5), labelObject->GetOrientedBoundingBoxOrigin(), 1e-10);
EXPECT_NEAR(3.004, labelObject->GetPerimeter(), 1e-4); // resulting value
EXPECT_NEAR(3.0040803078963907, labelObject->GetPerimeter(), 1e-5); // resulting value
EXPECT_EQ(0.0, labelObject->GetPerimeterOnBorder());
EXPECT_EQ(0.0, labelObject->GetPerimeterOnBorderRatio());
EXPECT_EQ(1.0, labelObject->GetPhysicalSize());
// labelObject->GetPrincipalAxes(); degenerate case
EXPECT_EQ(itk::MakeVector(0.0, 0.0, 0.0), labelObject->GetPrincipalMoments());
EXPECT_NEAR(1.6098, labelObject->GetRoundness(), 0.0001); // resulting value
EXPECT_NEAR(1.6098024574568734, labelObject->GetRoundness(), 1e-5); // resulting value

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

Expand Down Expand Up @@ -197,21 +197,21 @@ TEST_F(ShapeLabelMapFixture, 3D_T3x2x1)
EXPECT_EQ(itk::MakePoint(6.0, 9.5, 11.0), labelObject->GetCentroid());
EXPECT_NEAR(1.63299, labelObject->GetElongation(), 1e-4);
ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(0.0, 0.0, 0.0), labelObject->GetEquivalentEllipsoidDiameter(), 1e-10);
EXPECT_NEAR(15.96804, labelObject->GetEquivalentSphericalPerimeter(), 1e-4); // resulting value
EXPECT_NEAR(1.12725, labelObject->GetEquivalentSphericalRadius(), 1e-4); // resulting value
EXPECT_NEAR(15.96804047389762, labelObject->GetEquivalentSphericalPerimeter(), 1e-5); // resulting value
EXPECT_NEAR(1.1272516517868265, labelObject->GetEquivalentSphericalRadius(), 1e-5); // resulting value
EXPECT_NEAR(2.23606, labelObject->GetFeretDiameter(), 1e-4);
EXPECT_EQ(0.0, labelObject->GetFlatness());
EXPECT_EQ(6u, labelObject->GetNumberOfPixels());
EXPECT_EQ(0u, labelObject->GetNumberOfPixelsOnBorder());
ITK_EXPECT_VECTOR_NEAR(itk::MakeVector(1u, 2u, 3u), labelObject->GetOrientedBoundingBoxSize(), 1e-10);
ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(7.5, 8.5, 10.5), labelObject->GetOrientedBoundingBoxOrigin(), 1e-10);
EXPECT_NEAR(14.62414, labelObject->GetPerimeter(), 1e-4); // resulting value
EXPECT_NEAR(14.624143852112988, labelObject->GetPerimeter(), 1e-5); // resulting value
EXPECT_EQ(0.0, labelObject->GetPerimeterOnBorder());
EXPECT_EQ(0.0, labelObject->GetPerimeterOnBorderRatio());
EXPECT_EQ(6.0, labelObject->GetPhysicalSize());
// labelObject->GetPrincipalAxes(); omitted
ITK_EXPECT_VECTOR_NEAR(itk::MakeVector(0.0, 0.25, 0.666667), labelObject->GetPrincipalMoments(), 1e-4);
EXPECT_NEAR(1.09189, labelObject->GetRoundness(), 1e-4); // resulting value
EXPECT_NEAR(1.0918957468809676, labelObject->GetRoundness(), 1e-5); // resulting value

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

Expand Down Expand Up @@ -249,25 +249,27 @@ TEST_F(ShapeLabelMapFixture, 3D_T3x2x1_Direction)

ITK_EXPECT_VECTOR_NEAR(itk::MakeIndex(5, 9, 11), labelObject->GetBoundingBox().GetIndex(), 1e-99);
ITK_EXPECT_VECTOR_NEAR(itk::MakeSize(3, 2, 1), labelObject->GetBoundingBox().GetSize(), 1e-99);
ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(5.06906, -3.25286, -14.5249), labelObject->GetCentroid(), 1e-4);
ITK_EXPECT_VECTOR_NEAR(
itk::MakePoint(5.0690644435107242, -3.2528635005915247, -14.524925635405358), labelObject->GetCentroid(), 1e-4);
EXPECT_NEAR(1.63299, labelObject->GetElongation(), 1e-4);
// ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(0.0,0.0,0.0), labelObject->GetEquivalentEllipsoidDiameter(), 1e-10);
EXPECT_NEAR(15.96804, labelObject->GetEquivalentSphericalPerimeter(), 1e-4); // resulting value
EXPECT_NEAR(1.12725, labelObject->GetEquivalentSphericalRadius(), 1e-4); // resulting value
EXPECT_NEAR(15.96804047389762, labelObject->GetEquivalentSphericalPerimeter(), 1e-5); // resulting value
EXPECT_NEAR(1.1272516517868265, labelObject->GetEquivalentSphericalRadius(), 1e-5); // resulting value
EXPECT_NEAR(2.23606, labelObject->GetFeretDiameter(), 1e-4);
// EXPECT_EQ(0.0, labelObject->GetFlatness()); unstable due to division near zero
EXPECT_EQ(6u, labelObject->GetNumberOfPixels());
EXPECT_EQ(0u, labelObject->GetNumberOfPixelsOnBorder());
ITK_EXPECT_VECTOR_NEAR(itk::MakeVector(1u, 2u, 3u), labelObject->GetOrientedBoundingBoxSize(), 1e-10);
ITK_EXPECT_VECTOR_NEAR(
itk::MakePoint(6.02222, -4.47691, -15.57049), labelObject->GetOrientedBoundingBoxOrigin(), 1e-4);
EXPECT_NEAR(14.62414, labelObject->GetPerimeter(), 1e-4); // resulting value
ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(6.0222153120831488, -4.4769132554776352, -15.570490372427054),
labelObject->GetOrientedBoundingBoxOrigin(),
1e-4);
EXPECT_NEAR(14.624143852112988, labelObject->GetPerimeter(), 1e-5); // resulting value
EXPECT_EQ(0.0, labelObject->GetPerimeterOnBorder());
EXPECT_EQ(0.0, labelObject->GetPerimeterOnBorderRatio());
EXPECT_EQ(6.0, labelObject->GetPhysicalSize());
// labelObject->GetPrincipalAxes(); omitted
ITK_EXPECT_VECTOR_NEAR(itk::MakeVector(0.0, 0.25, 0.666667), labelObject->GetPrincipalMoments(), 1e-4);
EXPECT_NEAR(1.09189, labelObject->GetRoundness(), 1e-4); // resulting value
EXPECT_NEAR(1.0918957468809676, labelObject->GetRoundness(), 1e-5); // resulting value

if (::testing::Test::HasFailure())
{
Expand Down Expand Up @@ -302,16 +304,17 @@ TEST_F(ShapeLabelMapFixture, 3D_T2x2x2_Spacing)
ITK_EXPECT_VECTOR_NEAR(itk::MakeSize(2, 2, 2), labelObject->GetBoundingBox().GetSize(), 1e-99);
ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(5.5, 10.45, 25.3), labelObject->GetCentroid(), 1e-4);
EXPECT_NEAR(2.0, labelObject->GetElongation(), 1e-4);
ITK_EXPECT_VECTOR_NEAR(
itk::MakePoint(2.4814, 2.72954, 5.45908), labelObject->GetEquivalentEllipsoidDiameter(), 1e-4); // resulting value
EXPECT_NEAR(34.86751, labelObject->GetEquivalentSphericalPerimeter(), 1e-4); // resulting value
EXPECT_NEAR(1.66573, labelObject->GetEquivalentSphericalRadius(), 1e-4); // resulting value
ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(2.4814019635976252, 2.7295421599572678, 5.4590843199148482),
labelObject->GetEquivalentEllipsoidDiameter(),
1e-5); // resulting value
EXPECT_NEAR(34.867517413417708, labelObject->GetEquivalentSphericalPerimeter(), 1e-5); // resulting value
EXPECT_NEAR(1.6657337346779293, labelObject->GetEquivalentSphericalRadius(), 1e-5); // resulting value
EXPECT_NEAR(2.65518, labelObject->GetFeretDiameter(), 1e-4);
EXPECT_NEAR(1.1, labelObject->GetFlatness(), 1e-4);
EXPECT_EQ(8u, labelObject->GetNumberOfPixels());
EXPECT_EQ(0u, labelObject->GetNumberOfPixelsOnBorder());
ITK_EXPECT_VECTOR_NEAR(itk::MakeVector(2.0, 2.2, 4.4), labelObject->GetOrientedBoundingBoxSize(), 1e-10);
EXPECT_NEAR(28.3919, labelObject->GetPerimeter(), 1e-4); // resulting value
EXPECT_NEAR(28.391854811919647, labelObject->GetPerimeter(), 1e-5); // resulting value
EXPECT_EQ(0.0, labelObject->GetPerimeterOnBorder());
EXPECT_EQ(0.0, labelObject->GetPerimeterOnBorderRatio());
EXPECT_NEAR(19.36, labelObject->GetPhysicalSize(), 1e-10);
Expand All @@ -321,7 +324,7 @@ TEST_F(ShapeLabelMapFixture, 3D_T2x2x2_Spacing)
EXPECT_TRUE(Utils::TestListHasPoint(labelObject->GetOrientedBoundingBoxVertices(), itk::MakePoint(4.5, 9.35, 23.1)));
// labelObject->GetPrincipalAxes(); omitted
ITK_EXPECT_VECTOR_NEAR(itk::MakeVector(0.25, 0.3025, 1.21), labelObject->GetPrincipalMoments(), 1e-4);
EXPECT_NEAR(1.22808, labelObject->GetRoundness(), 1e-4); // resulting value
EXPECT_NEAR(1.2280817031643669, labelObject->GetRoundness(), 1e-5); // resulting value

if (::testing::Test::HasFailure())
{
Expand Down Expand Up @@ -364,27 +367,30 @@ TEST_F(ShapeLabelMapFixture, 3D_T2x2x2_Spacing_Direction)

ITK_EXPECT_VECTOR_NEAR(itk::MakeIndex(5, 9, 11), labelObject->GetBoundingBox().GetIndex(), 1e-99);
ITK_EXPECT_VECTOR_NEAR(itk::MakeSize(2, 2, 2), labelObject->GetBoundingBox().GetSize(), 1e-99);
ITK_EXPECT_VECTOR_NEAR(
itk::MakePoint(10.13655, 4.21035, -25.67227), labelObject->GetCentroid(), 1e-4); // resulting value
ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(10.136550336022847, 4.2103580941358141, -25.672275551739141),
labelObject->GetCentroid(),
1e-4); // resulting value
EXPECT_NEAR(2.0, labelObject->GetElongation(), 1e-4);
ITK_EXPECT_VECTOR_NEAR(
itk::MakePoint(2.4814, 2.72954, 5.45908), labelObject->GetEquivalentEllipsoidDiameter(), 1e-4); // resulting value
EXPECT_NEAR(34.86751, labelObject->GetEquivalentSphericalPerimeter(), 1e-4); // resulting value
EXPECT_NEAR(1.66573, labelObject->GetEquivalentSphericalRadius(), 1e-4); // resulting value
ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(2.4814019635976252, 2.7295421599572678, 5.4590843199148482),
labelObject->GetEquivalentEllipsoidDiameter(),
1e-5); // resulting value
EXPECT_NEAR(34.867517413417708, labelObject->GetEquivalentSphericalPerimeter(), 1e-5); // resulting value
EXPECT_NEAR(1.6657337346779293, labelObject->GetEquivalentSphericalRadius(), 1e-5); // resulting value
EXPECT_NEAR(2.65518, labelObject->GetFeretDiameter(), 1e-4);
EXPECT_NEAR(1.1, labelObject->GetFlatness(), 1e-4);
EXPECT_EQ(8u, labelObject->GetNumberOfPixels());
EXPECT_EQ(0u, labelObject->GetNumberOfPixelsOnBorder());
ITK_EXPECT_VECTOR_NEAR(itk::MakeVector(2.0, 2.2, 4.4), labelObject->GetOrientedBoundingBoxSize(), 1e-10);
ITK_EXPECT_VECTOR_NEAR(
itk::MakePoint(9.75747, 5.36134, -28.03480), labelObject->GetOrientedBoundingBoxOrigin(), 1e-4); // resulting value
EXPECT_NEAR(28.3919, labelObject->GetPerimeter(), 1e-4); // resulting value
ITK_EXPECT_VECTOR_NEAR(itk::MakePoint(9.7574735481346888, 5.3613400676410672, -28.034804130519035),
labelObject->GetOrientedBoundingBoxOrigin(),
1e-4); // resulting value
EXPECT_NEAR(28.391854811919647, labelObject->GetPerimeter(), 1e-5); // resulting value
EXPECT_EQ(0.0, labelObject->GetPerimeterOnBorder());
EXPECT_EQ(0.0, labelObject->GetPerimeterOnBorderRatio());
EXPECT_NEAR(19.36, labelObject->GetPhysicalSize(), 1e-10);
// labelObject->GetPrincipalAxes(); omitted
ITK_EXPECT_VECTOR_NEAR(itk::MakeVector(0.25, 0.3025, 1.21), labelObject->GetPrincipalMoments(), 1e-4);
EXPECT_NEAR(1.22808, labelObject->GetRoundness(), 1e-4); // resulting value
EXPECT_NEAR(1.2280817031643669, labelObject->GetRoundness(), 1e-5); // resulting value

if (::testing::Test::HasFailure())
{
Expand Down
Loading