75 MITK_TEST_BEGIN(
"NavigationDataToMessageFilter");
79 mitk::NavigationDataToMessageFilter::Pointer myFilter = mitk::NavigationDataToMessageFilter::New();
84 MITK_TEST_CONDITION_REQUIRED(myFilter.IsNotNull(),
"Testing instantiation");
88 mitk::FillVector3D(initialPos, 1.0, 2.0, 3.0);
91 mitk::NavigationData::Pointer nd1 = mitk::NavigationData::New();
92 nd1->SetPosition(initialPos);
93 nd1->SetOrientation(initialOri);
94 nd1->SetPositionAccuracy(11.111);
95 nd1->SetIGTTimeStamp(64.46);
96 nd1->SetDataValid(
true);
98 myFilter->SetInput(nd1);
99 MITK_TEST_CONDITION(myFilter->GetInput() == nd1,
"testing Set-/GetInput()");
102 MITK_TEST_CONDITION_REQUIRED(output !=
nullptr,
"Testing GetOutput()");
109 myFilter->AddErrorChangedListener(mitk::MessageDelegate2<MessageReceiverClass, mitk::NavigationData::CovarianceMatrixType, unsigned int>(&answers, &
MessageReceiverClass::OnErrorChanged));
115 MITK_TEST_CONDITION(
mitk::Equal(answers.
m_ReceivedData[0]->GetPosition(), nd1->GetPosition()),
"Testing PositionChanged message");
116 MITK_TEST_CONDITION(
mitk::Equal(answers.
m_ReceivedData[0]->GetOrientation(), nd1->GetOrientation()),
"Testing OrientationChanged message");
117 MITK_TEST_CONDITION( answers.
m_ReceivedData[0]->GetCovErrorMatrix() == nd1->GetCovErrorMatrix(),
"Testing ErrorChanged message");
118 MITK_TEST_CONDITION(
mitk::Equal(answers.
m_ReceivedData[0]->GetIGTTimeStamp(), nd1->GetIGTTimeStamp()),
"Testing TimeStampChanged message");
119 MITK_TEST_CONDITION( answers.
m_ReceivedData[0]->IsDataValid() == nd1->IsDataValid(),
"Testing PositionChanged message");
120 MITK_TEST_CONDITION( answers.
m_MessagesReceived == 5,
"Correct number of messages send?");
123 nd1->SetDataValid(
false);
125 MITK_TEST_CONDITION( answers.
m_ReceivedData[0]->IsDataValid() == nd1->IsDataValid(),
"Testing PositionChanged message");
126 MITK_TEST_CONDITION( answers.
m_MessagesReceived == 6,
"only necessary messages send?");
129 mitk::FillVector3D(initialPos, 11.0, 21.0, 31.0);
130 nd1->SetPosition(initialPos);
131 nd1->SetIGTTimeStamp(55.55);
133 MITK_TEST_CONDITION(
mitk::Equal(answers.
m_ReceivedData[0]->GetPosition(), nd1->GetPosition()),
"Testing PositionChanged message");
134 MITK_TEST_CONDITION(
mitk::Equal(answers.
m_ReceivedData[0]->GetIGTTimeStamp(), nd1->GetIGTTimeStamp()),
"Testing TimeStampChanged message");
135 MITK_TEST_CONDITION( answers.
m_MessagesReceived == 8,
"only necessary messages send?");
145 MITK_TEST_OUTPUT( <<
"Now, perform tests with multiple inputs");
147 mitk::NavigationDataToMessageFilter::Pointer myFilter = mitk::NavigationDataToMessageFilter::New();
151 mitk::FillVector3D(initialPos, 1.0, 1.0, 1.0);
154 mitk::NavigationData::Pointer nd0 = mitk::NavigationData::New();
155 nd0->SetPosition(initialPos);
156 nd0->SetOrientation(initialOri);
157 nd0->SetPositionAccuracy(11.111);
158 nd0->SetIGTTimeStamp(64.46);
159 nd0->SetDataValid(
true);
161 mitk::FillVector3D(initialPos, 2.0, 2.0, 2.0);
163 mitk::NavigationData::Pointer nd1 = mitk::NavigationData::New();
164 nd1->SetPosition(initialPos);
165 nd1->SetOrientation(initialOri2);
166 nd1->SetPositionAccuracy(22.222);
167 nd1->SetIGTTimeStamp(222.2);
168 nd1->SetDataValid(
true);
170 myFilter->SetInput(0, nd0);
171 myFilter->SetInput(1, nd1);
172 MITK_TEST_CONDITION(myFilter->GetInput(0) == nd0,
"testing Set-/GetInput(0)");
173 MITK_TEST_CONDITION(myFilter->GetInput(1) == nd1,
"testing Set-/GetInput(1)");
177 MITK_TEST_CONDITION_REQUIRED(output0 !=
nullptr,
"Testing GetOutput()");
178 MITK_TEST_CONDITION_REQUIRED(output1 !=
nullptr,
"Testing GetOutput(1)");
184 myFilter->AddErrorChangedListener(mitk::MessageDelegate2<MessageReceiverClass, mitk::NavigationData::CovarianceMatrixType, unsigned int>(&answers, &
MessageReceiverClass::OnErrorChanged));
189 MITK_TEST_CONDITION(
mitk::Equal(answers.
m_ReceivedData[0]->GetPosition(), nd0->GetPosition()),
"Testing PositionChanged message");
190 MITK_TEST_CONDITION(
mitk::Equal(answers.
m_ReceivedData[0]->GetOrientation(), nd0->GetOrientation()),
"Testing OrientationChanged message");
191 MITK_TEST_CONDITION( answers.
m_ReceivedData[0]->GetCovErrorMatrix() == nd0->GetCovErrorMatrix(),
"Testing ErrorChanged message");
192 MITK_TEST_CONDITION(
mitk::Equal(answers.
m_ReceivedData[0]->GetIGTTimeStamp(), nd0->GetIGTTimeStamp()),
"Testing TimeStampChanged message");
193 MITK_TEST_CONDITION( answers.
m_ReceivedData[0]->IsDataValid() == nd0->IsDataValid(),
"Testing PositionChanged message");
194 MITK_TEST_CONDITION(
mitk::Equal(answers.
m_ReceivedData[1]->GetPosition(), nd1->GetPosition()),
"Testing PositionChanged message");
195 MITK_TEST_CONDITION(
mitk::Equal(answers.
m_ReceivedData[1]->GetOrientation(), nd1->GetOrientation()),
"Testing OrientationChanged message");
196 MITK_TEST_CONDITION( answers.
m_ReceivedData[1]->GetCovErrorMatrix() == nd1->GetCovErrorMatrix(),
"Testing ErrorChanged message");
197 MITK_TEST_CONDITION(
mitk::Equal(answers.
m_ReceivedData[1]->GetIGTTimeStamp(), nd1->GetIGTTimeStamp()),
"Testing TimeStampChanged message");
198 MITK_TEST_CONDITION( answers.
m_ReceivedData[1]->IsDataValid() == nd1->IsDataValid(),
"Testing PositionChanged message");
199 MITK_TEST_CONDITION( answers.
m_MessagesReceived == 10,
"Correct number of messages send?");
202 nd0->SetDataValid(
false);
204 MITK_TEST_CONDITION( answers.
m_ReceivedData[0]->IsDataValid() == nd0->IsDataValid(),
"Testing PositionChanged message for input 0");
205 MITK_TEST_CONDITION( answers.
m_MessagesReceived == 11,
"only necessary messages send?");
210 nd1->SetIGTTimeStamp(999.9);
212 MITK_TEST_CONDITION( !
mitk::Equal(answers.
m_ReceivedData[1]->GetIGTTimeStamp(), nd1->GetIGTTimeStamp()),
"Testing if TimeStamp message is _not_ send after RemoveListener (!= new value)");
213 MITK_TEST_CONDITION(
mitk::Equal(answers.
m_ReceivedData[1]->GetIGTTimeStamp(), oldValue),
"Testing if TimeStamp message is _not_ send after RemoveListener (== old value)");
216 nd1->SetDataValid(
false);
218 MITK_TEST_CONDITION( answers.
m_ReceivedData[1]->IsDataValid() == nd1->IsDataValid(),
"Other messages still send? ->Testing PositionChanged message for input 1 again");
219 MITK_TEST_CONDITION( answers.
m_MessagesReceived == 12,
"only necessary messages send?");
221 MITK_TEST_CONDITION( answers.
m_ReceivedData[0]->IsDataValid() == nd0->IsDataValid(),
"Testing PositionChanged message for input 0");