aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkwolekr <kwolekr@minetest.net>2015-04-29 13:20:01 -0400
committerkwolekr <kwolekr@minetest.net>2015-04-29 13:20:01 -0400
commit37ca3212eee6d70a54493168014f9254cc6e8f37 (patch)
treec2589b164fb280efa27832c4d3cfc8655c2b2ea7
parentb6475f54487690e23cf9541a68f98649edb8f0e0 (diff)
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
-rw-r--r--build/android/jni/Android.mk1
-rw-r--r--src/mg_decoration.cpp3
-rw-r--r--src/noise.cpp2
-rw-r--r--src/unittest/test_random.cpp28
4 files changed, 14 insertions, 20 deletions
diff --git a/build/android/jni/Android.mk b/build/android/jni/Android.mk
index 000a0bfe5..c00d054b2 100644
--- a/build/android/jni/Android.mk
+++ b/build/android/jni/Android.mk
@@ -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 \
diff --git a/src/mg_decoration.cpp b/src/mg_decoration.cpp
index 84f60b029..460db1ede 100644
--- a/src/mg_decoration.cpp
+++ b/src/mg_decoration.cpp
@@ -310,8 +310,7 @@ int DecoSimple::getHeight()
///////////////////////////////////////////////////////////////////////////////
-DecoSchematic::DecoSchematic() :
- Decoration::Decoration()
+DecoSchematic::DecoSchematic()
{
schematic = NULL;
}
diff --git a/src/noise.cpp b/src/noise.cpp
index 614234aa4..7a23819c8 100644
--- a/src/noise.cpp
+++ b/src/noise.cpp
@@ -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);
}
///////////////////////////////////////////////////////////////////////////////
diff --git a/src/unittest/test_random.cpp b/src/unittest/test_random.cpp
index 4f50bf9b8..81cf9ae28 100644
--- a/src/unittest/test_random.cpp
+++ b/src/unittest/test_random.cpp
@@ -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);