summaryrefslogtreecommitdiff
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)
downloadminetest-37ca3212eee6d70a54493168014f9254cc6e8f37.tar.gz
minetest-37ca3212eee6d70a54493168014f9254cc6e8f37.tar.bz2
minetest-37ca3212eee6d70a54493168014f9254cc6e8f37.zip
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);