|
|
|
@ -9,6 +9,7 @@ |
|
|
|
|
|
|
|
|
|
#include <glm/glm.hpp> |
|
|
|
|
#include <glm/gtx/epsilon.hpp> |
|
|
|
|
#include <cstdio> |
|
|
|
|
|
|
|
|
|
int test_modf() |
|
|
|
|
{ |
|
|
|
@ -212,7 +213,67 @@ int test_roundEven() |
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
float A = glm::roundEven(-1.5f); |
|
|
|
|
Error += A == -2.0f ? 0 : 1; |
|
|
|
|
Error += glm::equalEpsilon(A, -2.0f, 0.0001f) ? 0 : 1; |
|
|
|
|
Error += 0; |
|
|
|
|
} |
|
|
|
|
{ |
|
|
|
|
float A = glm::roundEven(1.5f); |
|
|
|
|
Error += glm::equalEpsilon(A, 2.0f, 0.0001f) ? 0 : 1; |
|
|
|
|
Error += 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
float A = glm::roundEven(-3.5f); |
|
|
|
|
Error += glm::equalEpsilon(A, -4.0f, 0.0001f) ? 0 : 1; |
|
|
|
|
Error += 0; |
|
|
|
|
} |
|
|
|
|
{ |
|
|
|
|
float A = glm::roundEven(3.5f); |
|
|
|
|
Error += glm::equalEpsilon(A, 4.0f, 0.0001f) ? 0 : 1; |
|
|
|
|
Error += 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
float A = glm::roundEven(-2.5f); |
|
|
|
|
Error += glm::equalEpsilon(A, -2.0f, 0.0001f) ? 0 : 1; |
|
|
|
|
Error += 0; |
|
|
|
|
} |
|
|
|
|
{ |
|
|
|
|
float A = glm::roundEven(2.5f); |
|
|
|
|
Error += glm::equalEpsilon(A, 2.0f, 0.0001f) ? 0 : 1; |
|
|
|
|
Error += 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
float A = glm::roundEven(-2.4f); |
|
|
|
|
Error += glm::equalEpsilon(A, -2.0f, 0.0001f) ? 0 : 1; |
|
|
|
|
Error += 0; |
|
|
|
|
} |
|
|
|
|
{ |
|
|
|
|
float A = glm::roundEven(2.4f); |
|
|
|
|
Error += glm::equalEpsilon(A, 2.0f, 0.0001f) ? 0 : 1; |
|
|
|
|
Error += 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
float A = glm::roundEven(-2.6f); |
|
|
|
|
Error += glm::equalEpsilon(A, -3.0f, 0.0001f) ? 0 : 1; |
|
|
|
|
Error += 0; |
|
|
|
|
} |
|
|
|
|
{ |
|
|
|
|
float A = glm::roundEven(2.6f); |
|
|
|
|
Error += glm::equalEpsilon(A, 3.0f, 0.0001f) ? 0 : 1; |
|
|
|
|
Error += 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
float A = glm::roundEven(-2.0f); |
|
|
|
|
Error += glm::equalEpsilon(A, -2.0f, 0.0001f) ? 0 : 1; |
|
|
|
|
Error += 0; |
|
|
|
|
} |
|
|
|
|
{ |
|
|
|
|
float A = glm::roundEven(2.0f); |
|
|
|
|
Error += glm::equalEpsilon(A, 2.0f, 0.0001f) ? 0 : 1; |
|
|
|
|
Error += 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|