Annotation of embedaddon/php/ext/standard/tests/array/array_splice_variation3.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test array_splice() function : usage variations - lengths and offsets
3: --FILE--
4: <?php
5: /*
6: * proto array array_splice(array input, int offset [, int length [, array replacement]])
7: * Function is implemented in ext/standard/array.c
8: */
9:
10: echo "*** array_splice() function : usage variations - lengths and offsets\n";
11:
12:
13: function test_splice ($offset, $length)
14: {
15: echo " - No replacement\n";
16: $input_array=array(0,1,2,3,4,5);
17: var_dump (array_splice ($input_array,$offset,$length));
18: var_dump ($input_array);
19: echo " - With replacement\n";
20: $input_array=array(0,1,2,3,4,5);
21: var_dump (array_splice ($input_array,$offset,$length,array ("A","B","C")));
22: var_dump ($input_array);
23: }
24:
25: echo "absolute offset - absolute length - cut from beginning\n";
26: test_splice (0,2);
27: echo "absolute offset - absolute length - cut from middle\n";
28: test_splice (2,2);
29: echo "absolute offset - absolute length - cut from end\n";
30: test_splice (4,2);
31: echo "absolute offset - absolute length - attempt to cut past end\n";
32: test_splice (4,4);
33: echo "absolute offset - absolute length - cut everything\n";
34: test_splice (0,7);
35: echo "absolute offset - absolute length - cut nothing\n";
36: test_splice (3,0);
37:
38: echo "absolute offset - relative length - cut from beginning\n";
39: test_splice (0,-4);
40:
41: echo "absolute offset - relative length - cut from middle\n";
42: test_splice (2,-2);
43:
44: echo "absolute offset - relative length - attempt to cut form before beginning \n";
45: test_splice (0,-7);
46:
47: echo "absolute offset - relative length - cut nothing\n";
48: test_splice (2,-7);
49:
50: echo "relative offset - absolute length - cut from beginning\n";
51: test_splice (-6,2);
52:
53: echo "relative offset - absolute length - cut from middle\n";
54: test_splice (-4,2);
55: echo "relative offset - absolute length - cut from end\n";
56: test_splice (-2,2);
57: echo "relative offset - absolute length - attempt to cut past end\n";
58: test_splice (-2,4);
59: echo "relative offset - absolute length - cut everything\n";
60: test_splice (-6,6);
61: echo "relative offset - absolute length - cut nothing\n";
62: test_splice (-6,0);
63:
64: echo "relative offset - relative length - cut from beginning\n";
65: test_splice (-6,-4);
66:
67: echo "relative offset - relative length - cut from middle\n";
68: test_splice (-4,-2);
69:
70: echo "relative offset - relative length - cut nothing\n";
71: test_splice (-4,-7);
72: echo "Done\n";
73: ?>
74:
75: --EXPECT--
76: *** array_splice() function : usage variations - lengths and offsets
77: absolute offset - absolute length - cut from beginning
78: - No replacement
79: array(2) {
80: [0]=>
81: int(0)
82: [1]=>
83: int(1)
84: }
85: array(4) {
86: [0]=>
87: int(2)
88: [1]=>
89: int(3)
90: [2]=>
91: int(4)
92: [3]=>
93: int(5)
94: }
95: - With replacement
96: array(2) {
97: [0]=>
98: int(0)
99: [1]=>
100: int(1)
101: }
102: array(7) {
103: [0]=>
104: string(1) "A"
105: [1]=>
106: string(1) "B"
107: [2]=>
108: string(1) "C"
109: [3]=>
110: int(2)
111: [4]=>
112: int(3)
113: [5]=>
114: int(4)
115: [6]=>
116: int(5)
117: }
118: absolute offset - absolute length - cut from middle
119: - No replacement
120: array(2) {
121: [0]=>
122: int(2)
123: [1]=>
124: int(3)
125: }
126: array(4) {
127: [0]=>
128: int(0)
129: [1]=>
130: int(1)
131: [2]=>
132: int(4)
133: [3]=>
134: int(5)
135: }
136: - With replacement
137: array(2) {
138: [0]=>
139: int(2)
140: [1]=>
141: int(3)
142: }
143: array(7) {
144: [0]=>
145: int(0)
146: [1]=>
147: int(1)
148: [2]=>
149: string(1) "A"
150: [3]=>
151: string(1) "B"
152: [4]=>
153: string(1) "C"
154: [5]=>
155: int(4)
156: [6]=>
157: int(5)
158: }
159: absolute offset - absolute length - cut from end
160: - No replacement
161: array(2) {
162: [0]=>
163: int(4)
164: [1]=>
165: int(5)
166: }
167: array(4) {
168: [0]=>
169: int(0)
170: [1]=>
171: int(1)
172: [2]=>
173: int(2)
174: [3]=>
175: int(3)
176: }
177: - With replacement
178: array(2) {
179: [0]=>
180: int(4)
181: [1]=>
182: int(5)
183: }
184: array(7) {
185: [0]=>
186: int(0)
187: [1]=>
188: int(1)
189: [2]=>
190: int(2)
191: [3]=>
192: int(3)
193: [4]=>
194: string(1) "A"
195: [5]=>
196: string(1) "B"
197: [6]=>
198: string(1) "C"
199: }
200: absolute offset - absolute length - attempt to cut past end
201: - No replacement
202: array(2) {
203: [0]=>
204: int(4)
205: [1]=>
206: int(5)
207: }
208: array(4) {
209: [0]=>
210: int(0)
211: [1]=>
212: int(1)
213: [2]=>
214: int(2)
215: [3]=>
216: int(3)
217: }
218: - With replacement
219: array(2) {
220: [0]=>
221: int(4)
222: [1]=>
223: int(5)
224: }
225: array(7) {
226: [0]=>
227: int(0)
228: [1]=>
229: int(1)
230: [2]=>
231: int(2)
232: [3]=>
233: int(3)
234: [4]=>
235: string(1) "A"
236: [5]=>
237: string(1) "B"
238: [6]=>
239: string(1) "C"
240: }
241: absolute offset - absolute length - cut everything
242: - No replacement
243: array(6) {
244: [0]=>
245: int(0)
246: [1]=>
247: int(1)
248: [2]=>
249: int(2)
250: [3]=>
251: int(3)
252: [4]=>
253: int(4)
254: [5]=>
255: int(5)
256: }
257: array(0) {
258: }
259: - With replacement
260: array(6) {
261: [0]=>
262: int(0)
263: [1]=>
264: int(1)
265: [2]=>
266: int(2)
267: [3]=>
268: int(3)
269: [4]=>
270: int(4)
271: [5]=>
272: int(5)
273: }
274: array(3) {
275: [0]=>
276: string(1) "A"
277: [1]=>
278: string(1) "B"
279: [2]=>
280: string(1) "C"
281: }
282: absolute offset - absolute length - cut nothing
283: - No replacement
284: array(0) {
285: }
286: array(6) {
287: [0]=>
288: int(0)
289: [1]=>
290: int(1)
291: [2]=>
292: int(2)
293: [3]=>
294: int(3)
295: [4]=>
296: int(4)
297: [5]=>
298: int(5)
299: }
300: - With replacement
301: array(0) {
302: }
303: array(9) {
304: [0]=>
305: int(0)
306: [1]=>
307: int(1)
308: [2]=>
309: int(2)
310: [3]=>
311: string(1) "A"
312: [4]=>
313: string(1) "B"
314: [5]=>
315: string(1) "C"
316: [6]=>
317: int(3)
318: [7]=>
319: int(4)
320: [8]=>
321: int(5)
322: }
323: absolute offset - relative length - cut from beginning
324: - No replacement
325: array(2) {
326: [0]=>
327: int(0)
328: [1]=>
329: int(1)
330: }
331: array(4) {
332: [0]=>
333: int(2)
334: [1]=>
335: int(3)
336: [2]=>
337: int(4)
338: [3]=>
339: int(5)
340: }
341: - With replacement
342: array(2) {
343: [0]=>
344: int(0)
345: [1]=>
346: int(1)
347: }
348: array(7) {
349: [0]=>
350: string(1) "A"
351: [1]=>
352: string(1) "B"
353: [2]=>
354: string(1) "C"
355: [3]=>
356: int(2)
357: [4]=>
358: int(3)
359: [5]=>
360: int(4)
361: [6]=>
362: int(5)
363: }
364: absolute offset - relative length - cut from middle
365: - No replacement
366: array(2) {
367: [0]=>
368: int(2)
369: [1]=>
370: int(3)
371: }
372: array(4) {
373: [0]=>
374: int(0)
375: [1]=>
376: int(1)
377: [2]=>
378: int(4)
379: [3]=>
380: int(5)
381: }
382: - With replacement
383: array(2) {
384: [0]=>
385: int(2)
386: [1]=>
387: int(3)
388: }
389: array(7) {
390: [0]=>
391: int(0)
392: [1]=>
393: int(1)
394: [2]=>
395: string(1) "A"
396: [3]=>
397: string(1) "B"
398: [4]=>
399: string(1) "C"
400: [5]=>
401: int(4)
402: [6]=>
403: int(5)
404: }
405: absolute offset - relative length - attempt to cut form before beginning
406: - No replacement
407: array(0) {
408: }
409: array(6) {
410: [0]=>
411: int(0)
412: [1]=>
413: int(1)
414: [2]=>
415: int(2)
416: [3]=>
417: int(3)
418: [4]=>
419: int(4)
420: [5]=>
421: int(5)
422: }
423: - With replacement
424: array(0) {
425: }
426: array(9) {
427: [0]=>
428: string(1) "A"
429: [1]=>
430: string(1) "B"
431: [2]=>
432: string(1) "C"
433: [3]=>
434: int(0)
435: [4]=>
436: int(1)
437: [5]=>
438: int(2)
439: [6]=>
440: int(3)
441: [7]=>
442: int(4)
443: [8]=>
444: int(5)
445: }
446: absolute offset - relative length - cut nothing
447: - No replacement
448: array(0) {
449: }
450: array(6) {
451: [0]=>
452: int(0)
453: [1]=>
454: int(1)
455: [2]=>
456: int(2)
457: [3]=>
458: int(3)
459: [4]=>
460: int(4)
461: [5]=>
462: int(5)
463: }
464: - With replacement
465: array(0) {
466: }
467: array(9) {
468: [0]=>
469: int(0)
470: [1]=>
471: int(1)
472: [2]=>
473: string(1) "A"
474: [3]=>
475: string(1) "B"
476: [4]=>
477: string(1) "C"
478: [5]=>
479: int(2)
480: [6]=>
481: int(3)
482: [7]=>
483: int(4)
484: [8]=>
485: int(5)
486: }
487: relative offset - absolute length - cut from beginning
488: - No replacement
489: array(2) {
490: [0]=>
491: int(0)
492: [1]=>
493: int(1)
494: }
495: array(4) {
496: [0]=>
497: int(2)
498: [1]=>
499: int(3)
500: [2]=>
501: int(4)
502: [3]=>
503: int(5)
504: }
505: - With replacement
506: array(2) {
507: [0]=>
508: int(0)
509: [1]=>
510: int(1)
511: }
512: array(7) {
513: [0]=>
514: string(1) "A"
515: [1]=>
516: string(1) "B"
517: [2]=>
518: string(1) "C"
519: [3]=>
520: int(2)
521: [4]=>
522: int(3)
523: [5]=>
524: int(4)
525: [6]=>
526: int(5)
527: }
528: relative offset - absolute length - cut from middle
529: - No replacement
530: array(2) {
531: [0]=>
532: int(2)
533: [1]=>
534: int(3)
535: }
536: array(4) {
537: [0]=>
538: int(0)
539: [1]=>
540: int(1)
541: [2]=>
542: int(4)
543: [3]=>
544: int(5)
545: }
546: - With replacement
547: array(2) {
548: [0]=>
549: int(2)
550: [1]=>
551: int(3)
552: }
553: array(7) {
554: [0]=>
555: int(0)
556: [1]=>
557: int(1)
558: [2]=>
559: string(1) "A"
560: [3]=>
561: string(1) "B"
562: [4]=>
563: string(1) "C"
564: [5]=>
565: int(4)
566: [6]=>
567: int(5)
568: }
569: relative offset - absolute length - cut from end
570: - No replacement
571: array(2) {
572: [0]=>
573: int(4)
574: [1]=>
575: int(5)
576: }
577: array(4) {
578: [0]=>
579: int(0)
580: [1]=>
581: int(1)
582: [2]=>
583: int(2)
584: [3]=>
585: int(3)
586: }
587: - With replacement
588: array(2) {
589: [0]=>
590: int(4)
591: [1]=>
592: int(5)
593: }
594: array(7) {
595: [0]=>
596: int(0)
597: [1]=>
598: int(1)
599: [2]=>
600: int(2)
601: [3]=>
602: int(3)
603: [4]=>
604: string(1) "A"
605: [5]=>
606: string(1) "B"
607: [6]=>
608: string(1) "C"
609: }
610: relative offset - absolute length - attempt to cut past end
611: - No replacement
612: array(2) {
613: [0]=>
614: int(4)
615: [1]=>
616: int(5)
617: }
618: array(4) {
619: [0]=>
620: int(0)
621: [1]=>
622: int(1)
623: [2]=>
624: int(2)
625: [3]=>
626: int(3)
627: }
628: - With replacement
629: array(2) {
630: [0]=>
631: int(4)
632: [1]=>
633: int(5)
634: }
635: array(7) {
636: [0]=>
637: int(0)
638: [1]=>
639: int(1)
640: [2]=>
641: int(2)
642: [3]=>
643: int(3)
644: [4]=>
645: string(1) "A"
646: [5]=>
647: string(1) "B"
648: [6]=>
649: string(1) "C"
650: }
651: relative offset - absolute length - cut everything
652: - No replacement
653: array(6) {
654: [0]=>
655: int(0)
656: [1]=>
657: int(1)
658: [2]=>
659: int(2)
660: [3]=>
661: int(3)
662: [4]=>
663: int(4)
664: [5]=>
665: int(5)
666: }
667: array(0) {
668: }
669: - With replacement
670: array(6) {
671: [0]=>
672: int(0)
673: [1]=>
674: int(1)
675: [2]=>
676: int(2)
677: [3]=>
678: int(3)
679: [4]=>
680: int(4)
681: [5]=>
682: int(5)
683: }
684: array(3) {
685: [0]=>
686: string(1) "A"
687: [1]=>
688: string(1) "B"
689: [2]=>
690: string(1) "C"
691: }
692: relative offset - absolute length - cut nothing
693: - No replacement
694: array(0) {
695: }
696: array(6) {
697: [0]=>
698: int(0)
699: [1]=>
700: int(1)
701: [2]=>
702: int(2)
703: [3]=>
704: int(3)
705: [4]=>
706: int(4)
707: [5]=>
708: int(5)
709: }
710: - With replacement
711: array(0) {
712: }
713: array(9) {
714: [0]=>
715: string(1) "A"
716: [1]=>
717: string(1) "B"
718: [2]=>
719: string(1) "C"
720: [3]=>
721: int(0)
722: [4]=>
723: int(1)
724: [5]=>
725: int(2)
726: [6]=>
727: int(3)
728: [7]=>
729: int(4)
730: [8]=>
731: int(5)
732: }
733: relative offset - relative length - cut from beginning
734: - No replacement
735: array(2) {
736: [0]=>
737: int(0)
738: [1]=>
739: int(1)
740: }
741: array(4) {
742: [0]=>
743: int(2)
744: [1]=>
745: int(3)
746: [2]=>
747: int(4)
748: [3]=>
749: int(5)
750: }
751: - With replacement
752: array(2) {
753: [0]=>
754: int(0)
755: [1]=>
756: int(1)
757: }
758: array(7) {
759: [0]=>
760: string(1) "A"
761: [1]=>
762: string(1) "B"
763: [2]=>
764: string(1) "C"
765: [3]=>
766: int(2)
767: [4]=>
768: int(3)
769: [5]=>
770: int(4)
771: [6]=>
772: int(5)
773: }
774: relative offset - relative length - cut from middle
775: - No replacement
776: array(2) {
777: [0]=>
778: int(2)
779: [1]=>
780: int(3)
781: }
782: array(4) {
783: [0]=>
784: int(0)
785: [1]=>
786: int(1)
787: [2]=>
788: int(4)
789: [3]=>
790: int(5)
791: }
792: - With replacement
793: array(2) {
794: [0]=>
795: int(2)
796: [1]=>
797: int(3)
798: }
799: array(7) {
800: [0]=>
801: int(0)
802: [1]=>
803: int(1)
804: [2]=>
805: string(1) "A"
806: [3]=>
807: string(1) "B"
808: [4]=>
809: string(1) "C"
810: [5]=>
811: int(4)
812: [6]=>
813: int(5)
814: }
815: relative offset - relative length - cut nothing
816: - No replacement
817: array(0) {
818: }
819: array(6) {
820: [0]=>
821: int(0)
822: [1]=>
823: int(1)
824: [2]=>
825: int(2)
826: [3]=>
827: int(3)
828: [4]=>
829: int(4)
830: [5]=>
831: int(5)
832: }
833: - With replacement
834: array(0) {
835: }
836: array(9) {
837: [0]=>
838: int(0)
839: [1]=>
840: int(1)
841: [2]=>
842: string(1) "A"
843: [3]=>
844: string(1) "B"
845: [4]=>
846: string(1) "C"
847: [5]=>
848: int(2)
849: [6]=>
850: int(3)
851: [7]=>
852: int(4)
853: [8]=>
854: int(5)
855: }
856: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>