Replaced std::isnan by <math.h>isnan for improved compatibility

This commit is contained in:
Pascal Serrarens 2022-01-25 11:27:16 +01:00
parent 7229337121
commit ea72cf5cb9

View File

@ -1,4 +1,5 @@
#include <gtest/gtest.h>
#include <math.h>
#include <limits>
#include "Vector3.h"
@ -85,12 +86,12 @@ TEST(Vector3, Normalize) {
if (std::numeric_limits<float>::is_iec559) {
v1 = Vector3(FLOAT_INFINITY, FLOAT_INFINITY, FLOAT_INFINITY);
v = v1.normalized();
r = std::isnan(v.x) && std::isnan(v.y) && std::isnan(v.z);
r = isnan(v.x) && isnan(v.y) && isnan(v.z);
EXPECT_TRUE(r) << "v.normalized INFINITY INFINITY INFINITY";
v1 = Vector3(-FLOAT_INFINITY, -FLOAT_INFINITY, -FLOAT_INFINITY);
v = v1.normalized();
r = std::isnan(v.x) && std::isnan(v.y) && std::isnan(v.z);
r = isnan(v.x) && isnan(v.y) && isnan(v.z);
EXPECT_TRUE(r) << "v.normalized -INFINITY -INFINITY -INFINITY";
}
@ -374,12 +375,12 @@ TEST(Vector3, Cross) {
if (std::numeric_limits<float>::is_iec559) {
v2 = Vector3(FLOAT_INFINITY, FLOAT_INFINITY, FLOAT_INFINITY);
v = Vector3::Cross(v1, v2);
r = std::isnan(v.x) && std::isnan(v.y) && std::isnan(v.z);
r = isnan(v.x) && isnan(v.y) && isnan(v.z);
EXPECT_TRUE(r) << "Cross(4 5 6, INFINITY INFINITY INFINITY)";
v2 = Vector3(-FLOAT_INFINITY, -FLOAT_INFINITY, -FLOAT_INFINITY);
v = Vector3::Cross(v1, v2);
r = std::isnan(v.x) && std::isnan(v.y) && std::isnan(v.z);
r = isnan(v.x) && isnan(v.y) && isnan(v.z);
EXPECT_TRUE(r) << "Cross(4 5 6, -INFINITY -INFINITY -INFINITY)";
}
}
@ -407,12 +408,12 @@ TEST(Vector3, Project) {
if (std::numeric_limits<float>::is_iec559) {
v2 = Vector3(FLOAT_INFINITY, FLOAT_INFINITY, FLOAT_INFINITY);
v = Vector3::Project(v1, v2);
r = std::isnan(v.x) && std::isnan(v.y) && std::isnan(v.z);
r = isnan(v.x) && isnan(v.y) && isnan(v.z);
EXPECT_TRUE(r) << "Project(4 5 6, INFINITY INFINITY INFINITY)";
v2 = Vector3(-FLOAT_INFINITY, -FLOAT_INFINITY, -FLOAT_INFINITY);
v = Vector3::Project(v1, v2);
r = std::isnan(v.x) && std::isnan(v.y) && std::isnan(v.z);
r = isnan(v.x) && isnan(v.y) && isnan(v.z);
EXPECT_TRUE(r) << "Project(4 5 6, -INFINITY -INFINITY -INFINITY)";
}
}
@ -440,12 +441,12 @@ TEST(Vector3, ProjectOnPlane) {
if (std::numeric_limits<float>::is_iec559) {
v2 = Vector3(FLOAT_INFINITY, FLOAT_INFINITY, FLOAT_INFINITY);
v = Vector3::ProjectOnPlane(v1, v2);
r = std::isnan(v.x) && std::isnan(v.y) && std::isnan(v.z);
r = isnan(v.x) && isnan(v.y) && isnan(v.z);
EXPECT_TRUE(r) << "ProjectOnPlane(4 5 6, INFINITY INFINITY INFINITY)";
v2 = Vector3(-FLOAT_INFINITY, -FLOAT_INFINITY, -FLOAT_INFINITY);
v = Vector3::ProjectOnPlane(v1, v2);
r = std::isnan(v.x) && std::isnan(v.y) && std::isnan(v.z);
r = isnan(v.x) && isnan(v.y) && isnan(v.z);
EXPECT_TRUE(r) << "ProjectOnPlane(4 5 6, -INFINITY -INFINITY -INFINITY)";
}
}
@ -470,12 +471,12 @@ TEST(Vector3, Angle) {
if (std::numeric_limits<float>::is_iec559) {
v2 = Vector3(FLOAT_INFINITY, FLOAT_INFINITY, FLOAT_INFINITY);
f = Vector3::Angle(v1, v2);
r = std::isnan(f);
r = isnan(f);
EXPECT_TRUE(r) << "Angle(4 5 6, INFINITY INFINITY INFINITY)";
v2 = Vector3(-FLOAT_INFINITY, -FLOAT_INFINITY, -FLOAT_INFINITY);
f = Vector3::Angle(v1, v2);
r = std::isnan(f);
r = isnan(f);
EXPECT_TRUE(r) << "Angle(4 5 6, -INFINITY -INFINITY -INFINITY)";
}
@ -512,12 +513,12 @@ TEST(Vector3, SignedAngle) {
if (std::numeric_limits<float>::is_iec559) {
v2 = Vector3(FLOAT_INFINITY, FLOAT_INFINITY, FLOAT_INFINITY);
f = Vector3::SignedAngle(v1, v2, v3);
r = std::isnan(f);
r = isnan(f);
EXPECT_TRUE(r) << "SignedAngle(4 5 6, INFINITY INFINITY INFINITY)";
v2 = Vector3(-FLOAT_INFINITY, -FLOAT_INFINITY, -FLOAT_INFINITY);
f = Vector3::SignedAngle(v1, v2, v3);
r = std::isnan(f);
r = isnan(f);
EXPECT_TRUE(r) << "SignedAngle(4 5 6, -INFINITY -INFINITY -INFINITY)";
}