diff --git a/tests/Engine/Core/Color.cpp b/tests/Engine/Core/Color.cpp index ce9b50cfa..a50d07d00 100644 --- a/tests/Engine/Core/Color.cpp +++ b/tests/Engine/Core/Color.cpp @@ -1,7 +1,7 @@ #include #include -const float epsilon = 0.01f; +const float epsilon = 1.f; void CompareColor(const Nz::Color& lhs, const Nz::Color& rhs) { @@ -16,46 +16,46 @@ void CompareCMY(const Nz::Color& color, float cyan, float magenta, float yellow) { float retrievedCyan = 0.f, retrievedMagenta = 0.f, retrievedYellow = 0.f; Nz::Color::ToCMY(color, &retrievedCyan, &retrievedMagenta, &retrievedYellow); - CHECK(retrievedCyan == Approx(cyan).epsilon(epsilon)); - CHECK(retrievedMagenta == Approx(magenta).epsilon(epsilon)); - CHECK(retrievedYellow == Approx(yellow).epsilon(epsilon)); + CHECK(retrievedCyan == Approx(cyan).margin(epsilon)); + CHECK(retrievedMagenta == Approx(magenta).margin(epsilon)); + CHECK(retrievedYellow == Approx(yellow).margin(epsilon)); } void CompareCMYK(const Nz::Color& color, float cyan, float magenta, float yellow, float black) { float retrievedCyan = 0.f, retrievedMagenta = 0.f, retrievedYellow = 0.f, retrievedBlack = 0.f; Nz::Color::ToCMYK(color, &retrievedCyan, &retrievedMagenta, &retrievedYellow, &retrievedBlack); - CHECK(retrievedCyan == Approx(cyan).epsilon(epsilon)); - CHECK(retrievedMagenta == Approx(magenta).epsilon(epsilon)); - CHECK(retrievedYellow == Approx(yellow).epsilon(epsilon)); - CHECK(retrievedBlack == Approx(black).epsilon(epsilon)); + CHECK(retrievedCyan == Approx(cyan).margin(epsilon)); + CHECK(retrievedMagenta == Approx(magenta).margin(epsilon)); + CHECK(retrievedYellow == Approx(yellow).margin(epsilon)); + CHECK(retrievedBlack == Approx(black).margin(epsilon)); } void CompareHSL(const Nz::Color& color, float hue, float saturation, float luminosity) { float retrievedHue = 0.f, retrievedSaturation = 0.f, retrievedLuminosity = 0.f; Nz::Color::ToHSL(color, &retrievedHue, &retrievedSaturation, &retrievedLuminosity); - CHECK(retrievedHue == Approx(hue).epsilon(epsilon)); - CHECK(retrievedSaturation == Approx(saturation).epsilon(epsilon)); - CHECK(retrievedLuminosity == Approx(luminosity).epsilon(epsilon)); + CHECK(retrievedHue == Approx(hue).margin(epsilon)); + CHECK(retrievedSaturation == Approx(saturation).margin(epsilon)); + CHECK(retrievedLuminosity == Approx(luminosity).margin(epsilon)); } void CompareHSV(const Nz::Color& color, float hue, float saturation, float value) { float retrievedHue = 0.f, retrievedSaturation = 0.f, retrievedValue = 0.f; Nz::Color::ToHSV(color, &retrievedHue, &retrievedSaturation, &retrievedValue); - CHECK(retrievedHue == Approx(hue).epsilon(epsilon)); - CHECK(retrievedSaturation == Approx(saturation).epsilon(epsilon)); - CHECK(retrievedValue == Approx(value).epsilon(epsilon)); + CHECK(retrievedHue == Approx(hue).margin(epsilon)); + CHECK(retrievedSaturation == Approx(saturation).margin(epsilon)); + CHECK(retrievedValue == Approx(value).margin(epsilon)); } void CompareXYZ(const Nz::Color& color, float x, float y, float z) { Nz::Vector3f retrievedValues = Nz::Vector3f::Zero(); Nz::Color::ToXYZ(color, &retrievedValues); - CHECK(retrievedValues.x == Approx(x).epsilon(epsilon)); - CHECK(retrievedValues.y == Approx(y).epsilon(epsilon)); - CHECK(retrievedValues.z == Approx(z).epsilon(epsilon)); + CHECK(retrievedValues.x == Approx(x).margin(epsilon)); + CHECK(retrievedValues.y == Approx(y).margin(epsilon)); + CHECK(retrievedValues.z == Approx(z).margin(epsilon)); } SCENARIO("Color", "[CORE][COLOR]") diff --git a/tests/Engine/Math/EulerAngles.cpp b/tests/Engine/Math/EulerAngles.cpp index 6a6f7f77e..95a5e301a 100644 --- a/tests/Engine/Math/EulerAngles.cpp +++ b/tests/Engine/Math/EulerAngles.cpp @@ -96,7 +96,7 @@ SCENARIO("EulerAngles", "[MATH][EULERANGLES]") REQUIRE(tmp.roll == Approx(0.f)); tmp = Nz::Quaternionf(euler30.ToQuaternion()).ToEulerAngles(); REQUIRE(tmp.pitch == Approx(30.f)); - REQUIRE(tmp.yaw == Approx(0.f)); + REQUIRE(tmp.yaw == Approx(0.f).margin(0.0001f)); REQUIRE(tmp.roll == Approx(30.f)); } } diff --git a/tests/Engine/Math/Matrix4.cpp b/tests/Engine/Math/Matrix4.cpp index d649cbf72..ca4760e7b 100644 --- a/tests/Engine/Math/Matrix4.cpp +++ b/tests/Engine/Math/Matrix4.cpp @@ -83,8 +83,8 @@ SCENARIO("Matrix4", "[MATH][MATRIX4]") THEN("We get the identity") { Nz::Matrix4f tmp = matrix1 * invMatrix1; - CHECK(tmp.m32 == Approx(0.f)); - CHECK(tmp.m42 == Approx(0.f)); + CHECK(tmp.m32 == Approx(0.f).margin(0.0001f)); + CHECK(tmp.m42 == Approx(0.f).margin(0.0001f)); tmp.m32 = 0.f; tmp.m42 = 0.f; CHECK(tmp == Nz::Matrix4f::Identity()); diff --git a/tests/Engine/Physics2D/PhysWorld2D.cpp b/tests/Engine/Physics2D/PhysWorld2D.cpp index 3c19ba653..4f492a9c0 100644 --- a/tests/Engine/Physics2D/PhysWorld2D.cpp +++ b/tests/Engine/Physics2D/PhysWorld2D.cpp @@ -80,7 +80,7 @@ SCENARIO("PhysWorld2D", "[PHYSICS2D][PHYSWORLD2D]") { const Nz::PhysWorld2D::RaycastHit& result = results[i]; CHECK(result.nearestBody == &bodies[i]); - CHECK(result.fraction == Approx(i / 4.f).epsilon(0.1f)); + CHECK(result.fraction == Approx(i / 4.f).margin(0.1f)); CHECK(result.hitPos == Nz::Vector2f(0.f, i * 10.f)); CHECK(result.hitNormal == -Nz::Vector2f::UnitY()); } @@ -171,13 +171,13 @@ SCENARIO("PhysWorld2D", "[PHYSICS2D][PHYSWORLD2D]") world.Step(0.1f); CHECK(statusTriggerCollision == 11); - CHECK(character.GetPosition().x == Approx(3.1f).epsilon(0.01f)); + CHECK(character.GetPosition().x == Approx(3.1f).margin(0.01f)); for (int i = 0; i != 9; ++i) world.Step(0.1f); - CHECK(character.GetPosition().x == Approx(4.f).epsilon(0.01f)); + CHECK(character.GetPosition().x == Approx(4.f).margin(0.01f)); world.Step(0.1f); - CHECK(character.GetPosition().x == Approx(4.f).epsilon(0.01f)); + CHECK(character.GetPosition().x == Approx(4.f).margin(0.01f)); CHECK(statusWallCollision == 1); // It should be close to the wall character.SetVelocity(Nz::Vector2f(-2.f, 0.f)); diff --git a/tests/Engine/Physics2D/RigidBody2D.cpp b/tests/Engine/Physics2D/RigidBody2D.cpp index 98a7fc35a..b5d0a1ec2 100644 --- a/tests/Engine/Physics2D/RigidBody2D.cpp +++ b/tests/Engine/Physics2D/RigidBody2D.cpp @@ -4,6 +4,7 @@ Nz::RigidBody2D CreateBody(Nz::PhysWorld2D& world); void EQUALITY(const Nz::RigidBody2D& left, const Nz::RigidBody2D& right); +void EQUALITY(const Nz::Rectf& left, const Nz::Rectf& right); SCENARIO("RigidBody2D", "[PHYSICS2D][RIGIDBODY2D]") { @@ -65,16 +66,15 @@ SCENARIO("RigidBody2D", "[PHYSICS2D][RIGIDBODY2D]") WHEN("We set a new geometry") { float radius = 5.f; - Nz::Vector2f positionCircle(0.f, 0.f); - Nz::Collider2DRef circle = Nz::CircleCollider2D::New(radius, position); - body.SetGeom(circle); + body.SetGeom(Nz::CircleCollider2D::New(radius)); world.Step(1.f); THEN("The aabb should be updated") { + position = body.GetPosition(); Nz::Rectf circleAABB(position.x - radius, position.y - radius, 2.f * radius, 2.f* radius); - REQUIRE(body.GetAABB() == circleAABB); + EQUALITY(body.GetAABB(), circleAABB); } } } @@ -316,3 +316,11 @@ void EQUALITY(const Nz::RigidBody2D& left, const Nz::RigidBody2D& right) CHECK(left.GetUserdata() == right.GetUserdata()); CHECK(left.GetVelocity() == right.GetVelocity()); } + +void EQUALITY(const Nz::Rectf& left, const Nz::Rectf& right) +{ + CHECK(left.x == Approx(right.x)); + CHECK(left.y == Approx(right.y)); + CHECK(left.width == Approx(right.width)); + CHECK(left.height == Approx(right.height)); +}