Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
itkMaskedNaryStatisticsImageFilterTest.cpp
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #include "itkImage.h"
14 #include "itkImageRegionIterator.h"
15 
17 
18 #include "mitkTestingMacros.h"
19 #include "mitkVector.h"
20 
22 
23 int itkMaskedNaryStatisticsImageFilterTest(int /*argc*/ , char*[] /*argv[]*/)
24 {
25  // always start with this!
26  MITK_TEST_BEGIN("itkMaskedNaryStatisticsImageFilterTest")
27 
28  //Prepare test artifacts and helper
29 
30  mitk::TestImageType::Pointer img1 = mitk::GenerateTestImage();
31  mitk::TestImageType::Pointer img2 = mitk::GenerateTestImage(10);
32 
34  FilterType::Pointer testFilter = FilterType::New();
35 
36  testFilter->SetInput(0,img1);
37  testFilter->SetInput(1,img2);
38 
39  testFilter->Update();
40 
41  FilterType::PixelVectorType max = testFilter->GetMaximum();
42  FilterType::PixelVectorType min = testFilter->GetMinimum();
43  FilterType::RealVectorType mean = testFilter->GetMean();
44  FilterType::RealVectorType sig = testFilter->GetSigma();
45  FilterType::RealVectorType variance = testFilter->GetVariance();
46  FilterType::RealVectorType sum = testFilter->GetSum();
47 
48  MITK_TEST_CONDITION(2 == max.size(),"Check size of maximum");
49  MITK_TEST_CONDITION(2 == min.size(),"Check size of minimum");
50  MITK_TEST_CONDITION(2 == mean.size(),"Check size of mean");
51  MITK_TEST_CONDITION(2 == sig.size(),"Check size of sigma");
52  MITK_TEST_CONDITION(2 == variance.size(),"Check size of variance");
53  MITK_TEST_CONDITION(2 == sum.size(),"Check size of sum");
54 
55  CPPUNIT_ASSERT_MESSAGE("Check computed maximum[0]",9 == max[0]);
56  CPPUNIT_ASSERT_MESSAGE("Check computed minimum[0]",1 == min[0]);
57  CPPUNIT_ASSERT_MESSAGE("Check computed mean[0]",5 == mean[0]);
58  CPPUNIT_ASSERT_MESSAGE("Check computed sigma[0]",sqrt(7.5) == sig[0]);
59  CPPUNIT_ASSERT_MESSAGE("Check computed variance[0]",7.5 == variance[0]);
60  CPPUNIT_ASSERT_MESSAGE("Check computed sum[0]",45 == sum[0]);
61 
62  CPPUNIT_ASSERT_MESSAGE("Check computed maximum[1]",90 == max[1]);
63  CPPUNIT_ASSERT_MESSAGE("Check computed minimum[1]",10 == min[1]);
64  CPPUNIT_ASSERT_MESSAGE("Check computed mean[1]",50 == mean[1]);
65  CPPUNIT_ASSERT_MESSAGE("Check computed sigma[1]",sqrt(750.0) == sig[1]);
66  CPPUNIT_ASSERT_MESSAGE("Check computed variance[1]",750 == variance[1]);
67  CPPUNIT_ASSERT_MESSAGE("Check computed sum[1]",450 == sum[1]);
68 
69 
70  //Test with mask set
71  mitk::TestMaskType::Pointer mask = mitk::GenerateTestMask();
72  testFilter->SetMask(mask);
73 
74  testFilter->Update();
75 
76  max = testFilter->GetMaximum();
77  min = testFilter->GetMinimum();
78  mean = testFilter->GetMean();
79  sig = testFilter->GetSigma();
80  variance = testFilter->GetVariance();
81  sum = testFilter->GetSum();
82 
83  MITK_TEST_CONDITION(2 == max.size(),"Check size of maximum");
84  MITK_TEST_CONDITION(2 == min.size(),"Check size of minimum");
85  MITK_TEST_CONDITION(2 == mean.size(),"Check size of mean");
86  MITK_TEST_CONDITION(2 == sig.size(),"Check size of sigma");
87  MITK_TEST_CONDITION(2 == variance.size(),"Check size of variance");
88  MITK_TEST_CONDITION(2 == sum.size(),"Check size of sum");
89 
90  CPPUNIT_ASSERT_MESSAGE("Check computed maximum[0]",4 == max[0]);
91  CPPUNIT_ASSERT_MESSAGE("Check computed minimum[0]",2 == min[0]);
92  CPPUNIT_ASSERT_MESSAGE("Check computed mean[0]",3 == mean[0]);
93  CPPUNIT_ASSERT_MESSAGE("Check computed sigma[0]",1 == sig[0]);
94  CPPUNIT_ASSERT_MESSAGE("Check computed variance[0]",1 == variance[0]);
95  CPPUNIT_ASSERT_MESSAGE("Check computed sum[0]",9 == sum[0]);
96 
97  CPPUNIT_ASSERT_MESSAGE("Check computed maximum[1]",40 == max[1]);
98  CPPUNIT_ASSERT_MESSAGE("Check computed minimum[1]",20 == min[1]);
99  CPPUNIT_ASSERT_MESSAGE("Check computed mean[1]",30 == mean[1]);
100  CPPUNIT_ASSERT_MESSAGE("Check computed sigma[1]",10 == sig[1]);
101  CPPUNIT_ASSERT_MESSAGE("Check computed variance[1]",100 == variance[1]);
102  CPPUNIT_ASSERT_MESSAGE("Check computed sum[1]",90 == sum[1]);
103 
104  MITK_TEST_END()
105 }
int itkMaskedNaryStatisticsImageFilterTest(int, char *[])
section GeneralTestsDeprecatedOldTestingStyle Deprecated macros All tests with MITK_TEST_BEGIN()
TestImageType::Pointer MITKTESTINGHELPER_EXPORT GenerateTestImage(int factor=1)
#define MITK_TEST_CONDITION(COND, MSG)
static T max(T x, T y)
Definition: svm.cpp:56
Computes a masked statistic on N images and produces vectors of those statistic results.
static T min(T x, T y)
Definition: svm.cpp:53
mitk::Image::Pointer mask
and MITK_TEST_END()
TestMaskType::Pointer MITKTESTINGHELPER_EXPORT GenerateTestMask()