mirror of
https://github.com/g-truc/glm.git
synced 2024-11-26 02:04:35 +00:00
Disabled tests requiring random engine when CXX11 STL is not available.
Added missed `typename` keywords, and fixed variable initialization.
This commit is contained in:
parent
0f5b544d5d
commit
c792a0a221
@ -4,7 +4,9 @@
|
|||||||
#include <glm/gtc/epsilon.hpp>
|
#include <glm/gtc/epsilon.hpp>
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#ifdef GLM_HAS_CXX11_STL
|
||||||
#include <random>
|
#include <random>
|
||||||
|
#endif
|
||||||
|
|
||||||
template<glm::length_t D, typename T, glm::qualifier Q>
|
template<glm::length_t D, typename T, glm::qualifier Q>
|
||||||
bool vectorEpsilonEqual(glm::vec<D, T, Q> const& a, glm::vec<D, T, Q> const& b)
|
bool vectorEpsilonEqual(glm::vec<D, T, Q> const& a, glm::vec<D, T, Q> const& b)
|
||||||
@ -366,30 +368,30 @@ int testEigenvalueSort()
|
|||||||
};
|
};
|
||||||
// The permutations t perform, based on `D` (1 <= D <= 4)
|
// The permutations t perform, based on `D` (1 <= D <= 4)
|
||||||
static const glm::ivec4 permutation[] = {
|
static const glm::ivec4 permutation[] = {
|
||||||
{ 0, 1, 2, 3 },
|
glm::ivec4(0, 1, 2, 3),
|
||||||
{ 1, 0, 2, 3 }, // last for D = 2
|
glm::ivec4(1, 0, 2, 3), // last for D = 2
|
||||||
{ 0, 2, 1, 3 },
|
glm::ivec4(0, 2, 1, 3),
|
||||||
{ 1, 2, 0, 3 },
|
glm::ivec4(1, 2, 0, 3),
|
||||||
{ 2, 0, 1, 3 },
|
glm::ivec4(2, 0, 1, 3),
|
||||||
{ 2, 1, 0, 3 }, // last for D = 3
|
glm::ivec4(2, 1, 0, 3), // last for D = 3
|
||||||
{ 0, 1, 3, 2 },
|
glm::ivec4(0, 1, 3, 2),
|
||||||
{ 1, 0, 3, 2 },
|
glm::ivec4(1, 0, 3, 2),
|
||||||
{ 0, 2, 3, 1 },
|
glm::ivec4(0, 2, 3, 1),
|
||||||
{ 1, 2, 3, 0 },
|
glm::ivec4(1, 2, 3, 0),
|
||||||
{ 2, 0, 3, 1 },
|
glm::ivec4(2, 0, 3, 1),
|
||||||
{ 2, 1, 3, 0 },
|
glm::ivec4(2, 1, 3, 0),
|
||||||
{ 0, 3, 1, 2 },
|
glm::ivec4(0, 3, 1, 2),
|
||||||
{ 1, 3, 0, 2 },
|
glm::ivec4(1, 3, 0, 2),
|
||||||
{ 0, 3, 2, 1 },
|
glm::ivec4(0, 3, 2, 1),
|
||||||
{ 1, 3, 2, 0 },
|
glm::ivec4(1, 3, 2, 0),
|
||||||
{ 2, 3, 0, 1 },
|
glm::ivec4(2, 3, 0, 1),
|
||||||
{ 2, 3, 1, 0 },
|
glm::ivec4(2, 3, 1, 0),
|
||||||
{ 3, 0, 1, 2 },
|
glm::ivec4(3, 0, 1, 2),
|
||||||
{ 3, 1, 0, 2 },
|
glm::ivec4(3, 1, 0, 2),
|
||||||
{ 3, 0, 2, 1 },
|
glm::ivec4(3, 0, 2, 1),
|
||||||
{ 3, 1, 2, 0 },
|
glm::ivec4(3, 1, 2, 0),
|
||||||
{ 3, 2, 0, 1 },
|
glm::ivec4(3, 2, 0, 1),
|
||||||
{ 3, 2, 1, 0 } // last for D = 4
|
glm::ivec4(3, 2, 1, 0) // last for D = 4
|
||||||
};
|
};
|
||||||
|
|
||||||
// initial sanity check
|
// initial sanity check
|
||||||
@ -439,6 +441,7 @@ int testCovar(glm::length_t dataSize, unsigned int randomEngineSeed)
|
|||||||
return failReport(__LINE__);
|
return failReport(__LINE__);
|
||||||
|
|
||||||
// #2: test function variant consitency with random data
|
// #2: test function variant consitency with random data
|
||||||
|
#ifdef GLM_HAS_CXX11_STL
|
||||||
std::default_random_engine rndEng(randomEngineSeed);
|
std::default_random_engine rndEng(randomEngineSeed);
|
||||||
std::normal_distribution<T> normalDist;
|
std::normal_distribution<T> normalDist;
|
||||||
testData.resize(dataSize);
|
testData.resize(dataSize);
|
||||||
@ -454,8 +457,8 @@ int testCovar(glm::length_t dataSize, unsigned int randomEngineSeed)
|
|||||||
|
|
||||||
std::vector<vec> centeredTestData;
|
std::vector<vec> centeredTestData;
|
||||||
centeredTestData.reserve(testData.size());
|
centeredTestData.reserve(testData.size());
|
||||||
std::vector<vec>::const_iterator e = testData.end();
|
typename std::vector<vec>::const_iterator e = testData.end();
|
||||||
for(std::vector<vec>::const_iterator i = testData.begin(); i != e; ++i)
|
for(typename std::vector<vec>::const_iterator i = testData.begin(); i != e; ++i)
|
||||||
centeredTestData.push_back((*i) - center);
|
centeredTestData.push_back((*i) - center);
|
||||||
|
|
||||||
mat c1 = glm::computeCovarianceMatrix(centeredTestData.data(), centeredTestData.size());
|
mat c1 = glm::computeCovarianceMatrix(centeredTestData.data(), centeredTestData.size());
|
||||||
@ -469,7 +472,9 @@ int testCovar(glm::length_t dataSize, unsigned int randomEngineSeed)
|
|||||||
return failReport(__LINE__);
|
return failReport(__LINE__);
|
||||||
if(!matrixEpsilonEqual(c1, c4))
|
if(!matrixEpsilonEqual(c1, c4))
|
||||||
return failReport(__LINE__);
|
return failReport(__LINE__);
|
||||||
|
#else // GLM_HAS_CXX11_STL
|
||||||
|
printf("dummy: %d %d\n", static_cast<int>(randomEngineSeed), static_cast<int>(dataSize));
|
||||||
|
#endif // GLM_HAS_CXX11_STL
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -547,6 +552,7 @@ int smokeTest()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef GLM_HAS_CXX11_STL
|
||||||
int rndTest(unsigned int randomEngineSeed)
|
int rndTest(unsigned int randomEngineSeed)
|
||||||
{
|
{
|
||||||
std::default_random_engine rndEng(randomEngineSeed);
|
std::default_random_engine rndEng(randomEngineSeed);
|
||||||
@ -620,6 +626,7 @@ int rndTest(unsigned int randomEngineSeed)
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif // GLM_HAS_CXX11_STL
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
@ -672,10 +679,12 @@ int main()
|
|||||||
return failReport(__LINE__);
|
return failReport(__LINE__);
|
||||||
|
|
||||||
// Final tests with randomized data
|
// Final tests with randomized data
|
||||||
|
#ifdef GLM_HAS_CXX11_STL
|
||||||
if(rndTest(12345) != 0)
|
if(rndTest(12345) != 0)
|
||||||
return failReport(__LINE__);
|
return failReport(__LINE__);
|
||||||
if(rndTest(42) != 0)
|
if(rndTest(42) != 0)
|
||||||
return failReport(__LINE__);
|
return failReport(__LINE__);
|
||||||
|
#endif // GLM_HAS_CXX11_STL
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user