gmp_random_seed.phpt 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. --TEST--
  2. gmp_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--
  7. error_reporting=E_ALL&~E_DEPRECATED
  8. --FILE--
  9. <?php
  10. // zero int
  11. var_dump(gmp_random_seed(0));
  12. var_dump(gmp_strval(gmp_random()));
  13. var_dump(gmp_strval(gmp_random(1)));
  14. var_dump(gmp_strval(gmp_random(10)));
  15. var_dump(gmp_strval(gmp_random_bits(10)));
  16. var_dump(gmp_strval(gmp_random_bits(100)));
  17. var_dump(gmp_strval(gmp_random_bits(1000)));
  18. var_dump(gmp_strval(gmp_random_range(0, 10000)));
  19. var_dump(gmp_strval(gmp_random_range(-10000, 10000)));
  20. var_dump(gmp_strval(gmp_random_range(-10000, 0)));
  21. // zero gmp
  22. var_dump(gmp_random_seed(gmp_init(0)));
  23. var_dump(gmp_strval(gmp_random()));
  24. var_dump(gmp_strval(gmp_random(1)));
  25. var_dump(gmp_strval(gmp_random(10)));
  26. var_dump(gmp_strval(gmp_random_bits(10)));
  27. var_dump(gmp_strval(gmp_random_bits(100)));
  28. var_dump(gmp_strval(gmp_random_bits(1000)));
  29. var_dump(gmp_strval(gmp_random_range(0, 10000)));
  30. var_dump(gmp_strval(gmp_random_range(-10000, 10000)));
  31. var_dump(gmp_strval(gmp_random_range(-10000, 0)));
  32. // negative int
  33. var_dump(gmp_random_seed(-100));
  34. var_dump(gmp_strval(gmp_random()));
  35. var_dump(gmp_strval(gmp_random(1)));
  36. var_dump(gmp_strval(gmp_random(10)));
  37. var_dump(gmp_strval(gmp_random_bits(10)));
  38. var_dump(gmp_strval(gmp_random_bits(100)));
  39. var_dump(gmp_strval(gmp_random_bits(1000)));
  40. var_dump(gmp_strval(gmp_random_range(0, 10000)));
  41. var_dump(gmp_strval(gmp_random_range(-10000, 10000)));
  42. var_dump(gmp_strval(gmp_random_range(-10000, 0)));
  43. // negative gmp
  44. var_dump(gmp_random_seed(gmp_init(-100)));
  45. var_dump(gmp_strval(gmp_random()));
  46. var_dump(gmp_strval(gmp_random(1)));
  47. var_dump(gmp_strval(gmp_random(10)));
  48. var_dump(gmp_strval(gmp_random_bits(10)));
  49. var_dump(gmp_strval(gmp_random_bits(100)));
  50. var_dump(gmp_strval(gmp_random_bits(1000)));
  51. var_dump(gmp_strval(gmp_random_range(0, 10000)));
  52. var_dump(gmp_strval(gmp_random_range(-10000, 10000)));
  53. var_dump(gmp_strval(gmp_random_range(-10000, 0)));
  54. // positive int
  55. var_dump(gmp_random_seed(100));
  56. var_dump(gmp_strval(gmp_random()));
  57. var_dump(gmp_strval(gmp_random(1)));
  58. var_dump(gmp_strval(gmp_random(10)));
  59. var_dump(gmp_strval(gmp_random_bits(10)));
  60. var_dump(gmp_strval(gmp_random_bits(100)));
  61. var_dump(gmp_strval(gmp_random_bits(1000)));
  62. var_dump(gmp_strval(gmp_random_range(0, 10000)));
  63. var_dump(gmp_strval(gmp_random_range(-10000, 10000)));
  64. var_dump(gmp_strval(gmp_random_range(-10000, 0)));
  65. // positive gmp
  66. var_dump(gmp_random_seed(100));
  67. var_dump(gmp_strval(gmp_random()));
  68. var_dump(gmp_strval(gmp_random(1)));
  69. var_dump(gmp_strval(gmp_random(10)));
  70. var_dump(gmp_strval(gmp_random_bits(10)));
  71. var_dump(gmp_strval(gmp_random_bits(100)));
  72. var_dump(gmp_strval(gmp_random_bits(1000)));
  73. var_dump(gmp_strval(gmp_random_range(0, 10000)));
  74. var_dump(gmp_strval(gmp_random_range(-10000, 10000)));
  75. var_dump(gmp_strval(gmp_random_range(-10000, 0)));
  76. $seed = gmp_init(1);
  77. $seed <<= 512;
  78. // large negative gmp
  79. var_dump(gmp_random_seed($seed * -1));
  80. var_dump(gmp_strval(gmp_random()));
  81. var_dump(gmp_strval(gmp_random(1)));
  82. var_dump(gmp_strval(gmp_random(10)));
  83. var_dump(gmp_strval(gmp_random_bits(10)));
  84. var_dump(gmp_strval(gmp_random_bits(100)));
  85. var_dump(gmp_strval(gmp_random_bits(1000)));
  86. var_dump(gmp_strval(gmp_random_range(0, 10000)));
  87. var_dump(gmp_strval(gmp_random_range(-10000, 10000)));
  88. var_dump(gmp_strval(gmp_random_range(-10000, 0)));
  89. // large positive gmp
  90. var_dump(gmp_random_seed($seed));
  91. var_dump(gmp_strval(gmp_random()));
  92. var_dump(gmp_strval(gmp_random(1)));
  93. var_dump(gmp_strval(gmp_random(10)));
  94. var_dump(gmp_strval(gmp_random_bits(10)));
  95. var_dump(gmp_strval(gmp_random_bits(100)));
  96. var_dump(gmp_strval(gmp_random_bits(1000)));
  97. var_dump(gmp_strval(gmp_random_range(0, 10000)));
  98. var_dump(gmp_strval(gmp_random_range(-10000, 10000)));
  99. var_dump(gmp_strval(gmp_random_range(-10000, 0)));
  100. // standard non conversion error
  101. var_dump(gmp_random_seed('not a number'));
  102. echo "Done\n";
  103. ?>
  104. --EXPECTF--
  105. NULL
  106. string(386) "16100871751340485642888774479422205950971474538471317276388238970713821926852258806210387669237144400278914671533438653274777493140545293541785377162348524402063489947660558889561219968642920852870483050552936324125257259316643328803697665037881088889859735075814746314563786538493931260996669892959501637800179548654075887300734264333417283208357503038004080669367070111848040502362219"
  107. string(18) "255344473360201232"
  108. string(192) "566276705882089203328999735915155615747289398229935944715725865523491463654289449864817867794422824157675456435165973986660058784111212531276312901205233176071526587181942240113004108328736022"
  109. string(3) "766"
  110. string(31) "1251852006013618829761115383588"
  111. string(301) "2904442664575028522451529381233481137998826790384445089758175726247096826023839957531211794198483328480161675791738894500687706952157332727908305084432443942315866545175274665372161864357698401817740956147940095302549920711069038378541222669595494627580205085300332122174778540693048337420608925104417"
  112. string(4) "5969"
  113. string(5) "-4126"
  114. string(4) "-926"
  115. NULL
  116. string(386) "16100871751340485642888774479422205950971474538471317276388238970713821926852258806210387669237144400278914671533438653274777493140545293541785377162348524402063489947660558889561219968642920852870483050552936324125257259316643328803697665037881088889859735075814746314563786538493931260996669892959501637800179548654075887300734264333417283208357503038004080669367070111848040502362219"
  117. string(18) "255344473360201232"
  118. string(192) "566276705882089203328999735915155615747289398229935944715725865523491463654289449864817867794422824157675456435165973986660058784111212531276312901205233176071526587181942240113004108328736022"
  119. string(3) "766"
  120. string(31) "1251852006013618829761115383588"
  121. string(301) "2904442664575028522451529381233481137998826790384445089758175726247096826023839957531211794198483328480161675791738894500687706952157332727908305084432443942315866545175274665372161864357698401817740956147940095302549920711069038378541222669595494627580205085300332122174778540693048337420608925104417"
  122. string(4) "5969"
  123. string(5) "-4126"
  124. string(4) "-926"
  125. NULL
  126. string(386) "13477111096113160882601567427091178332669645276785709413953468738199940626922635042144840457533224221336117027441609364710893482124071124759231943384805378201041406842697962243732316555316214869988749798708139879922380266366387589101775891621221881149417841139463207495993669582399783202126977651864760442797681787747348653884279195479310922110107643437514016795836672871442926389274400"
  127. string(20) "15370156633245019617"
  128. string(192) "294354325919119835375781661354719128667828860233586416953977190644006896604022494655398295674227944872858213051595447565156112646032890737200590095517623075051828676500990477704073251304424133"
  129. string(3) "683"
  130. string(31) "1105092118036828878542238774672"
  131. string(301) "2700084798786584694260166508009114488318099110808331607090845844712329387915039325877090587052399841255219556028410036280510827424748532204766771994624650610348058361519239518625728955462297681525123214377383395734875500143425080808436274385326255154393544373636015993206705180032889399161843788895374"
  132. string(4) "7268"
  133. string(5) "-3518"
  134. string(5) "-8432"
  135. NULL
  136. string(386) "13477111096113160882601567427091178332669645276785709413953468738199940626922635042144840457533224221336117027441609364710893482124071124759231943384805378201041406842697962243732316555316214869988749798708139879922380266366387589101775891621221881149417841139463207495993669582399783202126977651864760442797681787747348653884279195479310922110107643437514016795836672871442926389274400"
  137. string(20) "15370156633245019617"
  138. string(192) "294354325919119835375781661354719128667828860233586416953977190644006896604022494655398295674227944872858213051595447565156112646032890737200590095517623075051828676500990477704073251304424133"
  139. string(3) "683"
  140. string(31) "1105092118036828878542238774672"
  141. string(301) "2700084798786584694260166508009114488318099110808331607090845844712329387915039325877090587052399841255219556028410036280510827424748532204766771994624650610348058361519239518625728955462297681525123214377383395734875500143425080808436274385326255154393544373636015993206705180032889399161843788895374"
  142. string(4) "7268"
  143. string(5) "-3518"
  144. string(5) "-8432"
  145. NULL
  146. string(386) "13477111096113160882601567427091178332669645276785709413953468738199940626922635042144840457533224221336117027441609364710893482124071124759231943384805378201041406842697962243732316555316214869988749798708139879922380266366387589101775891621221881149417841139463207495993669582399783202126977651864760442797681787747348653884279195479310922110107643437514016795836672871442926389274400"
  147. string(20) "15370156633245019617"
  148. string(192) "294354325919119835375781661354719128667828860233586416953977190644006896604022494655398295674227944872858213051595447565156112646032890737200590095517623075051828676500990477704073251304424133"
  149. string(3) "683"
  150. string(31) "1105092118036828878542238774672"
  151. string(301) "2700084798786584694260166508009114488318099110808331607090845844712329387915039325877090587052399841255219556028410036280510827424748532204766771994624650610348058361519239518625728955462297681525123214377383395734875500143425080808436274385326255154393544373636015993206705180032889399161843788895374"
  152. string(4) "7268"
  153. string(5) "-3518"
  154. string(5) "-8432"
  155. NULL
  156. string(386) "13477111096113160882601567427091178332669645276785709413953468738199940626922635042144840457533224221336117027441609364710893482124071124759231943384805378201041406842697962243732316555316214869988749798708139879922380266366387589101775891621221881149417841139463207495993669582399783202126977651864760442797681787747348653884279195479310922110107643437514016795836672871442926389274400"
  157. string(20) "15370156633245019617"
  158. string(192) "294354325919119835375781661354719128667828860233586416953977190644006896604022494655398295674227944872858213051595447565156112646032890737200590095517623075051828676500990477704073251304424133"
  159. string(3) "683"
  160. string(31) "1105092118036828878542238774672"
  161. string(301) "2700084798786584694260166508009114488318099110808331607090845844712329387915039325877090587052399841255219556028410036280510827424748532204766771994624650610348058361519239518625728955462297681525123214377383395734875500143425080808436274385326255154393544373636015993206705180032889399161843788895374"
  162. string(4) "7268"
  163. string(5) "-3518"
  164. string(5) "-8432"
  165. NULL
  166. string(386) "17517289823903393220742578279919954815229524740463730368402128237511862318453381595675765692750750649609755422480004471234960388086555321894591036872550129477305413674775698107868844953599169316550102271816620108199930104365341610775602960735862041722613145476720452800951958891882288668416542937408952006310656170195090436314902430700708511047189929836145291647101130135292078875631354"
  167. string(19) "1662391866670215057"
  168. string(193) "1951928859951518261564127834731454911658112769477733872890285741065126442731035642243573666695893929882207432512593006044657806021743917753379619843420559355572830613932424235592411658293328273"
  169. string(3) "888"
  170. string(30) "136524289584478309125073026188"
  171. string(301) "4487372666528061674404740793683112894444118579769413902123304803304884162086348577960502430419080687314731489440882833272125181594897832730214825704339272207090970657364333461383490282984012738008555512699878911293400686609929745464733074891420787002129849587668122219953473716759349853748437799165176"
  172. string(4) "8559"
  173. string(4) "9426"
  174. string(5) "-2932"
  175. NULL
  176. string(386) "17517289823903393220742578279919954815229524740463730368402128237511862318453381595675765692750750649609755422480004471234960388086555321894591036872550129477305413674775698107868844953599169316550102271816620108199930104365341610775602960735862041722613145476720452800951958891882288668416542937408952006310656170195090436314902430700708511047189929836145291647101130135292078875631354"
  177. string(19) "1662391866670215057"
  178. string(193) "1951928859951518261564127834731454911658112769477733872890285741065126442731035642243573666695893929882207432512593006044657806021743917753379619843420559355572830613932424235592411658293328273"
  179. string(3) "888"
  180. string(30) "136524289584478309125073026188"
  181. string(301) "4487372666528061674404740793683112894444118579769413902123304803304884162086348577960502430419080687314731489440882833272125181594897832730214825704339272207090970657364333461383490282984012738008555512699878911293400686609929745464733074891420787002129849587668122219953473716759349853748437799165176"
  182. string(4) "8559"
  183. string(4) "9426"
  184. string(5) "-2932"
  185. Warning: gmp_random_seed(): Unable to convert variable to GMP - string is not an integer in %s on line %d
  186. bool(false)
  187. Done