Annotation of embedaddon/php/ext/standard/tests/array/ksort_variation2.phpt, revision 1.1.1.3

1.1       misho       1: --TEST--
                      2: Test ksort() function : usage variations - unexpected values for 'sort_flags' argument
                      3: --FILE--
                      4: <?php
                      5: /* Prototype  : bool ksort(array &array_arg [, int sort_flags])
                      6:  * Description: Sort an array by key, maintaining key to data correlation 
                      7:  * Source code: ext/standard/array.c
                      8: */
                      9: 
                     10: /*
                     11:  * Testing ksort() by providing different unexpected values for flag argument
                     12: */
                     13: 
                     14: echo "*** Testing ksort() : usage variations ***\n";
                     15: 
                     16: //get an unset variable
                     17: $unset_var = 10;
                     18: unset ($unset_var);
                     19: 
                     20: // resource variable
                     21: $fp = fopen(__FILE__, "r");
                     22: 
                     23: // an array for checking unexpected behavior
                     24: $unsorted_values = array(10 => 10, 2 => 2, 45 => 45);
                     25: 
                     26: //array of unexpected values to iterate over
                     27: $unexpected_values = array (
                     28: 
                     29:        // int data
                     30: /*1*/  -2345,
                     31: 
                     32:        // float data
                     33: /*2*/  10.5,
                     34:        -10.5,
                     35:        10.5e2,
                     36:        10.6E-2,
                     37:        .5,
                     38: 
                     39:        // null data
                     40: /*7*/  NULL,
                     41:        null,
                     42: 
                     43:        // boolean data
                     44: /*9*/  true,
                     45:        false,
                     46:        TRUE,
                     47:        FALSE,
                     48: 
                     49:        // empty data
                     50: /*13*/ "",
                     51:        '',
                     52: 
                     53:        // string data
                     54: /*15*/ "string",
                     55:        'string',
                     56: 
                     57:        // object data
                     58: /*16*/ new stdclass(),
                     59: 
                     60:        // undefined data
                     61: /*17*/ @undefined_var,
                     62: 
                     63:        // unset data
                     64: /*18*/ @unset_var,
                     65: 
                     66:        // resource variable
                     67: /*19*/ $fp
                     68: 
                     69: );
                     70: 
                     71: // loop though each element of the array and check the working of ksort()
1.1.1.3 ! misho      72: // when 'sort_flags' argument is supplied with different values
1.1       misho      73: echo "\n-- Testing ksort() by supplying different unexpected values for 'sort_flags' argument --\n";
                     74: 
                     75: $counter = 1;
                     76: for($index = 0; $index < count($unexpected_values); $index ++) {
                     77:   echo "-- Iteration $counter --\n";
                     78:   $value = $unexpected_values [$index];
                     79:   $temp_array = $unsorted_values;
                     80:   var_dump( ksort($temp_array, $value) ); 
                     81:   var_dump($temp_array);
                     82:   $counter++;
                     83: }
                     84: 
                     85: echo "Done";
                     86: ?>
                     87: --EXPECTF--
                     88: *** Testing ksort() : usage variations ***
                     89: 
                     90: -- Testing ksort() by supplying different unexpected values for 'sort_flags' argument --
                     91: -- Iteration 1 --
                     92: bool(true)
                     93: array(3) {
                     94:   [2]=>
                     95:   int(2)
                     96:   [10]=>
                     97:   int(10)
                     98:   [45]=>
                     99:   int(45)
                    100: }
                    101: -- Iteration 2 --
                    102: bool(true)
                    103: array(3) {
                    104:   [10]=>
                    105:   int(10)
1.1.1.2   misho     106:   [2]=>
                    107:   int(2)
1.1       misho     108:   [45]=>
                    109:   int(45)
                    110: }
                    111: -- Iteration 3 --
                    112: bool(true)
                    113: array(3) {
                    114:   [2]=>
                    115:   int(2)
                    116:   [10]=>
                    117:   int(10)
                    118:   [45]=>
                    119:   int(45)
                    120: }
                    121: -- Iteration 4 --
                    122: bool(true)
                    123: array(3) {
                    124:   [2]=>
                    125:   int(2)
                    126:   [10]=>
                    127:   int(10)
                    128:   [45]=>
                    129:   int(45)
                    130: }
                    131: -- Iteration 5 --
                    132: bool(true)
                    133: array(3) {
                    134:   [2]=>
                    135:   int(2)
                    136:   [10]=>
                    137:   int(10)
                    138:   [45]=>
                    139:   int(45)
                    140: }
                    141: -- Iteration 6 --
                    142: bool(true)
                    143: array(3) {
                    144:   [2]=>
                    145:   int(2)
                    146:   [10]=>
                    147:   int(10)
                    148:   [45]=>
                    149:   int(45)
                    150: }
                    151: -- Iteration 7 --
                    152: bool(true)
                    153: array(3) {
                    154:   [2]=>
                    155:   int(2)
                    156:   [10]=>
                    157:   int(10)
                    158:   [45]=>
                    159:   int(45)
                    160: }
                    161: -- Iteration 8 --
                    162: bool(true)
                    163: array(3) {
                    164:   [2]=>
                    165:   int(2)
                    166:   [10]=>
                    167:   int(10)
                    168:   [45]=>
                    169:   int(45)
                    170: }
                    171: -- Iteration 9 --
                    172: bool(true)
                    173: array(3) {
                    174:   [2]=>
                    175:   int(2)
                    176:   [10]=>
                    177:   int(10)
                    178:   [45]=>
                    179:   int(45)
                    180: }
                    181: -- Iteration 10 --
                    182: bool(true)
                    183: array(3) {
                    184:   [2]=>
                    185:   int(2)
                    186:   [10]=>
                    187:   int(10)
                    188:   [45]=>
                    189:   int(45)
                    190: }
                    191: -- Iteration 11 --
                    192: bool(true)
                    193: array(3) {
                    194:   [2]=>
                    195:   int(2)
                    196:   [10]=>
                    197:   int(10)
                    198:   [45]=>
                    199:   int(45)
                    200: }
                    201: -- Iteration 12 --
                    202: bool(true)
                    203: array(3) {
                    204:   [2]=>
                    205:   int(2)
                    206:   [10]=>
                    207:   int(10)
                    208:   [45]=>
                    209:   int(45)
                    210: }
                    211: -- Iteration 13 --
                    212: 
                    213: Warning: ksort() expects parameter 2 to be long, string given in %s on line %d
                    214: bool(false)
                    215: array(3) {
                    216:   [10]=>
                    217:   int(10)
                    218:   [2]=>
                    219:   int(2)
                    220:   [45]=>
                    221:   int(45)
                    222: }
                    223: -- Iteration 14 --
                    224: 
                    225: Warning: ksort() expects parameter 2 to be long, string given in %s on line %d
                    226: bool(false)
                    227: array(3) {
                    228:   [10]=>
                    229:   int(10)
                    230:   [2]=>
                    231:   int(2)
                    232:   [45]=>
                    233:   int(45)
                    234: }
                    235: -- Iteration 15 --
                    236: 
                    237: Warning: ksort() expects parameter 2 to be long, string given in %s on line %d
                    238: bool(false)
                    239: array(3) {
                    240:   [10]=>
                    241:   int(10)
                    242:   [2]=>
                    243:   int(2)
                    244:   [45]=>
                    245:   int(45)
                    246: }
                    247: -- Iteration 16 --
                    248: 
                    249: Warning: ksort() expects parameter 2 to be long, string given in %s on line %d
                    250: bool(false)
                    251: array(3) {
                    252:   [10]=>
                    253:   int(10)
                    254:   [2]=>
                    255:   int(2)
                    256:   [45]=>
                    257:   int(45)
                    258: }
                    259: -- Iteration 17 --
                    260: 
                    261: Warning: ksort() expects parameter 2 to be long, object given in %s on line %d
                    262: bool(false)
                    263: array(3) {
                    264:   [10]=>
                    265:   int(10)
                    266:   [2]=>
                    267:   int(2)
                    268:   [45]=>
                    269:   int(45)
                    270: }
                    271: -- Iteration 18 --
                    272: 
                    273: Warning: ksort() expects parameter 2 to be long, string given in %s on line %d
                    274: bool(false)
                    275: array(3) {
                    276:   [10]=>
                    277:   int(10)
                    278:   [2]=>
                    279:   int(2)
                    280:   [45]=>
                    281:   int(45)
                    282: }
                    283: -- Iteration 19 --
                    284: 
                    285: Warning: ksort() expects parameter 2 to be long, string given in %s on line %d
                    286: bool(false)
                    287: array(3) {
                    288:   [10]=>
                    289:   int(10)
                    290:   [2]=>
                    291:   int(2)
                    292:   [45]=>
                    293:   int(45)
                    294: }
                    295: -- Iteration 20 --
                    296: 
                    297: Warning: ksort() expects parameter 2 to be long, resource given in %s on line %d
                    298: bool(false)
                    299: array(3) {
                    300:   [10]=>
                    301:   int(10)
                    302:   [2]=>
                    303:   int(2)
                    304:   [45]=>
                    305:   int(45)
                    306: }
                    307: Done

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