diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2013-03-14 05:42:27 +0000 |
---|---|---|
committer | <> | 2013-04-03 16:25:08 +0000 |
commit | c4dd7a1a684490673e25aaf4fabec5df138854c4 (patch) | |
tree | 4d57c44caae4480efff02b90b9be86f44bf25409 /ext/standard/tests/array/array_intersect_1.phpt | |
download | php2-master.tar.gz |
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'ext/standard/tests/array/array_intersect_1.phpt')
-rw-r--r-- | ext/standard/tests/array/array_intersect_1.phpt | 364 |
1 files changed, 364 insertions, 0 deletions
diff --git a/ext/standard/tests/array/array_intersect_1.phpt b/ext/standard/tests/array/array_intersect_1.phpt new file mode 100644 index 0000000..41f2033 --- /dev/null +++ b/ext/standard/tests/array/array_intersect_1.phpt @@ -0,0 +1,364 @@ +--TEST-- +Test of the *intersect* bunch of functions (both assoc and non-assoc) +--FILE-- +<?php +error_reporting(E_ALL); +class cr { + private $priv_member; + public $public_member; + function cr($val) { + $this->priv_member = $val; + $this->public_member = $val; + } + static function comp_func_cr($a, $b) { + if ($a->priv_member === $b->priv_member) return 0; + return ($a->priv_member > $b->priv_member)? 1:-1; + } +} + +function comp_func($a, $b) { + if ($a === $b) return 0; + return ($a > $b)? 1:-1; + +} + +function comp_func_cr($a, $b) { + if ($a->public_member === $b->public_member) return 0; + return ($a->public_member > $b->public_member)? 1:-1; +} + +$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),); +$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr( 3), 1=> new cr(4), 2 => new cr(-15),); + +/* array_uintersect() */ +echo "begin ------------ array_uintersect() ---------------------------\n"; +echo '$a='.var_export($a,TRUE).";\n"; +echo '$b='.var_export($b,TRUE).";\n"; +echo 'var_dump(array_uintersect($a, $b, "comp_func_cr"));'."\n"; +var_dump(array_uintersect($a, $b, "comp_func_cr")); +echo "end ------------ array_uintersect() ---------------------------\n"; + +/* array_uintersect_assoc() */ +echo "begin ------------ array_uintersect_assoc() ---------------------\n"; +echo '$a='.var_export($a,TRUE).";\n"; +echo '$b='.var_export($b,TRUE).";\n"; +echo 'var_dump(array_uintersect_assoc($a, $b, "comp_func_cr"));'."\n"; +var_dump(array_uintersect_assoc($a, $b, "comp_func_cr")); +echo "end ------------ array_uintersect_assoc() ---------------------\n"; + +/* array_uintersect_uassoc() - with ordinary function */ +echo "begin ------------ array_uintersect_uassoc() with ordinary func -\n"; +echo '$a='.var_export($a,TRUE).";\n"; +echo '$b='.var_export($b,TRUE).";\n"; +echo 'var_dump(array_uintersect_uassoc($a, $b, "comp_func_cr", "comp_func"));'."\n"; +var_dump(array_uintersect_uassoc($a, $b, "comp_func_cr", "comp_func")); +echo "end ------------ array_uintersect_uassoc() with ordinary func -\n"; + +/* array_uintersect_uassoc() - by method call */ +echo "begin ------------ array_uintersect_uassoc() with method --------\n"; +echo '$a='.var_export($a,TRUE).";\n"; +echo '$b='.var_export($b,TRUE).";\n"; +echo 'var_dump(array_uintersect_uassoc($a, $b, array("cr", "comp_func_cr"), "comp_func"));'."\n"; +var_dump(array_uintersect_uassoc($a, $b, array("cr", "comp_func_cr"), "comp_func")); +echo "end ------------ array_uintersect_uassoc() with method --------\n"; +?> +--EXPECTF-- +begin ------------ array_uintersect() --------------------------- +$a=array ( + '0.1' => + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), + '0.5' => + cr::__set_state(array( + 'priv_member' => 12, + 'public_member' => 12, + )), + 0 => + cr::__set_state(array( + 'priv_member' => 23, + 'public_member' => 23, + )), + 1 => + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), + 2 => + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), +); +$b=array ( + '0.2' => + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), + '0.5' => + cr::__set_state(array( + 'priv_member' => 22, + 'public_member' => 22, + )), + 0 => + cr::__set_state(array( + 'priv_member' => 3, + 'public_member' => 3, + )), + 1 => + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), + 2 => + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), +); +var_dump(array_uintersect($a, $b, "comp_func_cr")); +array(3) { + ["0.1"]=> + object(cr)#%d (2) { + ["priv_member":"cr":private]=> + int(9) + ["public_member"]=> + int(9) + } + [1]=> + object(cr)#%d (2) { + ["priv_member":"cr":private]=> + int(4) + ["public_member"]=> + int(4) + } + [2]=> + object(cr)#%d (2) { + ["priv_member":"cr":private]=> + int(-15) + ["public_member"]=> + int(-15) + } +} +end ------------ array_uintersect() --------------------------- +begin ------------ array_uintersect_assoc() --------------------- +$a=array ( + '0.1' => + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), + '0.5' => + cr::__set_state(array( + 'priv_member' => 12, + 'public_member' => 12, + )), + 0 => + cr::__set_state(array( + 'priv_member' => 23, + 'public_member' => 23, + )), + 1 => + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), + 2 => + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), +); +$b=array ( + '0.2' => + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), + '0.5' => + cr::__set_state(array( + 'priv_member' => 22, + 'public_member' => 22, + )), + 0 => + cr::__set_state(array( + 'priv_member' => 3, + 'public_member' => 3, + )), + 1 => + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), + 2 => + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), +); +var_dump(array_uintersect_assoc($a, $b, "comp_func_cr")); +array(2) { + [1]=> + object(cr)#%d (2) { + ["priv_member":"cr":private]=> + int(4) + ["public_member"]=> + int(4) + } + [2]=> + object(cr)#%d (2) { + ["priv_member":"cr":private]=> + int(-15) + ["public_member"]=> + int(-15) + } +} +end ------------ array_uintersect_assoc() --------------------- +begin ------------ array_uintersect_uassoc() with ordinary func - +$a=array ( + '0.1' => + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), + '0.5' => + cr::__set_state(array( + 'priv_member' => 12, + 'public_member' => 12, + )), + 0 => + cr::__set_state(array( + 'priv_member' => 23, + 'public_member' => 23, + )), + 1 => + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), + 2 => + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), +); +$b=array ( + '0.2' => + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), + '0.5' => + cr::__set_state(array( + 'priv_member' => 22, + 'public_member' => 22, + )), + 0 => + cr::__set_state(array( + 'priv_member' => 3, + 'public_member' => 3, + )), + 1 => + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), + 2 => + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), +); +var_dump(array_uintersect_uassoc($a, $b, "comp_func_cr", "comp_func")); +array(2) { + [1]=> + object(cr)#%d (2) { + ["priv_member":"cr":private]=> + int(4) + ["public_member"]=> + int(4) + } + [2]=> + object(cr)#%d (2) { + ["priv_member":"cr":private]=> + int(-15) + ["public_member"]=> + int(-15) + } +} +end ------------ array_uintersect_uassoc() with ordinary func - +begin ------------ array_uintersect_uassoc() with method -------- +$a=array ( + '0.1' => + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), + '0.5' => + cr::__set_state(array( + 'priv_member' => 12, + 'public_member' => 12, + )), + 0 => + cr::__set_state(array( + 'priv_member' => 23, + 'public_member' => 23, + )), + 1 => + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), + 2 => + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), +); +$b=array ( + '0.2' => + cr::__set_state(array( + 'priv_member' => 9, + 'public_member' => 9, + )), + '0.5' => + cr::__set_state(array( + 'priv_member' => 22, + 'public_member' => 22, + )), + 0 => + cr::__set_state(array( + 'priv_member' => 3, + 'public_member' => 3, + )), + 1 => + cr::__set_state(array( + 'priv_member' => 4, + 'public_member' => 4, + )), + 2 => + cr::__set_state(array( + 'priv_member' => -15, + 'public_member' => -15, + )), +); +var_dump(array_uintersect_uassoc($a, $b, array("cr", "comp_func_cr"), "comp_func")); +array(2) { + [1]=> + object(cr)#%d (2) { + ["priv_member":"cr":private]=> + int(4) + ["public_member"]=> + int(4) + } + [2]=> + object(cr)#%d (2) { + ["priv_member":"cr":private]=> + int(-15) + ["public_member"]=> + int(-15) + } +} +end ------------ array_uintersect_uassoc() with method -------- |