nicholsr Fri Jan 25 00:33:00 2008 UTC Modified files: /php-src/ext/standard/tests/array array_shuffle_basic.phpt Log: - Add a basic test for array_shuffle() http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/array/array_shuffle_basic.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/standard/tests/array/array_shuffle_basic.phpt diff -u /dev/null php-src/ext/standard/tests/array/array_shuffle_basic.phpt:1.2 --- /dev/null Fri Jan 25 00:33:00 2008 +++ php-src/ext/standard/tests/array/array_shuffle_basic.phpt Fri Jan 25 00:33:00 2008 @@ -0,0 +1,99 @@ +--TEST-- +array_shuffle(): Test return type and value for expected input +--FILE-- +<?php +/* +* proto bool shuffle ( array &$array ) +* Function is implemented in ext/standard/array.c +*/ +$numbers = range(1, 20); +echo "*** testing array_shuffle \n"; +$a = array(); +var_dump(shuffle($a)); +var_dump($a); +$a = array(1); +var_dump(shuffle($a)); +var_dump($a); +$a = array(2 => 1); +var_dump(shuffle($a)); +var_dump($a); +$a = array("a" => 1); +var_dump(shuffle($a)); +var_dump($a); +$a = array(array(1, 2, 3)); +var_dump(shuffle($a)); +var_dump($a); +$a = array(1, 1, 1, 1); +var_dump(shuffle($a)); +var_dump($a); +$arr1 = array(5 => 1, 6 => 2, 7 => 3, 8 => 9); +$arr2 = array(5 => 1, 6 => 2, 7 => 3, 8 => 9); +shuffle($arr1); +echo "this should be 0->...." . count(array_diff($arr1, $arr2)) . "\n"; +echo "this should be 4->...." . count(array_intersect($arr1, $arr2)) . "\n"; +$bigarray = range(1, 400); +shuffle($bigarray); +echo "this should be 400->...." . count($bigarray) . "\n"; +echo "*** testing pass by reference \n"; +$original = $bigarray; +shuffle($bigarray); +$diffarray = array_diff_assoc($original, $bigarray); +if (count($diffarray) < 350) { + // with 400 entries, the probability that 50 entries or more get the same + // key-> value association should be so close to zero it wont happen in the lifetime of the + // universe. + echo "shuffled array seems to be similar to original\n"; + var_dump($original); + var_dump($bigarray); +} else { + echo "test passed \n"; +} +?> +--EXPECT-- +*** testing array_shuffle +bool(true) +array(0) { +} +bool(true) +array(1) { + [0]=> + int(1) +} +bool(true) +array(1) { + [0]=> + int(1) +} +bool(true) +array(1) { + [0]=> + int(1) +} +bool(true) +array(1) { + [0]=> + array(3) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) + } +} +bool(true) +array(4) { + [0]=> + int(1) + [1]=> + int(1) + [2]=> + int(1) + [3]=> + int(1) +} +this should be 0->....0 +this should be 4->....4 +this should be 400->....400 +*** testing pass by reference +test passed \ No newline at end of file
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php