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 unittests
master
kwolekr 2015-04-29 13:20:01 -04:00
parent b6475f5448
commit 37ca3212ee
4 changed files with 14 additions and 20 deletions

View File

@ -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 \

View File

@ -310,8 +310,7 @@ int DecoSimple::getHeight()
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
DecoSchematic::DecoSchematic() : DecoSchematic::DecoSchematic()
Decoration::Decoration()
{ {
schematic = NULL; schematic = NULL;
} }

View File

@ -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);
} }
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////

View File

@ -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);