comparison tests/farray-array.t @ 586:f536f6ac44bf

Tests: Thorough unittests for farray_splice()
author Franz Glasner <fzglas.hg@dom66.de>
date Wed, 18 Sep 2024 03:18:15 +0200
parents 33427145b453
children dab62498e69c
comparison
equal deleted inserted replaced
585:33427145b453 586:f536f6ac44bf
113 $ farray_are_equal TEST1 TEST2 113 $ farray_are_equal TEST1 TEST2
114 [1] 114 [1]
115 $ farray_destroy TEST1 115 $ farray_destroy TEST1
116 $ farray_destroy TEST2 116 $ farray_destroy TEST2
117 $ check_no_array_artifacts 117 $ check_no_array_artifacts
118
119 Splicing
120 ========
121
122 Replace complete array
123
124 $ farray_create DELETED
125 $ farray_create INSERTED ' I 1 ' ' I 2 ' ' I 3 '
126 $ farray_create TEST ' v 1 ' ' v 2 ' ' v 3 ' ' v 4 ' ' v 5 ' ' v 6 ' ' v 7 ' ' v 8 ' ' v 9 '
127 $ farray_splice DELETED TEST 1 "" INSERTED
128 $ farray_debug DELETED
129 DEBUG: array `DELETED' has length 9
130 DEBUG: its contents:
131 DEBUG: 1: ` v 1 '
132 DEBUG: 2: ` v 2 '
133 DEBUG: 3: ` v 3 '
134 DEBUG: 4: ` v 4 '
135 DEBUG: 5: ` v 5 '
136 DEBUG: 6: ` v 6 '
137 DEBUG: 7: ` v 7 '
138 DEBUG: 8: ` v 8 '
139 DEBUG: 9: ` v 9 '
140 $ farray_debug TEST
141 DEBUG: array `TEST' has length 3
142 DEBUG: its contents:
143 DEBUG: 1: ` I 1 '
144 DEBUG: 2: ` I 2 '
145 DEBUG: 3: ` I 3 '
146 $ farray_destroy DELETED
147 $ farray_destroy INSERTED
148 $ farray_destroy TEST
149 $ check_no_array_artifacts
150
151 Insert at the beginning (prepend)
152
153 $ farray_create DELETED
154 $ farray_create INSERTED ' I 1 ' ' I 2 ' ' I 3 '
155 $ farray_create TEST ' v 1 ' ' v 2 ' ' v 3 ' ' v 4 ' ' v 5 ' ' v 6 ' ' v 7 ' ' v 8 ' ' v 9 '
156 $ farray_splice DELETED TEST 1 0 INSERTED
157 $ farray_debug DELETED
158 DEBUG: array `DELETED' has length 0
159 $ farray_debug TEST
160 DEBUG: array `TEST' has length 12
161 DEBUG: its contents:
162 DEBUG: 1: ` I 1 '
163 DEBUG: 2: ` I 2 '
164 DEBUG: 3: ` I 3 '
165 DEBUG: 4: ` v 1 '
166 DEBUG: 5: ` v 2 '
167 DEBUG: 6: ` v 3 '
168 DEBUG: 7: ` v 4 '
169 DEBUG: 8: ` v 5 '
170 DEBUG: 9: ` v 6 '
171 DEBUG: 10: ` v 7 '
172 DEBUG: 11: ` v 8 '
173 DEBUG: 12: ` v 9 '
174 $ farray_destroy DELETED
175 $ farray_destroy INSERTED
176 $ farray_destroy TEST
177 $ check_no_array_artifacts
178
179 Insert at the end (extend)
180
181 $ farray_create DELETED
182 $ farray_create INSERTED ' I 1 ' ' I 2 ' ' I 3 '
183 $ farray_create TEST ' v 1 ' ' v 2 ' ' v 3 ' ' v 4 ' ' v 5 ' ' v 6 ' ' v 7 ' ' v 8 ' ' v 9 '
184 $ farray_splice DELETED TEST "" 0 INSERTED
185 $ farray_debug DELETED
186 DEBUG: array `DELETED' has length 0
187 $ farray_debug TEST
188 DEBUG: array `TEST' has length 12
189 DEBUG: its contents:
190 DEBUG: 1: ` v 1 '
191 DEBUG: 2: ` v 2 '
192 DEBUG: 3: ` v 3 '
193 DEBUG: 4: ` v 4 '
194 DEBUG: 5: ` v 5 '
195 DEBUG: 6: ` v 6 '
196 DEBUG: 7: ` v 7 '
197 DEBUG: 8: ` v 8 '
198 DEBUG: 9: ` v 9 '
199 DEBUG: 10: ` I 1 '
200 DEBUG: 11: ` I 2 '
201 DEBUG: 12: ` I 3 '
202 $ farray_destroy DELETED
203 $ farray_destroy INSERTED
204 $ farray_destroy TEST
205 $ check_no_array_artifacts
206
207 Insert in the middle
208
209 $ farray_create DELETED
210 $ farray_create INSERTED ' I 1 ' ' I 2 ' ' I 3 '
211 $ farray_create TEST ' v 1 ' ' v 2 ' ' v 3 ' ' v 4 ' ' v 5 ' ' v 6 ' ' v 7 ' ' v 8 ' ' v 9 '
212 $ farray_splice DELETED TEST 4 0 INSERTED
213 $ farray_debug DELETED
214 DEBUG: array `DELETED' has length 0
215 $ farray_debug TEST
216 DEBUG: array `TEST' has length 12
217 DEBUG: its contents:
218 DEBUG: 1: ` v 1 '
219 DEBUG: 2: ` v 2 '
220 DEBUG: 3: ` v 3 '
221 DEBUG: 4: ` I 1 '
222 DEBUG: 5: ` I 2 '
223 DEBUG: 6: ` I 3 '
224 DEBUG: 7: ` v 4 '
225 DEBUG: 8: ` v 5 '
226 DEBUG: 9: ` v 6 '
227 DEBUG: 10: ` v 7 '
228 DEBUG: 11: ` v 8 '
229 DEBUG: 12: ` v 9 '
230 $ farray_destroy DELETED
231 $ farray_destroy INSERTED
232 $ farray_destroy TEST
233 $ check_no_array_artifacts
234
235 "Clear" (empty inserted)
236
237 $ farray_create DELETED
238 $ farray_create INSERTED
239 $ farray_create TEST ' v 1 ' ' v 2 ' ' v 3 ' ' v 4 ' ' v 5 ' ' v 6 ' ' v 7 ' ' v 8 ' ' v 9 '
240 $ farray_splice DELETED TEST 1 "" INSERTED
241 $ farray_debug DELETED
242 DEBUG: array `DELETED' has length 9
243 DEBUG: its contents:
244 DEBUG: 1: ` v 1 '
245 DEBUG: 2: ` v 2 '
246 DEBUG: 3: ` v 3 '
247 DEBUG: 4: ` v 4 '
248 DEBUG: 5: ` v 5 '
249 DEBUG: 6: ` v 6 '
250 DEBUG: 7: ` v 7 '
251 DEBUG: 8: ` v 8 '
252 DEBUG: 9: ` v 9 '
253 $ farray_debug TEST
254 DEBUG: array `TEST' has length 0
255 $ farray_destroy DELETED
256 $ farray_destroy INSERTED
257 $ farray_destroy TEST
258 $ check_no_array_artifacts
259
260 "Clear" (no inserted)
261
262 $ farray_create DELETED
263 $ farray_create TEST ' v 1 ' ' v 2 ' ' v 3 ' ' v 4 ' ' v 5 ' ' v 6 ' ' v 7 ' ' v 8 ' ' v 9 '
264 $ farray_splice DELETED TEST 1 ""
265 $ farray_debug DELETED
266 DEBUG: array `DELETED' has length 9
267 DEBUG: its contents:
268 DEBUG: 1: ` v 1 '
269 DEBUG: 2: ` v 2 '
270 DEBUG: 3: ` v 3 '
271 DEBUG: 4: ` v 4 '
272 DEBUG: 5: ` v 5 '
273 DEBUG: 6: ` v 6 '
274 DEBUG: 7: ` v 7 '
275 DEBUG: 8: ` v 8 '
276 DEBUG: 9: ` v 9 '
277 $ farray_debug TEST
278 DEBUG: array `TEST' has length 0
279 $ farray_destroy DELETED
280 $ farray_destroy TEST
281 $ check_no_array_artifacts
282
283 Cut out some part in the middle
284
285 $ farray_create DELETED
286 $ farray_create TEST ' v 1 ' ' v 2 ' ' v 3 ' ' v 4 ' ' v 5 ' ' v 6 ' ' v 7 ' ' v 8 ' ' v 9 '
287 $ farray_splice DELETED TEST 2 5
288 $ farray_debug DELETED
289 DEBUG: array `DELETED' has length 5
290 DEBUG: its contents:
291 DEBUG: 1: ` v 2 '
292 DEBUG: 2: ` v 3 '
293 DEBUG: 3: ` v 4 '
294 DEBUG: 4: ` v 5 '
295 DEBUG: 5: ` v 6 '
296 $ farray_debug TEST
297 DEBUG: array `TEST' has length 4
298 DEBUG: its contents:
299 DEBUG: 1: ` v 1 '
300 DEBUG: 2: ` v 7 '
301 DEBUG: 3: ` v 8 '
302 DEBUG: 4: ` v 9 '
303 $ farray_destroy DELETED
304 $ farray_destroy TEST
305 $ check_no_array_artifacts
306
307 Cut out some part from the beginning
308
309 $ farray_create DELETED
310 $ farray_create TEST ' v 1 ' ' v 2 ' ' v 3 ' ' v 4 ' ' v 5 ' ' v 6 ' ' v 7 ' ' v 8 ' ' v 9 '
311 $ farray_splice DELETED TEST 1 6
312 $ farray_debug DELETED
313 DEBUG: array `DELETED' has length 6
314 DEBUG: its contents:
315 DEBUG: 1: ` v 1 '
316 DEBUG: 2: ` v 2 '
317 DEBUG: 3: ` v 3 '
318 DEBUG: 4: ` v 4 '
319 DEBUG: 5: ` v 5 '
320 DEBUG: 6: ` v 6 '
321 $ farray_debug TEST
322 DEBUG: array `TEST' has length 3
323 DEBUG: its contents:
324 DEBUG: 1: ` v 7 '
325 DEBUG: 2: ` v 8 '
326 DEBUG: 3: ` v 9 '
327 $ farray_destroy DELETED
328 $ farray_destroy TEST
329 $ check_no_array_artifacts
330
331 Cut out some part at the end (1)
332
333 $ farray_create DELETED
334 $ farray_create TEST ' v 1 ' ' v 2 ' ' v 3 ' ' v 4 ' ' v 5 ' ' v 6 ' ' v 7 ' ' v 8 ' ' v 9 '
335 $ farray_splice DELETED TEST 0 1
336 $ farray_debug DELETED
337 DEBUG: array `DELETED' has length 1
338 DEBUG: its contents:
339 DEBUG: 1: ` v 9 '
340 $ farray_debug TEST
341 DEBUG: array `TEST' has length 8
342 DEBUG: its contents:
343 DEBUG: 1: ` v 1 '
344 DEBUG: 2: ` v 2 '
345 DEBUG: 3: ` v 3 '
346 DEBUG: 4: ` v 4 '
347 DEBUG: 5: ` v 5 '
348 DEBUG: 6: ` v 6 '
349 DEBUG: 7: ` v 7 '
350 DEBUG: 8: ` v 8 '
351 $ farray_destroy DELETED
352 $ farray_destroy TEST
353 $ check_no_array_artifacts
354
355 Cut out some part at the end (1)
356
357 $ farray_create DELETED
358 $ farray_create TEST ' v 1 ' ' v 2 ' ' v 3 ' ' v 4 ' ' v 5 ' ' v 6 ' ' v 7 ' ' v 8 ' ' v 9 '
359 $ farray_splice DELETED TEST -1 ""
360 $ farray_debug DELETED
361 DEBUG: array `DELETED' has length 2
362 DEBUG: its contents:
363 DEBUG: 1: ` v 8 '
364 DEBUG: 2: ` v 9 '
365 $ farray_debug TEST
366 DEBUG: array `TEST' has length 7
367 DEBUG: its contents:
368 DEBUG: 1: ` v 1 '
369 DEBUG: 2: ` v 2 '
370 DEBUG: 3: ` v 3 '
371 DEBUG: 4: ` v 4 '
372 DEBUG: 5: ` v 5 '
373 DEBUG: 6: ` v 6 '
374 DEBUG: 7: ` v 7 '
375 $ farray_destroy DELETED
376 $ farray_destroy TEST
377 $ check_no_array_artifacts
378
379 Splice at the beginning (shrink)
380
381 $ farray_create DELETED
382 $ farray_create INSERTED ' I 1 ' ' I 2 ' ' I 3 '
383 $ farray_create TEST ' v 1 ' ' v 2 ' ' v 3 ' ' v 4 ' ' v 5 ' ' v 6 ' ' v 7 ' ' v 8 ' ' v 9 '
384 $ farray_splice DELETED TEST 1 4 INSERTED
385 $ farray_debug DELETED
386 DEBUG: array `DELETED' has length 4
387 DEBUG: its contents:
388 DEBUG: 1: ` v 1 '
389 DEBUG: 2: ` v 2 '
390 DEBUG: 3: ` v 3 '
391 DEBUG: 4: ` v 4 '
392 $ farray_debug TEST
393 DEBUG: array `TEST' has length 8
394 DEBUG: its contents:
395 DEBUG: 1: ` I 1 '
396 DEBUG: 2: ` I 2 '
397 DEBUG: 3: ` I 3 '
398 DEBUG: 4: ` v 5 '
399 DEBUG: 5: ` v 6 '
400 DEBUG: 6: ` v 7 '
401 DEBUG: 7: ` v 8 '
402 DEBUG: 8: ` v 9 '
403 $ farray_destroy DELETED
404 $ farray_destroy INSERTED
405 $ farray_destroy TEST
406 $ check_no_array_artifacts
407
408 Splice at the end (shrink)
409
410 $ farray_create DELETED
411 $ farray_create INSERTED ' I 1 ' ' I 2 ' ' I 3 '
412 $ farray_create TEST ' v 1 ' ' v 2 ' ' v 3 ' ' v 4 ' ' v 5 ' ' v 6 ' ' v 7 ' ' v 8 ' ' v 9 '
413 $ farray_splice DELETED TEST -3 4 INSERTED
414 $ farray_debug DELETED
415 DEBUG: array `DELETED' has length 4
416 DEBUG: its contents:
417 DEBUG: 1: ` v 6 '
418 DEBUG: 2: ` v 7 '
419 DEBUG: 3: ` v 8 '
420 DEBUG: 4: ` v 9 '
421 $ farray_debug TEST
422 DEBUG: array `TEST' has length 8
423 DEBUG: its contents:
424 DEBUG: 1: ` v 1 '
425 DEBUG: 2: ` v 2 '
426 DEBUG: 3: ` v 3 '
427 DEBUG: 4: ` v 4 '
428 DEBUG: 5: ` v 5 '
429 DEBUG: 6: ` I 1 '
430 DEBUG: 7: ` I 2 '
431 DEBUG: 8: ` I 3 '
432 $ farray_destroy DELETED
433 $ farray_destroy INSERTED
434 $ farray_destroy TEST
435 $ check_no_array_artifacts
436
437 Splice in the middle (shrink)
438
439 $ farray_create DELETED
440 $ farray_create INSERTED ' I 1 ' ' I 2 ' ' I 3 '
441 $ farray_create TEST ' v 1 ' ' v 2 ' ' v 3 ' ' v 4 ' ' v 5 ' ' v 6 ' ' v 7 ' ' v 8 ' ' v 9 '
442 $ farray_splice DELETED TEST 3 4 INSERTED
443 $ farray_debug DELETED
444 DEBUG: array `DELETED' has length 4
445 DEBUG: its contents:
446 DEBUG: 1: ` v 3 '
447 DEBUG: 2: ` v 4 '
448 DEBUG: 3: ` v 5 '
449 DEBUG: 4: ` v 6 '
450 $ farray_debug TEST
451 DEBUG: array `TEST' has length 8
452 DEBUG: its contents:
453 DEBUG: 1: ` v 1 '
454 DEBUG: 2: ` v 2 '
455 DEBUG: 3: ` I 1 '
456 DEBUG: 4: ` I 2 '
457 DEBUG: 5: ` I 3 '
458 DEBUG: 6: ` v 7 '
459 DEBUG: 7: ` v 8 '
460 DEBUG: 8: ` v 9 '
461 $ farray_destroy DELETED
462 $ farray_destroy INSERTED
463 $ farray_destroy TEST
464 $ check_no_array_artifacts
465
466 Splice at the beginning (grow)
467
468 $ farray_create DELETED
469 $ farray_create INSERTED ' I 1 ' ' I 2 ' ' I 3 '
470 $ farray_create TEST ' v 1 ' ' v 2 ' ' v 3 ' ' v 4 ' ' v 5 ' ' v 6 ' ' v 7 ' ' v 8 ' ' v 9 '
471 $ farray_splice DELETED TEST 1 2 INSERTED
472 $ farray_debug DELETED
473 DEBUG: array `DELETED' has length 2
474 DEBUG: its contents:
475 DEBUG: 1: ` v 1 '
476 DEBUG: 2: ` v 2 '
477 $ farray_debug TEST
478 DEBUG: array `TEST' has length 10
479 DEBUG: its contents:
480 DEBUG: 1: ` I 1 '
481 DEBUG: 2: ` I 2 '
482 DEBUG: 3: ` I 3 '
483 DEBUG: 4: ` v 3 '
484 DEBUG: 5: ` v 4 '
485 DEBUG: 6: ` v 5 '
486 DEBUG: 7: ` v 6 '
487 DEBUG: 8: ` v 7 '
488 DEBUG: 9: ` v 8 '
489 DEBUG: 10: ` v 9 '
490 $ farray_destroy DELETED
491 $ farray_destroy INSERTED
492 $ farray_destroy TEST
493 $ check_no_array_artifacts
494
495 Splice at the end (grow)
496
497 $ farray_create DELETED
498 $ farray_create INSERTED ' I 1 ' ' I 2 ' ' I 3 '
499 $ farray_create TEST ' v 1 ' ' v 2 ' ' v 3 ' ' v 4 ' ' v 5 ' ' v 6 ' ' v 7 ' ' v 8 ' ' v 9 '
500 $ farray_splice DELETED TEST -1 2 INSERTED
501 $ farray_debug DELETED
502 DEBUG: array `DELETED' has length 2
503 DEBUG: its contents:
504 DEBUG: 1: ` v 8 '
505 DEBUG: 2: ` v 9 '
506 $ farray_debug TEST
507 DEBUG: array `TEST' has length 10
508 DEBUG: its contents:
509 DEBUG: 1: ` v 1 '
510 DEBUG: 2: ` v 2 '
511 DEBUG: 3: ` v 3 '
512 DEBUG: 4: ` v 4 '
513 DEBUG: 5: ` v 5 '
514 DEBUG: 6: ` v 6 '
515 DEBUG: 7: ` v 7 '
516 DEBUG: 8: ` I 1 '
517 DEBUG: 9: ` I 2 '
518 DEBUG: 10: ` I 3 '
519 $ farray_destroy DELETED
520 $ farray_destroy INSERTED
521 $ farray_destroy TEST
522 $ check_no_array_artifacts
523
524 Splice in the middle (grow)
525
526 $ farray_create DELETED
527 $ farray_create INSERTED ' I 1 ' ' I 2 ' ' I 3 '
528 $ farray_create TEST ' v 1 ' ' v 2 ' ' v 3 ' ' v 4 ' ' v 5 ' ' v 6 ' ' v 7 ' ' v 8 ' ' v 9 '
529 $ farray_splice DELETED TEST 3 2 INSERTED
530 $ farray_debug DELETED
531 DEBUG: array `DELETED' has length 2
532 DEBUG: its contents:
533 DEBUG: 1: ` v 3 '
534 DEBUG: 2: ` v 4 '
535 $ farray_debug TEST
536 DEBUG: array `TEST' has length 10
537 DEBUG: its contents:
538 DEBUG: 1: ` v 1 '
539 DEBUG: 2: ` v 2 '
540 DEBUG: 3: ` I 1 '
541 DEBUG: 4: ` I 2 '
542 DEBUG: 5: ` I 3 '
543 DEBUG: 6: ` v 5 '
544 DEBUG: 7: ` v 6 '
545 DEBUG: 8: ` v 7 '
546 DEBUG: 9: ` v 8 '
547 DEBUG: 10: ` v 9 '
548 $ farray_destroy DELETED
549 $ farray_destroy INSERTED
550 $ farray_destroy TEST
551 $ check_no_array_artifacts
552
553 Splice at the beginning (no length change)
554
555 $ farray_create DELETED
556 $ farray_create INSERTED ' I 1 ' ' I 2 ' ' I 3 '
557 $ farray_create TEST ' v 1 ' ' v 2 ' ' v 3 ' ' v 4 ' ' v 5 ' ' v 6 ' ' v 7 ' ' v 8 ' ' v 9 '
558 $ farray_splice DELETED TEST 1 3 INSERTED
559 $ farray_debug DELETED
560 DEBUG: array `DELETED' has length 3
561 DEBUG: its contents:
562 DEBUG: 1: ` v 1 '
563 DEBUG: 2: ` v 2 '
564 DEBUG: 3: ` v 3 '
565 $ farray_debug TEST
566 DEBUG: array `TEST' has length 9
567 DEBUG: its contents:
568 DEBUG: 1: ` I 1 '
569 DEBUG: 2: ` I 2 '
570 DEBUG: 3: ` I 3 '
571 DEBUG: 4: ` v 4 '
572 DEBUG: 5: ` v 5 '
573 DEBUG: 6: ` v 6 '
574 DEBUG: 7: ` v 7 '
575 DEBUG: 8: ` v 8 '
576 DEBUG: 9: ` v 9 '
577 $ farray_destroy DELETED
578 $ farray_destroy INSERTED
579 $ farray_destroy TEST
580 $ check_no_array_artifacts
581
582 Splice at the end (no length change)
583
584 $ farray_create DELETED
585 $ farray_create INSERTED ' I 1 ' ' I 2 ' ' I 3 '
586 $ farray_create TEST ' v 1 ' ' v 2 ' ' v 3 ' ' v 4 ' ' v 5 ' ' v 6 ' ' v 7 ' ' v 8 ' ' v 9 '
587 $ farray_splice DELETED TEST -2 3 INSERTED
588 $ farray_debug DELETED
589 DEBUG: array `DELETED' has length 3
590 DEBUG: its contents:
591 DEBUG: 1: ` v 7 '
592 DEBUG: 2: ` v 8 '
593 DEBUG: 3: ` v 9 '
594 $ farray_debug TEST
595 DEBUG: array `TEST' has length 9
596 DEBUG: its contents:
597 DEBUG: 1: ` v 1 '
598 DEBUG: 2: ` v 2 '
599 DEBUG: 3: ` v 3 '
600 DEBUG: 4: ` v 4 '
601 DEBUG: 5: ` v 5 '
602 DEBUG: 6: ` v 6 '
603 DEBUG: 7: ` I 1 '
604 DEBUG: 8: ` I 2 '
605 DEBUG: 9: ` I 3 '
606 $ farray_destroy DELETED
607 $ farray_destroy INSERTED
608 $ farray_destroy TEST
609 $ check_no_array_artifacts
610
611 Splice in the middle (no length change)
612
613 $ farray_create DELETED
614 $ farray_create INSERTED ' I 1 ' ' I 2 ' ' I 3 '
615 $ farray_create TEST ' v 1 ' ' v 2 ' ' v 3 ' ' v 4 ' ' v 5 ' ' v 6 ' ' v 7 ' ' v 8 ' ' v 9 '
616 $ farray_splice DELETED TEST 4 3 INSERTED
617 $ farray_debug DELETED
618 DEBUG: array `DELETED' has length 3
619 DEBUG: its contents:
620 DEBUG: 1: ` v 4 '
621 DEBUG: 2: ` v 5 '
622 DEBUG: 3: ` v 6 '
623 $ farray_debug TEST
624 DEBUG: array `TEST' has length 9
625 DEBUG: its contents:
626 DEBUG: 1: ` v 1 '
627 DEBUG: 2: ` v 2 '
628 DEBUG: 3: ` v 3 '
629 DEBUG: 4: ` I 1 '
630 DEBUG: 5: ` I 2 '
631 DEBUG: 6: ` I 3 '
632 DEBUG: 7: ` v 7 '
633 DEBUG: 8: ` v 8 '
634 DEBUG: 9: ` v 9 '
635 $ farray_destroy DELETED
636 $ farray_destroy INSERTED
637 $ farray_destroy TEST
638 $ check_no_array_artifacts