00001 /* -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- 00002 00003 t-eoRandom.cpp 00004 Test program for random generator 00005 00006 (c) GeNeura Team, 1999 00007 00008 This program is free software; you can redistribute it and/or modify 00009 it under the terms of the GNU General Public License as published by 00010 the Free Software Foundation; either version 2 of the License, or 00011 (at your option) any later version. 00012 00013 This program is distributed in the hope that it will be useful, 00014 but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 GNU General Public License for more details. 00017 00018 You should have received a copy of the GNU General Public License 00019 along with this program; if not, write to the Free Software 00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00021 00022 Contact: todos@geneura.ugr.es, http://geneura.ugr.es 00023 00024 */ 00025 00030 //----------------------------------------------------------------------------- 00031 00032 #include <iostream> // cout 00033 #include <fstream> // ostrstream, istrstream 00034 #include <utils/eoRndGenerators.h> // eoBin 00035 //#include <eoNormal.h> 00036 //#include <eoNegExp.h> 00037 00038 //----------------------------------------------------------------------------- 00039 00040 int main() { 00041 eoUniformGenerator<float> u1(-2.5,3.5); 00042 eoUniformGenerator<double> u2(0.003, 0.05 ); 00043 eoUniformGenerator<unsigned long> u3( 10000U, 10000000U); 00044 00045 try 00046 { // throws an error 00047 eoUniformGenerator<unsigned long> utest( 10000000U, 10000U); 00048 throw; // if this succeeds something is wrong, make sure that that is noticed 00049 } 00050 catch (std::logic_error& e) 00051 { 00052 std::cout << e.what() << std::endl; 00053 } 00054 00055 std::ofstream os("t-eoRandom.out"); 00056 00057 for ( unsigned i = 0; i < 100; i ++) 00058 { 00059 os << u1() << "\t" << u2() << "\t" << u3() << std::endl; 00060 } 00061 00062 return 0; // to avoid VC++ complaints 00063 00064 } 00065 00066 //-----------------------------------------------------------------------------