diff --git a/core/random.cpp b/core/random.cpp index 59a60a27..5736f220 100644 --- a/core/random.cpp +++ b/core/random.cpp @@ -1,7 +1,7 @@ /** * Copyright 2014 (c) Anna Schumaker */ -#ifdef CONFIG_TEST +#ifdef CONFIG_TESTING #include @@ -18,4 +18,4 @@ unsigned int _pick_random() return ++_random_value; } -#endif /* CONFIG_TEST */ +#endif /* CONFIG_TESTING */ diff --git a/include/core/random.h b/include/core/random.h index 177b0e53..3dbe340e 100644 --- a/include/core/random.h +++ b/include/core/random.h @@ -4,18 +4,18 @@ #ifndef OCARINA_CORE_RANDOM_H #define OCARINA_CORE_RANDOM_H -#ifdef CONFIG_TEST +#ifdef CONFIG_TESTING void _seed_random(unsigned int); unsigned int _pick_random(); -#else /* CONFIG_TEST */ +#else /* CONFIG_TESTING */ #include static inline void _seed_random(unsigned int n) { srand(time(NULL) + n); } static inline unsigned int _pick_random() { return rand(); } -#endif /* CONFIG_TEST */ +#endif /* CONFIG_TESTING */ /** diff --git a/tests/core/Sconscript b/tests/core/Sconscript index 0a83f2f9..0e8dd92f 100644 --- a/tests/core/Sconscript +++ b/tests/core/Sconscript @@ -15,6 +15,7 @@ Export("core_objs") res = [ CoreTest("version", "version.c") ] res += [ CoreTest("string", "string.cpp") ] +res += [ CoreTest("random", "random.cpp") ] res += [ CoreTest("file", "file.cpp") ] res += [ CoreTest("database", "database.cpp") ] res += [ CoreTest("index", "index.cpp") ] @@ -25,8 +26,6 @@ res += SConscript("tags/Sconscript") Return("res") -# -#test( "random" ) # #objs += [ get_test_obj("tags/tags", "core") ] #test( "queue" ) diff --git a/tests/core/random.cpp b/tests/core/random.cpp index 216b7d37..b624f0f0 100644 --- a/tests/core/random.cpp +++ b/tests/core/random.cpp @@ -3,33 +3,43 @@ */ #include #include -#include +#include "test.h" -unsigned int SEED = 0; - -static void do_test_rng() -{ - random_seed(SEED); - - for (unsigned int i = 0; i <= 10; i++) { - if (i <= SEED) - test_equal(random(SEED, i), SEED); - else - test_equal(random(SEED, i), SEED + (i % (i - SEED))); - } -} static void test_rng(unsigned int seed) { - std::string seed_str = " (seed = " + string :: utos(seed) + ")"; - SEED = seed; + random_seed(seed); - test :: run("Random Number Generator Test" + seed_str, do_test_rng); + for (unsigned int i = 0; i <= 10; i++) { + if (i <= seed) + test_equal(random(seed, i), seed); + else + test_equal(random(seed, i), seed + (i % (i - seed))); + } } -int main(int argc, char **argv) -{ - for (unsigned int i = 0; i < 10; i++) - test_rng(i); - return 0; -} + +static void test_rng_0() { test_rng(0); } +static void test_rng_1() { test_rng(1); } +static void test_rng_2() { test_rng(2); } +static void test_rng_3() { test_rng(3); } +static void test_rng_4() { test_rng(4); } +static void test_rng_5() { test_rng(5); } +static void test_rng_6() { test_rng(6); } +static void test_rng_7() { test_rng(7); } +static void test_rng_8() { test_rng(8); } +static void test_rng_9() { test_rng(9); } + + +DECLARE_UNIT_TESTS( + UNIT_TEST("Random Number Generator (seed = 0)", test_rng_0), + UNIT_TEST("Random Number Generator (seed = 1)", test_rng_1), + UNIT_TEST("Random Number Generator (seed = 2)", test_rng_2), + UNIT_TEST("Random Number Generator (seed = 3)", test_rng_3), + UNIT_TEST("Random Number Generator (seed = 4)", test_rng_4), + UNIT_TEST("Random Number Generator (seed = 5)", test_rng_5), + UNIT_TEST("Random Number Generator (seed = 6)", test_rng_6), + UNIT_TEST("Random Number Generator (seed = 7)", test_rng_7), + UNIT_TEST("Random Number Generator (seed = 8)", test_rng_8), + UNIT_TEST("Random Number Generator (seed = 9)", test_rng_9), +);