-
Notifications
You must be signed in to change notification settings - Fork 0
/
measureTime.cpp
101 lines (91 loc) · 3.51 KB
/
measureTime.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#include <sstd/sstd.hpp>
#include "../../gtest_parallel/test_main.hpp"
//-----------------------------------------------------------------------------------------------------------------------------------------------
void TEST__measureTime__mTime_start_stop(){
{
// sec
time_m timem;
sstd::measureTime_start(timem);
sstd::sleep_ms(10);
double sec = sstd::measureTime_stop_s(timem);
uint64 buf = (uint64)(sec*100.0);
ASSERT_TRUE( buf==1 );
}
{
// milli sec
time_m timem;
sstd::measureTime_start(timem);
sstd::sleep_ms(10);
double ms = sstd::measureTime_stop_ms(timem);
uint64 buf = (uint64)(ms/10.0);
ASSERT_TRUE( buf==1 );
}
{
// micro sec
time_m timem;
sstd::measureTime_start(timem);
sstd::sleep_us(10*1000);
double us = sstd::measureTime_stop_us(timem);
uint64 buf = (uint64)(us/(10.0*1000.0));
ASSERT_TRUE( buf==1 );
}
{
// nano sec
time_m timem;
sstd::measureTime_start(timem);
sstd::sleep_us(10*1000); // use sleeo_us, because sleep ns is not defind.
double ns = sstd::measureTime_stop_ns(timem);
uint64 buf = (uint64)(ns/(10.0*1000.0*1000.0));
ASSERT_TRUE( buf==1 );
}
{
// str
uint64 tmp;
std::string s;
std::string ans;
tmp = 1000;
tmp += 200;
s = sstd::measureTime_ms2str(tmp);
ans = "--------------------------------\n";
ans += " Execution time: 1. 200 sec\n";
ans += "--------------------------------";
ASSERT_STREQ(ans.c_str(), s.c_str());
tmp = 60 * 1000;
tmp += 2 * 1000;
tmp += 300;
s = sstd::measureTime_ms2str(tmp);
ans = "-------------------------------------\n";
ans += " Execution time: 1 m 2. 300 sec\n";
ans += " ( 62. 300 sec )\n";
ans += "-------------------------------------";
ASSERT_STREQ(ans.c_str(), s.c_str());
tmp = 1 * 60 * 60 * 1000;
tmp += 2 * 60 * 1000;
tmp += 3 * 1000;
tmp += 400;
s = sstd::measureTime_ms2str(tmp);
ans = "------------------------------------------\n";
ans += " Execution time: 1 h 2 m 3. 400 sec\n";
ans += " ( 3723. 400 sec )\n";
ans += "------------------------------------------";
ASSERT_STREQ(ans.c_str(), s.c_str());
tmp = 24 * 60 * 60 * 1000;
tmp += 2 * 60 * 60 * 1000;
tmp += 3 * 60 * 1000;
tmp += 4 * 1000;
tmp += 500;
s = sstd::measureTime_ms2str(tmp);
ans = "-------------------------------------------------\n";
ans += " Execution time: 1 day 2 h 3 m 4. 500 sec\n";
ans += " ( 93784. 500 sec )\n";
ans += "-------------------------------------------------";
ASSERT_STREQ(ans.c_str(), s.c_str());
}
{
// print
}
}
//-----------------------------------------------------------------------------------------------------------------------------------------------
TEST(measureTime, mTime_start_stop){ TEST__measureTime__mTime_start_stop(); }
//-----------------------------------------------------------------------------------------------------------------------------------------------
EXECUTE_TESTS();