Annotation of embedaddon/php/ext/standard/tests/general_functions/intval.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Test intval() function
                      3: --SKIPIF--
                      4: <?php
                      5: if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only");
                      6: ?>
                      7: --FILE--
                      8: <?php
                      9: /* Prototype: int intval( mixed $var [.int $base] );
                     10:  * Description: Returns the integer value of var, using the specified base for the conversion(the default is base 10).
                     11:  */
                     12: 
                     13: echo "*** Testing intval() with valid integer values ***\n";
                     14: // different valid  integer vlaues 
                     15: $valid_ints = array(
                     16:                 '0',
                     17:                 '1',
                     18:                 '-1',
                     19:                 '-2147483648', // max negative integer value
                     20:                 '-2147483647', 
                     21:                 2147483647,  // max positive integer value
                     22:                 2147483640,
                     23:                 0x123B,      // integer as hexadecimal
                     24:                 '0x12ab',
                     25:                 '0Xfff',
                     26:                 '0XFA',
                     27:                 -0x80000000, // max negative integer as hexadecimal
                     28:                 '0x7fffffff',  // max postive integer as hexadecimal
                     29:                 0x7FFFFFFF,  // max postive integer as hexadecimal
                     30:                 '0123',        // integer as octal
                     31:                 01912,       // should be quivalent to octal 1
                     32:                 -020000000000, // max negative integer as octal
                     33:                 017777777777,  // max positive integer as octal
                     34:                );
                     35: 
                     36: /* loop to check that intval() recognizes different 
                     37:    integer values, expected output:integer value in decimal notation for valid integer */
                     38: 
                     39: echo "\n***Output with default base value ie 10 ***\n";
                     40: foreach ($valid_ints as $value ) {
                     41:    var_dump( intval($value) );
                     42: }
                     43: 
                     44: 
                     45: echo "\n***Output with base value of 10( explicitly passed as argument) ***\n";
                     46: foreach ($valid_ints as $value ) {
                     47:    var_dump( intval($value, 10) );
                     48: }
                     49: 
                     50:  
                     51: echo "\n***Output with base value  of 16 ***\n";
                     52: foreach ($valid_ints as $value ) {
                     53:    var_dump( intval($value, 16) );
                     54: }
                     55: 
                     56: echo "\n***Output with base value of 8 ***\n";
                     57: foreach ($valid_ints as $value ) {
                     58:    var_dump( intval($value, 8) );
                     59: }
                     60: 
                     61: echo "\n*** Testing intval() on non integer types ***\n";
                     62: 
                     63: // get a resource type variable
                     64: $fp = fopen (__FILE__, "r");
                     65: fclose($fp);
                     66: $dfp = opendir ( dirname(__FILE__) );
                     67: closedir($dfp);
                     68: 
                     69: // unset variable
                     70: 
                     71: $unset_var = 10;
                     72: unset ($unset_var);
                     73: 
                     74: // other types in a array
                     75: $not_int_types = array (
                     76:   /* float values */
                     77:   '-2147483649', // float value
                     78:   '2147483648',  // float value
                     79:   '-0x80000001', // float value, beyond max negative int
                     80:   '0x800000001', // float value, beyond max positive int
                     81:   '020000000001', // float value, beyond max positive int
                     82:   '-020000000001', // float value, beyond max negative int
                     83:   0.0,
                     84:   -0.1,
                     85:   1.0,
                     86:   1e5,
                     87:   -1e6,
                     88:   1E8,
                     89:   -1E9,
                     90:   10.0000000000000000005,
                     91:   10.5e+5,
                     92: 
                     93:   /* resources */
                     94:   $fp,
                     95:   $dfp,
                     96: 
                     97:   /* arrays */
                     98:   array(),
                     99:   array(0),
                    100:   array(1),
                    101:   array(NULL),
                    102:   array(null),
                    103:   array("string"),
                    104:   array(true),
                    105:   array(TRUE),
                    106:   array(false),
                    107:   array(FALSE),
                    108:   array(1,2,3,4),
                    109:   array(1 => "One", "two" => 2),
                    110: 
                    111:   /* strings */
                    112:   "",
                    113:   '',
                    114:   "0",
                    115:   '0',
                    116:   "1",
                    117:   '1',
                    118:   "\x01",
                    119:   '\x01',
                    120:   "\01",
                    121:   '\01',
                    122:   'string',
                    123:   "string",
                    124:   "true",
                    125:   "FALSE",
                    126:   'false',
                    127:   'TRUE',
                    128:   "NULL",
                    129:   'null',
                    130: 
                    131:   /* booleans */
                    132:   true,
                    133:   false,
                    134:   TRUE,
                    135:   FALSE,
                    136: 
                    137:   /* undefined and unset vars */
                    138:   @$unset_var,
                    139:   @$undefined_var
                    140: );
                    141: 
                    142: 
                    143: /* loop through the $not_int_types to see working of 
                    144:    intval() on non integer types, expected output: integer value in decimal notation for valid integers */
                    145: foreach ($not_int_types as $type ) {
                    146:    var_dump( intval($type) );
                    147: }
                    148: 
                    149: echo "\n*** Testing error conditions ***\n";
                    150: //Zero argument
                    151: var_dump( intval() );
                    152: 
                    153: //arguments more than expected 
                    154: var_dump( intval(TRUE, FALSE, TRUE) );
                    155:  
                    156: echo "\n--- Done ---\n";
                    157: 
                    158: 
                    159: ?>
                    160: --EXPECTF--
                    161: *** Testing intval() with valid integer values ***
                    162: 
                    163: ***Output with default base value ie 10 ***
                    164: int(0)
                    165: int(1)
                    166: int(-1)
                    167: int(-2147483648)
                    168: int(-2147483647)
                    169: int(2147483647)
                    170: int(2147483640)
                    171: int(4667)
                    172: int(0)
                    173: int(0)
                    174: int(0)
                    175: int(-2147483648)
                    176: int(0)
                    177: int(2147483647)
                    178: int(123)
                    179: int(1)
                    180: int(-2147483648)
                    181: int(2147483647)
                    182: 
                    183: ***Output with base value of 10( explicitly passed as argument) ***
                    184: int(0)
                    185: int(1)
                    186: int(-1)
                    187: int(-2147483648)
                    188: int(-2147483647)
                    189: int(2147483647)
                    190: int(2147483640)
                    191: int(4667)
                    192: int(0)
                    193: int(0)
                    194: int(0)
                    195: int(-2147483648)
                    196: int(0)
                    197: int(2147483647)
                    198: int(123)
                    199: int(1)
                    200: int(-2147483648)
                    201: int(2147483647)
                    202: 
                    203: ***Output with base value  of 16 ***
                    204: int(0)
                    205: int(1)
                    206: int(-1)
                    207: int(-2147483648)
                    208: int(-2147483648)
                    209: int(2147483647)
                    210: int(2147483640)
                    211: int(4667)
                    212: int(4779)
                    213: int(4095)
                    214: int(250)
                    215: int(-2147483648)
                    216: int(2147483647)
                    217: int(2147483647)
                    218: int(291)
                    219: int(1)
                    220: int(-2147483648)
                    221: int(2147483647)
                    222: 
                    223: ***Output with base value of 8 ***
                    224: int(0)
                    225: int(1)
                    226: int(-1)
                    227: int(-9020)
                    228: int(-9020)
                    229: int(2147483647)
                    230: int(2147483640)
                    231: int(4667)
                    232: int(0)
                    233: int(0)
                    234: int(0)
                    235: int(-2147483648)
                    236: int(0)
                    237: int(2147483647)
                    238: int(83)
                    239: int(1)
                    240: int(-2147483648)
                    241: int(2147483647)
                    242: 
                    243: *** Testing intval() on non integer types ***
                    244: int(-2147483648)
                    245: int(2147483647)
                    246: int(0)
                    247: int(0)
                    248: int(2147483647)
                    249: int(-2147483648)
                    250: int(0)
                    251: int(0)
                    252: int(1)
                    253: int(100000)
                    254: int(-1000000)
                    255: int(100000000)
                    256: int(-1000000000)
                    257: int(10)
                    258: int(1050000)
                    259: int(%d)
                    260: int(%d)
                    261: int(0)
                    262: int(1)
                    263: int(1)
                    264: int(1)
                    265: int(1)
                    266: int(1)
                    267: int(1)
                    268: int(1)
                    269: int(1)
                    270: int(1)
                    271: int(1)
                    272: int(1)
                    273: int(0)
                    274: int(0)
                    275: int(0)
                    276: int(0)
                    277: int(1)
                    278: int(1)
                    279: int(0)
                    280: int(0)
                    281: int(0)
                    282: int(0)
                    283: int(0)
                    284: int(0)
                    285: int(0)
                    286: int(0)
                    287: int(0)
                    288: int(0)
                    289: int(0)
                    290: int(0)
                    291: int(1)
                    292: int(0)
                    293: int(1)
                    294: int(0)
                    295: int(0)
                    296: int(0)
                    297: 
                    298: *** Testing error conditions ***
                    299: 
                    300: Warning: Wrong parameter count for intval() in %s on line %d
                    301: NULL
                    302: 
                    303: Warning: Wrong parameter count for intval() in %s on line %d
                    304: NULL
                    305: 
                    306: --- Done ---

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