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 "mitkVirtualTrackingDevice.h"
00019
00020 #include "itksys/SystemTools.hxx"
00021 #include "mitkTestingMacros.h"
00022 #include "mitkTrackingTool.h"
00023
00024
00025 int mitkVirtualTrackingDeviceTest(int , char* [])
00026 {
00027
00028 MITK_TEST_BEGIN("VirtualTrackingDevice");
00029
00030
00031 mitk::VirtualTrackingDevice::Pointer tracker = mitk::VirtualTrackingDevice::New();
00032
00033
00034
00035
00036 MITK_TEST_CONDITION_REQUIRED(tracker.IsNotNull(),"Testing instantiation\n");
00037
00038
00039 MITK_TEST_CONDITION_REQUIRED(tracker->GetState() == mitk::TrackingDevice::Setup ,"Checking tracking device state == setup.\n");
00040
00041
00042 MITK_TEST_CONDITION( (tracker->CloseConnection()), "Testing behavior of method CloseConnection().");
00043
00044
00045 MITK_TEST_CONDITION( tracker->StartTracking() == false, "Testing behavior of method StartTracking().");
00046
00047 tracker->SetRefreshRate(43);
00048 MITK_TEST_CONDITION( tracker->GetRefreshRate() == 43, "Testing Set-/GetRefreshRate()");
00049
00050 MITK_TEST_CONDITION( tracker->GetToolCount() == 0, "Testing GetToolCount() before AddTool()");
00051
00052 MITK_TEST_CONDITION( tracker->AddTool("Tool0"), "Testing AddTool() for tool 0.");
00053 MITK_TEST_CONDITION( tracker->GetToolCount() == 1, "Testing GetToolCount() after AddTool()");
00054
00055 mitk::TrackingTool::Pointer tool = tracker->GetTool(0);
00056 MITK_TEST_CONDITION_REQUIRED( tool.IsNotNull(), "Testing GetTool() for tool 0.");
00057
00058 MITK_TEST_CONDITION( tracker->GetToolByName("Tool0") == tool.GetPointer(), "Testing GetTool() equals GetToolByName() for tool 0.");
00059
00060 mitk::ScalarType bounds[6] = {0.0, 10.0, 1.0, 20.0, 3.0, 30.0};
00061 tracker->SetBounds(bounds);
00062 MITK_TEST_CONDITION( tracker->GetBounds()[0] == bounds[0]
00063 && tracker->GetBounds()[1] == bounds[1]
00064 && tracker->GetBounds()[2] == bounds[2]
00065 && tracker->GetBounds()[3] == bounds[3]
00066 && tracker->GetBounds()[4] == bounds[4]
00067 && tracker->GetBounds()[5] == bounds[5]
00068 , "Testing Set-/GetBounds()");
00069 MITK_TEST_CONDITION( tracker->AddTool("Tool1"), "Testing AddTool() for tool 1.");
00070 MITK_TEST_CONDITION( tracker->GetToolCount() == 2, "Testing GetToolCount() after AddTool()");
00071
00072 tracker->SetToolSpeed(0, 0.1);
00073 tracker->SetToolSpeed(1, 0.1);
00074 MITK_TEST_FOR_EXCEPTION(std::invalid_argument, tracker->SetToolSpeed(2, 0.1));
00075
00076 mitk::ScalarType lengthBefore = tracker->GetSplineChordLength(0);
00077 MITK_TEST_FOR_EXCEPTION(std::invalid_argument, tracker->GetSplineChordLength(2));
00078
00079
00080 MITK_TEST_CONDITION( tracker->OpenConnection() == true, "Testing OpenConnection().");
00081 MITK_TEST_CONDITION( tracker->GetSplineChordLength(0) == lengthBefore, "Testing GetSplineChordLength() after initalization");
00082
00083
00084 mitk::Point3D posBefore0;
00085 tool->GetPosition(posBefore0);
00086 mitk::Point3D posBefore1;
00087 tracker->GetToolByName("Tool1")->GetPosition(posBefore1);
00088
00089 mitk::Point3D posAfter0;
00090 tool->GetPosition(posAfter0);
00091 MITK_TEST_CONDITION( mitk::Equal(posBefore0, posAfter0) == true, "Testing if position value is constant before StartTracking()");
00092
00093
00094 MITK_TEST_CONDITION( tracker->StartTracking() == true, "Testing behavior of method StartTracking().");
00095 itksys::SystemTools::Delay(500);
00096
00097 tool->GetPosition(posAfter0);
00098 MITK_TEST_CONDITION( mitk::Equal(posBefore0, posAfter0) == false, "Testing if tracking is producing new position values in tool 0.");
00099
00100 mitk::Point3D posAfter1;
00101 tracker->GetToolByName("Tool1")->GetPosition(posAfter1);
00102 MITK_TEST_CONDITION( mitk::Equal(posBefore1, posAfter1) == false, "Testing if tracking is producing new position values in tool 1.");
00103
00104
00105
00106 tracker->AddTool("while Running");
00107
00108 tracker->GetToolByName("while Running")->GetPosition(posBefore0);
00109 itksys::SystemTools::Delay(100);
00110 tracker->GetToolByName("while Running")->GetPosition(posAfter0);
00111 MITK_TEST_CONDITION( mitk::Equal(posBefore0, posAfter0) == false, "Testing if tracking is producing new position values for 'while running' tool.");
00112
00113
00114 MITK_TEST_END();
00115 }