5c02fe92d85d7e43c413a33eae8a165c6f2fdee7
[scilab.git] / scilab / modules / randlib / tests / unit_tests / grand_clcg4.dia.ref
1 //<-- CLI SHELL MODE -->
2 // =============================================================================
3 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4 // Copyright (C) ????-2008 - INRIA
5 //
6 //  This file is distributed under the same license as the Scilab package.
7 // =============================================================================
8 grand('setgen','clcg4');
9 // Low level test for grand
10 //**********************************************************************
11 //     A test program for the bottom level routines
12 //     Scilab implementation of tstbot.f
13 //**********************************************************************
14 NB       = 10
15  NB  = 
16     10.
17 NR       = 1000
18  NR  = 
19     1000.
20 answer   = ones(NB,NR);
21 genlst   = [1,5,10,20,32]
22  genlst  = 
23     1.    5.    10.    20.    32.
24 nbad     = 0;
25 str      = ['For five virtual generators of the 101\n' ..
26            +' This test generates '+string(NB)+' numbers then resets the block\n'..
27            +'      and does it again\n' ..
28            +' Any disagreements are reported -- there should be none'];
29 mprintf(str)
30 For five virtual generators of the 101
31  This test generates 10 numbers then resets the block
32       and does it again
33  Any disagreements are reported -- there should be none
34 //
35 //     Set up Generators
36 //
37 grand('setall',12345,54321,6789,9876);
38 //
39 //     For a selected set of generators
40 //
41 for ixgen = 1:5
42     igen = genlst(ixgen)
43     grand('setcgn',igen);
44     mprintf(' Testing generator '+string(igen)+'\n');
45     //
46     //     Use NB blocks
47     //
48     grand('initgn',-1);
49     SD=grand('getsd');iseed1=SD(1);iseed2=SD(2);
50     for iblock = 1:NB
51         //     Generate NR numbers
52         answer(iblock,1:NR)= grand(1,NR,'lgi');
53         grand('initgn',1);
54     end
55     grand('initgn',-1);
56     //
57     //     Do it again and compare answers
58     //
59     SD=grand('getsd');iseed1=SD(1);iseed2=SD(2);
60     //
61     //     Use NB blocks
62     //
63     for iblock = 1:NB
64         //     Generate NR numbers
65         itmp = grand(1,NR,'lgi');
66         if itmp<>answer(iblock,:) then
67             str=[' Disagreement on regeneration of numbers' ..
68                 +' Block '+string(iblock)+' N within Block '];
69             mprintf(str);
70         end
71         if itmp<>answer(iblock,:) then bugmes();quit;end
72         grand('initgn',1);
73     end
74     mprintf(' Finished testing generator '+string(igen)+'\n');
75     mprintf(' Test completed successfully\n');
76         
77 end
78  igen  = 
79     1.
80  Testing generator 1
81  Finished testing generator 1
82  Test completed successfully
83  igen  = 
84     5.
85  Testing generator 5
86  Finished testing generator 5
87  Test completed successfully
88  igen  = 
89     10.
90  Testing generator 10
91  Finished testing generator 10
92  Test completed successfully
93  igen  = 
94     20.
95  Testing generator 20
96  Finished testing generator 20
97  Test completed successfully
98  igen  = 
99     32.
100  Testing generator 32
101  Finished testing generator 32
102  Test completed successfully