diff options
author | Alexander Harkness <me@bearbin.net> | 2016-08-03 09:35:42 +0200 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2016-08-03 09:35:42 +0200 |
commit | 58b29adc88343fe0821c008ba0f0bb1e8018574d (patch) | |
tree | 50d314d6558a9f32cbbffd4b67c99fc3405569ee /tests/FastRandom/FastRandomTest.cpp | |
parent | Simplified cChunkMap chunk storage (#2565) (diff) | |
download | cuberite-58b29adc88343fe0821c008ba0f0bb1e8018574d.tar cuberite-58b29adc88343fe0821c008ba0f0bb1e8018574d.tar.gz cuberite-58b29adc88343fe0821c008ba0f0bb1e8018574d.tar.bz2 cuberite-58b29adc88343fe0821c008ba0f0bb1e8018574d.tar.lz cuberite-58b29adc88343fe0821c008ba0f0bb1e8018574d.tar.xz cuberite-58b29adc88343fe0821c008ba0f0bb1e8018574d.tar.zst cuberite-58b29adc88343fe0821c008ba0f0bb1e8018574d.zip |
Diffstat (limited to 'tests/FastRandom/FastRandomTest.cpp')
-rw-r--r-- | tests/FastRandom/FastRandomTest.cpp | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/tests/FastRandom/FastRandomTest.cpp b/tests/FastRandom/FastRandomTest.cpp new file mode 100644 index 000000000..e7729382d --- /dev/null +++ b/tests/FastRandom/FastRandomTest.cpp @@ -0,0 +1,71 @@ + +// FastRandomTest.cpp + +// Tests the randomness of cFastRandom + +#include "Globals.h" +#include "FastRandom.h" + + +static void TestInts(void) +{ + cFastRandom rnd; + int sum = 0; + const int BUCKETS = 8; + int Counts[BUCKETS]; + memset(Counts, 0, sizeof(Counts)); + const int ITER = 10000; + for (int i = 0; i < ITER; i++) + { + int v = rnd.NextInt(1000); + assert_test(v >= 0); + assert_test(v < 1000); + Counts[v % BUCKETS]++; + sum += v; + } + double avg = static_cast<double>(sum) / ITER; + printf("avg: %f\n", avg); + for (int i = 0; i < BUCKETS; i++) + { + printf(" bucket %d: %d\n", i, Counts[i]); + } +} + + +static void TestFloats(void) +{ + cFastRandom rnd; + float sum = 0; + const int BUCKETS = 8; + int Counts[BUCKETS]; + memset(Counts, 0, sizeof(Counts)); + const int ITER = 10000; + for (int i = 0; i < ITER; i++) + { + float v = rnd.NextFloat(1000); + assert_test(v >= 0); + assert_test(v <= 1000); + Counts[static_cast<int>(v) % BUCKETS]++; + sum += v; + } + sum = sum / ITER; + printf("avg: %f\n", sum); + for (int i = 0; i < BUCKETS; i++) + { + printf(" bucket %d: %d\n", i, Counts[i]); + } +} + + +int main(void) +{ + LOGD("FastRandom Test started"); + + LOGD("Testing ints"); + TestInts(); + + LOGD("Testing floats"); + TestFloats(); + + LOG("FastRandom test finished"); +} |