#define private public
#define protected public
#include "api/LoopTimer.h"
#include "api/LoopManager.h"
#include <gmock/gmock.h>
#include <gtest/gtest.h>

using namespace std;
using namespace std::chrono_literals;
using namespace crepe;

class LoopTimerTest : public ::testing::Test {
public:
	LoopTimer loop_timer = LoopTimer::get_instance();

protected:
	void SetUp() override { loop_timer.start(); }

	void TearDown() override {}
};
TEST_F(LoopTimerTest, TestDeltaTime) {
	auto start_time = std::chrono::steady_clock::now();

	loop_timer.update();
	double delta_time = loop_timer.get_delta_time();

	auto elapsed_time = std::chrono::steady_clock::now() - start_time;
	EXPECT_LE(delta_time, std::chrono::duration<double>(elapsed_time).count());
}