25 lines
765 B
C++

// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
#include "catch.hpp"
#include "sls/Timer.h"
#include <chrono>
#include <thread>
TEST_CASE("Time 1s restart then time 2s") {
auto sleep_duration = std::chrono::seconds(1);
auto t = sls::Timer();
std::this_thread::sleep_for(sleep_duration);
REQUIRE(t.elapsed_s() == Approx(1).epsilon(0.01));
t.restart();
std::this_thread::sleep_for(sleep_duration * 2);
REQUIRE(t.elapsed_s() == Approx(2).epsilon(0.01));
}
TEST_CASE("Return ms") {
auto sleep_duration = std::chrono::milliseconds(1300);
auto t = sls::Timer();
std::this_thread::sleep_for(sleep_duration);
REQUIRE(t.elapsed_ms() == Approx(1300).epsilon(0.5));
}