summaryrefslogtreecommitdiff
path: root/ext/standard/tests/array/array_rand_variation4.phpt
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2013-03-14 05:42:27 +0000
committer <>2013-04-03 16:25:08 +0000
commitc4dd7a1a684490673e25aaf4fabec5df138854c4 (patch)
tree4d57c44caae4480efff02b90b9be86f44bf25409 /ext/standard/tests/array/array_rand_variation4.phpt
downloadphp2-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_rand_variation4.phpt')
-rw-r--r--ext/standard/tests/array/array_rand_variation4.phpt168
1 files changed, 168 insertions, 0 deletions
diff --git a/ext/standard/tests/array/array_rand_variation4.phpt b/ext/standard/tests/array/array_rand_variation4.phpt
new file mode 100644
index 0000000..72b6c55
--- /dev/null
+++ b/ext/standard/tests/array/array_rand_variation4.phpt
@@ -0,0 +1,168 @@
+--TEST--
+Test array_rand() function : usage variation - with associative arrays for 'input' parameter
+--FILE--
+<?php
+/* Prototype : mixed array_rand(array $input [, int $num_req])
+ * Description: Return key/keys for random entry/entries in the array
+ * Source code: ext/standard/array.c
+*/
+
+/*
+* Test behaviour of array_rand() function when associative array is passed to
+* the 'input' parameter in the function call
+*/
+
+echo "*** Testing array_rand() : with associative arrays ***\n";
+
+// initialise associative arrays
+$asso_arrays = array(
+
+ // array with numeric keys
+/*1*/ array(1 => 'one', 2 => 2, 1234567890 => 'big', -1 => 'negative key',
+ 2.3 => 'float key', 0 => "zero key", 0.2 => 'decimal key',
+ 2e2 => 'exp key1', -2e3 => 'negative exp key'),
+
+ // array with string keys
+ array('one' => 1, "two" => 2.0, "three" => 'three',
+ '12twelve' => 12.00, "" => 'empty string', " " => "space key"),
+
+ // array with hexa values as keys
+/*3*/ array(0xabc => 2748, 0x12f => '303', 0xff => "255", -0xff => "-255"),
+
+ // array with octal values as keys
+ array(0123 => 83, 0129 => 10, 010 => "8", -0348 => "-28", 0012 => '10'),
+
+ // array with bool values as keys
+ array(TRUE => '1', true => true, TrUe => "TRUE",
+ FALSE => '0', false => false, FaLsE => "FALSE"),
+
+ // array with special chars as keys
+/*6*/ array('##' => "key1", '&$r' => 'key2', '!' => "key3", '<>' =>'key4',
+ "NULL" => 'key5', "\n" => 'newline as key',
+ "\t" => "tab as key", "'" => 'single quote as key',
+ '"' => 'double quote as key', "\0" => "null char as key")
+);
+
+/* looping to test array_rand() function with different arrays having
+ * different types of keys
+*/
+$counter = 1;
+foreach($asso_arrays as $input) {
+ echo "\n-- Iteration $counter --\n";
+
+ // with default argument
+ echo"\nWith default argument\n";
+ var_dump( array_rand($input) );
+
+ // with default and optional arguments
+ echo"\nWith num_req = 1\n";
+ var_dump( array_rand($input, 1) ); // with $num_req=1
+ echo"\nWith num_req = 2\n";
+ var_dump( array_rand($input, 2) ); // with $num_req=2
+
+ $counter++;
+} // end of for loop
+
+
+echo "Done";
+?>
+--EXPECTREGEX--
+\*\*\* Testing array_rand\(\) : with associative arrays \*\*\*
+
+-- Iteration 1 --
+
+With default argument
+int\([012-][12.e]*[23e]*[34]*[5]*[6]*[7]*[8]*[9]*[0]*\)
+
+With num_req = 1
+int\([012-][12.e]*[23e]*[34]*[5]*[6]*[7]*[8]*[9]*[0]*\)
+
+With num_req = 2
+array\(2\) {
+ \[0\]=>
+ int\([012-][12.e]*[23e]*[34]*[5]*[6]*[7]*[8]*[9]*[0]*\)
+ \[1\]=>
+ int\([012-][12.e]*[23e]*[34]*[5]*[6]*[7]*[8]*[9]*[0]*\)
+}
+
+-- Iteration 2 --
+
+With default argument
+string\([0-9]*\) "[ot1 ]*[hnw2]*[eort]*[ew]*[e]*[l]*[v]*[e]*"
+
+With num_req = 1
+string\([0-9]*\) "[ot1 ]*[hnw2]*[eort]*[ew]*[e]*[l]*[v]*[e]*"
+
+With num_req = 2
+array\(2\) {
+ \[0\]=>
+ string\([0-9]*\) "[ot1 ]*[hnw2]*[eort]*[ew]*[e]*[l]*[v]*[e]*"
+ \[1\]=>
+ string\([0-9]*\) "[ot1 ]*[hnw2]*[eort]*[ew]*[e]*[l]*[v]*[e]*"
+}
+
+-- Iteration 3 --
+
+With default argument
+int\([23-]*[2570]*[345]*[58]*\)
+
+With num_req = 1
+int\([23-]*[2570]*[345]*[58]*\)
+
+With num_req = 2
+array\(2\) {
+ \[0\]=>
+ int\([23-]*[2570]*[345]*[58]*\)
+ \[1\]=>
+ int\([23-]*[2570]*[345]*[58]*\)
+}
+
+-- Iteration 4 --
+
+With default argument
+int\([18-]*[023]*[8]*\)
+
+With num_req = 1
+int\([18-]*[023]*[8]*\)
+
+With num_req = 2
+array\(2\) {
+ \[0\]=>
+ int\([18-]*[023]*[8]*\)
+ \[1\]=>
+ int\([18-]*[023]*[8]*\)
+}
+
+-- Iteration 5 --
+
+With default argument
+int\([01]\)
+
+With num_req = 1
+int\([01]\)
+
+With num_req = 2
+array\(2\) {
+ \[0\]=>
+ int\([01]\)
+ \[1\]=>
+ int\([01]\)
+}
+
+-- Iteration 6 --
+
+With default argument
+string\([0-9]*\) "[#&!N <\n\t'"\0]*[U#$>]*[rL]*[L]*"
+
+With num_req = 1
+string\([0-9]*\) "[#&!N <\n\t'"\0]*[U#$>]*[rL]*[L]*"
+
+With num_req = 2
+array\(2\) {
+ \[0\]=>
+ string\([0-9]*\) "[#&!N <\n\t'"\0]*[U#$>]*[rL]*[L]*"
+ \[1\]=>
+ string\([0-9]*\) "[#&!N <\n\t'"\0]*[U#$>]*[rL]*[L]*"
+}
+Done
+