Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "mitkClaronTrackingDevice.h"
00019 #include "mitkClaronTool.h"
00020 #include "mitkTestingMacros.h"
00021 #include "mitkStandardFileLocations.h"
00022
00023 class mitkClaronTrackingDeviceTestClass
00024 {
00025 public:
00026 static bool TestIsMicronTrackerInstalled()
00027 {
00028 mitk::ClaronTrackingDevice::Pointer myClaronTrackingDevice = mitk::ClaronTrackingDevice::New();
00029 bool returnValue = myClaronTrackingDevice->IsMicronTrackerInstalled();
00030 if (returnValue) {MITK_TEST_OUTPUT(<< "MicronTracker is installed on this system!")}
00031 else {MITK_TEST_OUTPUT(<< "MicronTracker is not installed on this system!")}
00032 return returnValue;
00033 }
00034
00035 static void TestInstantiation()
00036 {
00037
00038 mitk::ClaronTrackingDevice::Pointer testInstance;
00039 testInstance = mitk::ClaronTrackingDevice::New();
00040 MITK_TEST_CONDITION_REQUIRED(testInstance.IsNotNull(),"Testing instantiation:")
00041 }
00042
00043 static void TestToolConfiguration()
00044 {
00045 std::string toolFileName = mitk::StandardFileLocations::GetInstance()->FindFile("ClaronTool", "Modules/IGT/Testing/Data/");
00046 MITK_TEST_CONDITION(toolFileName.empty() == false, "Check if tool calibration file exists");
00047
00048 mitk::ClaronTrackingDevice::Pointer testInstance = mitk::ClaronTrackingDevice::New();
00049 MITK_TEST_CONDITION(testInstance->AddTool("Tool1", toolFileName.c_str()) != NULL, "Testing AddTool() for tool 1");
00050 MITK_TEST_CONDITION(testInstance->GetToolCount() == 1, "Testing adding tool 1");
00051 MITK_TEST_CONDITION(testInstance->AddTool("Tool2", toolFileName.c_str()) != NULL, "Testing AddTool() for tool 2");
00052 MITK_TEST_CONDITION(testInstance->GetToolCount() == 2, "Testing adding tool 2");
00053 MITK_TEST_CONDITION(testInstance->AddTool("Tool3", toolFileName.c_str()) != NULL, "Testing AddTool() for tool 3");
00054 MITK_TEST_CONDITION(testInstance->GetToolCount() == 3, "Testing adding tool 3");
00055
00056
00057
00058 MITK_TEST_CONDITION(testInstance->GetTool(0)->GetToolName() == std::string("Tool1"), "Testing GetTool() for tool 1");
00059 MITK_TEST_CONDITION(testInstance->GetTool(1)->GetToolName() == std::string("Tool2"), "Testing GetTool() for tool 2");
00060 MITK_TEST_CONDITION(testInstance->GetTool(2)->GetToolName() == std::string("Tool3"), "Testing GetTool() for tool 3");
00061
00062
00063 testInstance = NULL;
00064 testInstance = mitk::ClaronTrackingDevice::New();
00065 for (unsigned int i = 0; i < 100; i++)
00066 testInstance->AddTool("Tool", toolFileName.c_str());
00067 MITK_TEST_CONDITION(testInstance->GetToolCount() == 100, "Testing adding 100 tools");
00068
00069 bool failed = false;
00070 unsigned int max = 100;
00071
00072 testInstance = mitk::ClaronTrackingDevice::New();
00073 for (unsigned int i = 0; i < max; i++)
00074 testInstance->AddTool("Tool", toolFileName.c_str());
00075 if ((testInstance->GetToolCount() != max))
00076 failed = true;
00077 MITK_TEST_CONDITION(!failed, "Testing tool configuration (maximum of 100 tools):");
00078 }
00079
00080 static void TestAllMethodsOnSystemsWithoutMicronTracker()
00081 {
00082
00083
00084
00085 mitk::ClaronTrackingDevice::Pointer myClaronTrackingDevice = mitk::ClaronTrackingDevice::New();
00086
00087
00088 MITK_TEST_CONDITION( (!myClaronTrackingDevice->OpenConnection()), "Testing behavior of method OpenConnection() (Errors should occur because MicronTracker is not activated).\n");
00089
00090 std::string toolFileName = mitk::StandardFileLocations::GetInstance()->FindFile("ClaronTool", "Testing/Data/");
00091 MITK_TEST_CONDITION(toolFileName.empty() == false, "Check if tool calibration file exists");
00092
00093
00094 myClaronTrackingDevice->AddTool("Tool1", toolFileName.c_str());
00095 myClaronTrackingDevice->AddTool("Tool2", toolFileName.c_str());
00096 myClaronTrackingDevice->AddTool("Tool3", toolFileName.c_str());
00097
00098
00099 MITK_TEST_CONDITION(!myClaronTrackingDevice->IsMicronTrackerInstalled(),"Testing method IsMicronTrackerInstalled().\n")
00100
00101
00102 int toolCount = myClaronTrackingDevice->GetToolCount();
00103 MITK_TEST_CONDITION((toolCount==3), "Testing method GetToolCount().\n");
00104
00105
00106 mitk::TrackingTool* myTool = myClaronTrackingDevice->GetTool(2);
00107 MITK_TEST_CONDITION((std::string(myTool->GetToolName()) == "Tool3"), "Testing method GetTool().\n");
00108
00109
00110 MITK_TEST_CONDITION( (!myClaronTrackingDevice->StartTracking()), "Testing behavior of method StartTracking().\n");
00111
00112
00113 MITK_TEST_CONDITION( (myClaronTrackingDevice->StopTracking()), "Testing behavior of method StopTracking().\n");
00114
00115
00116 MITK_TEST_CONDITION( (myClaronTrackingDevice->CloseConnection()), "Testing behavior of method CloseConnection().\n");
00117 }
00118 };
00119
00125 int mitkClaronTrackingDeviceTest(int , char* [])
00126 {
00127 MITK_TEST_BEGIN("ClaronTrackingDevice");
00128
00129 mitkClaronTrackingDeviceTestClass::TestInstantiation();
00130 mitkClaronTrackingDeviceTestClass::TestToolConfiguration();
00131
00132
00133
00134
00135
00136
00137 #ifdef WIN32
00138 if (mitkClaronTrackingDeviceTestClass::TestIsMicronTrackerInstalled())
00139 {
00140 MITK_TEST_OUTPUT(<< "... MicronTracker is installed on your System, so we don't run any further tests. (All tests run on systems without MicronTracker)");
00141 }
00142 else
00143 {
00144 MITK_TEST_OUTPUT(<< ".Test");
00145 mitkClaronTrackingDeviceTestClass::TestAllMethodsOnSystemsWithoutMicronTracker();
00146 }
00147 #endif
00148 MITK_TEST_END();
00149 }