summaryrefslogtreecommitdiff
path: root/indra/llcommon/tests
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2023-10-12 16:55:04 -0400
committerNat Goodspeed <nat@lindenlab.com>2023-10-12 16:55:04 -0400
commitf5a34fd074bda091732a8ae0a4cf6f4e0358a140 (patch)
tree25d75210c52331063b06b9edda738723740be16b /indra/llcommon/tests
parentbe5a6e617971e3a786319ca92f2524fd6acc46da (diff)
SL-18837: Unify all llrand_test.cpp in-range tests.
The header file documents that no llrand function should ever return a value equal to the passed extent, so the one test in llrand_test.cpp that checked less than or equal to the high end of the range was anomalous. But changing that to an exclusive range means that we no longer need separate exclusive range and inclusive range functions. Replace ensure_in_range_using(), ensure_in_exc_range() and ensure_in_inc_range() with a grand unified (simplified) ensure_in_range() function.
Diffstat (limited to 'indra/llcommon/tests')
-rw-r--r--indra/llcommon/tests/llrand_test.cpp43
1 files changed, 18 insertions, 25 deletions
diff --git a/indra/llcommon/tests/llrand_test.cpp b/indra/llcommon/tests/llrand_test.cpp
index c8e2d19372..ac5a33d0ba 100644
--- a/indra/llcommon/tests/llrand_test.cpp
+++ b/indra/llcommon/tests/llrand_test.cpp
@@ -31,27 +31,20 @@
#include "../llrand.h"
#include "stringize.h"
-template <typename NUMBER, typename HIGHCOMP>
-void ensure_in_range_using(const std::string_view& name,
- NUMBER value, NUMBER low, NUMBER high,
- const std::string_view& compdesc, HIGHCOMP&& highcomp)
+// In llrand.h, every function is documented to return less than the high end
+// -- specifically, because you can pass a negative extent, they're documented
+// never to return a value equal to the extent.
+// So that we don't need two different versions of ensure_in_range(), when
+// testing extent < 0, negate the return value and the extent before passing
+// into ensure_in_range().
+template <typename NUMBER>
+void ensure_in_range(const std::string_view& name,
+ NUMBER value, NUMBER low, NUMBER high)
{
auto failmsg{ stringize(name, " >= ", low, " (", value, ')') };
tut::ensure(failmsg, (value >= low));
- failmsg = stringize(name, ' ', compdesc, ' ', high, " (", value, ')');
- tut::ensure(failmsg, std::forward<HIGHCOMP>(highcomp)(value, high));
-}
-
-template <typename NUMBER>
-void ensure_in_exc_range(const std::string_view& name, NUMBER value, NUMBER low, NUMBER high)
-{
- ensure_in_range_using(name, value, low, high, "<", std::less());
-}
-
-template <typename NUMBER>
-void ensure_in_inc_range(const std::string_view& name, NUMBER value, NUMBER low, NUMBER high)
-{
- ensure_in_range_using(name, value, low, high, "<=", std::less_equal());
+ failmsg = stringize(name, " < ", high, " (", value, ')');
+ tut::ensure(failmsg, (value < high));
}
namespace tut
@@ -69,7 +62,7 @@ namespace tut
{
for(S32 ii = 0; ii < 100000; ++ii)
{
- ensure_in_exc_range("frand", ll_frand(), 0.0f, 1.0f);
+ ensure_in_range("frand", ll_frand(), 0.0f, 1.0f);
}
}
@@ -78,7 +71,7 @@ namespace tut
{
for(S32 ii = 0; ii < 100000; ++ii)
{
- ensure_in_exc_range("drand", ll_drand(), 0.0, 1.0);
+ ensure_in_range("drand", ll_drand(), 0.0, 1.0);
}
}
@@ -87,7 +80,7 @@ namespace tut
{
for(S32 ii = 0; ii < 100000; ++ii)
{
- ensure_in_inc_range("frand(2.0f)", ll_frand(2.0f) - 1.0f, -1.0f, 1.0f);
+ ensure_in_range("frand(2.0f)", ll_frand(2.0f) - 1.0f, -1.0f, 1.0f);
}
}
@@ -98,7 +91,7 @@ namespace tut
{
// Negate the result so we don't have to allow a templated low-end
// comparison as well.
- ensure_in_exc_range("-frand(-7.0)", -ll_frand(-7.0), 0.0f, 7.0f);
+ ensure_in_range("-frand(-7.0)", -ll_frand(-7.0), 0.0f, 7.0f);
}
}
@@ -107,7 +100,7 @@ namespace tut
{
for(S32 ii = 0; ii < 100000; ++ii)
{
- ensure_in_exc_range("-drand(-2.0)", -ll_drand(-2.0), 0.0, 2.0);
+ ensure_in_range("-drand(-2.0)", -ll_drand(-2.0), 0.0, 2.0);
}
}
@@ -116,7 +109,7 @@ namespace tut
{
for(S32 ii = 0; ii < 100000; ++ii)
{
- ensure_in_exc_range("rand(100)", ll_rand(100), 0, 100);
+ ensure_in_range("rand(100)", ll_rand(100), 0, 100);
}
}
@@ -125,7 +118,7 @@ namespace tut
{
for(S32 ii = 0; ii < 100000; ++ii)
{
- ensure_in_exc_range("-rand(-127)", -ll_rand(-127), 0, 127);
+ ensure_in_range("-rand(-127)", -ll_rand(-127), 0, 127);
}
}
}