xref: /PHP-7.4/ext/gmp/tests/gmp_random_seed.phpt (revision fbeb900b)
1--TEST--
2gmp_random_seed() basic tests
3--SKIPIF--
4<?php if (!extension_loaded("gmp")) print "skip"; ?>
5<?php if (PHP_INT_SIZE != 8) die("skip this test is for 64bit 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(386) "16100871751340485642888774479422205950971474538471317276388238970713821926852258806210387669237144400278914671533438653274777493140545293541785377162348524402063489947660558889561219968642920852870483050552936324125257259316643328803697665037881088889859735075814746314563786538493931260996669892959501637800179548654075887300734264333417283208357503038004080669367070111848040502362219"
151string(18) "255344473360201232"
152string(192) "566276705882089203328999735915155615747289398229935944715725865523491463654289449864817867794422824157675456435165973986660058784111212531276312901205233176071526587181942240113004108328736022"
153string(3) "766"
154string(31) "1251852006013618829761115383588"
155string(301) "2904442664575028522451529381233481137998826790384445089758175726247096826023839957531211794198483328480161675791738894500687706952157332727908305084432443942315866545175274665372161864357698401817740956147940095302549920711069038378541222669595494627580205085300332122174778540693048337420608925104417"
156string(4) "5969"
157string(5) "-4126"
158string(4) "-926"
159NULL
160string(386) "16100871751340485642888774479422205950971474538471317276388238970713821926852258806210387669237144400278914671533438653274777493140545293541785377162348524402063489947660558889561219968642920852870483050552936324125257259316643328803697665037881088889859735075814746314563786538493931260996669892959501637800179548654075887300734264333417283208357503038004080669367070111848040502362219"
161string(18) "255344473360201232"
162string(192) "566276705882089203328999735915155615747289398229935944715725865523491463654289449864817867794422824157675456435165973986660058784111212531276312901205233176071526587181942240113004108328736022"
163string(3) "766"
164string(31) "1251852006013618829761115383588"
165string(301) "2904442664575028522451529381233481137998826790384445089758175726247096826023839957531211794198483328480161675791738894500687706952157332727908305084432443942315866545175274665372161864357698401817740956147940095302549920711069038378541222669595494627580205085300332122174778540693048337420608925104417"
166string(4) "5969"
167string(5) "-4126"
168string(4) "-926"
169NULL
170string(386) "13477111096113160882601567427091178332669645276785709413953468738199940626922635042144840457533224221336117027441609364710893482124071124759231943384805378201041406842697962243732316555316214869988749798708139879922380266366387589101775891621221881149417841139463207495993669582399783202126977651864760442797681787747348653884279195479310922110107643437514016795836672871442926389274400"
171string(20) "15370156633245019617"
172string(192) "294354325919119835375781661354719128667828860233586416953977190644006896604022494655398295674227944872858213051595447565156112646032890737200590095517623075051828676500990477704073251304424133"
173string(3) "683"
174string(31) "1105092118036828878542238774672"
175string(301) "2700084798786584694260166508009114488318099110808331607090845844712329387915039325877090587052399841255219556028410036280510827424748532204766771994624650610348058361519239518625728955462297681525123214377383395734875500143425080808436274385326255154393544373636015993206705180032889399161843788895374"
176string(4) "7268"
177string(5) "-3518"
178string(5) "-8432"
179NULL
180string(386) "13477111096113160882601567427091178332669645276785709413953468738199940626922635042144840457533224221336117027441609364710893482124071124759231943384805378201041406842697962243732316555316214869988749798708139879922380266366387589101775891621221881149417841139463207495993669582399783202126977651864760442797681787747348653884279195479310922110107643437514016795836672871442926389274400"
181string(20) "15370156633245019617"
182string(192) "294354325919119835375781661354719128667828860233586416953977190644006896604022494655398295674227944872858213051595447565156112646032890737200590095517623075051828676500990477704073251304424133"
183string(3) "683"
184string(31) "1105092118036828878542238774672"
185string(301) "2700084798786584694260166508009114488318099110808331607090845844712329387915039325877090587052399841255219556028410036280510827424748532204766771994624650610348058361519239518625728955462297681525123214377383395734875500143425080808436274385326255154393544373636015993206705180032889399161843788895374"
186string(4) "7268"
187string(5) "-3518"
188string(5) "-8432"
189NULL
190string(386) "13477111096113160882601567427091178332669645276785709413953468738199940626922635042144840457533224221336117027441609364710893482124071124759231943384805378201041406842697962243732316555316214869988749798708139879922380266366387589101775891621221881149417841139463207495993669582399783202126977651864760442797681787747348653884279195479310922110107643437514016795836672871442926389274400"
191string(20) "15370156633245019617"
192string(192) "294354325919119835375781661354719128667828860233586416953977190644006896604022494655398295674227944872858213051595447565156112646032890737200590095517623075051828676500990477704073251304424133"
193string(3) "683"
194string(31) "1105092118036828878542238774672"
195string(301) "2700084798786584694260166508009114488318099110808331607090845844712329387915039325877090587052399841255219556028410036280510827424748532204766771994624650610348058361519239518625728955462297681525123214377383395734875500143425080808436274385326255154393544373636015993206705180032889399161843788895374"
196string(4) "7268"
197string(5) "-3518"
198string(5) "-8432"
199NULL
200string(386) "13477111096113160882601567427091178332669645276785709413953468738199940626922635042144840457533224221336117027441609364710893482124071124759231943384805378201041406842697962243732316555316214869988749798708139879922380266366387589101775891621221881149417841139463207495993669582399783202126977651864760442797681787747348653884279195479310922110107643437514016795836672871442926389274400"
201string(20) "15370156633245019617"
202string(192) "294354325919119835375781661354719128667828860233586416953977190644006896604022494655398295674227944872858213051595447565156112646032890737200590095517623075051828676500990477704073251304424133"
203string(3) "683"
204string(31) "1105092118036828878542238774672"
205string(301) "2700084798786584694260166508009114488318099110808331607090845844712329387915039325877090587052399841255219556028410036280510827424748532204766771994624650610348058361519239518625728955462297681525123214377383395734875500143425080808436274385326255154393544373636015993206705180032889399161843788895374"
206string(4) "7268"
207string(5) "-3518"
208string(5) "-8432"
209NULL
210string(386) "17517289823903393220742578279919954815229524740463730368402128237511862318453381595675765692750750649609755422480004471234960388086555321894591036872550129477305413674775698107868844953599169316550102271816620108199930104365341610775602960735862041722613145476720452800951958891882288668416542937408952006310656170195090436314902430700708511047189929836145291647101130135292078875631354"
211string(19) "1662391866670215057"
212string(193) "1951928859951518261564127834731454911658112769477733872890285741065126442731035642243573666695893929882207432512593006044657806021743917753379619843420559355572830613932424235592411658293328273"
213string(3) "888"
214string(30) "136524289584478309125073026188"
215string(301) "4487372666528061674404740793683112894444118579769413902123304803304884162086348577960502430419080687314731489440882833272125181594897832730214825704339272207090970657364333461383490282984012738008555512699878911293400686609929745464733074891420787002129849587668122219953473716759349853748437799165176"
216string(4) "8559"
217string(4) "9426"
218string(5) "-2932"
219NULL
220string(386) "17517289823903393220742578279919954815229524740463730368402128237511862318453381595675765692750750649609755422480004471234960388086555321894591036872550129477305413674775698107868844953599169316550102271816620108199930104365341610775602960735862041722613145476720452800951958891882288668416542937408952006310656170195090436314902430700708511047189929836145291647101130135292078875631354"
221string(19) "1662391866670215057"
222string(193) "1951928859951518261564127834731454911658112769477733872890285741065126442731035642243573666695893929882207432512593006044657806021743917753379619843420559355572830613932424235592411658293328273"
223string(3) "888"
224string(30) "136524289584478309125073026188"
225string(301) "4487372666528061674404740793683112894444118579769413902123304803304884162086348577960502430419080687314731489440882833272125181594897832730214825704339272207090970657364333461383490282984012738008555512699878911293400686609929745464733074891420787002129849587668122219953473716759349853748437799165176"
226string(4) "8559"
227string(4) "9426"
228string(5) "-2932"
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