27 MITK_TEST_BEGIN(
"NavigationDataDisplacementFilter")
30 mitk::NavigationDataDisplacementFilter::Pointer myFilter = mitk::NavigationDataDisplacementFilter::New();
35 MITK_TEST_CONDITION_REQUIRED(myFilter.IsNotNull(),
"Testing instantiation");
39 mitk::FillVector3D(initialPos, 0.0, 0.0, 0.0);
41 mitk::ScalarType initialError(0.0);
42 bool initialValid(
true);
44 mitk::NavigationData::Pointer nd1 = mitk::NavigationData::New();
45 nd1->SetPosition(initialPos);
46 nd1->SetOrientation(initialOri);
47 nd1->SetPositionAccuracy(initialError);
48 nd1->SetDataValid(initialValid);
50 myFilter->SetInput(nd1);
51 MITK_TEST_CONDITION(myFilter->GetInput() == nd1,
"testing Set-/GetInput()");
54 mitk::Vector3D offset;
55 mitk::FillVector3D(offset, 1.0, 1.0, 1.0);
57 myFilter->SetOffset(offset);
58 MITK_TEST_CONDITION(myFilter->GetOffset() == offset,
"testing Set-/GetOffset()");
61 MITK_TEST_CONDITION_REQUIRED(output !=
nullptr,
"Testing GetOutput()");
65 MITK_TEST_CONDITION(output->GetPosition() == (initialPos + offset),
"Testing offset calculation");
66 MITK_TEST_CONDITION(output->GetOrientation() == initialOri,
"Testing if Orientation remains unchanged");
67 MITK_TEST_CONDITION(output->
IsDataValid() == initialValid,
"Testing if DataValid remains unchanged");
71 mitk::FillVector3D(initialPos2, -1000.0, 567.89, 0.0);
72 mitk::NavigationData::Pointer nd2 = mitk::NavigationData::New();
73 nd2->SetPosition(initialPos2);
74 nd2->SetOrientation(initialOri);
75 nd2->SetPositionAccuracy(initialError);
76 nd2->SetDataValid(initialValid);
79 myFilter = mitk::NavigationDataDisplacementFilter::New();
80 myFilter->SetOffset(offset);
81 myFilter->SetInput(0, nd1);
82 myFilter->SetInput(1, nd2);
84 MITK_TEST_CONDITION(((myFilter->GetInput(0) == nd1)
85 && (myFilter->GetInput(1) == nd2)),
"testing Set-/GetInput(index, data)");
87 output = myFilter->GetOutput();
90 MITK_TEST_CONDITION(((output !=
nullptr)
91 && (output2 !=
nullptr)),
"testing GetOutput(index)");
93 MITK_TEST_CONDITION(output->GetPosition() == (initialPos + offset),
"Testing offset calculation for output 0");
94 MITK_TEST_CONDITION(output2->GetPosition() == (initialPos2 + offset),
"Testing offset calculation for output 1");
96 MITK_TEST_CONDITION(output2->GetOrientation() == initialOri,
"Testing if Orientation remains unchanged for output 1");
97 MITK_TEST_CONDITION(output2->
IsDataValid() == initialValid,
"Testing if DataValid remains unchanged for output 1");
101 MITK_TEST_CONDITION((output->GetPosition() == (initialPos + offset))
102 &&(output2->GetPosition() == (initialPos2 + offset)),
"Testing offset calculation after second update()");
106 mitk::FillVector3D(
pos2, 123.456, -234.567, 789.987);
107 nd1->SetPosition(
pos2);
108 MITK_TEST_CONDITION((output->GetPosition() == (initialPos + offset))
109 &&(output2->GetPosition() == (initialPos2 + offset)),
"Testing offset calculation after input change, before update()");
111 MITK_TEST_CONDITION((output->GetPosition() == (
pos2 + offset))
112 &&(output2->GetPosition() == (initialPos2 + offset)),
"Testing offset calculation after input change, after update()");
115 mitk::Vector3D offset2;
116 mitk::FillVector3D(offset2, -1.2, 3.45, -6.789);
117 myFilter->SetOffset(offset2);
118 MITK_TEST_CONDITION((output->GetPosition() == (
pos2 + offset))
119 &&(output2->GetPosition() == (initialPos2 + offset)),
"Testing offset calculation after offset parameter change, before update()");
121 MITK_TEST_CONDITION((output->GetPosition() == (
pos2 + offset2))
122 &&(output2->GetPosition() == (initialPos2 + offset2)),
"Testing offset calculation after offset parameter , after update()");
125 mitk::PropertyList::ConstPointer p = myFilter->GetParameters();
126 MITK_TEST_CONDITION(p.IsNotNull(),
"Testing GetParameters() has valid return type");
128 MITK_TEST_CONDITION(p->GetPropertyValue<mitk::Vector3D>(
"NavigationDataDisplacementFilter_Offset", v) ==
true,
"PropertyList contains correct key?");
129 MITK_TEST_CONDITION(v == offset2,
"Offset Property contains correct value?");
130 MITK_TEST_CONDITION(p->GetMap()->size() == 1,
"PropertyList contains correct number of items?");
132 mitk::PropertyList::Pointer p2 = mitk::PropertyList::New();
133 myFilter->SetParameters(p2);
134 MITK_TEST_CONDITION(myFilter->GetOffset() == offset2,
"Offset unchanged on SetParameters() with empty PropertyList?");
135 p2->SetProperty(
"NavigationDataDisplacementFilter_WRONGNAME", mitk::Vector3DProperty::New(v));
136 MITK_TEST_CONDITION(myFilter->GetOffset() == offset2,
"Offset unchanged on SetParameters() with wrong propertyname?");
138 mitk::FillVector3D(v, -111.1, 0.0, 111.1);
139 p2->SetProperty(
"NavigationDataDisplacementFilter_Offset", mitk::Vector3DProperty::New(v));
140 myFilter->SetParameters(p2);
141 MITK_TEST_CONDITION(myFilter->GetOffset() == v,
"Offset updated correctly by SetParameters()?");
143 p2 = mitk::PropertyList::New();
145 mitk::FillVector3D(v2, 0.0, 111.1, 0.0);
146 p2->SetProperty(
"NavigationDataDisplacementFilter_Offset", mitk::Vector3DProperty::New(v2));
147 myFilter->SetParameters(p2);
148 MITK_TEST_CONDITION(myFilter->GetOffset() == v2,
"Offset updated correctly by SetParameters()?");
151 v = myFilter->GetOffset();
152 myFilter->SetParameters(myFilter->GetParameters());
153 MITK_TEST_CONDITION(myFilter->GetOffset() == v,
"Offset unchanged after SetParameters(GetParamters())");