#include "random-singleton.h"

#include <iostream>
using namespace std;

int main(int, char* [])
{
  Random::Randomize(1234);
  int    i  = Random::Uniform<int>(1, 100);   //int dans [0;100], loi uniforme
  float  f  = Random::Uniform<int>(-50, 50);  //float dans ]0;100[, loi uniforme
  double d1 = Random::Uniform();              //double dans ]0;1[, loi uniforme
  double d2 = Random::Uniform<double>(2, 10); //double dans ]2;10[, loi uniforme
  double g  = Random::Gaussian(1.23, 4.56);   //double de N(1.23, 4.56)
  double e  = Random::Exponential(1.2345);    //double de Exp(1.2345)

  cout << "Resultat attendu : i  = 24"        << endl;
  cout << "Resultat observe : i  = "          << i << endl;
  cout << "Resultat attendu : f  = 28"        << endl;
  cout << "Resultat observe : f  = "          << f << endl;
  cout << "Resultat attendu : d1 = 0.379989"  << endl;
  cout << "Resultat observe : d1 = "          << d1 << endl;
  cout << "Resultat attendu : d2 = 8.82691"   << endl;
  cout << "Resultat observe : d2 = "          << d2 << endl;
  cout << "Resultat attendu : g  = -2.98775"  << endl;
  cout << "Resultat observe : g  = "          << g << endl;
  cout << "Resultat attendu : e  = 0.115537"  << endl;
  cout << "Resultat observe : e  = "          << e << endl;

  return 0;
}
