#include "tests/ClockTests.hpp" #include "test/Test.hpp" #include "utils/Clock.hpp" static void testUpdate() { Core::Clock c; Core::Clock::Nanos n1 = 0; Core::Clock::Nanos n2 = 0; Core::Clock::Nanos n3 = 0; Core::Clock::Nanos n4 = 0; CORE_TEST_ERROR(c.update(n1)); CORE_TEST_ERROR(c.update(n2)); CORE_TEST_ERROR(c.update(n3)); CORE_TEST_ERROR(c.update(n4)); CORE_TEST_TRUE(n1 == 0); CORE_TEST_TRUE(n2 > 0); CORE_TEST_TRUE(n3 > 0); CORE_TEST_TRUE(n4 > 0); } static void testUpdatesPerSecond() { Core::Clock c; for(int i = 0; i < 1000; i++) { Core::Clock::Nanos n = 0; CORE_TEST_ERROR(c.update(n)); } CORE_TEST_TRUE(c.getUpdatesPerSecond() > 0.0f); } static void testWait(Core::Clock::Nanos wait) { Core::Clock c; Core::Clock::Nanos n = 0; CORE_TEST_ERROR(c.update(n)); CORE_TEST_ERROR(c.wait(wait)); Core::Clock::Nanos n2 = 0; CORE_TEST_ERROR(c.update(n2)); CORE_TEST_TRUE(n2 >= wait && n2 <= wait * 11 / 10); } void Core::ClockTests::test() { testUpdate(); testUpdatesPerSecond(); testWait(50'000'000); testWait(1'300'000'000); }