Mercurial > hgrepos > FreeBSD > ports > sysutils > local-bsdtools
annotate tests/farray-alist.t @ 723:a97ec3f07bdb
farray.sh: REFACTOR: More flexible metadata retrieval.
Using an array or alist variable name or token value (with prefix) is now
supported in every function.
This is possible because the value prefixes contain questin marks (?) which
are not allowed in shell variable names.
This again is a major precondition for recursive data structures
(arrays/alists in arrays/alists).
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Sat, 05 Oct 2024 21:55:55 +0200 |
| parents | b2757e72b517 |
| children | 3adb26525b19 |
| rev | line source |
|---|---|
|
604
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
1 Basic tests of farray.sh's falist_XXX functions |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
2 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
3 Shell is /bin/sh. |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
4 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
5 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
6 Setup |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
7 ===== |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
8 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
9 $ set -u |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
10 $ . "${TESTDIR}/testsetup.sh" |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
11 $ _p_datadir="${TESTDIR}/../share/local-bsdtools" |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
12 $ . "${_p_datadir}/farray.sh" |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
13 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
14 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
15 Basic Creation and Destruction |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
16 ============================== |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
17 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
18 Create an empty alist |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
19 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
20 $ falist_create LIST |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
21 $ falist_length _i LIST |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
22 $ echo "$_i" |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
23 0 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
24 $ test "${_i}" -eq 0 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
25 $ falist_print_length LIST |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
26 0 (no-eol) |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
27 |
|
651
57ee25cec0dd
farray.sh: farray_istrue() and falist_istrue(): truth tests for arrays and alists.
Franz Glasner <fzglas.hg@dom66.de>
parents:
615
diff
changeset
|
28 $ falist_istrue LIST |
|
57ee25cec0dd
farray.sh: farray_istrue() and falist_istrue(): truth tests for arrays and alists.
Franz Glasner <fzglas.hg@dom66.de>
parents:
615
diff
changeset
|
29 [1] |
|
604
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
30 $ falist_debug LIST |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
31 DEBUG: alist `LIST' has length 0 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
32 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
33 $ falist_destroy LIST |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
34 $ ( falist_destroy LIST ) |
|
716
36d953791e0c
farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents:
651
diff
changeset
|
35 ERROR: object `LIST' not created properly: token empty |
|
604
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
36 [1] |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
37 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
38 $ check_no_alist_artifacts |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
39 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
40 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
41 Clear |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
42 ===== |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
43 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
44 $ falist_create LIST |
|
651
57ee25cec0dd
farray.sh: farray_istrue() and falist_istrue(): truth tests for arrays and alists.
Franz Glasner <fzglas.hg@dom66.de>
parents:
615
diff
changeset
|
45 $ falist_istrue LIST |
|
57ee25cec0dd
farray.sh: farray_istrue() and falist_istrue(): truth tests for arrays and alists.
Franz Glasner <fzglas.hg@dom66.de>
parents:
615
diff
changeset
|
46 [1] |
|
604
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
47 $ falist_set LIST K1 V1 |
|
651
57ee25cec0dd
farray.sh: farray_istrue() and falist_istrue(): truth tests for arrays and alists.
Franz Glasner <fzglas.hg@dom66.de>
parents:
615
diff
changeset
|
48 $ falist_istrue LIST |
|
604
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
49 $ falist_set LIST K2 V2 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
50 $ falist_debug LIST |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
51 DEBUG: alist `LIST' has length 2 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
52 DEBUG: `K1' -> `V1' |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
53 DEBUG: `K2' -> `V2' |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
54 $ falist_length _i LIST |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
55 $ echo "$_i" |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
56 2 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
57 $ falist_print_length LIST |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
58 2 (no-eol) |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
59 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
60 $ falist_clear LIST |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
61 $ falist_length _i LIST |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
62 $ echo "$_i" |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
63 0 |
|
651
57ee25cec0dd
farray.sh: farray_istrue() and falist_istrue(): truth tests for arrays and alists.
Franz Glasner <fzglas.hg@dom66.de>
parents:
615
diff
changeset
|
64 $ falist_istrue LIST |
|
57ee25cec0dd
farray.sh: farray_istrue() and falist_istrue(): truth tests for arrays and alists.
Franz Glasner <fzglas.hg@dom66.de>
parents:
615
diff
changeset
|
65 [1] |
|
604
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
66 $ falist_print_length LIST |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
67 0 (no-eol) |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
68 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
69 $ falist_destroy LIST |
|
651
57ee25cec0dd
farray.sh: farray_istrue() and falist_istrue(): truth tests for arrays and alists.
Franz Glasner <fzglas.hg@dom66.de>
parents:
615
diff
changeset
|
70 $ falist_istrue LIST |
|
716
36d953791e0c
farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents:
651
diff
changeset
|
71 ERROR: object `LIST' not created properly: token empty |
|
651
57ee25cec0dd
farray.sh: farray_istrue() and falist_istrue(): truth tests for arrays and alists.
Franz Glasner <fzglas.hg@dom66.de>
parents:
615
diff
changeset
|
72 [1] |
|
604
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
73 $ check_no_alist_artifacts |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
74 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
75 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
76 Get / Set / Contains |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
77 ==================== |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
78 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
79 $ falist_create LIST |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
80 $ falist_set LIST K1 V1 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
81 $ falist_set LIST K2 V2 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
82 $ falist_debug LIST |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
83 DEBUG: alist `LIST' has length 2 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
84 DEBUG: `K1' -> `V1' |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
85 DEBUG: `K2' -> `V2' |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
86 $ falist_length _i LIST |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
87 $ echo "$_i" |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
88 2 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
89 $ falist_print_length LIST |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
90 2 (no-eol) |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
91 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
92 $ falist_set LIST K2 "V2 2" |
|
718
2502e077d5e9
farray.sh: Implement "falist_set_unique()" that does not overwrite existing key-value pairs
Franz Glasner <fzglas.hg@dom66.de>
parents:
717
diff
changeset
|
93 $ falist_set_unique LIST K2 "V2 duplicate" |
|
2502e077d5e9
farray.sh: Implement "falist_set_unique()" that does not overwrite existing key-value pairs
Franz Glasner <fzglas.hg@dom66.de>
parents:
717
diff
changeset
|
94 [1] |
|
604
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
95 $ falist_set LIST K3 $'" 111222333" \\\'444555 ' # ' |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
96 $ falist_debug LIST |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
97 DEBUG: alist `LIST' has length 3 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
98 DEBUG: `K1' -> `V1' |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
99 DEBUG: `K2' -> `V2 2' |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
100 DEBUG: `K3' -> `" 111222333" \'444555 ' |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
101 $ falist_length _i LIST |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
102 $ echo "$_i" |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
103 3 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
104 $ falist_print_length LIST |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
105 3 (no-eol) |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
106 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
107 $ falist_contains LIST K1 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
108 $ falist_contains LIST K |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
109 [1] |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
110 $ falist_get _var LIST K2 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
111 $ echo "$_var" |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
112 V2 2 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
113 $ falist_tryget _var LIST K1 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
114 $ echo "$_var" |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
115 V1 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
116 $ falist_tryget _i LIST K |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
117 [1] |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
118 $ _var="$(falist_print_length NON_EXISTING_LIST)" |
|
716
36d953791e0c
farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents:
651
diff
changeset
|
119 ERROR: object `NON_EXISTING_LIST' not created properly: token empty |
|
604
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
120 $ echo "${_var}" |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
121 -1 |
|
718
2502e077d5e9
farray.sh: Implement "falist_set_unique()" that does not overwrite existing key-value pairs
Franz Glasner <fzglas.hg@dom66.de>
parents:
717
diff
changeset
|
122 $ falist_set_unique LIST K4 "V4" |
|
2502e077d5e9
farray.sh: Implement "falist_set_unique()" that does not overwrite existing key-value pairs
Franz Glasner <fzglas.hg@dom66.de>
parents:
717
diff
changeset
|
123 $ falist_debug LIST |
|
2502e077d5e9
farray.sh: Implement "falist_set_unique()" that does not overwrite existing key-value pairs
Franz Glasner <fzglas.hg@dom66.de>
parents:
717
diff
changeset
|
124 DEBUG: alist `LIST' has length 4 |
|
2502e077d5e9
farray.sh: Implement "falist_set_unique()" that does not overwrite existing key-value pairs
Franz Glasner <fzglas.hg@dom66.de>
parents:
717
diff
changeset
|
125 DEBUG: `K1' -> `V1' |
|
2502e077d5e9
farray.sh: Implement "falist_set_unique()" that does not overwrite existing key-value pairs
Franz Glasner <fzglas.hg@dom66.de>
parents:
717
diff
changeset
|
126 DEBUG: `K2' -> `V2 2' |
|
2502e077d5e9
farray.sh: Implement "falist_set_unique()" that does not overwrite existing key-value pairs
Franz Glasner <fzglas.hg@dom66.de>
parents:
717
diff
changeset
|
127 DEBUG: `K3' -> `" 111222333" \'444555 ' |
|
2502e077d5e9
farray.sh: Implement "falist_set_unique()" that does not overwrite existing key-value pairs
Franz Glasner <fzglas.hg@dom66.de>
parents:
717
diff
changeset
|
128 DEBUG: `K4' -> `V4' |
|
604
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
129 $ falist_destroy LIST |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
130 $ check_no_alist_artifacts |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
131 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
132 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
133 Iteration |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
134 ========= |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
135 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
136 ITERATE (manual indexing) |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
137 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
138 $ falist_create LIST |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
139 $ falist_set LIST K1 V1 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
140 $ falist_set LIST K2 "V2 2" |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
141 $ falist_set LIST K3 $'" 111222333" \\\'444555 ' # ' |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
142 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
143 Iteration by indexing key and values separately |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
144 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
145 $ _i=1 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
146 > while falist_tryget_key_at_index _k LIST ${_i}; do |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
147 > # cannot fail under "normal" circumstances |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
148 > falist_tryget_value_at_index _v LIST ${_i} |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
149 > printf " KEY: \`%s', VAL: \`%s'\\n" "${_k}" "${_v}" |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
150 > _i=$((_i + 1)) |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
151 > done |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
152 KEY: `K1', VAL: `V1' |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
153 KEY: `K2', VAL: `V2 2' |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
154 KEY: `K3', VAL: `" 111222333" \'444555 ' |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
155 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
156 ITERATE (manual indexing over items) |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
157 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
158 $ _i=1 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
159 > while falist_tryget_item_at_index _k _v LIST ${_i}; do |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
160 > printf " KEY: \`%s', VAL: \`%s'\\n" "${_k}" "${_v}" |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
161 > _i=$((_i + 1)) |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
162 > done |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
163 KEY: `K1', VAL: `V1' |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
164 KEY: `K2', VAL: `V2 2' |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
165 KEY: `K3', VAL: `" 111222333" \'444555 ' |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
166 |
|
723
a97ec3f07bdb
farray.sh: REFACTOR: More flexible metadata retrieval.
Franz Glasner <fzglas.hg@dom66.de>
parents:
719
diff
changeset
|
167 ITERATE (for each, by name) |
|
604
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
168 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
169 $ falist_for_each LIST $'printf "EACH: %s key \\`%s\\\', value \\`%s\\\' at idx %d\\n"' # ` |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
170 EACH: LIST key `K1', value `V1' at idx 1 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
171 EACH: LIST key `K2', value `V2 2' at idx 2 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
172 EACH: LIST key `K3', value `" 111222333" \'444555 ' at idx 3 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
173 |
|
723
a97ec3f07bdb
farray.sh: REFACTOR: More flexible metadata retrieval.
Franz Glasner <fzglas.hg@dom66.de>
parents:
719
diff
changeset
|
174 ITERATE (for each, by value) |
|
a97ec3f07bdb
farray.sh: REFACTOR: More flexible metadata retrieval.
Franz Glasner <fzglas.hg@dom66.de>
parents:
719
diff
changeset
|
175 |
|
a97ec3f07bdb
farray.sh: REFACTOR: More flexible metadata retrieval.
Franz Glasner <fzglas.hg@dom66.de>
parents:
719
diff
changeset
|
176 $ falist_for_each "$LIST" $'printf "EACH: %s key \\`%s\\\', value \\`%s\\\' at idx %d\\n"' # ` |
|
a97ec3f07bdb
farray.sh: REFACTOR: More flexible metadata retrieval.
Franz Glasner <fzglas.hg@dom66.de>
parents:
719
diff
changeset
|
177 EACH: _farr_KV\?\?_[a-f0-9]+ key `K1', value `V1' at idx 1 (re) |
|
a97ec3f07bdb
farray.sh: REFACTOR: More flexible metadata retrieval.
Franz Glasner <fzglas.hg@dom66.de>
parents:
719
diff
changeset
|
178 EACH: _farr_KV\?\?_[a-f0-9]+ key `K2', value `V2 2' at idx 2 (re) |
|
a97ec3f07bdb
farray.sh: REFACTOR: More flexible metadata retrieval.
Franz Glasner <fzglas.hg@dom66.de>
parents:
719
diff
changeset
|
179 EACH: _farr_KV\?\?_[a-f0-9]+ key `K3', value `" 111222333" \\'444555 ' at idx 3 (re) |
|
a97ec3f07bdb
farray.sh: REFACTOR: More flexible metadata retrieval.
Franz Glasner <fzglas.hg@dom66.de>
parents:
719
diff
changeset
|
180 |
|
604
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
181 $ falist_clear LIST |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
182 $ falist_destroy LIST |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
183 $ falist_destroy LIST |
|
716
36d953791e0c
farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents:
651
diff
changeset
|
184 ERROR: object `LIST' not created properly: token empty |
|
604
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
185 [1] |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
186 |
|
606
0ad7b2120e74
farray.sh: tests: add forgotten check for left artifacts (memory leaks)
Franz Glasner <fzglas.hg@dom66.de>
parents:
605
diff
changeset
|
187 $ check_no_alist_artifacts |
|
0ad7b2120e74
farray.sh: tests: add forgotten check for left artifacts (memory leaks)
Franz Glasner <fzglas.hg@dom66.de>
parents:
605
diff
changeset
|
188 |
|
604
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
189 |
|
607
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
190 Valid and Invalid Indices |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
191 |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
192 $ falist_create LIST |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
193 $ falist_set LIST 'KEY 1' 'VAL 1' |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
194 $ falist_set LIST 'KEY 2' 'VAL 2' |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
195 $ falist_set LIST 'KEY 3' 'VAL 3' |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
196 |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
197 $ (falist_tryget_item_at_index _k _v LIST "") |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
198 ERROR: missing index |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
199 [70] |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
200 |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
201 $ (falist_tryget_item_at_index _k _v LIST) |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
202 ERROR: missing index |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
203 [70] |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
204 |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
205 $ falist_tryget_item_at_index _k _v LIST 4 |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
206 [1] |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
207 |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
208 $ falist_tryget_item_at_index _k _v LIST 0 |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
209 $ printf '%s:%s' "$_k" "$_v" |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
210 KEY 3:VAL 3 (no-eol) |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
211 |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
212 $ falist_tryget_item_at_index _k _v LIST -2 |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
213 $ printf '%s:%s' "$_k" "$_v" |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
214 KEY 1:VAL 1 (no-eol) |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
215 |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
216 $ falist_tryget_item_at_index _k _v LIST -3 |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
217 [1] |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
218 |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
219 $ falist_destroy LIST |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
220 $ check_no_alist_artifacts |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
221 |
|
c450fd0eaddb
farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents:
606
diff
changeset
|
222 |
|
604
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
223 Deletion of keys |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
224 ================ |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
225 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
226 $ falist_create LIST |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
227 $ falist_set LIST 'key 1' 'value 1' |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
228 $ falist_set LIST 'key 2' 'value 2' |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
229 $ falist_set LIST 'key 3' 'value 3' |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
230 $ falist_set LIST 'key 4' 'value 4' |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
231 $ falist_set LIST 'key 5' 'value 5' |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
232 $ falist_trydel LIST 'key 1' |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
233 $ falist_trydel LIST 'key 5' |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
234 $ falist_trydel LIST 'key 3' |
|
605
96366e2075fe
farray.sh: enhance unittests for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
604
diff
changeset
|
235 $ falist_debug LIST |
|
96366e2075fe
farray.sh: enhance unittests for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
604
diff
changeset
|
236 DEBUG: alist `LIST' has length 2 |
|
96366e2075fe
farray.sh: enhance unittests for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
604
diff
changeset
|
237 DEBUG: `key 2' -> `value 2' |
|
96366e2075fe
farray.sh: enhance unittests for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
604
diff
changeset
|
238 DEBUG: `key 4' -> `value 4' |
|
604
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
239 $ falist_trydel LIST "non-existing key" |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
240 [1] |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
241 $ falist_print_length LIST |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
242 2 (no-eol) |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
243 $ falist_get _var LIST 'key 2' |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
244 $ printf '%s' "$_var" |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
245 value 2 (no-eol) |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
246 $ falist_get _var LIST 'key 4' |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
247 $ printf '%s' "$_var" |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
248 value 4 (no-eol) |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
249 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
250 $ falist_destroy LIST |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
251 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
252 $ check_no_alist_artifacts |
|
612
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
253 |
|
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
254 |
|
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
255 Compare |
|
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
256 ======= |
|
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
257 |
|
613
17194ffe3638
farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents:
612
diff
changeset
|
258 $ falist_create LIST1 K1 V1 K2 V2 |
|
17194ffe3638
farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents:
612
diff
changeset
|
259 $ falist_debug LIST1 |
|
17194ffe3638
farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents:
612
diff
changeset
|
260 DEBUG: alist `LIST1' has length 2 |
|
17194ffe3638
farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents:
612
diff
changeset
|
261 DEBUG: `K1' -> `V1' |
|
17194ffe3638
farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents:
612
diff
changeset
|
262 DEBUG: `K2' -> `V2' |
|
612
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
263 |
|
613
17194ffe3638
farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents:
612
diff
changeset
|
264 $ falist_create LIST2 K2 V2 K1 V1 |
|
17194ffe3638
farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents:
612
diff
changeset
|
265 $ falist_debug LIST2 |
|
17194ffe3638
farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents:
612
diff
changeset
|
266 DEBUG: alist `LIST2' has length 2 |
|
17194ffe3638
farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents:
612
diff
changeset
|
267 DEBUG: `K2' -> `V2' |
|
17194ffe3638
farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents:
612
diff
changeset
|
268 DEBUG: `K1' -> `V1' |
|
612
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
269 |
|
613
17194ffe3638
farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents:
612
diff
changeset
|
270 $ falist_create LIST3 K1 V1 K2 V2 |
|
17194ffe3638
farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents:
612
diff
changeset
|
271 $ falist_debug LIST3 |
|
17194ffe3638
farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents:
612
diff
changeset
|
272 DEBUG: alist `LIST3' has length 2 |
|
17194ffe3638
farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents:
612
diff
changeset
|
273 DEBUG: `K1' -> `V1' |
|
17194ffe3638
farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents:
612
diff
changeset
|
274 DEBUG: `K2' -> `V2' |
|
612
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
275 |
|
613
17194ffe3638
farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents:
612
diff
changeset
|
276 $ falist_create LIST4 K1 V1 K2 V2-4 |
|
17194ffe3638
farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents:
612
diff
changeset
|
277 $ falist_debug LIST4 |
|
17194ffe3638
farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents:
612
diff
changeset
|
278 DEBUG: alist `LIST4' has length 2 |
|
17194ffe3638
farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents:
612
diff
changeset
|
279 DEBUG: `K1' -> `V1' |
|
17194ffe3638
farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents:
612
diff
changeset
|
280 DEBUG: `K2' -> `V2-4' |
|
612
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
281 |
|
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
282 $ falist_are_equal LIST1 LIST2 |
|
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
283 $ falist_are_equal LIST1 LIST4 |
|
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
284 [1] |
|
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
285 $ falist_are_equal_with_order LIST1 LIST2 |
|
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
286 [1] |
|
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
287 $ falist_are_equal_with_order LIST1 LIST3 |
|
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
288 |
|
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
289 $ falist_clear LIST2 |
|
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
290 $ falist_are_equal LIST1 LIST2 |
|
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
291 [1] |
|
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
292 |
|
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
293 $ falist_clear LIST3 |
|
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
294 $ falist_are_equal_with_order LIST2 LIST3 |
|
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
295 |
|
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
296 $ falist_destroy LIST1 |
|
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
297 $ falist_destroy LIST2 |
|
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
298 $ falist_destroy LIST3 |
|
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
299 $ falist_destroy LIST4 |
|
c9ef2339618d
farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
607
diff
changeset
|
300 |
|
614
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
301 $ check_no_alist_artifacts |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
302 |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
303 |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
304 Updating |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
305 ======== |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
306 |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
307 $ falist_create ARR "Key 1" "Value 1" "Key 2" 'Value 2 '\''' |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
308 $ falist_create UPDATE1 "Key 1" "Value 1" "Key 2" 'Value 2 '\''' |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
309 $ falist_create UPDATE2 "Key 2" 'Value 2 (Updated) '\''' "Key 3" "Value 3" |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
310 $ falist_create EMPTY |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
311 |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
312 $ falist_are_equal_with_order ARR UPDATE1 |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
313 $ falist_are_equal_with_order ARR UPDATE2 |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
314 [1] |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
315 |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
316 $ falist_update ARR UPDATE1 |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
317 $ falist_are_equal_with_order ARR UPDATE1 |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
318 |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
319 $ falist_update ARR UPDATE2 |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
320 $ falist_debug ARR |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
321 DEBUG: alist `ARR' has length 3 |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
322 DEBUG: `Key 1' -> `Value 1' |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
323 DEBUG: `Key 2' -> `Value 2 (Updated) '' |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
324 DEBUG: `Key 3' -> `Value 3' |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
325 |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
326 Updating an into an empty alist is just a copy |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
327 |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
328 $ falist_update EMPTY UPDATE1 |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
329 $ falist_debug EMPTY |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
330 DEBUG: alist `EMPTY' has length 2 |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
331 DEBUG: `Key 1' -> `Value 1' |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
332 DEBUG: `Key 2' -> `Value 2 '' |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
333 $ falist_debug UPDATE1 |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
334 DEBUG: alist `UPDATE1' has length 2 |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
335 DEBUG: `Key 1' -> `Value 1' |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
336 DEBUG: `Key 2' -> `Value 2 '' |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
337 |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
338 $ falist_destroy ARR |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
339 $ falist_destroy UPDATE1 |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
340 $ falist_destroy UPDATE2 |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
341 $ falist_destroy EMPTY |
|
62fbc4316d97
farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents:
613
diff
changeset
|
342 |
|
615
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
343 $ check_no_alist_artifacts |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
344 |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
345 |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
346 Items / Keys / Values |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
347 ===================== |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
348 |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
349 $ farray_create KEYS |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
350 $ farray_create VALUES |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
351 $ farray_create ITEMS |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
352 $ falist_create LIST "Key 1" "Value 1" "Key 2" 'Value 2 '\''' |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
353 $ falist_items ITEMS LIST |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
354 $ farray_debug ITEMS |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
355 DEBUG: array `ITEMS' has length 4 |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
356 DEBUG: its contents: |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
357 DEBUG: 1: `Key 1' |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
358 DEBUG: 2: `Value 1' |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
359 DEBUG: 3: `Key 2' |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
360 DEBUG: 4: `Value 2 '' |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
361 $ falist_keys KEYS LIST |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
362 $ farray_debug KEYS |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
363 DEBUG: array `KEYS' has length 2 |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
364 DEBUG: its contents: |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
365 DEBUG: 1: `Key 1' |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
366 DEBUG: 2: `Key 2' |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
367 $ falist_values VALUES LIST |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
368 $ farray_debug VALUES |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
369 DEBUG: array `VALUES' has length 2 |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
370 DEBUG: its contents: |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
371 DEBUG: 1: `Value 1' |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
372 DEBUG: 2: `Value 2 '' |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
373 |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
374 $ falist_destroy LIST |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
375 $ farray_destroy KEYS |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
376 $ farray_destroy VALUES |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
377 $ farray_destroy ITEMS |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
378 |
|
454ce7fa25c8
farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents:
614
diff
changeset
|
379 $ check_no_alist_artifacts |
|
716
36d953791e0c
farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents:
651
diff
changeset
|
380 |
|
36d953791e0c
farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents:
651
diff
changeset
|
381 |
|
36d953791e0c
farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents:
651
diff
changeset
|
382 Cross Type Checks |
|
36d953791e0c
farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents:
651
diff
changeset
|
383 ================= |
|
36d953791e0c
farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents:
651
diff
changeset
|
384 |
|
36d953791e0c
farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents:
651
diff
changeset
|
385 $ falist_create LIST |
|
36d953791e0c
farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents:
651
diff
changeset
|
386 $ (farray_append LIST value) |
|
36d953791e0c
farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents:
651
diff
changeset
|
387 ERROR: object `LIST' is not an array |
|
36d953791e0c
farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents:
651
diff
changeset
|
388 [70] |
|
36d953791e0c
farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents:
651
diff
changeset
|
389 $ falist_destroy LIST |
|
36d953791e0c
farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents:
651
diff
changeset
|
390 $ check_no_alist_artifacts |
|
717
f4725ad5cd21
farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents:
716
diff
changeset
|
391 |
|
f4725ad5cd21
farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents:
716
diff
changeset
|
392 |
|
f4725ad5cd21
farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents:
716
diff
changeset
|
393 Other Type Checks |
|
f4725ad5cd21
farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents:
716
diff
changeset
|
394 ================= |
|
f4725ad5cd21
farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents:
716
diff
changeset
|
395 |
|
f4725ad5cd21
farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents:
716
diff
changeset
|
396 $ falist_type |
|
f4725ad5cd21
farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents:
716
diff
changeset
|
397 unknown (no-eol) |
|
f4725ad5cd21
farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents:
716
diff
changeset
|
398 $ falist_type __UNKNOWN_VARIABLE__ |
|
f4725ad5cd21
farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents:
716
diff
changeset
|
399 unknown (no-eol) |
|
f4725ad5cd21
farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents:
716
diff
changeset
|
400 $ testvar='foo' |
|
f4725ad5cd21
farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents:
716
diff
changeset
|
401 $ falist_type testvar |
|
f4725ad5cd21
farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents:
716
diff
changeset
|
402 value (no-eol) |
|
f4725ad5cd21
farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents:
716
diff
changeset
|
403 $ testvar='' |
|
f4725ad5cd21
farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents:
716
diff
changeset
|
404 $ falist_type testvar |
|
f4725ad5cd21
farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents:
716
diff
changeset
|
405 null (no-eol) |
|
f4725ad5cd21
farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents:
716
diff
changeset
|
406 $ falist_isalist testvar |
|
f4725ad5cd21
farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents:
716
diff
changeset
|
407 [1] |
|
f4725ad5cd21
farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents:
716
diff
changeset
|
408 $ falist_create LIST |
|
f4725ad5cd21
farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents:
716
diff
changeset
|
409 $ falist_type LIST |
|
f4725ad5cd21
farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents:
716
diff
changeset
|
410 alist (no-eol) |
|
f4725ad5cd21
farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents:
716
diff
changeset
|
411 $ falist_isalist LIST |
|
f4725ad5cd21
farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents:
716
diff
changeset
|
412 $ falist_destroy LIST |
|
f4725ad5cd21
farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents:
716
diff
changeset
|
413 $ check_no_alist_artifacts |
|
719
b2757e72b517
farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
718
diff
changeset
|
414 |
|
b2757e72b517
farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
718
diff
changeset
|
415 |
|
b2757e72b517
farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
718
diff
changeset
|
416 Generic Destruction |
|
b2757e72b517
farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
718
diff
changeset
|
417 =================== |
|
b2757e72b517
farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
718
diff
changeset
|
418 |
|
b2757e72b517
farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
718
diff
changeset
|
419 $ falist_create LIST k1 v2 |
|
b2757e72b517
farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
718
diff
changeset
|
420 $ falist_debug LIST |
|
b2757e72b517
farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
718
diff
changeset
|
421 DEBUG: alist `LIST' has length 1 |
|
b2757e72b517
farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
718
diff
changeset
|
422 DEBUG: `k1' -> `v2' |
|
b2757e72b517
farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
718
diff
changeset
|
423 $ _farr_destroy_object "$LIST" |
|
b2757e72b517
farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
718
diff
changeset
|
424 $ check_no_alist_artifacts |
|
b2757e72b517
farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
718
diff
changeset
|
425 $ (_farr_destroy_object "$LIST") |
|
723
a97ec3f07bdb
farray.sh: REFACTOR: More flexible metadata retrieval.
Franz Glasner <fzglas.hg@dom66.de>
parents:
719
diff
changeset
|
426 ERROR: falist `_farr_KV\?\?_([a-f0-9]+)' not created properly: no object for token `\1' (re) |
|
a97ec3f07bdb
farray.sh: REFACTOR: More flexible metadata retrieval.
Franz Glasner <fzglas.hg@dom66.de>
parents:
719
diff
changeset
|
427 [70] |
|
719
b2757e72b517
farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
718
diff
changeset
|
428 $ LIST='' |
|
b2757e72b517
farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
718
diff
changeset
|
429 $ _farr_destroy_object "$LIST" |
|
b2757e72b517
farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents:
718
diff
changeset
|
430 $ check_no_alist_artifacts |
