Fix MSVC compatibility
Make sure to include random unittests in android builds, too Use SWAP() macro Ensure that negative ranges are tested as well in random unittestsmaster
parent
b6475f5448
commit
37ca3212ee
|
@ -221,6 +221,7 @@ LOCAL_SRC_FILES := \
|
||||||
jni/src/unittest/test_nodedef.cpp \
|
jni/src/unittest/test_nodedef.cpp \
|
||||||
jni/src/unittest/test_noise.cpp \
|
jni/src/unittest/test_noise.cpp \
|
||||||
jni/src/unittest/test_profiler.cpp \
|
jni/src/unittest/test_profiler.cpp \
|
||||||
|
jni/src/unittest/test_random.cpp \
|
||||||
jni/src/unittest/test_serialization.cpp \
|
jni/src/unittest/test_serialization.cpp \
|
||||||
jni/src/unittest/test_settings.cpp \
|
jni/src/unittest/test_settings.cpp \
|
||||||
jni/src/unittest/test_socket.cpp \
|
jni/src/unittest/test_socket.cpp \
|
||||||
|
|
|
@ -310,8 +310,7 @@ int DecoSimple::getHeight()
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
DecoSchematic::DecoSchematic() :
|
DecoSchematic::DecoSchematic()
|
||||||
Decoration::Decoration()
|
|
||||||
{
|
{
|
||||||
schematic = NULL;
|
schematic = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -148,7 +148,7 @@ s32 PcgRandom::randNormalDist(s32 min, s32 max, int num_trials)
|
||||||
s32 accum = 0;
|
s32 accum = 0;
|
||||||
for (int i = 0; i != num_trials; i++)
|
for (int i = 0; i != num_trials; i++)
|
||||||
accum += range(min, max);
|
accum += range(min, max);
|
||||||
return round((float)accum / num_trials);
|
return myround((float)accum / num_trials);
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -74,13 +74,10 @@ void TestRandom::testPseudoRandomRange()
|
||||||
EXCEPTION_CHECK(PrngException, pr.range(5, 1));
|
EXCEPTION_CHECK(PrngException, pr.range(5, 1));
|
||||||
|
|
||||||
for (u32 i = 0; i != 32768; i++) {
|
for (u32 i = 0; i != 32768; i++) {
|
||||||
int min = pr.next() % 3000;
|
int min = (pr.next() % 3000) - 500;
|
||||||
int max = pr.next() % 3000;
|
int max = (pr.next() % 3000) - 500;
|
||||||
if (min > max) {
|
if (min > max)
|
||||||
int temp = min;
|
SWAP(int, min, max);
|
||||||
min = max;
|
|
||||||
max = temp;
|
|
||||||
}
|
|
||||||
|
|
||||||
int randval = pr.range(min, max);
|
int randval = pr.range(min, max);
|
||||||
UASSERT(randval >= min);
|
UASSERT(randval >= min);
|
||||||
|
@ -105,13 +102,10 @@ void TestRandom::testPcgRandomRange()
|
||||||
EXCEPTION_CHECK(PrngException, pr.range(5, 1));
|
EXCEPTION_CHECK(PrngException, pr.range(5, 1));
|
||||||
|
|
||||||
for (u32 i = 0; i != 32768; i++) {
|
for (u32 i = 0; i != 32768; i++) {
|
||||||
int min = pr.next() % 3000;
|
int min = (pr.next() % 3000) - 500;
|
||||||
int max = pr.next() % 3000;
|
int max = (pr.next() % 3000) - 500;
|
||||||
if (min > max) {
|
if (min > max)
|
||||||
int temp = min;
|
SWAP(int, min, max);
|
||||||
min = max;
|
|
||||||
max = temp;
|
|
||||||
}
|
|
||||||
|
|
||||||
int randval = pr.range(min, max);
|
int randval = pr.range(min, max);
|
||||||
UASSERT(randval >= min);
|
UASSERT(randval >= min);
|
||||||
|
@ -146,7 +140,7 @@ void TestRandom::testPcgRandomNormalDist()
|
||||||
s32 bins[max - min + 1];
|
s32 bins[max - min + 1];
|
||||||
memset(bins, 0, sizeof(bins));
|
memset(bins, 0, sizeof(bins));
|
||||||
|
|
||||||
PcgRandom r(486456179 + (int)time(NULL));
|
PcgRandom r(486179 + (int)time(NULL));
|
||||||
|
|
||||||
for (u32 i = 0; i != num_samples; i++) {
|
for (u32 i = 0; i != num_samples; i++) {
|
||||||
s32 randval = r.randNormalDist(min, max, num_trials);
|
s32 randval = r.randNormalDist(min, max, num_trials);
|
||||||
|
@ -173,8 +167,8 @@ void TestRandom::testPcgRandomNormalDist()
|
||||||
//// Simple normality test using the 68-95-99.7% rule
|
//// Simple normality test using the 68-95-99.7% rule
|
||||||
for (u32 i = 0; i != ARRLEN(prediction_intervals); i++) {
|
for (u32 i = 0; i != ARRLEN(prediction_intervals); i++) {
|
||||||
float deviations = i / 2.f + 1.f;
|
float deviations = i / 2.f + 1.f;
|
||||||
int lbound = round(mean - deviations * stddev);
|
int lbound = myround(mean - deviations * stddev);
|
||||||
int ubound = round(mean + deviations * stddev);
|
int ubound = myround(mean + deviations * stddev);
|
||||||
UASSERT(lbound >= min);
|
UASSERT(lbound >= min);
|
||||||
UASSERT(ubound <= max);
|
UASSERT(ubound <= max);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue