123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- --TEST--
- Test rand() - basic function test rand()
- --FILE--
- <?php
- $default_max = getrandmax();
- echo "\nrand() tests with default min and max value (i.e 0 thru ", $default_max, ")\n";
- for ($i = 0; $i < 100; $i++) {
- $res = rand();
-
- // By default RAND_MAX is 32768 although no constant is defined for it for user space apps
- if (!is_int($res) || $res < 0 || $res > $default_max) {
- break;
- }
- }
- if ($i != 100) {
- echo "FAILED: res = ", $res, " min = 0 max = ", $default_max, "\n";
- } else {
- echo "PASSED: range min = 0 max = ", $default_max, "\n";
- }
- echo "\nrand() tests with defined min and max value\n";
- $min = array(10,
- 100,
- 10.5,
- 10.5e3,
- 0x10,
- 0400);
-
- $max = array(100,
- 1000,
- 19.5,
- 10.5e5,
- 0x10000,
- 0700);
- for ($x = 0; $x < count($min); $x++) {
- for ($i = 0; $i < 100; $i++) {
- $res = rand($min[$x], $max[$x]);
-
- if (!is_int($res) || $res < intval($min[$x]) || $res > intval($max[$x])) {
- echo "FAILED: res = ", $res, " min = ", intval($min[$x]), " max = ", intval($max[$x]), "\n";
- break;
- }
- }
- if ($i == 100) {
- echo "PASSED: range min = ", intval($min[$x]), " max = ", intval($max[$x]), "\n";
- }
- }
- echo "\nNon-numeric cases\n";
- $min = array(true,
- false,
- null,
- "10",
- "0x10",
- "10.5");
-
- // Eexepcted numerical equivalent of above non-numerics
- $minval = array(1,
- 0,
- 0,
- 10,
- 0,
- 10);
- for ($x = 0; $x < count($min); $x++) {
- for ($i = 0; $i < 100; $i++) {
- $res = rand($min[$x], 100);
-
- if (!is_int($res) || $res < intval($minval[$x]) || $res > 100) {
- echo "FAILED: res = ", $res, " min = ", intval($min[$x]), " max = ", intval($max[$x]), "\n";
- break;
- }
- }
-
- if ($i == 100) {
- echo "PASSED range min = ", intval($min[$x]), " max = 100\n";
- }
- }
- ?>
- --EXPECTF--
- rand() tests with default min and max value (i.e 0 thru %i)
- PASSED: range min = 0 max = %i
- rand() tests with defined min and max value
- PASSED: range min = 10 max = 100
- PASSED: range min = 100 max = 1000
- PASSED: range min = 10 max = 19
- PASSED: range min = 10500 max = 1050000
- PASSED: range min = 16 max = 65536
- PASSED: range min = 256 max = 448
- Non-numeric cases
- PASSED range min = 1 max = 100
- PASSED range min = 0 max = 100
- PASSED range min = 0 max = 100
- PASSED range min = 10 max = 100
- PASSED range min = 0 max = 100
- PASSED range min = 10 max = 100
|