xref: /PHP-8.0/ext/gmp/tests/gmp_random_seed.phpt (revision 65f14b0d)
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--FILE--
7<?php
8
9// zero int
10var_dump(gmp_random_seed(0));
11
12var_dump(gmp_strval(gmp_random_bits(10)));
13var_dump(gmp_strval(gmp_random_bits(100)));
14var_dump(gmp_strval(gmp_random_bits(1000)));
15
16var_dump(gmp_strval(gmp_random_range(0, 10000)));
17var_dump(gmp_strval(gmp_random_range(-10000, 10000)));
18var_dump(gmp_strval(gmp_random_range(-10000, 0)));
19
20
21// zero gmp
22var_dump(gmp_random_seed(gmp_init(0)));
23
24var_dump(gmp_strval(gmp_random_bits(10)));
25var_dump(gmp_strval(gmp_random_bits(100)));
26var_dump(gmp_strval(gmp_random_bits(1000)));
27
28var_dump(gmp_strval(gmp_random_range(0, 10000)));
29var_dump(gmp_strval(gmp_random_range(-10000, 10000)));
30var_dump(gmp_strval(gmp_random_range(-10000, 0)));
31
32
33// negative int
34var_dump(gmp_random_seed(-100));
35
36var_dump(gmp_strval(gmp_random_bits(10)));
37var_dump(gmp_strval(gmp_random_bits(100)));
38var_dump(gmp_strval(gmp_random_bits(1000)));
39
40var_dump(gmp_strval(gmp_random_range(0, 10000)));
41var_dump(gmp_strval(gmp_random_range(-10000, 10000)));
42var_dump(gmp_strval(gmp_random_range(-10000, 0)));
43
44
45// negative gmp
46var_dump(gmp_random_seed(gmp_init(-100)));
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// positive int
58var_dump(gmp_random_seed(100));
59
60var_dump(gmp_strval(gmp_random_bits(10)));
61var_dump(gmp_strval(gmp_random_bits(100)));
62var_dump(gmp_strval(gmp_random_bits(1000)));
63
64var_dump(gmp_strval(gmp_random_range(0, 10000)));
65var_dump(gmp_strval(gmp_random_range(-10000, 10000)));
66var_dump(gmp_strval(gmp_random_range(-10000, 0)));
67
68
69// positive gmp
70var_dump(gmp_random_seed(100));
71
72var_dump(gmp_strval(gmp_random_bits(10)));
73var_dump(gmp_strval(gmp_random_bits(100)));
74var_dump(gmp_strval(gmp_random_bits(1000)));
75
76var_dump(gmp_strval(gmp_random_range(0, 10000)));
77var_dump(gmp_strval(gmp_random_range(-10000, 10000)));
78var_dump(gmp_strval(gmp_random_range(-10000, 0)));
79
80
81$seed = gmp_init(1);
82$seed <<= 512;
83
84// large negative gmp
85var_dump(gmp_random_seed($seed * -1));
86
87var_dump(gmp_strval(gmp_random_bits(10)));
88var_dump(gmp_strval(gmp_random_bits(100)));
89var_dump(gmp_strval(gmp_random_bits(1000)));
90
91var_dump(gmp_strval(gmp_random_range(0, 10000)));
92var_dump(gmp_strval(gmp_random_range(-10000, 10000)));
93var_dump(gmp_strval(gmp_random_range(-10000, 0)));
94
95
96// large positive gmp
97var_dump(gmp_random_seed($seed));
98
99var_dump(gmp_strval(gmp_random_bits(10)));
100var_dump(gmp_strval(gmp_random_bits(100)));
101var_dump(gmp_strval(gmp_random_bits(1000)));
102
103var_dump(gmp_strval(gmp_random_range(0, 10000)));
104var_dump(gmp_strval(gmp_random_range(-10000, 10000)));
105var_dump(gmp_strval(gmp_random_range(-10000, 0)));
106
107
108// standard non conversion error
109try {
110    var_dump(gmp_random_seed('not a number'));
111} catch (\ValueError $e) {
112    echo $e->getMessage() . \PHP_EOL;
113}
114
115
116echo "Done\n";
117?>
118--EXPECT--
119NULL
120string(3) "107"
121string(30) "576055025228722307492589900056"
122string(301) "5075491613651149525976453192895895253653438900772590630831858908690082668789318258254821002217677675804439098856210618572534955562143303188483908287009522532300439665975877709754914215718998849272363858786685187951932478210775857465448084868199807983919191214972626993925394176279001074206804955195464"
123string(4) "4098"
124string(3) "866"
125string(5) "-4602"
126NULL
127string(3) "107"
128string(30) "576055025228722307492589900056"
129string(301) "5075491613651149525976453192895895253653438900772590630831858908690082668789318258254821002217677675804439098856210618572534955562143303188483908287009522532300439665975877709754914215718998849272363858786685187951932478210775857465448084868199807983919191214972626993925394176279001074206804955195464"
130string(4) "4098"
131string(3) "866"
132string(5) "-4602"
133NULL
134string(3) "800"
135string(30) "136797365759249926716355081555"
136string(300) "983682312243221532860194306859606025979259367996304596374614332718375645173854152266611727577102182844028492473112400528817154210713755887896949560718745264129216953815968005630126359941634684721501777057142617647654380585317016323758806063124938232519551123440573348326061244006512869165793958775168"
137string(4) "1029"
138string(4) "7093"
139string(5) "-9074"
140NULL
141string(3) "800"
142string(30) "136797365759249926716355081555"
143string(300) "983682312243221532860194306859606025979259367996304596374614332718375645173854152266611727577102182844028492473112400528817154210713755887896949560718745264129216953815968005630126359941634684721501777057142617647654380585317016323758806063124938232519551123440573348326061244006512869165793958775168"
144string(4) "1029"
145string(4) "7093"
146string(5) "-9074"
147NULL
148string(3) "800"
149string(30) "136797365759249926716355081555"
150string(300) "983682312243221532860194306859606025979259367996304596374614332718375645173854152266611727577102182844028492473112400528817154210713755887896949560718745264129216953815968005630126359941634684721501777057142617647654380585317016323758806063124938232519551123440573348326061244006512869165793958775168"
151string(4) "1029"
152string(4) "7093"
153string(5) "-9074"
154NULL
155string(3) "800"
156string(30) "136797365759249926716355081555"
157string(300) "983682312243221532860194306859606025979259367996304596374614332718375645173854152266611727577102182844028492473112400528817154210713755887896949560718745264129216953815968005630126359941634684721501777057142617647654380585317016323758806063124938232519551123440573348326061244006512869165793958775168"
158string(4) "1029"
159string(4) "7093"
160string(5) "-9074"
161NULL
162string(3) "762"
163string(30) "822340340897453415684831711085"
164string(301) "7240560133683902061389868703829443708354917824328579773726122219756981024103097560162756171513655189995985599958252688592185764428631571614485572869738344560301294144844739876478557439580966605216861285841689262517286639329902832431755450003123084728943981078635297917573398492558065003906539489023830"
165string(4) "9636"
166string(5) "-9848"
167string(5) "-9648"
168NULL
169string(3) "762"
170string(30) "822340340897453415684831711085"
171string(301) "7240560133683902061389868703829443708354917824328579773726122219756981024103097560162756171513655189995985599958252688592185764428631571614485572869738344560301294144844739876478557439580966605216861285841689262517286639329902832431755450003123084728943981078635297917573398492558065003906539489023830"
172string(4) "9636"
173string(5) "-9848"
174string(5) "-9648"
175gmp_random_seed(): Argument #1 ($seed) is not an integer string
176Done
177