Rendering Engine 0.2.17
Modular Graphics Rendering Engine | v0.2.17
Loading...
Searching...
No Matches
glm_test_helpers.hpp
Go to the documentation of this file.
1// This file is part of the Rendering Engine project.
2// Author: Alexander Obzherin <alexanderobzherin@gmail.com>
3// Copyright (c) 2026 Alexander Obzherin
4// Distributed under the terms of the zlib License. See LICENSE.md for details.
5
6#pragma once
7
8#include <gtest/gtest.h>
9#include <glm/glm.hpp>
10
12{
13template<glm::length_t N, typename T, glm::qualifier Q>
14void ExpectNear(const glm::vec<N, T, Q>& actual, const glm::vec<N, T, Q>& expected,
15 float tolerance = 1e-5f)
16{
17 for (glm::length_t i = 0; i < N; ++i)
18 {
19 EXPECT_NEAR(actual[i], expected[i], tolerance) << "component " << i;
20 }
21}
22
23inline void ExpectNear(const glm::mat4& actual, const glm::mat4& expected,
24 float tolerance = 1e-5f)
25{
26 for (glm::length_t column = 0; column < 4; ++column)
27 {
28 SCOPED_TRACE(::testing::Message() << "column " << column);
29 ExpectNear(actual[column], expected[column], tolerance);
30 }
31}
32} // namespace rendering_engine::test
void ExpectNear(const glm::vec< N, T, Q > &actual, const glm::vec< N, T, Q > &expected, float tolerance=1e-5f)