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 "mitkTimeStamp.h"
00019 #include "mitkRealTimeClock.h"
00020
00021 #include "mitkTestingMacros.h"
00022 #include "itkObject.h"
00023
00024
00025
00026
00027
00031 int mitkTimeStampTest(int , char* [])
00032 {
00033 MITK_TEST_BEGIN("TimeStamp")
00034
00035
00036
00037
00038
00039
00040
00041 MITK_TEST_CONDITION_REQUIRED(mitk::TimeStamp::GetInstance() != (0), "Testing GetInstance() of Singleton" );
00042
00043 itk::Object::Pointer tester = itk::Object::New();
00044 itk::Object::Pointer tester2 = itk::Object::New();
00045
00046
00047 mitk::TimeStamp::GetInstance()->Start(tester);
00048 std::cout << "first device has started tracking\n";
00049
00050
00051 #if defined (WIN32) || defined (_WIN32)
00052 Sleep(20);
00053 #else
00054 usleep(20000);
00055 #endif
00056
00057 std::cout << "supposed to have waited 20ms \n";
00058
00059 double time_elapsed, relative_time_elapsed;
00060
00061
00062 time_elapsed = mitk::TimeStamp::GetInstance()->GetElapsed();
00063
00064 std::cout << "have actually waited : " << time_elapsed << "ms \n";
00065
00066
00067 MITK_TEST_CONDITION_REQUIRED((time_elapsed-20) > -10 , "Testing if elapsed time is correct (-10)");
00068
00069
00070
00071 mitk::TimeStamp::GetInstance()->Start(tester2);
00072 std::cout << "second device has started\n";
00073
00074 mitk::TimeStamp::GetInstance()->Stop(tester);
00075 std::cout << "first device has stopped tracking\n";
00076
00077 time_elapsed = mitk::TimeStamp::GetInstance()->GetElapsed();
00078 relative_time_elapsed = mitk::TimeStamp::GetInstance()->GetElapsed(tester2);
00079
00080 std::cout << "time elapsed supposed to be greater than 20 ms\n";
00081 std::cout << time_elapsed << " actually elapsed\n";
00082
00083 std::cout << "relative time elapsed supposed to be smaller than absolute time elapsed : \n";
00084 std::cout << relative_time_elapsed << " actually elapsed\n";
00085
00086
00087 MITK_TEST_CONDITION_REQUIRED( time_elapsed > relative_time_elapsed , " testing if relative timespan is shorter than absolute timespan");
00088
00089
00090
00091
00092 mitk::TimeStamp::GetInstance()->Stop(tester2);
00093 std::cout << " second device has stopped tracking\n";
00094 time_elapsed = mitk::TimeStamp::GetInstance()->GetElapsed();
00095
00096
00097 MITK_TEST_CONDITION_REQUIRED( time_elapsed == -1 , "testing if -1 is returned after all devices have stopped");
00098
00099
00100 MITK_TEST_END();
00101
00102 }
00103
00104