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

Reply via email to