* 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
|
|
@ -1,3 +1,9 @@
|
|||
2006-12-04 Jochen Küpper <jochen@fhi-berlin.mpg.de>
|
||||
|
||||
* Makefile.am: Add t-eoRNG
|
||||
|
||||
* t-eoRNG.cpp: Start test for random number generator.
|
||||
|
||||
2006-12-02 Jochen Küpper <jochen@fhi-berlin.mpg.de>
|
||||
|
||||
* t-MGE1bit.cpp: Change float to double.
|
||||
|
|
|
|||
|
|
@ -38,7 +38,8 @@ check_PROGRAMS = t-eoParetoFitness \
|
|||
t-eoFitnessAssembledEA \
|
||||
t-eoRoulette \
|
||||
t-eoSharing \
|
||||
t-eoCMAES
|
||||
t-eoCMAES \
|
||||
t-eoRNG
|
||||
|
||||
|
||||
TESTS = $(check_PROGRAMS) \
|
||||
|
|
@ -91,3 +92,4 @@ t_eoFitnessAssembled_SOURCES = t-eoFitnessAssembled.cpp
|
|||
t_eoRoulette_SOURCES = t-eoRoulette.cpp
|
||||
t_eoSharing_SOURCES = t-eoSharing.cpp
|
||||
t_eoCMAES_SOURCES = t-eoCMAES.cpp
|
||||
t_eoRNG_SOURCES = t-eoRNG.cpp
|
||||
|
|
|
|||
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