1 /* -*- mode: C++; indent-tabs-mode: nil; -*-
3 * This file is a part of LEMON, a generic C++ optimization library.
5 * Copyright (C) 2003-2009
6 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
7 * (Egervary Research Group on Combinatorial Optimization, EGRES).
9 * Permission to use, modify and distribute this software is granted
10 * provided that this copyright notice appears in all copies. For
11 * precise terms see the accompanying LICENSE file.
13 * This software is provided "AS IS" with no warranty of any kind,
14 * express or implied, and with no claim as to its suitability for any
19 #include <lemon/random.h>
20 #include "test_tools.h"
22 int seed_array[] = {1, 2};
25 2732, 43567, 42613, 52416, 45891, 21243, 30403, 32103,
26 62501, 33003, 12172, 5192, 32511, 50057, 43723, 7813,
27 23720, 35343, 6637, 30280, 44566, 31019, 18898, 33867,
28 5994, 1688, 11513, 59011, 48056, 25544, 39168, 25365,
29 17530, 8366, 27063, 49861, 55169, 63848, 11863, 49608
32 56382, 63883, 59577, 64750, 9644, 59886, 57647, 18152,
33 28520, 64078, 17818, 49294, 26424, 26697, 53684, 19209,
34 35404, 12121, 12837, 11827, 32156, 58333, 62553, 7907,
35 64427, 39399, 21971, 48789, 46981, 15716, 53335, 65256,
36 12999, 15308, 10906, 42162, 47587, 43006, 53921, 18716
40 for(int i=0;i<5;i++) {
41 lemon::Random32 r32(i);
42 lemon::Random64 r64(i);
43 for(int j=0;j<8;j++) {
44 check(r32[65536]==rnd_seq32[i*8+j], "Wrong random sequence");
45 check(r64[65536]==rnd_seq64[i*8+j], "Wrong random sequence");
53 double a=lemon::rnd();
54 check(a<1.0&&a>0.0,"This should be in [0,1)");
56 a=lemon::rnd.gamma(3.45,0);
57 a=lemon::rnd.gamma(4);
58 //Does gamma work with integer k?
59 a=lemon::rnd.gamma(4.0,0);
60 a=lemon::rnd.poisson(.5);
63 lemon::rnd.seed(seed_array, seed_array +
64 (sizeof(seed_array) / sizeof(seed_array[0])));