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