Browse Source

Fixed error: comparing floating point with == or != is unsafe

Groove 7 years ago
parent
commit
b0f06b31a4
1 changed files with 37 additions and 36 deletions
  1. 37 36
      test/gtx/gtx_scalar_relational.cpp

+ 37 - 36
test/gtx/gtx_scalar_relational.cpp

@@ -1,11 +1,12 @@
 #define GLM_ENABLE_EXPERIMENTAL
-#include <glm/glm.hpp>
 #include <glm/gtx/scalar_relational.hpp>
-#include <cstdio>
+#include <glm/gtc/constants.hpp>
+#include <glm/ext/vector_relational.hpp>
+#include <glm/glm.hpp>
 
-int test_lessThan()
+static int test_lessThan()
 {
-	int Error(0);
+	int Error = 0;
 
 	Error += glm::lessThan(0, 1) ? 0 : 1;
 	Error += glm::lessThan(1, 0) ? 1 : 0;
@@ -23,9 +24,9 @@ int test_lessThan()
 	return Error;
 }
 
-int test_lessThanEqual()
+static int test_lessThanEqual()
 {
-	int Error(0);
+	int Error = 0;
 
 	Error += glm::lessThanEqual(0, 1) ? 0 : 1;
 	Error += glm::lessThanEqual(1, 0) ? 1 : 0;
@@ -43,9 +44,9 @@ int test_lessThanEqual()
 	return Error;
 }
 
-int test_greaterThan()
+static int test_greaterThan()
 {
-	int Error(0);
+	int Error = 0;
 
 	Error += glm::greaterThan(0, 1) ? 1 : 0;
 	Error += glm::greaterThan(1, 0) ? 0 : 1;
@@ -63,9 +64,9 @@ int test_greaterThan()
 	return Error;
 }
 
-int test_greaterThanEqual()
+static int test_greaterThanEqual()
 {
-	int Error(0);
+	int Error = 0;
 
 	Error += glm::greaterThanEqual(0, 1) ? 1 : 0;
 	Error += glm::greaterThanEqual(1, 0) ? 0 : 1;
@@ -83,49 +84,49 @@ int test_greaterThanEqual()
 	return Error;
 }
 
-int test_equal()
+static int test_equal()
 {
-	int Error(0);
+	int Error = 0;
 
 	Error += glm::equal(0, 1) ? 1 : 0;
 	Error += glm::equal(1, 0) ? 1 : 0;
 	Error += glm::equal(0, 0) ? 0 : 1;
 	Error += glm::equal(1, 1) ? 0 : 1;
-	Error += glm::equal(0.0f, 1.0f) ? 1 : 0;
-	Error += glm::equal(1.0f, 0.0f) ? 1 : 0;
-	Error += glm::equal(0.0f, 0.0f) ? 0 : 1;
-	Error += glm::equal(1.0f, 1.0f) ? 0 : 1;
-	Error += glm::equal(0.0, 1.0) ? 1 : 0;
-	Error += glm::equal(1.0, 0.0) ? 1 : 0;
-	Error += glm::equal(0.0, 0.0) ? 0 : 1;
-	Error += glm::equal(1.0, 1.0) ? 0 : 1;
+	Error += glm::equal(0.0f, 1.0f, glm::epsilon<float>()) ? 1 : 0;
+	Error += glm::equal(1.0f, 0.0f, glm::epsilon<float>()) ? 1 : 0;
+	Error += glm::equal(0.0f, 0.0f, glm::epsilon<float>()) ? 0 : 1;
+	Error += glm::equal(1.0f, 1.0f, glm::epsilon<float>()) ? 0 : 1;
+	Error += glm::equal(0.0, 1.0, glm::epsilon<double>()) ? 1 : 0;
+	Error += glm::equal(1.0, 0.0, glm::epsilon<double>()) ? 1 : 0;
+	Error += glm::equal(0.0, 0.0, glm::epsilon<double>()) ? 0 : 1;
+	Error += glm::equal(1.0, 1.0, glm::epsilon<double>()) ? 0 : 1;
 
 	return Error;
 }
 
-int test_notEqual()
+static int test_notEqual()
 {
-	int Error(0);
+	int Error = 0;
 
 	Error += glm::notEqual(0, 1) ? 0 : 1;
 	Error += glm::notEqual(1, 0) ? 0 : 1;
 	Error += glm::notEqual(0, 0) ? 1 : 0;
 	Error += glm::notEqual(1, 1) ? 1 : 0;
-	Error += glm::notEqual(0.0f, 1.0f) ? 0 : 1;
-	Error += glm::notEqual(1.0f, 0.0f) ? 0 : 1;
-	Error += glm::notEqual(0.0f, 0.0f) ? 1 : 0;
-	Error += glm::notEqual(1.0f, 1.0f) ? 1 : 0;
-	Error += glm::notEqual(0.0, 1.0) ? 0 : 1;
-	Error += glm::notEqual(1.0, 0.0) ? 0 : 1;
-	Error += glm::notEqual(0.0, 0.0) ? 1 : 0;
-	Error += glm::notEqual(1.0, 1.0) ? 1 : 0;
+	Error += glm::notEqual(0.0f, 1.0f, glm::epsilon<float>()) ? 0 : 1;
+	Error += glm::notEqual(1.0f, 0.0f, glm::epsilon<float>()) ? 0 : 1;
+	Error += glm::notEqual(0.0f, 0.0f, glm::epsilon<float>()) ? 1 : 0;
+	Error += glm::notEqual(1.0f, 1.0f, glm::epsilon<float>()) ? 1 : 0;
+	Error += glm::notEqual(0.0, 1.0, glm::epsilon<double>()) ? 0 : 1;
+	Error += glm::notEqual(1.0, 0.0, glm::epsilon<double>()) ? 0 : 1;
+	Error += glm::notEqual(0.0, 0.0, glm::epsilon<double>()) ? 1 : 0;
+	Error += glm::notEqual(1.0, 1.0, glm::epsilon<double>()) ? 1 : 0;
 
 	return Error;
 }
 
-int test_any()
+static int test_any()
 {
-	int Error(0);
+	int Error = 0;
 
 	Error += glm::any(true) ? 0 : 1;
 	Error += glm::any(false) ? 1 : 0;
@@ -133,9 +134,9 @@ int test_any()
 	return Error;
 }
 
-int test_all()
+static int test_all()
 {
-	int Error(0);
+	int Error = 0;
 
 	Error += glm::all(true) ? 0 : 1;
 	Error += glm::all(false) ? 1 : 0;
@@ -143,9 +144,9 @@ int test_all()
 	return Error;
 }
 
-int test_not()
+static int test_not()
 {
-	int Error(0);
+	int Error = 0;
 
 	Error += glm::not_(true) ? 1 : 0;
 	Error += glm::not_(false) ? 0 : 1;