MITK-IGT
IGT Extension of MITK
Loading...
Searching...
No Matches
mitkNavigationDataToNavigationDataFilterTest.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 "mitkNavigationData.h"
15
16#include "mitkTestingMacros.h"
17
28
32int mitkNavigationDataToNavigationDataFilterTest(int /* argc */, char* /*argv*/[])
33{
34 MITK_TEST_BEGIN("NavigationDataToNavigationDataFilter")
35
36 // let's create an object of our class
37 mitk::NavigationDataToNavigationDataFilter::Pointer myFilter = NavigationDataToNavigationDataFilterTestClass::New().GetPointer(); // create testing subclass, but treat it like the real NavigationDataToNavigationDataFilter
38
39 MITK_TEST_CONDITION_REQUIRED(myFilter.IsNotNull(),"Testing instantiation");
40
41 /* create helper objects: navigation data with position as origin, zero quaternion, zero error and data valid */
43 mitk::FillVector3D(initialPos, 1.0, 2.0, 3.0);
44 mitk::NavigationData::OrientationType initialOri(0.1, 0.2, 0.3, 0.4);
45 mitk::ScalarType initialError(22.22);
46 bool initialValid(true);
47 mitk::NavigationData::Pointer nd0 = mitk::NavigationData::New();
48 nd0->SetPosition(initialPos);
49 nd0->SetOrientation(initialOri);
50 nd0->SetPositionAccuracy(initialError);
51 nd0->SetDataValid(initialValid);
52 nd0->SetName("testName");
53
54 MITK_TEST_CONDITION(myFilter->GetOutput() != nullptr, "testing GetOutput()");
55
56 MITK_TEST_CONDITION(myFilter->GetInput() == nullptr, "testing GetInput() without SetInput()");
57 MITK_TEST_CONDITION(myFilter->GetInput(0) == nullptr, "testing GetInput(0) without SetInput()");
58
59 myFilter->SetInput(nd0);
60 MITK_TEST_CONDITION(myFilter->GetInput() == nd0, "testing Set-/GetInput()");
61 MITK_TEST_CONDITION(myFilter->GetInput(0) == nd0, "testing Set-/GetInput(0)");
62 MITK_TEST_CONDITION(myFilter->GetOutput() != nullptr, "testing GetOutput() after SetInput()");
63 MITK_TEST_CONDITION(myFilter->GetOutput() != nullptr, "testing GetOutput() after SetInput()");
64 MITK_TEST_CONDITION(myFilter->GetOutput() != nd0, "testing GetOutput() different object than input");
65
66 // check getInput() string input
67 MITK_TEST_CONDITION(myFilter->GetInput("invalidName") == nullptr, "testing GetInput(string) invalid string");
68 MITK_TEST_CONDITION(myFilter->GetInput("testName") == nd0, "testing GetInput(string) valid string");
69
70 // check getInputIndex() string input
71 bool throwsException = false;
72 try {
73 myFilter->GetInputIndex("invalidName");
74 }
75 catch(std::invalid_argument&) {
76 throwsException = true;
77 }
78 MITK_TEST_CONDITION_REQUIRED(throwsException, "testing GetInputIndex(string) invalid string");
79
80 MITK_TEST_CONDITION(myFilter->GetInputIndex("testName") == 0, "testing GetInputIndex(string) valid string");
81
82
83 mitk::NavigationData::Pointer nd1 = mitk::NavigationData::New();
84 nd1->Graft(nd0);
85 nd1->SetDataValid(false);
86 myFilter->SetInput(1, nd1);
87 MITK_TEST_CONDITION(myFilter->GetInput(1) == nd1, "testing Set-/GetInput(1)");
88 MITK_TEST_CONDITION(myFilter->GetInput(0) == nd0, "testing Set-/GetInput(0) again");
89 MITK_TEST_CONDITION(myFilter->GetOutput(1) != nullptr, "testing GetOutput() after SetInput()");
90 MITK_TEST_CONDITION(myFilter->GetOutput() != myFilter->GetOutput(1), "testing GetOutput() different object than GetOutput(1)");
91
92 myFilter->SetInput(10, nd1);
93 MITK_TEST_CONDITION(myFilter->GetNumberOfIndexedInputs() == 11, "testing SetInput(10) produces 11 outputs");
94 MITK_TEST_CONDITION(myFilter->GetInput(10) == nd1, "testing Set-/GetInput(10)");
95
96 myFilter->SetInput(10, nullptr);
97 MITK_TEST_CONDITION(myFilter->GetNumberOfIndexedInputs() == 10, "testing SetInput(10, nullptr) removes output with index 10");
98
99 myFilter->SetInput(1, nullptr);
100 MITK_TEST_CONDITION(myFilter->GetNumberOfIndexedInputs() == 10, "testing SetInput(1, nullptr) does not change number of outputs");
101
102 // always end with this!
103 MITK_TEST_END();
104}
test class to be able to instantiate the normally abstract (private constructor) mitk::NavigationData...
mitkClassMacro(NavigationDataToNavigationDataFilterTestClass, NavigationDataToNavigationDataFilter)
NavigationDataToNavigationDataFilter is the base class of all filters that receive NavigationDatas as...
mitk::Quaternion OrientationType
Type that holds the orientation part of the tracking data.
mitk::Point3D PositionType
Type that holds the position part of the tracking data.
int mitkNavigationDataToNavigationDataFilterTest(int, char *[])