22 CPPUNIT_TEST_SUITE(mitkGIFCurvatureStatisticTestSuite);
26 CPPUNIT_TEST_SUITE_END();
36 void setUp(
void)
override 38 m_IBSI_Phantom_Image_Small = mitk::IOUtil::Load<mitk::Image>(
GetTestDataFilePath(
"Radiomics/IBSI_Phantom_Image_Small.nrrd"));
39 m_IBSI_Phantom_Image_Large = mitk::IOUtil::Load<mitk::Image>(
GetTestDataFilePath(
"Radiomics/IBSI_Phantom_Image_Large.nrrd"));
40 m_IBSI_Phantom_Mask_Small = mitk::IOUtil::Load<mitk::Image>(
GetTestDataFilePath(
"Radiomics/IBSI_Phantom_Mask_Small.nrrd"));
41 m_IBSI_Phantom_Mask_Large = mitk::IOUtil::Load<mitk::Image>(
GetTestDataFilePath(
"Radiomics/IBSI_Phantom_Mask_Large.nrrd"));
44 void ImageDescription_PhantomTest()
48 featureCalculator->SetUseBinsize(
true);
49 featureCalculator->SetBinsize(1.0);
50 featureCalculator->SetUseMinimumIntensity(
true);
51 featureCalculator->SetUseMaximumIntensity(
true);
52 featureCalculator->SetMinimumIntensity(0.5);
53 featureCalculator->SetMaximumIntensity(6.5);
55 auto featureList = featureCalculator->CalculateFeatures(m_IBSI_Phantom_Image_Large, m_IBSI_Phantom_Mask_Large);
57 std::map<std::string, double> results;
58 for (
auto valuePair : featureList)
60 MITK_INFO << valuePair.first <<
" : " << valuePair.second;
61 results[valuePair.first] = valuePair.second;
63 CPPUNIT_ASSERT_EQUAL_MESSAGE(
"Image Diagnostics should calculate 44 features.", std::size_t(44), featureList.size());
67 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Minimum Mean Curvature with Large IBSI Phantom Image", -1.51, results[
"Curvature Feature::Minimum Mean Curvature"], 0.01);
68 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Maximum Mean Curvature with Large IBSI Phantom Image", 0.51, results[
"Curvature Feature::Maximum Mean Curvature"], 0.01);
69 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Mean Mean Curvature with Large IBSI Phantom Image", 0.095, results[
"Curvature Feature::Mean Mean Curvature"], 0.01);
70 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Standard Deviation Mean Curvature with Large IBSI Phantom Image", 0.45, results[
"Curvature Feature::Standard Deviation Mean Curvature"], 0.01);
71 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Skewness Mean Curvature with Large IBSI Phantom Image", -2.55, results[
"Curvature Feature::Skewness Mean Curvature"], 0.01);
72 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Mean Positive Mean Curvature with Large IBSI Phantom Image", 0.30, results[
"Curvature Feature::Mean Positive Mean Curvature"], 0.01);
73 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Standard Deviation Positive Mean Curvature with Large IBSI Phantom Image", 0.12, results[
"Curvature Feature::Standard Deviation Positive Mean Curvature"], 0.01);
74 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Skewness Positive Mean Curvature with Large IBSI Phantom Image", 0.60, results[
"Curvature Feature::Skewness Positive Mean Curvature"], 0.01);
75 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Mean Negative Mean Curvature with Large IBSI Phantom Image", -0.955, results[
"Curvature Feature::Mean Negative Mean Curvature"], 0.01);
76 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Standard Deviation Negative Mean Curvature with Large IBSI Phantom Image", 0.56, results[
"Curvature Feature::Standard Deviation Negative Mean Curvature"], 0.01);
77 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Skewness Negative Mean Curvature with Large IBSI Phantom Image", 0.09, results[
"Curvature Feature::Skewness Negative Mean Curvature"], 0.01);
79 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Minimum Gaussian Curvature with Large IBSI Phantom Image", -0.211, results[
"Curvature Feature::Minimum Gaussian Curvature"], 0.01);
80 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Maximum Gaussian Curvature with Large IBSI Phantom Image", 1.81, results[
"Curvature Feature::Maximum Gaussian Curvature"], 0.01);
81 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Mean Gaussian Curvature with Large IBSI Phantom Image", 0.14, results[
"Curvature Feature::Mean Gaussian Curvature"], 0.01);
82 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Standard Deviation Gaussian Curvature with Large IBSI Phantom Image", 0.42, results[
"Curvature Feature::Standard Deviation Gaussian Curvature"], 0.01);
83 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Skewness Gaussian Curvature with Large IBSI Phantom Image", 3.51, results[
"Curvature Feature::Skewness Gaussian Curvature"], 0.01);
84 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Mean Positive Gaussian Curvature with Large IBSI Phantom Image", 0.26, results[
"Curvature Feature::Mean Positive Gaussian Curvature"], 0.01);
85 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Standard Deviation Positive Gaussian Curvature with Large IBSI Phantom Image", 0.53, results[
"Curvature Feature::Standard Deviation Positive Gaussian Curvature"], 0.01);
86 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Skewness Positive Gaussian Curvature with Large IBSI Phantom Image", 2.52, results[
"Curvature Feature::Skewness Positive Gaussian Curvature"], 0.01);
87 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Mean Negative Gaussian Curvature with Large IBSI Phantom Image", -0.03, results[
"Curvature Feature::Mean Negative Gaussian Curvature"], 0.01);
88 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Standard Deviation Negative Gaussian Curvature with Large IBSI Phantom Image", 0.055, results[
"Curvature Feature::Standard Deviation Negative Gaussian Curvature"], 0.01);
89 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Skewness Negative Gaussian Curvature with Large IBSI Phantom Image", -1.92, results[
"Curvature Feature::Skewness Negative Gaussian Curvature"], 0.01);
91 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Minimum Minimum Curvature with Large IBSI Phantom Image", -2.19, results[
"Curvature Feature::Minimum Minimum Curvature"], 0.01);
92 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Maximum Minimum Curvature with Large IBSI Phantom Image", 0.35, results[
"Curvature Feature::Maximum Minimum Curvature"], 0.01);
93 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Mean Minimum Curvature with Large IBSI Phantom Image", -0.11, results[
"Curvature Feature::Mean Minimum Curvature"], 0.01);
94 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Standard Deviation Minimum Curvature with Large IBSI Phantom Image", 0.573, results[
"Curvature Feature::Standard Deviation Minimum Curvature"], 0.01);
95 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Skewness Minimum Curvature with Large IBSI Phantom Image", -2.742, results[
"Curvature Feature::Skewness Minimum Curvature"], 0.01);
96 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Mean Positive Minimum Curvature with Large IBSI Phantom Image", 0.161, results[
"Curvature Feature::Mean Positive Minimum Curvature"], 0.01);
97 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Standard Deviation Positive Minimum Curvature with Large IBSI Phantom Image", 0.165, results[
"Curvature Feature::Standard Deviation Positive Minimum Curvature"], 0.01);
98 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Skewness Positive Minimum Curvature with Large IBSI Phantom Image", 0.108, results[
"Curvature Feature::Skewness Positive Minimum Curvature"], 0.01);
99 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Mean Negative Minimum Curvature with Large IBSI Phantom Image", -0.42, results[
"Curvature Feature::Mean Negative Minimum Curvature"], 0.01);
100 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Standard Deviation Negative Minimum Curvature with Large IBSI Phantom Image", 0.733, results[
"Curvature Feature::Standard Deviation Negative Minimum Curvature"], 0.01);
101 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Skewness Negative Minimum Curvature with Large IBSI Phantom Image", -1.73, results[
"Curvature Feature::Skewness Negative Minimum Curvature"], 0.01);
103 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Minimum Maximum Curvature with Large IBSI Phantom Image", -0.83, results[
"Curvature Feature::Minimum Maximum Curvature"], 0.01);
104 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Maximum Maximum Curvature with Large IBSI Phantom Image", 0.79, results[
"Curvature Feature::Maximum Maximum Curvature"], 0.01);
105 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Mean Maximum Curvature with Large IBSI Phantom Image", 0.30, results[
"Curvature Feature::Mean Maximum Curvature"], 0.01);
106 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Standard Deviation Maximum Curvature with Large IBSI Phantom Image", 0.369, results[
"Curvature Feature::Standard Deviation Maximum Curvature"], 0.01);
107 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Skewness Maximum Curvature with Large IBSI Phantom Image", -1.617, results[
"Curvature Feature::Skewness Maximum Curvature"], 0.01);
108 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Mean Positive Maximum Curvature with Large IBSI Phantom Image", 0.419, results[
"Curvature Feature::Mean Positive Maximum Curvature"], 0.01);
109 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Standard Deviation Positive Maximum Curvature with Large IBSI Phantom Image", 0.217, results[
"Curvature Feature::Standard Deviation Positive Maximum Curvature"], 0.01);
110 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Skewness Positive Maximum Curvature with Large IBSI Phantom Image", -0.958, results[
"Curvature Feature::Skewness Positive Maximum Curvature"], 0.01);
111 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Mean Negative Maximum Curvature with Large IBSI Phantom Image", -0.44, results[
"Curvature Feature::Mean Negative Maximum Curvature"], 0.01);
112 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Standard Deviation Negative Maximum Curvature with Large IBSI Phantom Image", 0.399, results[
"Curvature Feature::Standard Deviation Negative Maximum Curvature"], 0.01);
113 CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE(
"Curvature Feature::Skewness Negative Maximum Curvature with Large IBSI Phantom Image", 0.109, results[
"Curvature Feature::Skewness Negative Maximum Curvature"], 0.01);
MITK_TEST_SUITE_REGISTRATION(mitkImageToItk)
#define MITK_TEST(TESTMETHOD)
Adds a test to the current test suite.
static std::string GetTestDataFilePath(const std::string &testData)
Get the absolute path for test data.
Test fixture for parameterized tests.