Select Git revision
SchemeModule.cpp
-
Stéphane Del Pino authoredStéphane Del Pino authored
test_Timer.cpp 1.44 KiB
#include <catch2/catch.hpp>
#include <utils/Timer.hpp>
#include <sstream>
// clazy:excludeall=non-pod-global-static
TEST_CASE("Timer", "[utils]")
{
SECTION("auto start")
{
Timer t;
REQUIRE(t.status() == Timer::Status::running);
double seconds = t.seconds();
REQUIRE(t.seconds() > seconds);
t.start();
seconds = t.seconds();
REQUIRE(t.status() == Timer::Status::running);
REQUIRE(t.seconds() > seconds);
}
SECTION("pause/start")
{
Timer t1;
REQUIRE(t1.status() == Timer::Status::running);
t1.pause();
REQUIRE(t1.status() == Timer::Status::paused);
const double seconds = t1.seconds();
REQUIRE(t1.seconds() == seconds);
std::stringstream os1;
os1 << t1;
Timer t2 = t1;
std::stringstream os2;
os2 << t2.seconds() << 's';
REQUIRE(os1.str() == os2.str());
REQUIRE(t1.seconds() == t2.seconds());
t1.start();
REQUIRE(t1.status() == Timer::Status::running);
REQUIRE(t1.seconds() > t2.seconds());
t2.reset();
REQUIRE(t2.status() == Timer::Status::paused);
REQUIRE(t2.seconds() == 0);
}
SECTION("stop/start")
{
Timer t;
REQUIRE(t.status() == Timer::Status::running);
const double seconds = t.seconds();
REQUIRE(seconds > 0);
t.stop();
REQUIRE(t.status() == Timer::Status::stopped);
REQUIRE(t.seconds() == 0);
t.start();
REQUIRE(t.status() == Timer::Status::running);
REQUIRE(t.seconds() > 0);
}
}