smantoor Wed Oct 22 05:51:52 2008 UTC Added files: /php-src/ext/standard/tests/array array_diff_ukey_variation7.phpt array_diff_ukey_variation10.phpt array_diff_ukey_variation8.phpt array_diff_ukey_variation9.phpt array_diff_ukey_error.phpt array_diff_ukey_variation1.phpt array_diff_ukey_variation2.phpt array_diff_ukey_variation3.phpt array_diff_ukey_variation4.phpt array_diff_ukey_variation5.phpt array_diff_ukey_variation6.phpt Log: New PHP testcases for array_diff_ukey function
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/array/array_diff_ukey_variation7.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/array/array_diff_ukey_variation7.phpt +++ php-src/ext/standard/tests/array/array_diff_ukey_variation7.phpt --TEST-- Test array_diff_ukey() function : usage variation - Passing float indexed array --FILE-- <?php /* Prototype : array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func) * Description: Returns the entries of arr1 that have keys which are not present in any of the others arguments. * Source code: ext/standard/array.c */
echo "*** Testing array_diff_ukey() : usage variation ***\n"; // Initialise function arguments not being substituted (if any) $input_array = array(0 => '0', 10 => '10', -10 => '-10', 20 =>'20'); $float_indx_array = array(0.0 => '0.0', 10.5 => '10.5', -30.5 => '-30.5'); function key_compare_func($key1, $key2) { return strcasecmp($key1, $key2); } echo "\n-- Testing array_diff_ukey() function with float indexed array --\n"; var_dump( array_diff_ukey($float_indx_array, $input_array, 'key_compare_func') ); var_dump( array_diff_ukey($input_array, $float_indx_array, 'key_compare_func') ); ?> ===DONE=== --EXPECTF-- *** Testing array_diff_ukey() : usage variation *** -- Testing array_diff_ukey() function with float indexed array -- array(1) { [-30]=> unicode(5) "-30.5" } array(2) { [-10]=> unicode(3) "-10" [20]=> unicode(2) "20" } ===DONE=== http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/array/array_diff_ukey_variation10.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/array/array_diff_ukey_variation10.phpt +++ php-src/ext/standard/tests/array/array_diff_ukey_variation10.phpt --TEST-- Test array_diff_ukey() function : usage variation - Passing non-existing function name to callback --FILE-- <?php /* Prototype : array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func) * Description: Returns the entries of arr1 that have keys which are not present in any of the others arguments. * Source code: ext/standard/array.c */ echo "*** Testing array_diff_ukey() : usage variation ***\n"; //Initialize variables $array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red"); $array2 = array("a" => "green", "yellow", "red"); //function name within double quotes var_dump( array_diff_ukey($array1, $array1, "unknown_function") ); //function name within single quotes var_dump( array_diff_ukey($array1, $array1, 'unknown_function') ); //function name without quotes var_dump( array_diff_ukey($array1, $array1, unknown_function) ); ?> ===DONE=== --EXPECTF-- *** Testing array_diff_ukey() : usage variation *** Warning: array_diff_ukey() expects parameter 3 to be a valid callback, function 'unknown_function' not found or invalid function name in %s on line %d NULL Warning: array_diff_ukey() expects parameter 3 to be a valid callback, function 'unknown_function' not found or invalid function name in %s on line %d NULL Notice: Use of undefined constant unknown_function - assumed 'unknown_function' in %s on line %d Warning: array_diff_ukey() expects parameter 3 to be a valid callback, function 'unknown_function' not found or invalid function name in %s on line %d NULL ===DONE=== http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/array/array_diff_ukey_variation8.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/array/array_diff_ukey_variation8.phpt +++ php-src/ext/standard/tests/array/array_diff_ukey_variation8.phpt --TEST-- Test array_diff_ukey() function : usage variation - Passing boolean indexed array --FILE-- <?php /* Prototype : array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func) * Description: Returns the entries of arr1 that have keys which are not present in any of the others arguments. * Source code: ext/standard/array.c */ echo "*** Testing array_diff_ukey() : usage variation ***\n"; // Initialise function arguments not being substituted (if any) $input_array = array(0 => '0', 1 => '1', -10 => '-10', 'true' => 1, 'false' => 0); $boolean_indx_array = array(true => 'boolt', false => 'boolf', TRUE => 'boolT', FALSE => 'boolF'); function key_compare_func($key1, $key2) { return strcasecmp($key1, $key2); } echo "\n-- Testing array_diff_ukey() function with boolean indexed array --\n"; var_dump( array_diff_ukey($boolean_indx_array, $input_array, 'key_compare_func') ); var_dump( array_diff_ukey($input_array, $boolean_indx_array, 'key_compare_func') ); ?> ===DONE=== --EXPECTF-- *** Testing array_diff_ukey() : usage variation *** -- Testing array_diff_ukey() function with boolean indexed array -- array(0) { } array(3) { [-10]=> unicode(3) "-10" [u"true"]=> int(1) [u"false"]=> int(0) } ===DONE=== http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/array/array_diff_ukey_variation9.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/array/array_diff_ukey_variation9.phpt +++ php-src/ext/standard/tests/array/array_diff_ukey_variation9.phpt --TEST-- Test array_diff_ukey() function : usage variation - Passing null,unset and undefined variable indexed array --FILE-- <?php /* Prototype : array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func) * Description: Returns the entries of arr1 that have keys which are not present in any of the others arguments. * Source code: ext/standard/array.c */ echo "*** Testing array_diff_ukey() : usage variation ***\n"; // Initialise function arguments not being substituted (if any) $input_array = array(10 => '10', "" => 'empty'); //get an unset variable $unset_var = 10; unset ($unset_var); $input_arrays = array( 'null indexed' => array(NULL => 'null 1', null => 'null 2'), 'undefined indexed' => array(@$undefined_var => 'undefined'), 'unset indexed' => array(@$unset_var => 'unset'), ); foreach($input_arrays as $key =>$value) { echo "\n--$key--\n"; var_dump( array_diff_ukey($value, $input_array, 'strcasecmp') ); var_dump( array_diff_ukey($input_array, $value, 'strcasecmp') ); } ?> ===DONE=== --EXPECTF-- *** Testing array_diff_ukey() : usage variation *** --null indexed-- array(0) { } array(1) { [10]=> unicode(2) "10" } --undefined indexed-- array(0) { } array(1) { [10]=> unicode(2) "10" } --unset indexed-- array(0) { } array(1) { [10]=> unicode(2) "10" } ===DONE=== http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/array/array_diff_ukey_error.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/array/array_diff_ukey_error.phpt +++ php-src/ext/standard/tests/array/array_diff_ukey_error.phpt --TEST-- Test array_diff_ukey() function : error conditions --FILE-- <?php /* Prototype : array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func) * Description: Returns the entries of arr1 that have keys which are not present in any of the others arguments. * Source code: ext/standard/array.c */ echo "*** Testing array_diff_ukey() : error conditions ***\n"; // Initialize $array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4); $array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8); $extra_arg = 10; function key_compare_func($key1, $key2) { if ($key1 == $key2) { return 0; } return ($key1 > $key2)? 1:-1; } //Test array_diff_ukey with one more than the expected number of arguments echo "\n-- Testing array_diff_ukey() function with more than expected no. of arguments --\n"; var_dump( array_diff_ukey($array1, $array2, 'key_compare_func', $extra_arg) ); // Testing array_diff_ukey with one less than the expected number of arguments echo "\n-- Testing array_diff_ukey() function with less than expected no. of arguments --\n"; var_dump( array_diff_ukey($array1, $array2) ); // Testing array_diff_ukey with one less than the expected number of arguments echo "\n-- Testing array_diff_ukey() function with no arguments --\n"; var_dump( array_diff_ukey() ); ?> ===DONE=== --EXPECTF-- *** Testing array_diff_ukey() : error conditions *** -- Testing array_diff_ukey() function with more than expected no. of arguments -- Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d NULL -- Testing array_diff_ukey() function with less than expected no. of arguments -- Warning: array_diff_ukey(): at least 3 parameters are required, 2 given in %s on line %d NULL -- Testing array_diff_ukey() function with no arguments -- Warning: array_diff_ukey(): at least 3 parameters are required, 0 given in %s on line %d NULL ===DONE=== http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/array/array_diff_ukey_variation1.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/array/array_diff_ukey_variation1.phpt +++ php-src/ext/standard/tests/array/array_diff_ukey_variation1.phpt --TEST-- Test array_diff_ukey() function : usage variation - Passing unexpected values to first argument --FILE-- <?php /* Prototype : array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func) * Description: Returns the entries of arr1 that have keys which are not present in any of the others arguments. * Source code: ext/standard/array.c */ echo "*** Testing array_diff_ukey() : usage variation ***\n"; // Initialise function arguments not being substituted (if any) $array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8); $array3 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4); function key_compare_func($key1, $key2) { if ($key1 == $key2) { return 0; } return ($key1 > $key2)? 1:-1; } //get an unset variable $unset_var = 10; unset ($unset_var); //resource variable $fp = fopen(__FILE__, "r"); // define some classes class classWithToString { public function __toString() { return "Class A object"; } } class classWithoutToString { } // heredoc string $heredoc = <<<EOT hello world EOT; //array of values to iterate over $inputs = array( // int data 'int 0' => 0, 'int 1' => 1, 'int 12345' => 12345, 'int -12345' => -2345, // float data 'float 10.5' => 10.5, 'float -10.5' => -10.5, 'float 12.3456789000e10' => 12.3456789000e10, 'float -12.3456789000e10' => -12.3456789000e10, 'float .5' => .5, // null data 'uppercase NULL' => NULL, 'lowercase null' => null, // boolean data 'lowercase true' => true, 'lowercase false' =>false, 'uppercase TRUE' =>TRUE, 'uppercase FALSE' =>FALSE, // empty data 'empty string DQ' => "", 'empty string SQ' => '', // string data 'string DQ' => "string", 'string SQ' => 'string', 'mixed case string' => "sTrInG", 'heredoc' => $heredoc, // object data 'instance of classWithToString' => new classWithToString(), 'instance of classWithoutToString' => new classWithoutToString(), // undefined data 'undefined var' => @$undefined_var, // unset data 'unset var' => @$unset_var, // resource data 'resource' => $fp, ); // loop through each element of the array for arr1 foreach($inputs as $key =>$value) { echo "\n--$key--\n"; var_dump( array_diff_ukey($value, $array2, 'key_compare_func') ); var_dump( array_diff_ukey($value, $array2, $array3, 'key_compare_func') ); }; fclose($fp); ?> ===DONE=== --EXPECTF-- *** Testing array_diff_ukey() : usage variation *** --int 0-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL --int 1-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL --int 12345-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL --int -12345-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL --float 10.5-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL --float -10.5-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL --float 12.3456789000e10-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL --float -12.3456789000e10-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL --float .5-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL --uppercase NULL-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL --lowercase null-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL --lowercase true-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL --lowercase false-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL --uppercase TRUE-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL --uppercase FALSE-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL --empty string DQ-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL --empty string SQ-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL --string DQ-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL --string SQ-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL --mixed case string-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL --heredoc-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL --instance of classWithToString-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL --instance of classWithoutToString-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL --undefined var-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL --unset var-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL --resource-- Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #1 is not an array in %s on line %d NULL ===DONE=== http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/array/array_diff_ukey_variation2.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/array/array_diff_ukey_variation2.phpt +++ php-src/ext/standard/tests/array/array_diff_ukey_variation2.phpt --TEST-- Test array_diff_ukey() function : usage variation - Passing unexpected values to second argument --FILE-- <?php /* Prototype : array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func) * Description: Returns the entries of arr1 that have keys which are not present in any of the others arguments. * Source code: ext/standard/array.c */ echo "*** Testing array_diff_ukey() : usage variation ***\n"; // Initialize function arguments not being substituted (if any) $array1 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8); $array3 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4); //Initialize key_comp_func of type callback function key_compare_func($key1, $key2) { if ($key1 == $key2) { return 0; } return ($key1 > $key2)? 1:-1; } //get an unset variable $unset_var = 10; unset ($unset_var); //resource variable $fp = fopen(__FILE__, "r"); // define some classes class classWithToString { public function __toString() { return "Class A object"; } } class classWithoutToString { } // heredoc string $heredoc = <<<EOT hello world EOT; //array of values to iterate over $inputs = array( // int data 'int 0' => 0, 'int 1' => 1, 'int 12345' => 12345, 'int -12345' => -2345, // float data 'float 10.5' => 10.5, 'float -10.5' => -10.5, 'float 12.3456789000e10' => 12.3456789000e10, 'float -12.3456789000e10' => -12.3456789000e10, 'float .5' => .5, // null data 'uppercase NULL' => NULL, 'lowercase null' => null, // boolean data 'lowercase true' => true, 'lowercase false' =>false, 'uppercase TRUE' =>TRUE, 'uppercase FALSE' =>FALSE, // empty data 'empty string DQ' => "", 'empty string SQ' => '', // string data 'string DQ' => "string", 'string SQ' => 'string', 'mixed case string' => "sTrInG", 'heredoc' => $heredoc, // object data 'instance of classWithToString' => new classWithToString(), 'instance of classWithoutToString' => new classWithoutToString(), // undefined data 'undefined var' => @$undefined_var, // unset data 'unset var' => @$unset_var, // resource data 'resource' => $fp, ); // loop through each element of the array for arr2 foreach($inputs as $key =>$value) { echo "\n--$key--\n"; var_dump( array_diff_ukey($array1, $value, 'key_compare_func') ); var_dump( array_diff_ukey($array1, $value, $array3, 'key_compare_func') ); }; fclose($fp); ?> ===DONE=== --EXPECTF-- *** Testing array_diff_ukey() : usage variation *** --int 0-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL --int 1-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL --int 12345-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL --int -12345-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL --float 10.5-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL --float -10.5-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL --float 12.3456789000e10-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL --float -12.3456789000e10-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL --float .5-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL --uppercase NULL-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL --lowercase null-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL --lowercase true-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL --lowercase false-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL --uppercase TRUE-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL --uppercase FALSE-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL --empty string DQ-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL --empty string SQ-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL --string DQ-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL --string SQ-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL --mixed case string-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL --heredoc-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL --instance of classWithToString-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL --instance of classWithoutToString-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL --undefined var-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL --unset var-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL --resource-- Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL Warning: array_diff_ukey(): Argument #2 is not an array in %s on line %d NULL ===DONE=== http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/array/array_diff_ukey_variation3.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/array/array_diff_ukey_variation3.phpt +++ php-src/ext/standard/tests/array/array_diff_ukey_variation3.phpt --TEST-- Test array_diff_ukey() function : usage variation - Passing unexpected values to third optional argument --FILE-- <?php /* Prototype : array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func) * Description: Returns the entries of arr1 that have keys which are not present in any of the others arguments. * Source code: ext/standard/array.c */ echo "*** Testing array_diff_ukey() : usage variation ***\n"; // Initialise function arguments not being substituted (if any) $array1 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8); $array2 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4); function key_compare_func($key1, $key2) { if ($key1 == $key2) { return 0; } return ($key1 > $key2)? 1:-1; } //get an unset variable $unset_var = 10; unset ($unset_var); // resource variable $fp = fopen(__FILE__, "r"); // define some classes class classWithToString { public function __toString() { return "Class A object"; } } class classWithoutToString { } // heredoc string $heredoc = <<<EOT hello world EOT; //array of values to iterate over $inputs = array( // int data 'int 0' => 0, 'int 1' => 1, 'int 12345' => 12345, 'int -12345' => -2345, // float data 'float 10.5' => 10.5, 'float -10.5' => -10.5, 'float 12.3456789000e10' => 12.3456789000e10, 'float -12.3456789000e10' => -12.3456789000e10, 'float .5' => .5, // null data 'uppercase NULL' => NULL, 'lowercase null' => null, // boolean data 'lowercase true' => true, 'lowercase false' =>false, 'uppercase TRUE' =>TRUE, 'uppercase FALSE' =>FALSE, // empty data 'empty string DQ' => "", 'empty string SQ' => '', // string data 'string DQ' => "string", 'string SQ' => 'string', 'mixed case string' => "sTrInG", 'heredoc' => $heredoc, // object data 'instance of classWithToString' => new classWithToString(), 'instance of classWithoutToString' => new classWithoutToString(), // undefined data 'undefined var' => @$undefined_var, // unset data 'unset var' => @$unset_var, // resource data 'resource' => $fp, ); // loop through each element of the array for key_comp_func foreach($inputs as $key =>$value) { echo "\n--$key--\n"; var_dump( array_diff_ukey($array1, $array2, $value, 'key_compare_func') ); }; fclose($fp); ?> ===DONE=== --EXPECTF-- *** Testing array_diff_ukey() : usage variation *** --int 0-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL --int 1-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL --int 12345-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL --int -12345-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL --float 10.5-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL --float -10.5-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL --float 12.3456789000e10-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL --float -12.3456789000e10-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL --float .5-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL --uppercase NULL-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL --lowercase null-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL --lowercase true-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL --lowercase false-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL --uppercase TRUE-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL --uppercase FALSE-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL --empty string DQ-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL --empty string SQ-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL --string DQ-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL --string SQ-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL --mixed case string-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL --heredoc-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL --instance of classWithToString-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL --instance of classWithoutToString-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL --undefined var-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL --unset var-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL --resource-- Warning: array_diff_ukey(): Argument #3 is not an array in %s on line %d NULL ===DONE=== http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/array/array_diff_ukey_variation4.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/array/array_diff_ukey_variation4.phpt +++ php-src/ext/standard/tests/array/array_diff_ukey_variation4.phpt --TEST-- Test array_diff_ukey() function : usage variation - Passing unexpected values to callback argument --FILE-- <?php /* Prototype : array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func) * Description: Returns the entries of arr1 that have keys which are not present in any of the others arguments. * Source code: ext/standard/array.c */ echo "*** Testing array_diff_ukey() : usage variation ***\n"; // Initialise function arguments not being substituted (if any) $array1 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8); $array2 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4); $array3 = array(1, 2, 3, 4, 5); //get an unset variable $unset_var = 10; unset ($unset_var); //resource variable $fp = fopen(__FILE__, "r"); // define some classes class classWithToString { public function __toString() { return "Class A object"; } } class classWithoutToString { } // heredoc string $heredoc = <<<EOT hello world EOT; //array of values to iterate over $inputs = array( // int data 'int 0' => 0, 'int 1' => 1, 'int 12345' => 12345, 'int -12345' => -12345, // float data 'float 10.5' => 10.5, 'float -10.5' => -10.5, 'float 12.3456789000e10' => 12.3456789000e10, 'float -12.3456789000e10' => -12.3456789000e10, 'float .5' => .5, // null data 'uppercase NULL' => NULL, 'lowercase null' => null, // boolean data 'lowercase true' => true, 'lowercase false' =>false, 'uppercase TRUE' =>TRUE, 'uppercase FALSE' =>FALSE, // object data 'instance of classWithToString' => new classWithToString(), 'instance of classWithoutToString' => new classWithoutToString(), // undefined data 'undefined var' => @$undefined_var, // unset data 'unset var' => @$unset_var, // resource data 'resource' => $fp, ); // loop through each element of the array for ... foreach($inputs as $key =>$value) { echo "\n--$key--\n"; var_dump( array_diff_ukey($array1, $array2, $value) ); var_dump( array_diff_ukey($array1, $array2, $array3, $value) ); }; fclose($fp); ?> ===DONE=== --EXPECTF-- *** Testing array_diff_ukey() : usage variation *** --int 0-- Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d NULL Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d NULL --int 1-- Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d NULL Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d NULL --int 12345-- Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d NULL Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d NULL --int -12345-- Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d NULL Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d NULL --float 10.5-- Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d NULL Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d NULL --float -10.5-- Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d NULL Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d NULL --float 12.3456789000e10-- Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d NULL Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d NULL --float -12.3456789000e10-- Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d NULL Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d NULL --float .5-- Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d NULL Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d NULL --uppercase NULL-- Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d NULL Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d NULL --lowercase null-- Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d NULL Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d NULL --lowercase true-- Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d NULL Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d NULL --lowercase false-- Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d NULL Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d NULL --uppercase TRUE-- Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d NULL Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d NULL --uppercase FALSE-- Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d NULL Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d NULL --instance of classWithToString-- Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d NULL Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d NULL --instance of classWithoutToString-- Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d NULL Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d NULL --undefined var-- Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d NULL Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d NULL --unset var-- Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d NULL Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d NULL --resource-- Warning: array_diff_ukey() expects parameter 3 to be a valid callback, no array or string given in %s on line %d NULL Warning: array_diff_ukey() expects parameter 4 to be a valid callback, no array or string given in %s on line %d NULL ===DONE=== http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/array/array_diff_ukey_variation5.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/array/array_diff_ukey_variation5.phpt +++ php-src/ext/standard/tests/array/array_diff_ukey_variation5.phpt --TEST-- Test array_diff_ukey() function : usage variation - Passing multi-dimensional array --FILE-- <?php /* Prototype : array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func) * Description: Returns the entries of arr1 that have keys which are not present in any of the others arguments. User supplied function is used for comparing the keys. This function is like array_udiff() but works on the keys instead of the values. The associativity is preserved. * Source code: ext/standard/array.c */ echo "*** Testing array_diff_ukey() : usage variation ***\n"; // Initialise function arguments not being substituted (if any) $array1 = array( 'first' => array('blue' => 1, 'red' => 2), 'second' => array('yellow' => 7), 'third' => array(0 => 'zero'), ); $array2 = array ( 'first' => array('blue' => 1, 'red' => 2,), 'second' => array('cyan' => 8), 'fourth' => array(2 => 'two'), ); echo "\n-- Testing array_diff_ukey() function with multi dimensional array --\n"; var_dump( array_diff_ukey($array1, $array2, 'strcasecmp') ); var_dump( array_diff_ukey($array2, $array1, 'strcasecmp') ); ?> ===DONE=== --EXPECTF-- *** Testing array_diff_ukey() : usage variation *** -- Testing array_diff_ukey() function with multi dimensional array -- array(1) { [u"third"]=> array(1) { [0]=> unicode(4) "zero" } } array(1) { [u"fourth"]=> array(1) { [2]=> unicode(3) "two" } } ===DONE=== http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/array/array_diff_ukey_variation6.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/array/array_diff_ukey_variation6.phpt +++ php-src/ext/standard/tests/array/array_diff_ukey_variation6.phpt --TEST-- Test array_diff_ukey() function : usage variation - Passing integer indexed array --FILE-- <?php /* Prototype : array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func) * Description: Returns the entries of arr1 that have keys which are not present in any of the others arguments. * Source code: ext/standard/array.c */ echo "*** Testing array_diff_ukey() : usage variation ***\n"; // Initialise function arguments not being substituted (if any) $input_array = array(-07 => '-07', 0xA => '0xA'); $input_arrays = array( 'decimal indexed' => array(10 => '10', '-17' => '-17'), 'octal indexed' => array(-011 => '-011', 012 => '012'), 'hexa indexed' => array(0x12 => '0x12', -0x7 => '-0x7', ), ); function key_compare_func($key1, $key2) { return strcasecmp($key1, $key2); } foreach($input_arrays as $key =>$value) { echo "\n--$key--\n"; var_dump( array_diff_ukey($value, $input_array, 'key_compare_func') ); var_dump( array_diff_ukey($input_array, $value, 'key_compare_func') ); } ?> ===DONE=== --EXPECTF-- *** Testing array_diff_ukey() : usage variation *** --decimal indexed-- array(1) { [-17]=> unicode(3) "-17" } array(1) { [-7]=> unicode(3) "-07" } --octal indexed-- array(1) { [-9]=> unicode(4) "-011" } array(1) { [-7]=> unicode(3) "-07" } --hexa indexed-- array(1) { [18]=> unicode(4) "0x12" } array(1) { [10]=> unicode(3) "0xA" } ===DONE===
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php