21 CPPUNIT_TEST_SUITE(mitkImageEqualTestSuite);
22 MITK_TEST(Equal_CloneAndOriginal_ReturnsTrue);
23 MITK_TEST(Equal_DifferentImageGeometry_ReturnsFalse);
24 MITK_TEST(Equal_DifferentPixelTypes_ReturnsFalse);
25 MITK_TEST(Equal_DifferentDimensions_ReturnsFalse);
26 MITK_TEST(Equal_DifferentDimensionalities_ReturnsFalse);
27 MITK_TEST(Equal_DifferentPixelValues_ReturnsFalse);
28 CPPUNIT_TEST_SUITE_END();
43 m_Image = mitk::ImageGenerator::GenerateGradientImage<unsigned char>(3u, 3u, 1u);
44 m_AnotherImage = m_Image->Clone();
47 void tearDown()
override 50 m_AnotherImage =
nullptr;
53 void Equal_CloneAndOriginal_ReturnsTrue()
55 MITK_ASSERT_EQUAL(m_Image, m_Image->Clone(),
"A clone should be equal to its original.");
58 void Equal_DifferentImageGeometry_ReturnsFalse()
65 m_AnotherImage->GetGeometry()->SetOrigin(origin);
70 void Equal_DifferentPixelTypes_ReturnsFalse()
72 m_AnotherImage = mitk::ImageGenerator::GenerateGradientImage<float>(3u, 3u, 1u);
75 m_Image, m_AnotherImage,
"One pixel type is float, the other unsigned char. Result should be false.");
78 void Equal_DifferentDimensions_ReturnsFalse()
80 m_AnotherImage = mitk::ImageGenerator::GenerateGradientImage<unsigned char>(5u, 7u, 3u);
85 "Dimensions of first image are: (3, 3, 1). Dimensions of second image are: (5, 7, 3). Result should be false.");
88 void Equal_DifferentDimensionalities_ReturnsFalse()
92 sliceSelector->SetInput(m_Image);
93 sliceSelector->SetSliceNr(0);
94 sliceSelector->Update();
95 m_AnotherImage = sliceSelector->GetOutput();
97 MITK_ASSERT_NOT_EQUAL(m_Image, m_AnotherImage,
"First image is 3D. Second image is 2D. Result should be false.");
100 void Equal_DifferentPixelValues_ReturnsFalse()
103 m_Image = mitk::ImageGenerator::GenerateRandomImage<unsigned char>(3u, 3u);
104 m_AnotherImage = mitk::ImageGenerator::GenerateRandomImage<unsigned char>(3u, 3u);
106 MITK_ASSERT_NOT_EQUAL(m_Image, m_AnotherImage,
"We compare two random images. Result should be false.");
109 void Equal_EpsilonDifference_ReturnsTrue()
111 m_Image = mitk::ImageGenerator::GenerateRandomImage<double>(10, 10);
112 m_AnotherImage = m_Image->Clone();
114 CPPUNIT_ASSERT_MESSAGE(
"Epsilon = 0.0 --> double images should not be regarded as equal",
116 CPPUNIT_ASSERT_MESSAGE(
"Epsilon = 0.001 --> double images should be regarded as equal",
117 mitk::Equal(*m_Image, *m_AnotherImage, 0.001,
true));
MITK_TEST_SUITE_REGISTRATION(mitkImageToItk)
#define MITK_TEST(TESTMETHOD)
Adds a test to the current test suite.
#define MITK_ASSERT_NOT_EQUAL(OBJ1, OBJ2, MSG)
Testing macro to test if two objects are not equal.
Test fixture for parameterized tests.
#define MITK_ASSERT_EQUAL(EXPECTED, ACTUAL, MSG)
Testing macro to test if two objects are equal.
MITKNEWMODULE_EXPORT bool Equal(mitk::ExampleDataStructure *leftHandSide, mitk::ExampleDataStructure *rightHandSide, mitk::ScalarType eps, bool verbose)
Returns true if the example data structures are considered equal.
MITKCORE_EXPORT const ScalarType eps