Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
mitkROIBasedParameterFitImageGeneratorTest.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 <iostream>
14 
15 #include "itkImageRegionIterator.h"
16 
17 #include "mitkTestingMacros.h"
18 #include "mitkImage.h"
20 
23 
25 
27 
28 int mitkROIBasedParameterFitImageGeneratorTest(int /*argc*/, char*[] /*argv[]*/)
29 {
30  // always start with this!
31  MITK_TEST_BEGIN("mitkROIBasedParameterFitImageGenerator")
32 
33  //Prepare test artifacts and helper
34 
35  itk::Index<3> testIndex1;
36  testIndex1[0] = 0;
37  testIndex1[1] = 0;
38  testIndex1[2] = 0;
39 
40  itk::Index<3> testIndex2;
41  testIndex2[0] = 2;
42  testIndex2[1] = 0;
43  testIndex2[2] = 1;
44 
45  itk::Index<3> testIndex3;
46  testIndex3[0] = 1;
47  testIndex3[1] = 1;
48  testIndex3[2] = 2;
49 
50  itk::Index<3> testIndex4;
51  testIndex4[0] = 2;
52  testIndex4[1] = 2;
53  testIndex4[2] = 0;
54 
55  itk::Index<3> testIndex5;
56  testIndex5[0] = 1;
57  testIndex5[1] = 1;
58  testIndex5[2] = 1;
59 
60  itk::Index<3> testIndex6;
61  testIndex6[0] = 2;
62  testIndex6[1] = 1;
63  testIndex6[2] = 1;
64 
65 
67 
69  timeGrid.SetSize(5);
70  timeGrid[0] = 0;
71  timeGrid[1] = 1;
72  timeGrid[2] = 2;
73  timeGrid[3] = 3;
74  timeGrid[4] = 4;
75 
77  signal.SetSize(5);
78  signal[0] = 3;
79  signal[1] = 5;
80  signal[2] = 7;
81  signal[3] = 9;
82  signal[4] = 11;
83 
86 
87  //Test default usage of filter
88  mitk::ROIBasedParameterFitImageGenerator::Pointer generator = mitk::ROIBasedParameterFitImageGenerator::New();
90 
91  generator->SetModelParameterizer(parameterizer);
92  generator->SetFitFunctor(testFunctor);
93  generator->SetMask(maskImage);
94  generator->SetSignal(signal);
95  generator->SetTimeGrid(timeGrid);
96 
97  generator->Generate();
98 
99  mitk::ROIBasedParameterFitImageGenerator::ParameterImageMapType resultImages = generator->GetParameterImages();
100  mitk::ROIBasedParameterFitImageGenerator::ParameterImageMapType derivedResultImages = generator->GetDerivedParameterImages();
101 
102  CPPUNIT_ASSERT_MESSAGE("Check number of parameter images", 2 == resultImages.size());
103  MITK_TEST_CONDITION(resultImages.find("slope") != resultImages.end(),"Check if \"slope\" parameter image exists.");
104  MITK_TEST_CONDITION(resultImages.find("offset") != resultImages.end(),"Check if \"offset\" parameter image exists.");
105  CPPUNIT_ASSERT_MESSAGE("Check number of derived parameter images", 1 == derivedResultImages.size());
106  MITK_TEST_CONDITION(derivedResultImages.find("x-intercept") != derivedResultImages.end(),"Check if \"x-intercept\" derived parameter image exists.");
107 
108  mitk::ImagePixelReadAccessor<mitk::ScalarType,3> slopeAccessor2(resultImages["slope"]);
109  mitk::ImagePixelReadAccessor<mitk::ScalarType,3> offsetAccessor2(resultImages["offset"]);
110 
111  double testValue = slopeAccessor2.GetPixelByIndex(testIndex1);
112  MITK_TEST_CONDITION_REQUIRED(mitk::Equal(2,testValue, 1e-5, true)==true, "Check param #1 (slope) at index #1");
113  testValue = slopeAccessor2.GetPixelByIndex(testIndex2);
114  MITK_TEST_CONDITION_REQUIRED(mitk::Equal(2,testValue, 1e-4, true)==true, "Check param #1 (slope) at index #2");
115  testValue = slopeAccessor2.GetPixelByIndex(testIndex3);
116  MITK_TEST_CONDITION_REQUIRED(mitk::Equal(0,testValue, 1e-5, true)==true, "Check param #1 (slope) at index #3");
117  testValue = slopeAccessor2.GetPixelByIndex(testIndex4);
118  MITK_TEST_CONDITION_REQUIRED(mitk::Equal(2,testValue, 1e-4, true)==true, "Check param #1 (slope) at index #4");
119  testValue = slopeAccessor2.GetPixelByIndex(testIndex5);
120  MITK_TEST_CONDITION_REQUIRED(mitk::Equal(2,testValue, 1e-4, true)==true, "Check param #1 (slope) at index #5");
121  testValue = slopeAccessor2.GetPixelByIndex(testIndex6);
122  MITK_TEST_CONDITION_REQUIRED(mitk::Equal(0,testValue, 1e-5, true)==true, "Check param #1 (slope) at index #6");
123 
124  testValue = offsetAccessor2.GetPixelByIndex(testIndex1);
125  MITK_TEST_CONDITION_REQUIRED(mitk::Equal(3,testValue, 1e-5, true)==true, "Check param #2 (offset) at index #1");
126  testValue = offsetAccessor2.GetPixelByIndex(testIndex2);
127  MITK_TEST_CONDITION_REQUIRED(mitk::Equal(3,testValue, 1e-5, true)==true, "Check param #2 (offset) at index #2");
128  testValue = offsetAccessor2.GetPixelByIndex(testIndex3);
129  MITK_TEST_CONDITION_REQUIRED(mitk::Equal(0,testValue, 1e-5, true)==true, "Check param #2 (offset) at index #3");
130  testValue = offsetAccessor2.GetPixelByIndex(testIndex4);
131  MITK_TEST_CONDITION_REQUIRED(mitk::Equal(3,testValue, 1e-5, true)==true, "Check param #2 (offset) at index #4");
132  testValue = offsetAccessor2.GetPixelByIndex(testIndex5);
133  MITK_TEST_CONDITION_REQUIRED(mitk::Equal(3,testValue, 1e-5, true)==true, "Check param #2 (offset) at index #5");
134  testValue = offsetAccessor2.GetPixelByIndex(testIndex6);
135  MITK_TEST_CONDITION_REQUIRED(mitk::Equal(0,testValue, 1e-5, true)==true, "Check param #2 (offset) at index #6");
136 
137  MITK_TEST_END()
138 }
Image::Pointer MITKTESTINGHELPER_EXPORT GenerateTestMaskMITK()
Gives locked and index-based read access for a particular image part. The class provides several set-...
#define MITK_TEST_CONDITION_REQUIRED(COND, MSG)
const TPixel & GetPixelByIndex(const itk::Index< VDimension > &idx) const
section GeneralTestsDeprecatedOldTestingStyle Deprecated macros All tests with MITK_TEST_BEGIN()
#define MITK_TEST_CONDITION(COND, MSG)
static Pointer New()
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.
int mitkROIBasedParameterFitImageGeneratorTest(int, char *[])
and MITK_TEST_END()
ParameterFitImageGeneratorBase::ParameterImageMapType ParameterImageMapType