26 itkFactorylessNewMacro(Self)
30 this->SetNumberOfIndexedOutputs(1);
36 class mitkNavigationDataSourceTestClass
40 static void TestInstantiation()
43 MyNavigationDataSourceTest::Pointer myFilter = MyNavigationDataSourceTest::New();
51 MITK_TEST_CONDITION(myFilter->GetNumberOfInputs() == 0,
"testing initial number of inputs");
52 MITK_TEST_CONDITION(myFilter->GetNumberOfOutputs() == 0,
"testing initial number of outputs");
53 myFilter->CreateOutput();
54 MITK_TEST_CONDITION(myFilter->GetNumberOfOutputs() == 1,
"testing SetNumberOfOutputs() and MakeOutput()");
55 MITK_TEST_CONDITION(dynamic_cast<mitk::NavigationData*>(myFilter->GetOutput()) !=
nullptr,
"test GetOutput() returning valid output object");
58 static void TestMethodsNormalCases()
61 MyNavigationDataSourceTest::Pointer myFilter = MyNavigationDataSourceTest::New();
62 myFilter->CreateOutput();
67 bool initialValid(
true);
69 nd1->SetPosition(initialPos);
70 nd1->SetOrientation(initialOri);
71 nd1->SetPositionAccuracy(initialError);
72 nd1->SetDataValid(initialValid);
76 myFilter->GraftOutput(nd1);
77 mitk::NavigationData::Pointer out = myFilter->GetOutput();
78 MITK_TEST_CONDITION(out.GetPointer() != nd1.GetPointer(),
"testing if output is same object as source of graft");
81 MITK_TEST_CONDITION((out->GetCovErrorMatrix() == nd1->GetCovErrorMatrix()),"testing error matrix equality after graft")
82 MITK_TEST_CONDITION((out->IsDataValid() == nd1->IsDataValid()),"testing data valid equality after graft")
86 mitk::PropertyList::ConstPointer list = myFilter->GetParameters();
90 static
void TestMethodsInvalidCases()
93 MyNavigationDataSourceTest::Pointer myFilter = MyNavigationDataSourceTest::New();
95 mitk::NavigationData::Pointer testOutput = myFilter->GetOutput();
98 testOutput = myFilter->GetOutput(
"test");
99 MITK_TEST_CONDITION(testOutput.IsNull(),
"testing GetOutput(string) before initialization");
102 myFilter->CreateOutput();
103 bool exceptionThrown=
false;
106 myFilter->GetOutputIndex(
"nonsense name");
108 catch(std::invalid_argument e)
110 exceptionThrown=
true;
112 MITK_TEST_CONDITION(exceptionThrown,
"Testing method GetOutputIndex with invalid navigation data name");
115 exceptionThrown=
false;
118 mitk::NavigationData::Pointer graftObject;
119 myFilter->GraftNthOutput(100,graftObject);
121 catch(itk::ExceptionObject e)
123 exceptionThrown=
true;
128 static void TestMicroserviceRegister()
130 MyNavigationDataSourceTest::Pointer myFilter = MyNavigationDataSourceTest::New();
131 myFilter->CreateOutput();
136 bool initialValid(
true);
138 nd1->SetPosition(initialPos);
139 nd1->SetOrientation(initialOri);
140 nd1->SetPositionAccuracy(initialError);
141 nd1->SetDataValid(initialValid);
142 myFilter->RegisterAsMicroservice();
143 MITK_TEST_CONDITION(myFilter->GetMicroserviceID()!=
"",
"Testing if microservice was registered successfully.");
145 static void TestMicroserviceAvailabilityAndUnregister()
163 mitkNavigationDataSourceTestClass::TestInstantiation();
164 mitkNavigationDataSourceTestClass::TestMethodsNormalCases();
165 mitkNavigationDataSourceTestClass::TestMethodsInvalidCases();
166 mitkNavigationDataSourceTestClass::TestMicroserviceRegister();
167 mitkNavigationDataSourceTestClass::TestMicroserviceAvailabilityAndUnregister();
#define MITK_TEST_CONDITION_REQUIRED(COND, MSG)
int mitkNavigationDataSourceTest(int, char *[])
DataCollection - Class to facilitate loading/accessing structured data.
section GeneralTestsDeprecatedOldTestingStyle Deprecated macros All tests with MITK_TEST_BEGIN()
mitk::Quaternion OrientationType
Type that holds the orientation part of the tracking data.
void FillVector3D(Tout &out, mitk::ScalarType x, mitk::ScalarType y, mitk::ScalarType z)
#define MITK_TEST_OUTPUT(x)
Output some text.
itk::DataObject::Pointer MakeOutput(DataObjectPointerArraySizeType idx) override
#define MITK_TEST_CONDITION(COND, MSG)
#define mitkClassMacro(className, SuperClassName)
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.