Annotation of embedaddon/php/ext/standard/tests/math/rand_basic.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Test  rand() - basic function test rand()
                      3: --FILE--
                      4: <?php
                      5: $default_max = getrandmax();
                      6: 
                      7: echo "\nrand() tests with default min and max value (i.e 0 thru ", $default_max, ")\n";
                      8: for ($i = 0; $i < 100; $i++) {
                      9:        $res = rand();
                     10:        
                     11: // By default RAND_MAX is 32768 although no constant is defined for it for user space apps     
                     12:        if (!is_int($res) || $res < 0 || $res > $default_max) {
                     13:                break;
                     14:        }
                     15: }
                     16: 
                     17: if ($i != 100) {
                     18:        echo "FAILED: res = ", $res, " min = 0 max = ", $default_max, "\n";
                     19: } else { 
                     20:        echo "PASSED: range min = 0 max = ", $default_max, "\n";
                     21: }      
                     22: 
                     23: echo "\nrand() tests with defined min and max value\n";
                     24: 
                     25: $min = array(10,
                     26:                         100,
                     27:                         10.5,
                     28:                         10.5e3,
                     29:                         0x10,
                     30:                         0400);
                     31:                         
                     32: $max = array(100,
                     33:                         1000,
                     34:                         19.5,
                     35:                         10.5e5,
                     36:                         0x10000,
                     37:                         0700);                 
                     38: 
                     39: for ($x = 0; $x < count($min); $x++) {
                     40:        for ($i = 0; $i < 100; $i++) {
                     41:                $res = rand($min[$x], $max[$x]);
                     42:                
                     43:                if (!is_int($res) || $res < intval($min[$x]) || $res > intval($max[$x])) {
                     44:                        echo "FAILED: res = ",  $res, " min = ", intval($min[$x]), " max = ", intval($max[$x]), "\n";           
                     45:                        break;
                     46:                }
                     47:        }
                     48: 
                     49:        if ($i == 100) {
                     50:                echo "PASSED: range min = ", intval($min[$x]), " max = ", intval($max[$x]), "\n"; 
                     51:        }
                     52: }      
                     53: 
                     54: echo "\nNon-numeric cases\n";
                     55: $min = array(true,
                     56:                         false,
                     57:                         null,
                     58:                         "10",
                     59:                         "0x10",
                     60:                         "10.5");
                     61:                
                     62: // Eexepcted numerical equivalent of above non-numerics                
                     63: $minval = array(1,
                     64:                                0,
                     65:                                0,
                     66:                                10,
                     67:                                0,
                     68:                                10);
                     69: for ($x = 0; $x < count($min); $x++) {
                     70:        for ($i = 0; $i < 100; $i++) {
                     71:                $res = rand($min[$x], 100);
                     72:                
                     73:                if (!is_int($res) || $res < intval($minval[$x]) || $res > 100) {
                     74:                        echo "FAILED: res = ",  $res, " min = ", intval($min[$x]), " max = ", intval($max[$x]), "\n";   
                     75:                        break;
                     76:                }
                     77:        }
                     78:        
                     79:        if ($i == 100) {
                     80:                echo "PASSED range min = ", intval($min[$x]), " max = 100\n"; 
                     81:        }       
                     82: }
                     83: ?>
                     84: --EXPECTF--
                     85: 
                     86: rand() tests with default min and max value (i.e 0 thru %i)
                     87: PASSED: range min = 0 max = %i
                     88: 
                     89: rand() tests with defined min and max value
                     90: PASSED: range min = 10 max = 100
                     91: PASSED: range min = 100 max = 1000
                     92: PASSED: range min = 10 max = 19
                     93: PASSED: range min = 10500 max = 1050000
                     94: PASSED: range min = 16 max = 65536
                     95: PASSED: range min = 256 max = 448
                     96: 
                     97: Non-numeric cases
                     98: PASSED range min = 1 max = 100
                     99: PASSED range min = 0 max = 100
                    100: PASSED range min = 0 max = 100
                    101: PASSED range min = 10 max = 100
                    102: PASSED range min = 0 max = 100
                    103: PASSED range min = 10 max = 100

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>