ClockTests.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include "../Tests.hpp"
  2. #include "core/utils/Clock.hpp"
  3. static void testUpdate() {
  4. Core::Clock c;
  5. Core::Clock::Nanos n1 = 0;
  6. Core::Clock::Nanos n2 = 0;
  7. Core::Clock::Nanos n3 = 0;
  8. Core::Clock::Nanos n4 = 0;
  9. CORE_TEST_ERROR(c.update(n1));
  10. CORE_TEST_ERROR(c.update(n2));
  11. CORE_TEST_ERROR(c.update(n3));
  12. CORE_TEST_ERROR(c.update(n4));
  13. CORE_TEST_TRUE(n1 == 0);
  14. CORE_TEST_TRUE(n2 > 0);
  15. CORE_TEST_TRUE(n3 > 0);
  16. CORE_TEST_TRUE(n4 > 0);
  17. }
  18. static void testUpdatesPerSecond() {
  19. Core::Clock c;
  20. for(int i = 0; i < 1000; i++) {
  21. Core::Clock::Nanos n = 0;
  22. CORE_TEST_ERROR(c.update(n));
  23. }
  24. CORE_TEST_TRUE(c.getUpdatesPerSecond() > 0.0f);
  25. }
  26. static void testWait(Core::Clock::Nanos wait) {
  27. Core::Clock c;
  28. Core::Clock::Nanos n = 0;
  29. CORE_TEST_ERROR(c.update(n));
  30. CORE_TEST_ERROR(c.wait(wait));
  31. Core::Clock::Nanos n2 = 0;
  32. CORE_TEST_ERROR(c.update(n2));
  33. CORE_TEST_TRUE(n2 >= wait && n2 <= wait * 12 / 10);
  34. }
  35. void Core::testClock(bool light) {
  36. testUpdate();
  37. testUpdatesPerSecond();
  38. testWait(light ? 5'000'000 : 50'000'000);
  39. testWait(light ? 50'000'000 : 1'300'000'000);
  40. }