MITK-IGT
IGT Extension of MITK
Loading...
Searching...
No Matches
mitkNavigationDataEvaluationFilterTest.cpp
Go to the documentation of this file.
1/*============================================================================
2
3The Medical Imaging Interaction Toolkit (MITK)
4
5Copyright (c) German Cancer Research Center (DKFZ)
6All rights reserved.
7
8Use of this source code is governed by a 3-clause BSD license that can be
9found in the LICENSE file.
10
11============================================================================*/
12
14#include "mitkTestingMacros.h"
15
23{
24
25public:
26
27static void TestInstantiation()
28 {
29 // let's create an object of our class
30 mitk::NavigationDataEvaluationFilter::Pointer myNavigationDataEvaluationFilter = mitk::NavigationDataEvaluationFilter::New();
31 MITK_TEST_CONDITION_REQUIRED(myNavigationDataEvaluationFilter.IsNotNull(),"Testing instantiation")
32 }
33
34static void TestSimpleCase()
35 {
36 MITK_TEST_OUTPUT(<< "Starting simple test case...");
37 mitk::NavigationData::Pointer testData = mitk::NavigationData::New();
38 mitk::NavigationDataEvaluationFilter::Pointer myNavigationDataEvaluationFilter = mitk::NavigationDataEvaluationFilter::New();
39 myNavigationDataEvaluationFilter->SetInput(testData);
40 myNavigationDataEvaluationFilter->Update();
41 testData->SetDataValid(true);
42 myNavigationDataEvaluationFilter->Update();
43 MITK_TEST_CONDITION_REQUIRED(myNavigationDataEvaluationFilter->GetNumberOfAnalysedNavigationData(0)==1,".. Testing GetNumberOfAnalysedNavigationData");
44 mitk::Point3D test;
45 test[0] = 1;
46 test[1] = 1;
47 test[2] = 1;
48 testData->SetPosition(test);
49 myNavigationDataEvaluationFilter->Update();
50 MITK_TEST_CONDITION_REQUIRED(myNavigationDataEvaluationFilter->GetNumberOfAnalysedNavigationData(0)==2,".. Testing GetNumberOfAnalysedNavigationData (2nd test)");
51 MITK_TEST_CONDITION_REQUIRED(myNavigationDataEvaluationFilter->GetNumberOfInvalidSamples(0)==1,".. Testing GetNumberOfInvalidSamples");
52 MITK_TEST_CONDITION_REQUIRED(mitk::Equal(myNavigationDataEvaluationFilter->GetPercentageOfInvalidSamples(0),33.33333333, 1E-7),".. Testing GetPercentageOfInvalidSamples");
53 MITK_TEST_CONDITION_REQUIRED((myNavigationDataEvaluationFilter->GetPositionStandardDeviation(0)[0]==0.5),".. Testing GetPositionStandardDeviation");
54 MITK_TEST_CONDITION_REQUIRED(mitk::Equal(myNavigationDataEvaluationFilter->GetPositionSampleStandardDeviation(0)[0],0.70710672, 1E-7),".. Testing GetPositionStandardDeviation");
55 MITK_TEST_CONDITION_REQUIRED(mitk::Equal(myNavigationDataEvaluationFilter->GetPositionErrorMean(0),0.8660254, 1E-6),".. Testing GetPositionErrorMean");
56 MITK_TEST_CONDITION_REQUIRED(mitk::Equal(myNavigationDataEvaluationFilter->GetPositionErrorRMS(0),0.8660254, 1E-6),".. Testing GetPositionErrorRMS");
57 MITK_TEST_CONDITION_REQUIRED(mitk::Equal(myNavigationDataEvaluationFilter->GetPositionErrorMax(0),0.8660254, 1E-6),".. Testing GetPositionErrorMax");
58 MITK_TEST_CONDITION_REQUIRED(mitk::Equal(myNavigationDataEvaluationFilter->GetPositionErrorMedian(0),0.8660254, 1E-6),".. Testing GetPositionErrorMedian");
59 MITK_TEST_CONDITION_REQUIRED(mitk::Equal(myNavigationDataEvaluationFilter->GetPositionErrorMin(0),0.8660254, 1E-6),".. Testing GetPositionErrorMin");
60 MITK_TEST_CONDITION_REQUIRED(mitk::Equal(myNavigationDataEvaluationFilter->GetPositionErrorSampleStandardDeviation(0),0),".. Testing GetPositionErrorSampleStandardDeviation");
61 MITK_TEST_CONDITION_REQUIRED(mitk::Equal(myNavigationDataEvaluationFilter->GetPositionErrorStandardDeviation(0),0),".. Testing GetPositionErrorStandardDeviation");
62 MITK_TEST_CONDITION_REQUIRED(mitk::Equal(myNavigationDataEvaluationFilter->GetQuaternionMean(0)[0],0),".. Testing GetQuaternionMean");
63 MITK_TEST_CONDITION_REQUIRED(mitk::Equal(myNavigationDataEvaluationFilter->GetQuaternionStandardDeviation(0)[0],0),".. Testing GetQuaternionStandardDeviation");
64 myNavigationDataEvaluationFilter->ResetStatistic();
65 MITK_TEST_CONDITION_REQUIRED(mitk::Equal(myNavigationDataEvaluationFilter->GetNumberOfAnalysedNavigationData(0),0),".. Testing ResetStatistic");
66 }
67static void TestComplexCase()
68 {
69 MITK_TEST_OUTPUT(<< "Starting complex test case...");
70 mitk::NavigationData::Pointer testData = mitk::NavigationData::New();
71 mitk::NavigationDataEvaluationFilter::Pointer myNavigationDataEvaluationFilter = mitk::NavigationDataEvaluationFilter::New();
72 myNavigationDataEvaluationFilter->SetInput(testData);
73 testData->SetDataValid(true);
74 mitk::Point3D testPoint;
75
76 //1st point
77 mitk::FillVector3D(testPoint,0,1,0);
78 testData->SetPosition(testPoint);
79 myNavigationDataEvaluationFilter->Update();
80
81 //2nd point
82 mitk::FillVector3D(testPoint,0,1,0.34);
83 testData->SetPosition(testPoint);
84 myNavigationDataEvaluationFilter->Update();
85
86 //3rd point
87 mitk::FillVector3D(testPoint,1,0.5,1);
88 testData->SetPosition(testPoint);
89 myNavigationDataEvaluationFilter->Update();
90
91 //4th point
92 mitk::FillVector3D(testPoint,15,3,2);
93 testData->SetPosition(testPoint);
94 myNavigationDataEvaluationFilter->Update();
95
96 //5th point
97 mitk::FillVector3D(testPoint,2,22.5,1.2655);
98 testData->SetPosition(testPoint);
99 myNavigationDataEvaluationFilter->Update();
100
101 //6th point
102 mitk::FillVector3D(testPoint,4,1.3,2);
103 testData->SetPosition(testPoint);
104 myNavigationDataEvaluationFilter->Update();
105
106 //7th point
107 mitk::FillVector3D(testPoint,0.001,0,1);
108 testData->SetPosition(testPoint);
109 myNavigationDataEvaluationFilter->Update();
110
111 //8th point
112 mitk::FillVector3D(testPoint,1.2525,2.22,3);
113 testData->SetPosition(testPoint);
114 myNavigationDataEvaluationFilter->Update();
115
116 //9th point
117 mitk::FillVector3D(testPoint,3.1,3,1);
118 testData->SetPosition(testPoint);
119 myNavigationDataEvaluationFilter->Update();
120
121 MITK_TEST_CONDITION_REQUIRED(myNavigationDataEvaluationFilter->GetNumberOfAnalysedNavigationData(0)==9,".. Testing GetNumberOfAnalysedNavigationData");
122 MITK_TEST_CONDITION_REQUIRED(myNavigationDataEvaluationFilter->GetNumberOfInvalidSamples(0)==0,".. Testing GetNumberOfInvalidSamples");
123 MITK_TEST_CONDITION_REQUIRED(mitk::Equal(myNavigationDataEvaluationFilter->GetPercentageOfInvalidSamples(0),0),".. Testing GetPercentageOfInvalidSamples");
124 MITK_TEST_CONDITION_REQUIRED(mitk::Equal(myNavigationDataEvaluationFilter->GetPositionStandardDeviation(0)[2],0.86614074, 1E-7),".. Testing GetPositionStandardDeviation");
125 MITK_TEST_CONDITION_REQUIRED(mitk::Equal(myNavigationDataEvaluationFilter->GetPositionSampleStandardDeviation(0)[2],0.91868098, 1E-7),".. Testing GetPositionStandardDeviation");
126 MITK_TEST_CONDITION_REQUIRED(mitk::Equal(myNavigationDataEvaluationFilter->GetPositionErrorMean(0),6.06656587, 1E-7),".. Testing GetPositionErrorMean");
127 MITK_TEST_CONDITION_REQUIRED(mitk::Equal(myNavigationDataEvaluationFilter->GetPositionErrorRMS(0),8.0793161, 1E-6),".. Testing GetPositionErrorRMS");
128 MITK_TEST_CONDITION_REQUIRED(mitk::Equal(myNavigationDataEvaluationFilter->GetPositionErrorMax(0),18.6875241, 1E-6),".. Testing GetPositionErrorMax");
129 MITK_TEST_CONDITION_REQUIRED(mitk::Equal(myNavigationDataEvaluationFilter->GetPositionErrorMedian(0),4.18522229, 1E-7),".. Testing GetPositionErrorMedian");
130 MITK_TEST_CONDITION_REQUIRED(mitk::Equal(myNavigationDataEvaluationFilter->GetPositionErrorMin(0),0.90082741, 1E-7),".. Testing GetPositionErrorMin");
131 MITK_TEST_CONDITION_REQUIRED(mitk::Equal(myNavigationDataEvaluationFilter->GetPositionErrorSampleStandardDeviation(0),5.65960626, 1E-7),".. Testing GetPositionErrorSampleStandardDeviation");
132 MITK_TEST_CONDITION_REQUIRED(mitk::Equal(myNavigationDataEvaluationFilter->GetPositionErrorStandardDeviation(0),5.33592795, 1E-7),".. Testing GetPositionErrorStandardDeviation");
133 MITK_TEST_CONDITION_REQUIRED(mitk::Equal(myNavigationDataEvaluationFilter->GetQuaternionMean(0)[0],0),".. Testing GetQuaternionMean");
134 MITK_TEST_CONDITION_REQUIRED(mitk::Equal(myNavigationDataEvaluationFilter->GetQuaternionStandardDeviation(0)[0],0),".. Testing GetQuaternionStandardDeviation");
135 myNavigationDataEvaluationFilter->ResetStatistic();
136 MITK_TEST_CONDITION_REQUIRED(mitk::Equal(myNavigationDataEvaluationFilter->GetNumberOfAnalysedNavigationData(0),0),".. Testing ResetStatistic");
137
138 }
139};
140
144int mitkNavigationDataEvaluationFilterTest(int /* argc */, char* /*argv*/[])
145{
146 // always start with this!
147 MITK_TEST_BEGIN("NavigationDataEvaluationFilter")
148
152
153 // always end with this!
154 MITK_TEST_END()
155}
Definition diagrams_e.h:4
NavigationDataEvaluationFilter calculates statistical data (mean value, mean error,...
int mitkNavigationDataEvaluationFilterTest(int, char *[])
MITKIGTBASE_EXPORT bool Equal(const mitk::NavigationData &leftHandSide, const mitk::NavigationData &rightHandSide, ScalarType eps=mitk::eps, bool verbose=false)
Equal A function comparing two navigation data objects for beeing equal in meta- and imagedata.