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