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