15#include "mitkTestingMacros.h"
16#include "mitkIGTConfig.h"
17#include "mitkIGTException.h"
20static bool TestIsMicronTrackerInstalled()
22 mitk::ClaronTrackingDevice::Pointer myClaronTrackingDevice = mitk::ClaronTrackingDevice::New();
23 bool returnValue = myClaronTrackingDevice->IsDeviceInstalled();
24 if (returnValue) {MITK_TEST_OUTPUT(<<
"MicronTracker is installed on this system!")}
25 else {MITK_TEST_OUTPUT(<<
"MicronTracker is not installed on this system!")}
30static void TestInstantiation()
33 mitk::ClaronTrackingDevice::Pointer testInstance;
34 testInstance = mitk::ClaronTrackingDevice::New();
35 MITK_TEST_CONDITION_REQUIRED(testInstance.IsNotNull(),
"Testing instantiation:")
38static void TestToolConfiguration()
40 std::string toolFileName(MITK_IGT_DATA_DIR);
41 toolFileName.append(
"/ClaronTool");
43 mitk::ClaronTrackingDevice::Pointer testInstance = mitk::ClaronTrackingDevice::New();
44 MITK_TEST_CONDITION(testInstance->AddTool(
"Tool1", toolFileName.c_str()) !=
nullptr,
"Testing AddTool() for tool 1");
45 MITK_TEST_CONDITION(testInstance->GetToolCount() == 1,
"Testing adding tool 1");
46 MITK_TEST_CONDITION(testInstance->AddTool(
"Tool2", toolFileName.c_str()) !=
nullptr,
"Testing AddTool() for tool 2");
47 MITK_TEST_CONDITION(testInstance->GetToolCount() == 2,
"Testing adding tool 2");
48 MITK_TEST_CONDITION(testInstance->AddTool(
"Tool3", toolFileName.c_str()) !=
nullptr,
"Testing AddTool() for tool 3");
49 MITK_TEST_CONDITION(testInstance->GetToolCount() == 3,
"Testing adding tool 3");
53 MITK_TEST_CONDITION(testInstance->GetTool(0)->GetToolName() == std::string(
"Tool1"),
"Testing GetTool() for tool 1");
54 MITK_TEST_CONDITION(testInstance->GetTool(1)->GetToolName() == std::string(
"Tool2"),
"Testing GetTool() for tool 2");
55 MITK_TEST_CONDITION(testInstance->GetTool(2)->GetToolName() == std::string(
"Tool3"),
"Testing GetTool() for tool 3");
58 testInstance =
nullptr;
59 testInstance = mitk::ClaronTrackingDevice::New();
60 for (
unsigned int i = 0; i < 100; i++)
61 testInstance->AddTool(
"Tool", toolFileName.c_str());
62 MITK_TEST_CONDITION(testInstance->GetToolCount() == 100,
"Testing adding 100 tools");
65 unsigned int max = 100;
67 testInstance = mitk::ClaronTrackingDevice::New();
68 for (
unsigned int i = 0; i < max; i++)
69 testInstance->AddTool(
"Tool", toolFileName.c_str());
70 if ((testInstance->GetToolCount() != max))
72 MITK_TEST_CONDITION(!failed,
"Testing tool configuration (maximum of 100 tools):");
76static void TestAllMethodsOnSystemsWithoutMicronTracker()
81 mitk::ClaronTrackingDevice::Pointer myClaronTrackingDevice = mitk::ClaronTrackingDevice::New();
84 MITK_TEST_OUTPUT(<<
"Testing behavior of method OpenConnection() (Errors should occur because MicronTracker is not activated).");
86 myClaronTrackingDevice->OpenConnection();
89 std::string toolFileName(MITK_IGT_DATA_DIR);
90 toolFileName.append(
"/ClaronTool");
93 myClaronTrackingDevice->AddTool(
"Tool1", toolFileName.c_str());
94 myClaronTrackingDevice->AddTool(
"Tool2", toolFileName.c_str());
95 myClaronTrackingDevice->AddTool(
"Tool3", toolFileName.c_str());
98 MITK_TEST_CONDITION(!myClaronTrackingDevice->IsDeviceInstalled(),
"Testing method IsMicronTrackerInstalled().\n")
101 int toolCount = myClaronTrackingDevice->GetToolCount();
102 MITK_TEST_CONDITION((toolCount==3), "Testing method GetToolCount().\n");
105 mitk::TrackingTool* myTool = myClaronTrackingDevice->GetTool(2);
106 MITK_TEST_CONDITION((std::
string(myTool->GetToolName()) == "Tool3"), "Testing method GetTool().\n");
109 MITK_TEST_CONDITION( (!myClaronTrackingDevice->StartTracking()), "Testing behavior of method StartTracking().\n");
112 MITK_TEST_CONDITION( (myClaronTrackingDevice->StopTracking()), "Testing behavior of method StopTracking().\n");
115 MITK_TEST_CONDITION( (myClaronTrackingDevice->CloseConnection()), "Testing behavior of method CloseConnection().\n");
126 MITK_TEST_BEGIN(
"ClaronTrackingDevice");
129 TestToolConfiguration();
137 if (TestIsMicronTrackerInstalled())
139 MITK_TEST_OUTPUT(<<
"... MicronTracker is installed on your System, so we don't run any further tests. (All tests run on systems without MicronTracker)");
143 MITK_TEST_OUTPUT(<<
".Test");
144 TestAllMethodsOnSystemsWithoutMicronTracker();
An object of this class represents an exception of the MITK-IGT module.
int mitkClaronTrackingDeviceTest(int, char *[])