1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-08-06 17:41:04 +00:00

Fix flakey matrix rotation unit test for now

This commit is contained in:
Lars Mueller 2025-07-29 16:12:28 +02:00 committed by Lars Müller
parent d949f5ffcb
commit 26aab6ecf2

View file

@ -11,8 +11,8 @@
using matrix4 = core::matrix4;
static bool matrix_equals(const matrix4 &a, const matrix4 &b) {
return a.equals(b, 0.00001f);
static bool matrix_equals(const matrix4 &a, const matrix4 &b, f32 tolerance = 0.00001f) {
return a.equals(b, tolerance);
}
constexpr v3f x{1, 0, 0};
@ -121,18 +121,20 @@ SECTION("getRotationRadians") {
v3f rot = (R * S).getRotationRadians();
matrix4 B;
B.setRotationRadians(rot);
CHECK(matrix_equals(R, B));
// TODO we would like to use a lower tolerance here, but that makes the test likely to fail.
f32 tol = 0.001f;
CHECK(matrix_equals(R, B, tol));
};
SECTION("returns a rotation equivalent to the original rotation") {
test_rotation_degrees({1.0f, 2.0f, 3.0f}, v3f(1));
Catch::Generators::RandomFloatingGenerator<f32> gen_angle(0.0f, 2 * core::PI, Catch::getSeed());
Catch::Generators::RandomFloatingGenerator<f32> gen_scale(0.1f, 10, Catch::getSeed());
auto draw = [](auto gen) {
auto draw = [](auto &gen) {
f32 f = gen.get();
gen.next();
return f;
};
auto draw_v3f = [&](auto gen) {
auto draw_v3f = [&](auto &gen) {
return v3f{draw(gen), draw(gen), draw(gen)};
};
for (int i = 0; i < 1000; ++i)