Annotation of embedaddon/php/ext/standard/tests/array/array_intersect_1.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test of the *intersect* bunch of functions (both assoc and non-assoc)
3: --FILE--
4: <?php
5: error_reporting(E_ALL);
6: class cr {
7: private $priv_member;
8: public $public_member;
9: function cr($val) {
10: $this->priv_member = $val;
11: $this->public_member = $val;
12: }
13: static function comp_func_cr($a, $b) {
14: if ($a->priv_member === $b->priv_member) return 0;
15: return ($a->priv_member > $b->priv_member)? 1:-1;
16: }
17: }
18:
19: function comp_func($a, $b) {
20: if ($a === $b) return 0;
21: return ($a > $b)? 1:-1;
22:
23: }
24:
25: function comp_func_cr($a, $b) {
26: if ($a->public_member === $b->public_member) return 0;
27: return ($a->public_member > $b->public_member)? 1:-1;
28: }
29:
30: $a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
31: $b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr( 3), 1=> new cr(4), 2 => new cr(-15),);
32:
33: /* array_uintersect() */
34: echo "begin ------------ array_uintersect() ---------------------------\n";
35: echo '$a='.var_export($a,TRUE).";\n";
36: echo '$b='.var_export($b,TRUE).";\n";
37: echo 'var_dump(array_uintersect($a, $b, "comp_func_cr"));'."\n";
38: var_dump(array_uintersect($a, $b, "comp_func_cr"));
39: echo "end ------------ array_uintersect() ---------------------------\n";
40:
41: /* array_uintersect_assoc() */
42: echo "begin ------------ array_uintersect_assoc() ---------------------\n";
43: echo '$a='.var_export($a,TRUE).";\n";
44: echo '$b='.var_export($b,TRUE).";\n";
45: echo 'var_dump(array_uintersect_assoc($a, $b, "comp_func_cr"));'."\n";
46: var_dump(array_uintersect_assoc($a, $b, "comp_func_cr"));
47: echo "end ------------ array_uintersect_assoc() ---------------------\n";
48:
49: /* array_uintersect_uassoc() - with ordinary function */
50: echo "begin ------------ array_uintersect_uassoc() with ordinary func -\n";
51: echo '$a='.var_export($a,TRUE).";\n";
52: echo '$b='.var_export($b,TRUE).";\n";
53: echo 'var_dump(array_uintersect_uassoc($a, $b, "comp_func_cr", "comp_func"));'."\n";
54: var_dump(array_uintersect_uassoc($a, $b, "comp_func_cr", "comp_func"));
55: echo "end ------------ array_uintersect_uassoc() with ordinary func -\n";
56:
57: /* array_uintersect_uassoc() - by method call */
58: echo "begin ------------ array_uintersect_uassoc() with method --------\n";
59: echo '$a='.var_export($a,TRUE).";\n";
60: echo '$b='.var_export($b,TRUE).";\n";
61: echo 'var_dump(array_uintersect_uassoc($a, $b, array("cr", "comp_func_cr"), "comp_func"));'."\n";
62: var_dump(array_uintersect_uassoc($a, $b, array("cr", "comp_func_cr"), "comp_func"));
63: echo "end ------------ array_uintersect_uassoc() with method --------\n";
64: ?>
65: --EXPECTF--
66: begin ------------ array_uintersect() ---------------------------
67: $a=array (
68: '0.1' =>
69: cr::__set_state(array(
70: 'priv_member' => 9,
71: 'public_member' => 9,
72: )),
73: '0.5' =>
74: cr::__set_state(array(
75: 'priv_member' => 12,
76: 'public_member' => 12,
77: )),
78: 0 =>
79: cr::__set_state(array(
80: 'priv_member' => 23,
81: 'public_member' => 23,
82: )),
83: 1 =>
84: cr::__set_state(array(
85: 'priv_member' => 4,
86: 'public_member' => 4,
87: )),
88: 2 =>
89: cr::__set_state(array(
90: 'priv_member' => -15,
91: 'public_member' => -15,
92: )),
93: );
94: $b=array (
95: '0.2' =>
96: cr::__set_state(array(
97: 'priv_member' => 9,
98: 'public_member' => 9,
99: )),
100: '0.5' =>
101: cr::__set_state(array(
102: 'priv_member' => 22,
103: 'public_member' => 22,
104: )),
105: 0 =>
106: cr::__set_state(array(
107: 'priv_member' => 3,
108: 'public_member' => 3,
109: )),
110: 1 =>
111: cr::__set_state(array(
112: 'priv_member' => 4,
113: 'public_member' => 4,
114: )),
115: 2 =>
116: cr::__set_state(array(
117: 'priv_member' => -15,
118: 'public_member' => -15,
119: )),
120: );
121: var_dump(array_uintersect($a, $b, "comp_func_cr"));
122: array(3) {
123: ["0.1"]=>
124: object(cr)#%d (2) {
125: ["priv_member":"cr":private]=>
126: int(9)
127: ["public_member"]=>
128: int(9)
129: }
130: [1]=>
131: object(cr)#%d (2) {
132: ["priv_member":"cr":private]=>
133: int(4)
134: ["public_member"]=>
135: int(4)
136: }
137: [2]=>
138: object(cr)#%d (2) {
139: ["priv_member":"cr":private]=>
140: int(-15)
141: ["public_member"]=>
142: int(-15)
143: }
144: }
145: end ------------ array_uintersect() ---------------------------
146: begin ------------ array_uintersect_assoc() ---------------------
147: $a=array (
148: '0.1' =>
149: cr::__set_state(array(
150: 'priv_member' => 9,
151: 'public_member' => 9,
152: )),
153: '0.5' =>
154: cr::__set_state(array(
155: 'priv_member' => 12,
156: 'public_member' => 12,
157: )),
158: 0 =>
159: cr::__set_state(array(
160: 'priv_member' => 23,
161: 'public_member' => 23,
162: )),
163: 1 =>
164: cr::__set_state(array(
165: 'priv_member' => 4,
166: 'public_member' => 4,
167: )),
168: 2 =>
169: cr::__set_state(array(
170: 'priv_member' => -15,
171: 'public_member' => -15,
172: )),
173: );
174: $b=array (
175: '0.2' =>
176: cr::__set_state(array(
177: 'priv_member' => 9,
178: 'public_member' => 9,
179: )),
180: '0.5' =>
181: cr::__set_state(array(
182: 'priv_member' => 22,
183: 'public_member' => 22,
184: )),
185: 0 =>
186: cr::__set_state(array(
187: 'priv_member' => 3,
188: 'public_member' => 3,
189: )),
190: 1 =>
191: cr::__set_state(array(
192: 'priv_member' => 4,
193: 'public_member' => 4,
194: )),
195: 2 =>
196: cr::__set_state(array(
197: 'priv_member' => -15,
198: 'public_member' => -15,
199: )),
200: );
201: var_dump(array_uintersect_assoc($a, $b, "comp_func_cr"));
202: array(2) {
203: [1]=>
204: object(cr)#%d (2) {
205: ["priv_member":"cr":private]=>
206: int(4)
207: ["public_member"]=>
208: int(4)
209: }
210: [2]=>
211: object(cr)#%d (2) {
212: ["priv_member":"cr":private]=>
213: int(-15)
214: ["public_member"]=>
215: int(-15)
216: }
217: }
218: end ------------ array_uintersect_assoc() ---------------------
219: begin ------------ array_uintersect_uassoc() with ordinary func -
220: $a=array (
221: '0.1' =>
222: cr::__set_state(array(
223: 'priv_member' => 9,
224: 'public_member' => 9,
225: )),
226: '0.5' =>
227: cr::__set_state(array(
228: 'priv_member' => 12,
229: 'public_member' => 12,
230: )),
231: 0 =>
232: cr::__set_state(array(
233: 'priv_member' => 23,
234: 'public_member' => 23,
235: )),
236: 1 =>
237: cr::__set_state(array(
238: 'priv_member' => 4,
239: 'public_member' => 4,
240: )),
241: 2 =>
242: cr::__set_state(array(
243: 'priv_member' => -15,
244: 'public_member' => -15,
245: )),
246: );
247: $b=array (
248: '0.2' =>
249: cr::__set_state(array(
250: 'priv_member' => 9,
251: 'public_member' => 9,
252: )),
253: '0.5' =>
254: cr::__set_state(array(
255: 'priv_member' => 22,
256: 'public_member' => 22,
257: )),
258: 0 =>
259: cr::__set_state(array(
260: 'priv_member' => 3,
261: 'public_member' => 3,
262: )),
263: 1 =>
264: cr::__set_state(array(
265: 'priv_member' => 4,
266: 'public_member' => 4,
267: )),
268: 2 =>
269: cr::__set_state(array(
270: 'priv_member' => -15,
271: 'public_member' => -15,
272: )),
273: );
274: var_dump(array_uintersect_uassoc($a, $b, "comp_func_cr", "comp_func"));
275: array(2) {
276: [1]=>
277: object(cr)#%d (2) {
278: ["priv_member":"cr":private]=>
279: int(4)
280: ["public_member"]=>
281: int(4)
282: }
283: [2]=>
284: object(cr)#%d (2) {
285: ["priv_member":"cr":private]=>
286: int(-15)
287: ["public_member"]=>
288: int(-15)
289: }
290: }
291: end ------------ array_uintersect_uassoc() with ordinary func -
292: begin ------------ array_uintersect_uassoc() with method --------
293: $a=array (
294: '0.1' =>
295: cr::__set_state(array(
296: 'priv_member' => 9,
297: 'public_member' => 9,
298: )),
299: '0.5' =>
300: cr::__set_state(array(
301: 'priv_member' => 12,
302: 'public_member' => 12,
303: )),
304: 0 =>
305: cr::__set_state(array(
306: 'priv_member' => 23,
307: 'public_member' => 23,
308: )),
309: 1 =>
310: cr::__set_state(array(
311: 'priv_member' => 4,
312: 'public_member' => 4,
313: )),
314: 2 =>
315: cr::__set_state(array(
316: 'priv_member' => -15,
317: 'public_member' => -15,
318: )),
319: );
320: $b=array (
321: '0.2' =>
322: cr::__set_state(array(
323: 'priv_member' => 9,
324: 'public_member' => 9,
325: )),
326: '0.5' =>
327: cr::__set_state(array(
328: 'priv_member' => 22,
329: 'public_member' => 22,
330: )),
331: 0 =>
332: cr::__set_state(array(
333: 'priv_member' => 3,
334: 'public_member' => 3,
335: )),
336: 1 =>
337: cr::__set_state(array(
338: 'priv_member' => 4,
339: 'public_member' => 4,
340: )),
341: 2 =>
342: cr::__set_state(array(
343: 'priv_member' => -15,
344: 'public_member' => -15,
345: )),
346: );
347: var_dump(array_uintersect_uassoc($a, $b, array("cr", "comp_func_cr"), "comp_func"));
348: array(2) {
349: [1]=>
350: object(cr)#%d (2) {
351: ["priv_member":"cr":private]=>
352: int(4)
353: ["public_member"]=>
354: int(4)
355: }
356: [2]=>
357: object(cr)#%d (2) {
358: ["priv_member":"cr":private]=>
359: int(-15)
360: ["public_member"]=>
361: int(-15)
362: }
363: }
364: end ------------ array_uintersect_uassoc() with method --------
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>