2 // Copyright 2004-present Facebook. All Rights Reserved.
4 function test_append($orig) {
5 echo "Testing append....\n";
11 $v[] = new stdclass();
13 $v[] = [300, 200, 100];
16 $v[] = dict
['a' => 1, 'b' => 2, 'c' => 3];
17 $v[] = keyset
['a', 'b', 'c'];
22 function do_set($vec, $key, $val) {
25 echo "Set to $val succeeded\n";
26 } catch (Exception
$e) {
27 echo "Set to $val failed: \"", $e->getMessage(), "\"\n";
32 function test_set($orig) {
33 echo "Testing set....\n";
34 $v = do_set($orig, 0, "0 key value")
35 |
> do_set($$
, 3, "3 key value")
36 |
> do_set($$
, 999999999, "999999999 key value")
37 |
> do_set($$
, -1, "-1 key value")
38 |
> do_set($$
, "key1", "\"key1\" key value")
39 |
> do_set($$
, "0", "\"0\" key value")
40 |
> do_set($$
, "3", "\"3\" key value")
41 |
> do_set($$
, "", "\"\" key value")
42 |
> do_set($$
, false, "bool key value")
43 |
> do_set($$
, null, "null key value")
44 |
> do_set($$
, 1.23, "double key value")
45 |
> do_set($$
, new stdclass(), "object key value")
46 |
> do_set($$
, [1, 2, 3], "array key value")
47 |
> do_set($$
, vec
[1, 2, 3], "vec key value")
48 |
> do_set($$
, dict
['a' => 1, 'b' => 2, 'c' => 3], "dict key value")
49 |
> do_set($$
, keyset
['a', 'b', 'c'], "keyset key value");
54 function do_setop($vec, $key, $val) {
57 echo "Set-Op with \"$val\" succeeded\n";
58 } catch (Exception
$e) {
59 echo "Set-Op with \"$val\" failed: \"", $e->getMessage(), "\"\n";
64 function test_setop($orig) {
65 echo "Test set-op....\n";
66 $v = do_setop($orig, 0, " + 0 key value")
67 |
> do_setop($$
, 3, " + 3 key value")
68 |
> do_setop($$
, 999999999, " + 999999999 key value")
69 |
> do_setop($$
, -1, " + -1 key value")
70 |
> do_setop($$
, "key1", " + \"key1\" key value")
71 |
> do_setop($$
, "0", " + \"0\" key value")
72 |
> do_setop($$
, "3", " + \"3\" key value")
73 |
> do_setop($$
, "", " + \"\" key value")
74 |
> do_setop($$
, false, " + bool key value")
75 |
> do_setop($$
, null, " + null key value")
76 |
> do_setop($$
, 1.23, " + double key value")
77 |
> do_setop($$
, new stdclass(), " + object key value")
78 |
> do_setop($$
, [1, 2, 3], " + array key value")
79 |
> do_setop($$
, vec
[1, 2, 3], " + vec key value")
80 |
> do_setop($$
, dict
['a' => 1, 'b' => 2, 'c' => 3], " + dict key value")
81 |
> do_setop($$
, keyset
['a', 'b', 'c'], " + keyset key value");
86 function do_new_setop($vec, $val, $s) {
89 echo "New set-op with \"$s\" succeeded\n";
90 } catch (Exception
$e) {
91 echo "New set-op with \"$s\" failed: \"", $e->getMessage(), "\"\n";
96 function test_new_setop($orig) {
97 echo "Test new set-op....\n";
98 $v = do_new_setop($orig, 0, "+ 0 value")
99 |
> do_new_setop($$
, 3, "+ 3 value")
100 |
> do_new_setop($$
, 999999999, "+ 999999999 value")
101 |
> do_new_setop($$
, -1, "+ -1 value")
102 |
> do_new_setop($$
, "a", "+ \"a\" value")
103 |
> do_new_setop($$
, "key1", " + \"key1\" value")
104 |
> do_new_setop($$
, "0", " + \"0\" value")
105 |
> do_new_setop($$
, "3", " + \"3\" value")
106 |
> do_new_setop($$
, "", " + \"\" value")
107 |
> do_new_setop($$
, false, " + bool value")
108 |
> do_new_setop($$
, null, " + null value")
109 |
> do_new_setop($$
, 1.23, " + double value")
110 |
> do_new_setop($$
, new stdclass(), " + object value")
111 |
> do_new_setop($$
, [1, 2, 3], " + array value")
112 |
> do_new_setop($$
, vec
[1, 2, 3], " + vec value")
113 |
> do_new_setop($$
, dict
['a' => 1, 'b' => 2, 'c' => 3], " + dict value")
114 |
> do_new_setop($$
, keyset
['a', 'b', 'c'], " + keyset value");
119 function do_unset($vec, $key, $str) {
122 echo "Unset of $str succeeded\n";
123 } catch (Exception
$e) {
124 echo "Unset of $str failed: \"", $e->getMessage(), "\"\n";
129 function test_unset($orig) {
130 echo "Test unset....\n";
131 $vec1 = do_unset($orig, 0, "0 key value");
135 $vec2 = do_unset($orig, 3, "3 key value");
139 $vec3 = do_unset($orig, 999999999, "999999999 key value")
140 |
> do_unset($$
, -1, "-1 key value")
141 |
> do_unset($$
, "key1", "\"key1\" key value")
142 |
> do_unset($$
, "0", "\"0\" key value")
143 |
> do_unset($$
, "3", "\"3\" key value")
144 |
> do_unset($$
, "", "\"\" key value")
145 |
> do_unset($$
, false, "false key value")
146 |
> do_unset($$
, null, "null key value")
147 |
> do_unset($$
, 1.23, "double key value")
148 |
> do_unset($$
, new stdclass(), "object key value")
149 |
> do_unset($$
, [1, 2, 3], "array key value")
150 |
> do_unset($$
, vec
[1, 2, 3], "vec key value")
151 |
> do_unset($$
, dict
['a' => 1, 'b' => 2, 'c' => 3], "dict key value")
152 |
> do_unset($$
, keyset
['a', 'b', 'c'], "keyset key value");
168 test(vec
[1, 2, 3, 4]);
169 test(vec
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k']);