1--TEST--
2gmp_random_seed() basic tests
3--SKIPIF--
4<?php if (!extension_loaded("gmp")) print "skip"; ?>
5<?php if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only"); ?>
6--FILE--
7<?php
8
9// zero int
10var_dump(gmp_random_seed(0));
11
12var_dump(gmp_strval(gmp_random()));
13var_dump(gmp_strval(gmp_random(1)));
14var_dump(gmp_strval(gmp_random(10)));
15
16var_dump(gmp_strval(gmp_random_bits(10)));
17var_dump(gmp_strval(gmp_random_bits(100)));
18var_dump(gmp_strval(gmp_random_bits(1000)));
19
20var_dump(gmp_strval(gmp_random_range(0, 10000)));
21var_dump(gmp_strval(gmp_random_range(-10000, 10000)));
22var_dump(gmp_strval(gmp_random_range(-10000, 0)));
23
24
25// zero gmp
26var_dump(gmp_random_seed(gmp_init(0)));
27
28var_dump(gmp_strval(gmp_random()));
29var_dump(gmp_strval(gmp_random(1)));
30var_dump(gmp_strval(gmp_random(10)));
31
32var_dump(gmp_strval(gmp_random_bits(10)));
33var_dump(gmp_strval(gmp_random_bits(100)));
34var_dump(gmp_strval(gmp_random_bits(1000)));
35
36var_dump(gmp_strval(gmp_random_range(0, 10000)));
37var_dump(gmp_strval(gmp_random_range(-10000, 10000)));
38var_dump(gmp_strval(gmp_random_range(-10000, 0)));
39
40
41// negative int
42var_dump(gmp_random_seed(-100));
43
44var_dump(gmp_strval(gmp_random()));
45var_dump(gmp_strval(gmp_random(1)));
46var_dump(gmp_strval(gmp_random(10)));
47
48var_dump(gmp_strval(gmp_random_bits(10)));
49var_dump(gmp_strval(gmp_random_bits(100)));
50var_dump(gmp_strval(gmp_random_bits(1000)));
51
52var_dump(gmp_strval(gmp_random_range(0, 10000)));
53var_dump(gmp_strval(gmp_random_range(-10000, 10000)));
54var_dump(gmp_strval(gmp_random_range(-10000, 0)));
55
56
57// negative gmp
58var_dump(gmp_random_seed(gmp_init(-100)));
59
60var_dump(gmp_strval(gmp_random()));
61var_dump(gmp_strval(gmp_random(1)));
62var_dump(gmp_strval(gmp_random(10)));
63
64var_dump(gmp_strval(gmp_random_bits(10)));
65var_dump(gmp_strval(gmp_random_bits(100)));
66var_dump(gmp_strval(gmp_random_bits(1000)));
67
68var_dump(gmp_strval(gmp_random_range(0, 10000)));
69var_dump(gmp_strval(gmp_random_range(-10000, 10000)));
70var_dump(gmp_strval(gmp_random_range(-10000, 0)));
71
72
73// positive int
74var_dump(gmp_random_seed(100));
75
76var_dump(gmp_strval(gmp_random()));
77var_dump(gmp_strval(gmp_random(1)));
78var_dump(gmp_strval(gmp_random(10)));
79
80var_dump(gmp_strval(gmp_random_bits(10)));
81var_dump(gmp_strval(gmp_random_bits(100)));
82var_dump(gmp_strval(gmp_random_bits(1000)));
83
84var_dump(gmp_strval(gmp_random_range(0, 10000)));
85var_dump(gmp_strval(gmp_random_range(-10000, 10000)));
86var_dump(gmp_strval(gmp_random_range(-10000, 0)));
87
88
89// positive gmp
90var_dump(gmp_random_seed(100));
91
92var_dump(gmp_strval(gmp_random()));
93var_dump(gmp_strval(gmp_random(1)));
94var_dump(gmp_strval(gmp_random(10)));
95
96var_dump(gmp_strval(gmp_random_bits(10)));
97var_dump(gmp_strval(gmp_random_bits(100)));
98var_dump(gmp_strval(gmp_random_bits(1000)));
99
100var_dump(gmp_strval(gmp_random_range(0, 10000)));
101var_dump(gmp_strval(gmp_random_range(-10000, 10000)));
102var_dump(gmp_strval(gmp_random_range(-10000, 0)));
103
104
105$seed = gmp_init(1);
106$seed <<= 512;
107
108// large negative gmp
109var_dump(gmp_random_seed($seed * -1));
110
111var_dump(gmp_strval(gmp_random()));
112var_dump(gmp_strval(gmp_random(1)));
113var_dump(gmp_strval(gmp_random(10)));
114
115var_dump(gmp_strval(gmp_random_bits(10)));
116var_dump(gmp_strval(gmp_random_bits(100)));
117var_dump(gmp_strval(gmp_random_bits(1000)));
118
119var_dump(gmp_strval(gmp_random_range(0, 10000)));
120var_dump(gmp_strval(gmp_random_range(-10000, 10000)));
121var_dump(gmp_strval(gmp_random_range(-10000, 0)));
122
123
124// large positive gmp
125var_dump(gmp_random_seed($seed));
126
127var_dump(gmp_strval(gmp_random()));
128var_dump(gmp_strval(gmp_random(1)));
129var_dump(gmp_strval(gmp_random(10)));
130
131var_dump(gmp_strval(gmp_random_bits(10)));
132var_dump(gmp_strval(gmp_random_bits(100)));
133var_dump(gmp_strval(gmp_random_bits(1000)));
134
135var_dump(gmp_strval(gmp_random_range(0, 10000)));
136var_dump(gmp_strval(gmp_random_range(-10000, 10000)));
137var_dump(gmp_strval(gmp_random_range(-10000, 0)));
138
139
140// standard non conversion error
141var_dump(gmp_random_seed('not a number'));
142
143
144echo "Done\n";
145?>
146--EXPECTF--
147NULL
148string(193) "2000022451473107283132031190545479155678097978829612864726689673263990484954900429188146529905019042225609517482723730948135765344007937183893986134210303199345433818579954244943136664096571499"
149string(10) "3792281639"
150string(97) "1281406676617847191505318987040099388645126071814252743902229506206669580396236451813261179688680"
151string(2) "86"
152string(30) "539590049119295715487546581833"
153string(301) "1421393257467327495225454368915273750356127352353055226245692071178379257048985726109650766437957017507708821700349355658110489309871463201057688894986035545794429493563972043777521547094922637182497036750765553664196591958728194711096442220858890056073974348364544481270013556644174056049511198143353"
154string(4) "8971"
155string(4) "7838"
156string(5) "-7823"
157NULL
158string(193) "2000022451473107283132031190545479155678097978829612864726689673263990484954900429188146529905019042225609517482723730948135765344007937183893986134210303199345433818579954244943136664096571499"
159string(10) "3792281639"
160string(97) "1281406676617847191505318987040099388645126071814252743902229506206669580396236451813261179688680"
161string(2) "86"
162string(30) "539590049119295715487546581833"
163string(301) "1421393257467327495225454368915273750356127352353055226245692071178379257048985726109650766437957017507708821700349355658110489309871463201057688894986035545794429493563972043777521547094922637182497036750765553664196591958728194711096442220858890056073974348364544481270013556644174056049511198143353"
164string(4) "8971"
165string(4) "7838"
166string(5) "-7823"
167NULL
168string(193) "2481908463276861025880840116973116041137167231715512003123396619946362384184452775649311777755189162364804428739438733886421190841599393284032499618736594054572838636962845446571583771860379424"
169string(9) "513032517"
170string(97) "1269389652350468424962405917839748437534426606829298977422985976022226588797299164880342257267822"
171string(3) "111"
172string(31) "1007352579363975542750518386428"
173string(301) "5972672173406546932378461222050826195392618168845902231231085819967980051373112173617569638344495916340820360974139193579303652817960325137050189614326029375858951250371622253667077551034119958866481056760107123567590230789917209543206262943739654964107980961862387602012190907147667678648223791029527"
174string(4) "2362"
175string(5) "-9377"
176string(5) "-8435"
177NULL
178string(193) "2481908463276861025880840116973116041137167231715512003123396619946362384184452775649311777755189162364804428739438733886421190841599393284032499618736594054572838636962845446571583771860379424"
179string(9) "513032517"
180string(97) "1269389652350468424962405917839748437534426606829298977422985976022226588797299164880342257267822"
181string(3) "111"
182string(31) "1007352579363975542750518386428"
183string(301) "5972672173406546932378461222050826195392618168845902231231085819967980051373112173617569638344495916340820360974139193579303652817960325137050189614326029375858951250371622253667077551034119958866481056760107123567590230789917209543206262943739654964107980961862387602012190907147667678648223791029527"
184string(4) "2362"
185string(5) "-9377"
186string(5) "-8435"
187NULL
188string(193) "2481908463276861025880840116973116041137167231715512003123396619946362384184452775649311777755189162364804428739438733886421190841599393284032499618736594054572838636962845446571583771860379424"
189string(9) "513032517"
190string(97) "1269389652350468424962405917839748437534426606829298977422985976022226588797299164880342257267822"
191string(3) "111"
192string(31) "1007352579363975542750518386428"
193string(301) "5972672173406546932378461222050826195392618168845902231231085819967980051373112173617569638344495916340820360974139193579303652817960325137050189614326029375858951250371622253667077551034119958866481056760107123567590230789917209543206262943739654964107980961862387602012190907147667678648223791029527"
194string(4) "2362"
195string(5) "-9377"
196string(5) "-8435"
197NULL
198string(193) "2481908463276861025880840116973116041137167231715512003123396619946362384184452775649311777755189162364804428739438733886421190841599393284032499618736594054572838636962845446571583771860379424"
199string(9) "513032517"
200string(97) "1269389652350468424962405917839748437534426606829298977422985976022226588797299164880342257267822"
201string(3) "111"
202string(31) "1007352579363975542750518386428"
203string(301) "5972672173406546932378461222050826195392618168845902231231085819967980051373112173617569638344495916340820360974139193579303652817960325137050189614326029375858951250371622253667077551034119958866481056760107123567590230789917209543206262943739654964107980961862387602012190907147667678648223791029527"
204string(4) "2362"
205string(5) "-9377"
206string(5) "-8435"
207NULL
208string(193) "4314861641594785951065006537821497084129700255567731661104366342587560122488351847486220156468888511744226746306538524023190734733433083354034308520246964938498767672539252131810891590624763642"
209string(10) "3301287097"
210string(97) "1532710025135934106005683287301200805525218110207399702226596673360222079570223526337866801028045"
211string(3) "317"
212string(30) "949682013136255600092941702271"
213string(302) "10419061168407861659407303769436775291881708415032871985692089124472434944956010985892897595466043265819000974537553172663152640727594826474137173310039809413311432062725623183603946900548710858191078057179743726366436832870919212340219523613153893742764101120396858424887711932475871305848021245801132"
214string(4) "2417"
215string(5) "-7975"
216string(4) "-378"
217NULL
218string(193) "4314861641594785951065006537821497084129700255567731661104366342587560122488351847486220156468888511744226746306538524023190734733433083354034308520246964938498767672539252131810891590624763642"
219string(10) "3301287097"
220string(97) "1532710025135934106005683287301200805525218110207399702226596673360222079570223526337866801028045"
221string(3) "317"
222string(30) "949682013136255600092941702271"
223string(302) "10419061168407861659407303769436775291881708415032871985692089124472434944956010985892897595466043265819000974537553172663152640727594826474137173310039809413311432062725623183603946900548710858191078057179743726366436832870919212340219523613153893742764101120396858424887711932475871305848021245801132"
224string(4) "2417"
225string(5) "-7975"
226string(4) "-378"
227
228Warning: gmp_random_seed(): Unable to convert variable to GMP - string is not an integer in %s on line %d
229bool(false)
230Done