mirror of
https://github.com/CLIUtils/CLI11.git
synced 2025-05-01 13:13:53 +00:00
Adding division to timer
This commit is contained in:
parent
4755164f39
commit
416e6a0443
@ -30,6 +30,9 @@ protected:
|
|||||||
/// This is the starting point (when the timer was created)
|
/// This is the starting point (when the timer was created)
|
||||||
time_point start_;
|
time_point start_;
|
||||||
|
|
||||||
|
/// This is the number of times cycles (print divides by this number)
|
||||||
|
size_t cycles {1};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
/// Standard print function, this one is set by default
|
/// Standard print function, this one is set by default
|
||||||
@ -50,7 +53,7 @@ public:
|
|||||||
: title_(title), time_print_(time_print), start_(clock::now()) {}
|
: title_(title), time_print_(time_print), start_(clock::now()) {}
|
||||||
|
|
||||||
/// Time a function by running it multiple times. Target time is the len to target.
|
/// Time a function by running it multiple times. Target time is the len to target.
|
||||||
inline std::string time_it(std::function<void()> f, double target_time=1) {
|
std::string time_it(std::function<void()> f, double target_time=1) {
|
||||||
time_point start = start_;
|
time_point start = start_;
|
||||||
double total_time;
|
double total_time;
|
||||||
|
|
||||||
@ -98,6 +101,9 @@ public:
|
|||||||
std::string to_string() const {
|
std::string to_string() const {
|
||||||
return time_print_(title_, make_time_str());
|
return time_print_(title_, make_time_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Division sets the number of cycles
|
||||||
|
Timer& operator / (size_t val) {cycles = val; return *this;}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -12,8 +12,10 @@ TEST(Timer, MSTimes) {
|
|||||||
CLI::Timer timer{"My Timer"};
|
CLI::Timer timer{"My Timer"};
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(123));
|
std::this_thread::sleep_for(std::chrono::milliseconds(123));
|
||||||
std::string output = timer.to_string();
|
std::string output = timer.to_string();
|
||||||
|
std::new_output = (timer / 1000000).to_string();
|
||||||
EXPECT_THAT(output, HasSubstr("My Timer"));
|
EXPECT_THAT(output, HasSubstr("My Timer"));
|
||||||
EXPECT_THAT(output, HasSubstr(" ms"));
|
EXPECT_THAT(output, HasSubstr(" ms"));
|
||||||
|
EXPECT_THAT(new_output, HasSubstr(" ns"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Takes too long
|
/* Takes too long
|
||||||
|
Loading…
x
Reference in New Issue
Block a user