Rendering Engine 0.2.0
Modular Graphics Rendering Engine | v0.2.0
Loading...
Searching...
No Matches
app_clock_tests.cpp File Reference
#include <iostream>
#include <cstdint>
#include <thread>
#include <chrono>
#include "gtest/gtest.h"
#include <random>
#include "../RenderingLibrary/Include/app_clock.hpp"
#include "../RenderingLibrary/Include/app_time.hpp"

Go to the source code of this file.

Functions

 TEST (AppClockTest, AppClockTest1)
 TEST (AppClockTest, TotalTime)

Function Documentation

◆ TEST() [1/2]

TEST ( AppClockTest ,
AppClockTest1  )

Definition at line 22 of file app_clock_tests.cpp.

23{
24 // Usage of AppClock and AppTime;
25 AppClock appClock;
26 AppTime appTime;
27
28 appClock.Reset();
29
30 unsigned int const numOfIter = 10U;
31
32 std::random_device randomDevice;
33 std::default_random_engine randomGenerator(randomDevice());
34 std::uniform_int_distribution<int> probDistribution(5000, 15000);
35
36 for( unsigned int i = 0U; i < numOfIter; ++i )
37 {
38 // Here we simulate some work per frame
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 });
42
43 // Now we update our time
44 appClock.UpdateAppTime(appTime);
45
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;
49
50 EXPECT_TRUE(delayTimeMilliseconds <= elapsedTimeMilliseconds);
51 }
52}
Provides high-resolution timing for frame updates.
Definition app_clock.hpp:50
void Reset()
Resets the clock to the current system time.
Definition app_clock.cpp:31
void UpdateAppTime(AppTime &appTime)
Updates the given AppTime instance with elapsed and total durations.
Definition app_clock.cpp:38
Manages current, total, and elapsed time for the application.
Definition app_time.hpp:36
const float ElapsedAppTimeMilliseconds() const
Returns elapsed time since the last frame in milliseconds (float).
Definition app_time.cpp:38

◆ TEST() [2/2]

TEST ( AppClockTest ,
TotalTime  )

Definition at line 54 of file app_clock_tests.cpp.

55{
56 // Usage of AppClock and AppTime;
57 AppClock appClock;
58 AppTime appTime;
59
60 appClock.Reset();
61
62 unsigned int const numOfIter = 10U;
63
64 std::random_device randomDevice;
65 std::default_random_engine randomGenerator(randomDevice());
66 std::uniform_int_distribution<int> probDistribution(5000, 15000);
67
68 float prevTotalElapsedTime = 0.0f;
69
70 for( unsigned int i = 0U; i < numOfIter; ++i )
71 {
72 // Here we simulate some work per frame
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 });
76
77 // Now we update our time
78 appClock.UpdateAppTime(appTime);
79
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;
83
84 std::cout << "Total elapsed time is: " << appTime.TotalAppTimeMilliseconds() << std::endl;
85
86 EXPECT_TRUE(prevTotalElapsedTime <= appTime.TotalAppTimeMilliseconds());
87 prevTotalElapsedTime = appTime.TotalAppTimeMilliseconds();
88 }
89
90}
const float TotalAppTimeMilliseconds() const
Returns total accumulated time in milliseconds (float).
Definition app_time.cpp:28