Annotation of embedaddon/php/ext/standard/tests/array/array_intersect_1.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Test of the *intersect* bunch of functions (both assoc and non-assoc)
                      3: --FILE--
                      4: <?php
                      5: error_reporting(E_ALL);
                      6: class cr {
                      7:        private $priv_member;
                      8:        public  $public_member;
                      9:        function cr($val) {
                     10:                $this->priv_member = $val;
                     11:                $this->public_member = $val;
                     12:        }
                     13:        static function comp_func_cr($a, $b) {
                     14:                if ($a->priv_member === $b->priv_member) return 0;
                     15:                return ($a->priv_member > $b->priv_member)? 1:-1;
                     16:        }
                     17: }
                     18: 
                     19: function comp_func($a, $b) {
                     20:        if ($a === $b) return 0;
                     21:        return ($a > $b)? 1:-1;
                     22: 
                     23: }
                     24: 
                     25: function comp_func_cr($a, $b) {
                     26:        if ($a->public_member === $b->public_member) return 0;
                     27:        return ($a->public_member > $b->public_member)? 1:-1;
                     28: }
                     29: 
                     30: $a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
                     31: $b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr( 3), 1=> new cr(4), 2 => new cr(-15),);
                     32: 
                     33: /* array_uintersect() */
                     34: echo "begin ------------ array_uintersect() ---------------------------\n";
                     35: echo '$a='.var_export($a,TRUE).";\n";
                     36: echo '$b='.var_export($b,TRUE).";\n";
                     37: echo 'var_dump(array_uintersect($a, $b, "comp_func_cr"));'."\n";
                     38: var_dump(array_uintersect($a, $b, "comp_func_cr"));
                     39: echo "end   ------------ array_uintersect() ---------------------------\n";
                     40: 
                     41: /* array_uintersect_assoc() */
                     42: echo "begin ------------ array_uintersect_assoc() ---------------------\n";
                     43: echo '$a='.var_export($a,TRUE).";\n";
                     44: echo '$b='.var_export($b,TRUE).";\n";
                     45: echo 'var_dump(array_uintersect_assoc($a, $b, "comp_func_cr"));'."\n";
                     46: var_dump(array_uintersect_assoc($a, $b, "comp_func_cr"));
                     47: echo "end   ------------ array_uintersect_assoc() ---------------------\n";
                     48: 
                     49: /* array_uintersect_uassoc() - with ordinary function */
                     50: echo "begin ------------ array_uintersect_uassoc() with ordinary func -\n";
                     51: echo '$a='.var_export($a,TRUE).";\n";
                     52: echo '$b='.var_export($b,TRUE).";\n";
                     53: echo 'var_dump(array_uintersect_uassoc($a, $b, "comp_func_cr", "comp_func"));'."\n";
                     54: var_dump(array_uintersect_uassoc($a, $b, "comp_func_cr", "comp_func"));
                     55: echo "end   ------------ array_uintersect_uassoc() with ordinary func -\n";
                     56: 
                     57: /* array_uintersect_uassoc() - by method call */
                     58: echo "begin ------------ array_uintersect_uassoc() with method --------\n";
                     59: echo '$a='.var_export($a,TRUE).";\n";
                     60: echo '$b='.var_export($b,TRUE).";\n";
                     61: echo 'var_dump(array_uintersect_uassoc($a, $b, array("cr", "comp_func_cr"), "comp_func"));'."\n";
                     62: var_dump(array_uintersect_uassoc($a, $b, array("cr", "comp_func_cr"), "comp_func"));
                     63: echo "end   ------------ array_uintersect_uassoc() with method --------\n";
                     64: ?>
                     65: --EXPECTF--
                     66: begin ------------ array_uintersect() ---------------------------
                     67: $a=array (
                     68:   '0.1' => 
                     69:   cr::__set_state(array(
                     70:      'priv_member' => 9,
                     71:      'public_member' => 9,
                     72:   )),
                     73:   '0.5' => 
                     74:   cr::__set_state(array(
                     75:      'priv_member' => 12,
                     76:      'public_member' => 12,
                     77:   )),
                     78:   0 => 
                     79:   cr::__set_state(array(
                     80:      'priv_member' => 23,
                     81:      'public_member' => 23,
                     82:   )),
                     83:   1 => 
                     84:   cr::__set_state(array(
                     85:      'priv_member' => 4,
                     86:      'public_member' => 4,
                     87:   )),
                     88:   2 => 
                     89:   cr::__set_state(array(
                     90:      'priv_member' => -15,
                     91:      'public_member' => -15,
                     92:   )),
                     93: );
                     94: $b=array (
                     95:   '0.2' => 
                     96:   cr::__set_state(array(
                     97:      'priv_member' => 9,
                     98:      'public_member' => 9,
                     99:   )),
                    100:   '0.5' => 
                    101:   cr::__set_state(array(
                    102:      'priv_member' => 22,
                    103:      'public_member' => 22,
                    104:   )),
                    105:   0 => 
                    106:   cr::__set_state(array(
                    107:      'priv_member' => 3,
                    108:      'public_member' => 3,
                    109:   )),
                    110:   1 => 
                    111:   cr::__set_state(array(
                    112:      'priv_member' => 4,
                    113:      'public_member' => 4,
                    114:   )),
                    115:   2 => 
                    116:   cr::__set_state(array(
                    117:      'priv_member' => -15,
                    118:      'public_member' => -15,
                    119:   )),
                    120: );
                    121: var_dump(array_uintersect($a, $b, "comp_func_cr"));
                    122: array(3) {
                    123:   ["0.1"]=>
                    124:   object(cr)#%d (2) {
                    125:     ["priv_member":"cr":private]=>
                    126:     int(9)
                    127:     ["public_member"]=>
                    128:     int(9)
                    129:   }
                    130:   [1]=>
                    131:   object(cr)#%d (2) {
                    132:     ["priv_member":"cr":private]=>
                    133:     int(4)
                    134:     ["public_member"]=>
                    135:     int(4)
                    136:   }
                    137:   [2]=>
                    138:   object(cr)#%d (2) {
                    139:     ["priv_member":"cr":private]=>
                    140:     int(-15)
                    141:     ["public_member"]=>
                    142:     int(-15)
                    143:   }
                    144: }
                    145: end   ------------ array_uintersect() ---------------------------
                    146: begin ------------ array_uintersect_assoc() ---------------------
                    147: $a=array (
                    148:   '0.1' => 
                    149:   cr::__set_state(array(
                    150:      'priv_member' => 9,
                    151:      'public_member' => 9,
                    152:   )),
                    153:   '0.5' => 
                    154:   cr::__set_state(array(
                    155:      'priv_member' => 12,
                    156:      'public_member' => 12,
                    157:   )),
                    158:   0 => 
                    159:   cr::__set_state(array(
                    160:      'priv_member' => 23,
                    161:      'public_member' => 23,
                    162:   )),
                    163:   1 => 
                    164:   cr::__set_state(array(
                    165:      'priv_member' => 4,
                    166:      'public_member' => 4,
                    167:   )),
                    168:   2 => 
                    169:   cr::__set_state(array(
                    170:      'priv_member' => -15,
                    171:      'public_member' => -15,
                    172:   )),
                    173: );
                    174: $b=array (
                    175:   '0.2' => 
                    176:   cr::__set_state(array(
                    177:      'priv_member' => 9,
                    178:      'public_member' => 9,
                    179:   )),
                    180:   '0.5' => 
                    181:   cr::__set_state(array(
                    182:      'priv_member' => 22,
                    183:      'public_member' => 22,
                    184:   )),
                    185:   0 => 
                    186:   cr::__set_state(array(
                    187:      'priv_member' => 3,
                    188:      'public_member' => 3,
                    189:   )),
                    190:   1 => 
                    191:   cr::__set_state(array(
                    192:      'priv_member' => 4,
                    193:      'public_member' => 4,
                    194:   )),
                    195:   2 => 
                    196:   cr::__set_state(array(
                    197:      'priv_member' => -15,
                    198:      'public_member' => -15,
                    199:   )),
                    200: );
                    201: var_dump(array_uintersect_assoc($a, $b, "comp_func_cr"));
                    202: array(2) {
                    203:   [1]=>
                    204:   object(cr)#%d (2) {
                    205:     ["priv_member":"cr":private]=>
                    206:     int(4)
                    207:     ["public_member"]=>
                    208:     int(4)
                    209:   }
                    210:   [2]=>
                    211:   object(cr)#%d (2) {
                    212:     ["priv_member":"cr":private]=>
                    213:     int(-15)
                    214:     ["public_member"]=>
                    215:     int(-15)
                    216:   }
                    217: }
                    218: end   ------------ array_uintersect_assoc() ---------------------
                    219: begin ------------ array_uintersect_uassoc() with ordinary func -
                    220: $a=array (
                    221:   '0.1' => 
                    222:   cr::__set_state(array(
                    223:      'priv_member' => 9,
                    224:      'public_member' => 9,
                    225:   )),
                    226:   '0.5' => 
                    227:   cr::__set_state(array(
                    228:      'priv_member' => 12,
                    229:      'public_member' => 12,
                    230:   )),
                    231:   0 => 
                    232:   cr::__set_state(array(
                    233:      'priv_member' => 23,
                    234:      'public_member' => 23,
                    235:   )),
                    236:   1 => 
                    237:   cr::__set_state(array(
                    238:      'priv_member' => 4,
                    239:      'public_member' => 4,
                    240:   )),
                    241:   2 => 
                    242:   cr::__set_state(array(
                    243:      'priv_member' => -15,
                    244:      'public_member' => -15,
                    245:   )),
                    246: );
                    247: $b=array (
                    248:   '0.2' => 
                    249:   cr::__set_state(array(
                    250:      'priv_member' => 9,
                    251:      'public_member' => 9,
                    252:   )),
                    253:   '0.5' => 
                    254:   cr::__set_state(array(
                    255:      'priv_member' => 22,
                    256:      'public_member' => 22,
                    257:   )),
                    258:   0 => 
                    259:   cr::__set_state(array(
                    260:      'priv_member' => 3,
                    261:      'public_member' => 3,
                    262:   )),
                    263:   1 => 
                    264:   cr::__set_state(array(
                    265:      'priv_member' => 4,
                    266:      'public_member' => 4,
                    267:   )),
                    268:   2 => 
                    269:   cr::__set_state(array(
                    270:      'priv_member' => -15,
                    271:      'public_member' => -15,
                    272:   )),
                    273: );
                    274: var_dump(array_uintersect_uassoc($a, $b, "comp_func_cr", "comp_func"));
                    275: array(2) {
                    276:   [1]=>
                    277:   object(cr)#%d (2) {
                    278:     ["priv_member":"cr":private]=>
                    279:     int(4)
                    280:     ["public_member"]=>
                    281:     int(4)
                    282:   }
                    283:   [2]=>
                    284:   object(cr)#%d (2) {
                    285:     ["priv_member":"cr":private]=>
                    286:     int(-15)
                    287:     ["public_member"]=>
                    288:     int(-15)
                    289:   }
                    290: }
                    291: end   ------------ array_uintersect_uassoc() with ordinary func -
                    292: begin ------------ array_uintersect_uassoc() with method --------
                    293: $a=array (
                    294:   '0.1' => 
                    295:   cr::__set_state(array(
                    296:      'priv_member' => 9,
                    297:      'public_member' => 9,
                    298:   )),
                    299:   '0.5' => 
                    300:   cr::__set_state(array(
                    301:      'priv_member' => 12,
                    302:      'public_member' => 12,
                    303:   )),
                    304:   0 => 
                    305:   cr::__set_state(array(
                    306:      'priv_member' => 23,
                    307:      'public_member' => 23,
                    308:   )),
                    309:   1 => 
                    310:   cr::__set_state(array(
                    311:      'priv_member' => 4,
                    312:      'public_member' => 4,
                    313:   )),
                    314:   2 => 
                    315:   cr::__set_state(array(
                    316:      'priv_member' => -15,
                    317:      'public_member' => -15,
                    318:   )),
                    319: );
                    320: $b=array (
                    321:   '0.2' => 
                    322:   cr::__set_state(array(
                    323:      'priv_member' => 9,
                    324:      'public_member' => 9,
                    325:   )),
                    326:   '0.5' => 
                    327:   cr::__set_state(array(
                    328:      'priv_member' => 22,
                    329:      'public_member' => 22,
                    330:   )),
                    331:   0 => 
                    332:   cr::__set_state(array(
                    333:      'priv_member' => 3,
                    334:      'public_member' => 3,
                    335:   )),
                    336:   1 => 
                    337:   cr::__set_state(array(
                    338:      'priv_member' => 4,
                    339:      'public_member' => 4,
                    340:   )),
                    341:   2 => 
                    342:   cr::__set_state(array(
                    343:      'priv_member' => -15,
                    344:      'public_member' => -15,
                    345:   )),
                    346: );
                    347: var_dump(array_uintersect_uassoc($a, $b, array("cr", "comp_func_cr"), "comp_func"));
                    348: array(2) {
                    349:   [1]=>
                    350:   object(cr)#%d (2) {
                    351:     ["priv_member":"cr":private]=>
                    352:     int(4)
                    353:     ["public_member"]=>
                    354:     int(4)
                    355:   }
                    356:   [2]=>
                    357:   object(cr)#%d (2) {
                    358:     ["priv_member":"cr":private]=>
                    359:     int(-15)
                    360:     ["public_member"]=>
                    361:     int(-15)
                    362:   }
                    363: }
                    364: end   ------------ array_uintersect_uassoc() with method --------

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