]> granicus.if.org Git - php/commitdiff
new tests for array_map usage variations - string keys and references
authorRobert Nicholson <nicholsr@php.net>
Thu, 20 Dec 2007 11:18:34 +0000 (11:18 +0000)
committerRobert Nicholson <nicholsr@php.net>
Thu, 20 Dec 2007 11:18:34 +0000 (11:18 +0000)
ext/standard/tests/array/array_map_variation1.phpt [new file with mode: 0644]
ext/standard/tests/array/array_map_variation2.phpt [new file with mode: 0644]

diff --git a/ext/standard/tests/array/array_map_variation1.phpt b/ext/standard/tests/array/array_map_variation1.phpt
new file mode 100644 (file)
index 0000000..cd09be7
--- /dev/null
@@ -0,0 +1,56 @@
+--TEST--
+Test array_map() function : usage variations - string keys
+--FILE--
+<?php
+
+/* Prototype  : array array_map(mixed callback, array input1 [, array input2 ,...])
+ * Description: Applies the callback to the elements in given arrays.
+ * Source code: ext/standard/array.c
+*/
+
+
+
+echo "*** Testing array_map() : string keys ***\n";
+
+$arr = array("stringkey" => "value");
+function cb1 ($a) {return array ($a);};
+function cb2 ($a,$b) {return array ($a,$b);};
+var_dump( array_map("cb1", $arr));
+var_dump( array_map("cb2", $arr,$arr));
+var_dump( array_map(null,  $arr));
+var_dump( array_map(null, $arr, $arr));
+echo "Done";
+?>
+
+--EXPECT--
+*** Testing array_map() : string keys ***
+array(1) {
+  ["stringkey"]=>
+  array(1) {
+    [0]=>
+    string(5) "value"
+  }
+}
+array(1) {
+  [0]=>
+  array(2) {
+    [0]=>
+    string(5) "value"
+    [1]=>
+    string(5) "value"
+  }
+}
+array(1) {
+  ["stringkey"]=>
+  string(5) "value"
+}
+array(1) {
+  [0]=>
+  array(2) {
+    [0]=>
+    string(5) "value"
+    [1]=>
+    string(5) "value"
+  }
+}
+Done
\ No newline at end of file
diff --git a/ext/standard/tests/array/array_map_variation2.phpt b/ext/standard/tests/array/array_map_variation2.phpt
new file mode 100644 (file)
index 0000000..f283525
--- /dev/null
@@ -0,0 +1,273 @@
+--TEST--
+Test array_map() function : usage variations - references
+--FILE--
+<?php
+
+/* Prototype  : array array_map(mixed callback, array input1 [, array input2 ,...])
+ * Description: Applies the callback to the elements in given arrays.
+ * Source code: ext/standard/array.c
+*/
+
+echo "*** Testing array_map() : references ***\n";
+$arr = array("k1" => "v1","k2"=>"v2");
+$arr[]=&$arr["k1"];
+$arr[]=&$arr;
+function cb1 ($a) {var_dump ($a);return array ($a);};
+function cb2 (&$a) {var_dump ($a);return array (&$a);};
+var_dump( array_map("cb1", $arr));
+var_dump( array_map("cb2", $arr,$arr));
+var_dump( array_map(null,  $arr));
+var_dump( array_map(null, $arr, $arr));
+
+
+echo "Done";
+?>
+
+--EXPECT--
+*** Testing array_map() : references ***
+string(2) "v1"
+string(2) "v2"
+string(2) "v1"
+array(4) {
+  ["k1"]=>
+  &string(2) "v1"
+  ["k2"]=>
+  string(2) "v2"
+  [0]=>
+  &string(2) "v1"
+  [1]=>
+  &array(4) {
+    ["k1"]=>
+    &string(2) "v1"
+    ["k2"]=>
+    string(2) "v2"
+    [0]=>
+    &string(2) "v1"
+    [1]=>
+    &array(4) {
+      ["k1"]=>
+      &string(2) "v1"
+      ["k2"]=>
+      string(2) "v2"
+      [0]=>
+      &string(2) "v1"
+      [1]=>
+      *RECURSION*
+    }
+  }
+}
+array(4) {
+  ["k1"]=>
+  array(1) {
+    [0]=>
+    string(2) "v1"
+  }
+  ["k2"]=>
+  array(1) {
+    [0]=>
+    string(2) "v2"
+  }
+  [0]=>
+  array(1) {
+    [0]=>
+    string(2) "v1"
+  }
+  [1]=>
+  array(1) {
+    [0]=>
+    array(4) {
+      ["k1"]=>
+      &string(2) "v1"
+      ["k2"]=>
+      string(2) "v2"
+      [0]=>
+      &string(2) "v1"
+      [1]=>
+      &array(4) {
+        ["k1"]=>
+        &string(2) "v1"
+        ["k2"]=>
+        string(2) "v2"
+        [0]=>
+        &string(2) "v1"
+        [1]=>
+        &array(4) {
+          ["k1"]=>
+          &string(2) "v1"
+          ["k2"]=>
+          string(2) "v2"
+          [0]=>
+          &string(2) "v1"
+          [1]=>
+          *RECURSION*
+        }
+      }
+    }
+  }
+}
+string(2) "v1"
+string(2) "v2"
+string(2) "v1"
+array(4) {
+  ["k1"]=>
+  &string(2) "v1"
+  ["k2"]=>
+  string(2) "v2"
+  [0]=>
+  &string(2) "v1"
+  [1]=>
+  &array(4) {
+    ["k1"]=>
+    &string(2) "v1"
+    ["k2"]=>
+    string(2) "v2"
+    [0]=>
+    &string(2) "v1"
+    [1]=>
+    &array(4) {
+      ["k1"]=>
+      &string(2) "v1"
+      ["k2"]=>
+      string(2) "v2"
+      [0]=>
+      &string(2) "v1"
+      [1]=>
+      *RECURSION*
+    }
+  }
+}
+array(4) {
+  [0]=>
+  array(1) {
+    [0]=>
+    &string(2) "v1"
+  }
+  [1]=>
+  array(1) {
+    [0]=>
+    string(2) "v2"
+  }
+  [2]=>
+  array(1) {
+    [0]=>
+    &string(2) "v1"
+  }
+  [3]=>
+  array(1) {
+    [0]=>
+    &array(4) {
+      ["k1"]=>
+      &string(2) "v1"
+      ["k2"]=>
+      string(2) "v2"
+      [0]=>
+      &string(2) "v1"
+      [1]=>
+      &array(4) {
+        ["k1"]=>
+        &string(2) "v1"
+        ["k2"]=>
+        string(2) "v2"
+        [0]=>
+        &string(2) "v1"
+        [1]=>
+        *RECURSION*
+      }
+    }
+  }
+}
+array(4) {
+  ["k1"]=>
+  &string(2) "v1"
+  ["k2"]=>
+  string(2) "v2"
+  [0]=>
+  &string(2) "v1"
+  [1]=>
+  &array(4) {
+    ["k1"]=>
+    &string(2) "v1"
+    ["k2"]=>
+    string(2) "v2"
+    [0]=>
+    &string(2) "v1"
+    [1]=>
+    &array(4) {
+      ["k1"]=>
+      &string(2) "v1"
+      ["k2"]=>
+      string(2) "v2"
+      [0]=>
+      &string(2) "v1"
+      [1]=>
+      *RECURSION*
+    }
+  }
+}
+array(4) {
+  [0]=>
+  array(2) {
+    [0]=>
+    &string(2) "v1"
+    [1]=>
+    &string(2) "v1"
+  }
+  [1]=>
+  array(2) {
+    [0]=>
+    string(2) "v2"
+    [1]=>
+    string(2) "v2"
+  }
+  [2]=>
+  array(2) {
+    [0]=>
+    &string(2) "v1"
+    [1]=>
+    &string(2) "v1"
+  }
+  [3]=>
+  array(2) {
+    [0]=>
+    &array(4) {
+      ["k1"]=>
+      &string(2) "v1"
+      ["k2"]=>
+      string(2) "v2"
+      [0]=>
+      &string(2) "v1"
+      [1]=>
+      &array(4) {
+        ["k1"]=>
+        &string(2) "v1"
+        ["k2"]=>
+        string(2) "v2"
+        [0]=>
+        &string(2) "v1"
+        [1]=>
+        *RECURSION*
+      }
+    }
+    [1]=>
+    &array(4) {
+      ["k1"]=>
+      &string(2) "v1"
+      ["k2"]=>
+      string(2) "v2"
+      [0]=>
+      &string(2) "v1"
+      [1]=>
+      &array(4) {
+        ["k1"]=>
+        &string(2) "v1"
+        ["k2"]=>
+        string(2) "v2"
+        [0]=>
+        &string(2) "v1"
+        [1]=>
+        *RECURSION*
+      }
+    }
+  }
+}
+Done
\ No newline at end of file