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