#include <catch.hpp> #include <leatherman/util/timer.hpp> namespace leatherman { namespace util { SCENARIO("Using Timer", "[util]") { SECTION("can instantiate") { REQUIRE_NOTHROW(Timer()); } SECTION("can reset") { Timer t {}; REQUIRE_NOTHROW(t.reset()); } SECTION("can retrieve durations [s]") { Timer t {}; auto d1_s = t.elapsed_seconds(); auto d2_s = t.elapsed_seconds(); REQUIRE(d1_s <= d2_s); } SECTION("can retrieve durations [ms]") { Timer t {}; auto d1_ms = t.elapsed_milliseconds(); auto d2_ms = t.elapsed_milliseconds(); REQUIRE(d1_ms <= d2_ms); } SECTION("can retrieve durations after resetting") { Timer t {}; t.reset(); REQUIRE_NOTHROW(t.elapsed_seconds()); REQUIRE_NOTHROW(t.elapsed_milliseconds()); } } }} // namespace leatherman::util