Skip to content
Permalink
Browse files

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
  • Loading branch information...
kwolekr committed Apr 29, 2015
1 parent b6475f5 commit 37ca3212eee6d70a54493168014f9254cc6e8f37
Showing with 14 additions and 20 deletions.
  1. +1 −0 build/android/jni/Android.mk
  2. +1 −2 src/mg_decoration.cpp
  3. +1 −1 src/noise.cpp
  4. +11 −17 src/unittest/test_random.cpp
@@ -221,6 +221,7 @@ LOCAL_SRC_FILES := \
jni/src/unittest/test_nodedef.cpp \
jni/src/unittest/test_noise.cpp \
jni/src/unittest/test_profiler.cpp \
jni/src/unittest/test_random.cpp \
jni/src/unittest/test_serialization.cpp \
jni/src/unittest/test_settings.cpp \
jni/src/unittest/test_socket.cpp \
@@ -310,8 +310,7 @@ int DecoSimple::getHeight()
///////////////////////////////////////////////////////////////////////////////


DecoSchematic::DecoSchematic() :
Decoration::Decoration()
DecoSchematic::DecoSchematic()
{
schematic = NULL;
}
@@ -148,7 +148,7 @@ s32 PcgRandom::randNormalDist(s32 min, s32 max, int num_trials)
s32 accum = 0;
for (int i = 0; i != num_trials; i++)
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));

for (u32 i = 0; i != 32768; i++) {
int min = pr.next() % 3000;
int max = pr.next() % 3000;
if (min > max) {
int temp = min;
min = max;
max = temp;
}
int min = (pr.next() % 3000) - 500;
int max = (pr.next() % 3000) - 500;
if (min > max)
SWAP(int, min, max);

int randval = pr.range(min, max);
UASSERT(randval >= min);
@@ -105,13 +102,10 @@ void TestRandom::testPcgRandomRange()
EXCEPTION_CHECK(PrngException, pr.range(5, 1));

for (u32 i = 0; i != 32768; i++) {
int min = pr.next() % 3000;
int max = pr.next() % 3000;
if (min > max) {
int temp = min;
min = max;
max = temp;
}
int min = (pr.next() % 3000) - 500;
int max = (pr.next() % 3000) - 500;
if (min > max)
SWAP(int, min, max);

int randval = pr.range(min, max);
UASSERT(randval >= min);
@@ -146,7 +140,7 @@ void TestRandom::testPcgRandomNormalDist()
s32 bins[max - min + 1];
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++) {
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
for (u32 i = 0; i != ARRLEN(prediction_intervals); i++) {
float deviations = i / 2.f + 1.f;
int lbound = round(mean - deviations * stddev);
int ubound = round(mean + deviations * stddev);
int lbound = myround(mean - deviations * stddev);
int ubound = myround(mean + deviations * stddev);
UASSERT(lbound >= min);
UASSERT(ubound <= max);

0 comments on commit 37ca321

Please sign in to comment.
You can’t perform that action at this time.