* Makefile.am: Add t-eoRNG
* t-eoRNG.cpp: Start test for random number generator.
This commit is contained in:
parent
dbdeaf3353
commit
651a55a51b
3 changed files with 62 additions and 1 deletions
53
eo/test/t-eoRNG.cpp
Normal file
53
eo/test/t-eoRNG.cpp
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// t-rng.cpp
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// This file really needs to be implementes usign some stringent tests, for now
|
||||
// we simply check that the impementation of some methods does generally work...
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include <iostream>
|
||||
#include <eo>
|
||||
#include <utils/eoRNG.h>
|
||||
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
const size_t num(10000);
|
||||
double mean(100.);
|
||||
double sigma(5.);
|
||||
double sum(0.);
|
||||
for(size_t i=0; i<num; ++i)
|
||||
sum += abs(rng.normal(sigma));
|
||||
sum /= double(num);
|
||||
if(sum > sigma / 0.68) {
|
||||
cerr << "Normal distribution seems out of bounds; "
|
||||
<< "rerun to make sure it wasn't a statistical outlier" << endl;
|
||||
return -1;
|
||||
}
|
||||
sum = 0.;
|
||||
for(size_t i=0; i<num; ++i)
|
||||
sum += abs(rng.normal(mean, sigma) - mean);
|
||||
sum /= double(num);
|
||||
if(sum > sigma / 0.68) {
|
||||
cerr << "Normal distribution seems out of bounds; "
|
||||
<< "rerun to make sure it wasn't a statistical outlier" << endl;
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// Local Variables:
|
||||
// coding: iso-8859-1
|
||||
// mode: C++
|
||||
// c-file-offsets: ((c . 0))
|
||||
// c-file-style: "Stroustrup"
|
||||
// fill-column: 80
|
||||
// End:
|
||||
Reference in a new issue