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