/******************************************************************************* * This file is part of the "Enduro2D" * For conditions of distribution and use, see copyright notice in LICENSE.md * Copyright (C) 2018-2020, by Matvey Cherevko (blackmatov@gmail.com) ******************************************************************************/ #include "_utils.hpp" using namespace e2d; TEST_CASE("time") { { REQUIRE(time::second().value == 1); REQUIRE(time::second_ms().value == 1000); REQUIRE(time::second_us().value == 1'000'000); REQUIRE(time::minute().value == 60); REQUIRE(time::minute_ms().value == 60000); REQUIRE(time::minute_us().value == 60'000'000); REQUIRE(time::hour().value == 60 * 60); REQUIRE(time::hour_ms().value == 60 * 60 * 1000); REQUIRE(time::hour_us().value == 60 * 60 * i64(1'000'000)); } { REQUIRE(make_seconds(1).convert_to().value == 1000); REQUIRE(make_seconds(1).convert_to().value == 1000000); REQUIRE(make_milliseconds(1000).convert_to().value == 1); REQUIRE(make_milliseconds(1000).convert_to().value == 1000000); REQUIRE(make_microseconds(1000000).convert_to().value == 1); REQUIRE(make_microseconds(1000000).convert_to().value == 1000); } { namespace ch = std::chrono; REQUIRE(time::to_chrono(make_seconds(2)) == ch::seconds(2)); REQUIRE(time::to_chrono(make_milliseconds(3)) == ch::milliseconds(3)); REQUIRE(time::to_chrono(make_microseconds(4)) == ch::microseconds(4)); REQUIRE(time::to_chrono(make_seconds(2)) == ch::seconds(2)); REQUIRE(time::to_chrono(make_milliseconds(3)) == ch::milliseconds(3)); REQUIRE(time::to_chrono(make_microseconds(4)) == ch::microseconds(4)); } { REQUIRE(time::to_seconds(make_seconds(2)).value == 2); REQUIRE(time::to_milliseconds(make_seconds(2)).value == 2000); REQUIRE(time::to_microseconds(make_seconds(2)).value == 2000000); REQUIRE(time::to_seconds(make_milliseconds(2000)).value == 2); REQUIRE(time::to_milliseconds(make_milliseconds(2000)).value == 2000); REQUIRE(time::to_microseconds(make_milliseconds(2000)).value == 2000000); REQUIRE(time::to_seconds(make_microseconds(2000000)).value == 2); REQUIRE(time::to_milliseconds(make_microseconds(2000000)).value == 2000); REQUIRE(time::to_microseconds(make_microseconds(2000000)).value == 2000000); } { auto b = time::now(); std::this_thread::sleep_for(std::chrono::milliseconds(100)); auto e = time::now(); REQUIRE(e > b); } }