nwnss: add seedRandQuad runtime wrapper
This commit is contained in:
@@ -64,6 +64,11 @@ void srandQuad(QUAD seed)
|
||||
haveRandState = 1;
|
||||
}
|
||||
|
||||
void seedRandQuad(SQUAD seed)
|
||||
{
|
||||
srandQuad((QUAD)seed);
|
||||
}
|
||||
|
||||
SQUAD randQuad(void)
|
||||
{
|
||||
nwnssRandEnsureSeeded();
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
#include <library/omni.h>
|
||||
#include <library/rand.h>
|
||||
#include <library/xStdlib.h>
|
||||
|
||||
@@ -44,6 +45,31 @@ static int check_repeatable_quad_seed(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int check_seed_rand_quad_wrapper(void)
|
||||
{
|
||||
SQUAD seq_a[3];
|
||||
SQUAD seq_b[3];
|
||||
int i;
|
||||
|
||||
srandQuad(0x123456789abcdef0LL);
|
||||
for (i = 0; i < 3; ++i)
|
||||
seq_a[i] = randQuad();
|
||||
|
||||
seedRandQuad(0x123456789abcdef0LL);
|
||||
for (i = 0; i < 3; ++i)
|
||||
seq_b[i] = randQuad();
|
||||
|
||||
for (i = 0; i < 3; ++i)
|
||||
CHECK(seq_a[i] == seq_b[i]);
|
||||
|
||||
seedRandQuad(-1LL);
|
||||
seq_a[0] = randQuad();
|
||||
seedRandQuad(-1LL);
|
||||
CHECK(randQuad() == seq_a[0]);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int check_repeatable_rnd_quad_seed(void)
|
||||
{
|
||||
SQUAD seq_a[3];
|
||||
@@ -170,6 +196,7 @@ static int check_stdlib_rand_wrappers(void)
|
||||
int main(void)
|
||||
{
|
||||
CHECK(check_repeatable_quad_seed() == 0);
|
||||
CHECK(check_seed_rand_quad_wrapper() == 0);
|
||||
CHECK(check_repeatable_rnd_quad_seed() == 0);
|
||||
CHECK(check_repeatable_long_seed() == 0);
|
||||
CHECK(check_chi_square() == 0);
|
||||
|
||||
Reference in New Issue
Block a user