tests/core: Update random test to the new framework

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
Anna Schumaker 2015-08-27 13:17:30 -04:00
parent 9882727c81
commit cfca7fccb0
4 changed files with 39 additions and 30 deletions

View File

@ -1,7 +1,7 @@
/**
* Copyright 2014 (c) Anna Schumaker
*/
#ifdef CONFIG_TEST
#ifdef CONFIG_TESTING
#include <core/random.h>
@ -18,4 +18,4 @@ unsigned int _pick_random()
return ++_random_value;
}
#endif /* CONFIG_TEST */
#endif /* CONFIG_TESTING */

View File

@ -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 <stdlib.h>
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 */
/**

View File

@ -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" )

View File

@ -3,33 +3,43 @@
*/
#include <core/random.h>
#include <core/string.h>
#include <tests/test.h>
#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),
);