5#include "gtest/gtest.h"
8#include "../RenderingLibrary/Include/app_clock.hpp"
9#include "../RenderingLibrary/Include/app_time.hpp"
11using ::testing::EmptyTestEventListener;
12using ::testing::InitGoogleTest;
14using ::testing::TestEventListeners;
15using ::testing::TestInfo;
16using ::testing::TestPartResult;
17using ::testing::TestSuite;
18using ::testing::UnitTest;
22TEST(AppClockTest, AppClockTest1)
30 unsigned int const numOfIter = 10U;
32 std::random_device randomDevice;
33 std::default_random_engine randomGenerator(randomDevice());
34 std::uniform_int_distribution<int> probDistribution(5000, 15000);
36 for(
unsigned int i = 0U; i < numOfIter; ++i )
39 auto const sleepFor = probDistribution(randomGenerator);
40 std::chrono::milliseconds delay{ std::chrono::milliseconds (sleepFor) };
41 std::this_thread::sleep_for(std::chrono::milliseconds{ delay });
46 auto const delayTimeMilliseconds = std::chrono::duration_cast<std::chrono::duration<float>>(delay).count();
47 auto const elapsedTimeMilliseconds = appTime.ElapsedAppTimeMilliseconds();
48 std::cout <<
"Delay: " << delayTimeMilliseconds <<
"Elapsed app time: " << elapsedTimeMilliseconds << std::endl;
50 EXPECT_TRUE(delayTimeMilliseconds <= elapsedTimeMilliseconds);
54TEST(AppClockTest, TotalTime)
62 unsigned int const numOfIter = 10U;
64 std::random_device randomDevice;
65 std::default_random_engine randomGenerator(randomDevice());
66 std::uniform_int_distribution<int> probDistribution(5000, 15000);
68 float prevTotalElapsedTime = 0.0f;
70 for(
unsigned int i = 0U; i < numOfIter; ++i )
73 auto const sleepFor = probDistribution(randomGenerator);
74 std::chrono::milliseconds delay{ std::chrono::milliseconds (sleepFor) };
75 std::this_thread::sleep_for(std::chrono::milliseconds{ delay });
80 auto const delayTimeMilliseconds = std::chrono::duration_cast<std::chrono::duration<float>>(delay).count();
81 auto const elapsedTimeMilliseconds = appTime.ElapsedAppTimeMilliseconds();
82 std::cout <<
"Delay: " << delayTimeMilliseconds <<
"Elapsed app time: " << elapsedTimeMilliseconds << std::endl;
TEST(AppClockTest, AppClockTest1)
Provides high-resolution timing for frame updates.
void Reset()
Resets the clock to the current system time.
void UpdateAppTime(AppTime &appTime)
Updates the given AppTime instance with elapsed and total durations.
Manages current, total, and elapsed time for the application.
const float TotalAppTimeMilliseconds() const
Returns total accumulated time in milliseconds (float).