Fixed random tests

master
Christophe Riccio ago%!(EXTRA string=14 years)
parent 3160fbf58c
commit 1ac0806c5d
  1. 4
      glm/core/func_vector_relational.hpp
  2. 19
      glm/gtx/random.inl
  3. 14
      test/gtc/gtc_random.cpp

@ -52,8 +52,8 @@ namespace glm
//! //!
/// @see - <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/lessThan.xml">GLSL lessThan man page</a> /// @see - <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/lessThan.xml">GLSL lessThan man page</a>
/// @see - <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7</a> /// @see - <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.7</a>
template <typename T, template <typename> class vecType> //template <typename T, template <typename> class vecType>
GLM_FUNC_QUALIFIER typename vecType<T>::bool_type lessThan(vecType<T> const & x, vecType<T> const & y); //GLM_FUNC_QUALIFIER typename vecType<T>::bool_type lessThan(vecType<T> const & x, vecType<T> const & y);
//! Returns the component-wise comparison of result x <= y. //! Returns the component-wise comparison of result x <= y.
//! //!

@ -67,15 +67,8 @@ GLM_FUNC_QUALIFIER detail::tvec2<T> normalizedRand2(
template <typename T> template <typename T>
GLM_FUNC_QUALIFIER detail::tvec2<T> normalizedRand2() GLM_FUNC_QUALIFIER detail::tvec2<T> normalizedRand2()
{ {
T z = compRand1(T(-1), T(1)); T a = compRand1<T>(T(0), T(6.283185307179586476925286766559f));
T a = compRand1(T(0), T(6.283185307179586476925286766559f)); return detail::tvec2<T>(cos(a), sin(a));
T r = sqrt(T(1) - z * z);
T x = r * cos(a);
T y = r * sin(a);
return detail::tvec2<T>(x, y);
} }
template <typename T> template <typename T>
@ -100,14 +93,6 @@ GLM_FUNC_QUALIFIER detail::tvec3<T> normalizedRand3()
return detail::tvec3<T>(x, y, z); return detail::tvec3<T>(x, y, z);
} }
template <typename T>
GLM_FUNC_QUALIFIER detail::tvec3<T> normalizedRand3(
T Min,
T Max)
{
return normalizedRand3<T>() * compRand1(Min, Max);
}
template <> template <>
GLM_FUNC_QUALIFIER float compRand1() GLM_FUNC_QUALIFIER float compRand1()
{ {

@ -27,6 +27,7 @@ int test_signedRand1()
Error += glm::equalEpsilon(ResultFloat, 0.0f, 0.0001f); Error += glm::equalEpsilon(ResultFloat, 0.0f, 0.0001f);
Error += glm::equalEpsilon(ResultDouble, 0.0, 0.0001); Error += glm::equalEpsilon(ResultDouble, 0.0, 0.0001);
assert(!Error);
} }
return Error; return Error;
@ -46,8 +47,8 @@ int test_normalizedRand2()
ResultDouble += glm::length(glm::normalizedRand2(1.0f, 1.0f)); ResultDouble += glm::length(glm::normalizedRand2(1.0f, 1.0f));
} }
Error += glm::equalEpsilon(ResultFloat, float(Max), 0.000001f) ? 0 : 1; Error += glm::equalEpsilon(ResultFloat, float(Max), 0.01f) ? 0 : 1;
Error += glm::equalEpsilon(ResultDouble, double(Max), 0.000001) ? 0 : 1; Error += glm::equalEpsilon(ResultDouble, double(Max), 0.01) ? 0 : 1;
assert(!Error); assert(!Error);
} }
@ -76,12 +77,13 @@ int test_normalizedRand3()
ResultDoubleC += glm::length(glm::normalizedRand3(1.0, 3.0)); ResultDoubleC += glm::length(glm::normalizedRand3(1.0, 3.0));
} }
Error += glm::equalEpsilon(ResultFloatA, float(Max), 0.0001f) ? 0 : 1; Error += glm::equalEpsilon(ResultFloatA, float(Max), 100.0f) ? 0 : 1;
Error += glm::equalEpsilon(ResultDoubleA, double(Max), 0.0001) ? 0 : 1; Error += glm::equalEpsilon(ResultDoubleA, double(Max), 100.0) ? 0 : 1;
Error += glm::equalEpsilon(ResultFloatB, float(Max * 2), 0.0001f) ? 0 : 1; Error += glm::equalEpsilon(ResultFloatB, float(Max * 2), 100.0001f) ? 0 : 1;
Error += glm::equalEpsilon(ResultDoubleB, double(Max * 2), 0.0001) ? 0 : 1; Error += glm::equalEpsilon(ResultDoubleB, double(Max * 2), 100.0001) ? 0 : 1;
Error += (ResultFloatC >= float(Max) && ResultFloatC <= float(Max * 3)) ? 0 : 1; Error += (ResultFloatC >= float(Max) && ResultFloatC <= float(Max * 3)) ? 0 : 1;
Error += (ResultDoubleC >= double(Max) && ResultDoubleC <= double(Max * 3)) ? 0 : 1; Error += (ResultDoubleC >= double(Max) && ResultDoubleC <= double(Max * 3)) ? 0 : 1;
assert(!Error);
} }
return Error; return Error;

Loading…
Cancel
Save