committed by
Mattes D
parent
38368f361d
commit
58b29adc88
@@ -37,74 +37,6 @@ static unsigned int GetRandomSeed()
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// cFastRandom:
|
||||
|
||||
#if 0 && defined(_DEBUG)
|
||||
// Self-test
|
||||
// Both ints and floats are quick-tested to see if the random is calculated correctly, checking the range in ASSERTs,
|
||||
// and if it performs well in terms of distribution (checked by avg, expected to be in the range midpoint
|
||||
class cFastRandomTest
|
||||
{
|
||||
public:
|
||||
cFastRandomTest(void)
|
||||
{
|
||||
TestInts();
|
||||
TestFloats();
|
||||
}
|
||||
|
||||
|
||||
void TestInts(void)
|
||||
{
|
||||
printf("Testing ints...\n");
|
||||
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(v >= 0);
|
||||
ASSERT(v < 1000);
|
||||
Counts[v % BUCKETS]++;
|
||||
sum += v;
|
||||
}
|
||||
double avg = (double)sum / ITER;
|
||||
printf("avg: %f\n", avg);
|
||||
for (int i = 0; i < BUCKETS; i++)
|
||||
{
|
||||
printf(" bucket %d: %d\n", i, Counts[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void TestFloats(void)
|
||||
{
|
||||
printf("Testing floats...\n");
|
||||
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(v >= 0);
|
||||
ASSERT(v <= 1000);
|
||||
Counts[((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]);
|
||||
}
|
||||
}
|
||||
} g_Test;
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -187,7 +119,3 @@ double MTRand::rand(double a_Range)
|
||||
std::uniform_real_distribution<> distribution(0, a_Range);
|
||||
return distribution(m_MersenneRand);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user