#include <stdio.h>
#include <string>
#include "prng.h"
int main(int argc, char *argv[])
{
std::string str = "testing";
PRNG test_rand;
PRNG test_seed (*(unsigned int *) "testing");
int i, results[11] = {0};
printf ("Testing distribution with 10,000 numbers between 1 and 10:\n");
for (i = 0; i < 10000; i++)
results[test_rand (10)]++;
for (i = 1; i < 11; i++)
printf (" %2d: %3d\n", i, results[i]);
printf ("\nGenerating 20 random numbers between 1 and 100:\n");
for (i = 1; i < 21; i++)
printf ("%3d%c", test_rand (), i % 10 == 0 ? '\n' : ' ');
printf ("\nGenerating 20 random numbers between 1 and 25:\n");
for (i = 1; i < 21; i++)
printf ("%3d%c", test_rand (25), i % 10 == 0 ? '\n' : ' ');
printf ("\nGenerating 20 random numbers between 20 and 50:\n");
for (i = 1; i < 21; i++)
printf ("%3d%c", test_rand (20, 50), i % 10 == 0 ? '\n' : ' ');
printf ("\nGenerating 20 4d5 dicerolls with no rerolls:\n");
for (i = 1; i < 21; i++)
printf ("%3d%c", test_rand (4, 5, 0), i % 10 == 0 ? '\n' : ' ');
printf ("\nGenerating 20 4d5 dicerolls with 3 rerolls:\n");
for (i = 1; i < 21; i++)
printf ("%3d%c", test_rand (4, 5, 3), i % 10 == 0 ? '\n' : ' ');
printf ("\nGenerating 20 random numbers between 1 and 32,000:\n");
for (i = 1; i < 21; i++)
printf ("%5d%c", test_rand (32000), i % 10 == 0 ? '\n' : ' ');
printf ("\nGenerating 20 random numbers between 1 and 100 with \"testing\" as a seed:\n");
for (i = 1; i < 21; i++)
printf ("%3d%c", test_seed (), i % 10 == 0 ? '\n' : ' ');
test_seed.set_seed (*(unsigned int *) str.c_str());
printf ("\nGenerating 20 more random numbers between 1 and 100 with \"testing\" as a seed:\n");
for (i = 1; i < 21; i++)
printf ("%3d%c", test_seed (), i % 10 == 0 ? '\n' : ' ');
return 0;
}