commit
d850bdcd0b
24 changed files with 577 additions and 136 deletions
@ -1,18 +1,91 @@ |
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Created : 2010-09-16
|
||||
// Updated : 2010-09-16
|
||||
// Created : 2011-05-32
|
||||
// Updated : 2011-05-32
|
||||
// Licence : This source is under MIT licence
|
||||
// File : test/gtc/matrix_transform.cpp
|
||||
// File : test/gtc/half_float.cpp
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include <glm/glm.hpp> |
||||
#include <glm/gtc/matrix_transform.hpp> |
||||
#include <glm/gtc/half_float.hpp> |
||||
|
||||
int test_half_precision_scalar() |
||||
{ |
||||
int Error = 0; |
||||
|
||||
Error += sizeof(glm::half) == 2 ? 0 : 1; |
||||
|
||||
return Error; |
||||
} |
||||
|
||||
int test_half_precision_vec() |
||||
{ |
||||
int Error = 0; |
||||
|
||||
Error += sizeof(glm::hvec2) == 4 ? 0 : 1; |
||||
Error += sizeof(glm::hvec3) == 6 ? 0 : 1; |
||||
Error += sizeof(glm::hvec4) == 8 ? 0 : 1; |
||||
|
||||
return Error; |
||||
} |
||||
|
||||
int test_half_precision_mat() |
||||
{ |
||||
int Error = 0; |
||||
|
||||
Error += sizeof(glm::hmat2) == 8 ? 0 : 1; |
||||
Error += sizeof(glm::hmat3) == 18 ? 0 : 1; |
||||
Error += sizeof(glm::hmat4) == 32 ? 0 : 1; |
||||
|
||||
Error += sizeof(glm::hmat2x2) == 8 ? 0 : 1; |
||||
Error += sizeof(glm::hmat2x3) == 12 ? 0 : 1; |
||||
Error += sizeof(glm::hmat2x4) == 16 ? 0 : 1; |
||||
Error += sizeof(glm::hmat3x2) == 12 ? 0 : 1; |
||||
Error += sizeof(glm::hmat3x3) == 18 ? 0 : 1; |
||||
Error += sizeof(glm::hmat3x4) == 24 ? 0 : 1; |
||||
Error += sizeof(glm::hmat4x2) == 16 ? 0 : 1; |
||||
Error += sizeof(glm::hmat4x3) == 24 ? 0 : 1; |
||||
Error += sizeof(glm::hmat4x4) == 32 ? 0 : 1; |
||||
|
||||
return Error; |
||||
} |
||||
|
||||
int test_half_ctor_mat2x2() |
||||
{ |
||||
int Error = 0; |
||||
|
||||
{ |
||||
glm::hvec2 A(1, 2); |
||||
glm::hvec2 B(3, 4); |
||||
glm::hmat2 C(A, B);//, 2.0f, 3.0f, 4.0f);
|
||||
glm::hmat2 D(1, 2, 3, 4); |
||||
|
||||
Error += C[0] == D[0] ? 0 : 1; |
||||
Error += C[1] == D[1] ? 0 : 1; |
||||
} |
||||
|
||||
{ |
||||
glm::hvec2 A(1, 2.0); |
||||
glm::hvec2 B(3, 4.0); |
||||
glm::hmat2 C(A, B);//, 2.0f, 3.0f, 4.0f);
|
||||
glm::hmat2 D(1, 2.0, 3u, 4.0f); |
||||
|
||||
Error += C[0] == D[0] ? 0 : 1; |
||||
Error += C[1] == D[1] ? 0 : 1; |
||||
} |
||||
|
||||
return Error; |
||||
} |
||||
|
||||
int main() |
||||
{ |
||||
int Failed = 0; |
||||
int Error = 0; |
||||
|
||||
Error += test_half_ctor_mat2x2(); |
||||
Error += test_half_precision_scalar(); |
||||
Error += test_half_precision_vec(); |
||||
Error += test_half_precision_mat(); |
||||
|
||||
return Failed; |
||||
return Error; |
||||
} |
||||
|
@ -0,0 +1,98 @@ |
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Created : 2011-05-31
|
||||
// Updated : 2011-05-31
|
||||
// Licence : This source is under MIT licence
|
||||
// File : test/gtx/random.cpp
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include <glm/glm.hpp> |
||||
#include <glm/gtx/random.hpp> |
||||
#include <glm/gtx/epsilon.hpp> |
||||
#include <iostream> |
||||
|
||||
int test_signedRand1() |
||||
{ |
||||
int Error = 0; |
||||
|
||||
{ |
||||
float ResultFloat = 0.0f; |
||||
double ResultDouble = 0.0f; |
||||
for(std::size_t i = 0; i < 100000; ++i) |
||||
{ |
||||
ResultFloat += glm::signedRand1<float>(); |
||||
ResultDouble += glm::signedRand1<double>(); |
||||
} |
||||
|
||||
Error += glm::equalEpsilon(ResultFloat, 0.0f, 0.0001f); |
||||
Error += glm::equalEpsilon(ResultDouble, 0.0, 0.0001); |
||||
} |
||||
|
||||
return Error; |
||||
} |
||||
|
||||
int test_normalizedRand2() |
||||
{ |
||||
int Error = 0; |
||||
|
||||
{ |
||||
std::size_t Max = 100000; |
||||
float ResultFloat = 0.0f; |
||||
double ResultDouble = 0.0f; |
||||
for(std::size_t i = 0; i < Max; ++i) |
||||
{ |
||||
ResultFloat += glm::length(glm::normalizedRand2<float>()); |
||||
ResultDouble += glm::length(glm::normalizedRand2<double>()); |
||||
} |
||||
|
||||
Error += glm::equalEpsilon(ResultFloat, float(Max), 0.0001f); |
||||
Error += glm::equalEpsilon(ResultDouble, double(Max), 0.0001); |
||||
} |
||||
|
||||
return Error; |
||||
} |
||||
|
||||
int test_normalizedRand3() |
||||
{ |
||||
int Error = 0; |
||||
|
||||
{ |
||||
std::size_t Max = 100000; |
||||
float ResultFloatA = 0.0f; |
||||
float ResultFloatB = 0.0f; |
||||
float ResultFloatC = 0.0f; |
||||
double ResultDoubleA = 0.0f; |
||||
double ResultDoubleB = 0.0f; |
||||
double ResultDoubleC = 0.0f; |
||||
for(std::size_t i = 0; i < Max; ++i) |
||||
{ |
||||
ResultFloatA += glm::length(glm::normalizedRand3<float>()); |
||||
ResultDoubleA += glm::length(glm::normalizedRand3<double>()); |
||||
ResultFloatB += glm::length(glm::normalizedRand3(2.0f, 2.0f)); |
||||
ResultDoubleB += glm::length(glm::normalizedRand3(2.0, 2.0)); |
||||
ResultFloatC += glm::length(glm::normalizedRand3(1.0f, 3.0f)); |
||||
ResultDoubleC += glm::length(glm::normalizedRand3(1.0, 3.0)); |
||||
} |
||||
|
||||
Error += glm::equalEpsilon(ResultFloatA, float(Max), 0.0001f) ? 0 : 1; |
||||
Error += glm::equalEpsilon(ResultDoubleA, double(Max), 0.0001) ? 0 : 1; |
||||
Error += glm::equalEpsilon(ResultFloatB, float(Max * 2), 0.0001f) ? 0 : 1; |
||||
Error += glm::equalEpsilon(ResultDoubleB, double(Max * 2), 0.0001) ? 0 : 1; |
||||
Error += (ResultFloatC >= float(Max) && ResultFloatC <= float(Max * 3)) ? 0 : 1; |
||||
Error += (ResultDoubleC >= double(Max) && ResultDoubleC <= double(Max * 3)) ? 0 : 1; |
||||
} |
||||
|
||||
return Error; |
||||
} |
||||
|
||||
int main() |
||||
{ |
||||
int Error = 0; |
||||
|
||||
Error += test_signedRand1(); |
||||
Error += test_normalizedRand2(); |
||||
Error += test_normalizedRand3(); |
||||
|
||||
return Error; |
||||
} |
Loading…
Reference in New Issue