comparison 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
comparison
equal deleted inserted replaced
722:9c860f2abbdc 723:a97ec3f07bdb
162 > done 162 > done
163 KEY: `K1', VAL: `V1' 163 KEY: `K1', VAL: `V1'
164 KEY: `K2', VAL: `V2 2' 164 KEY: `K2', VAL: `V2 2'
165 KEY: `K3', VAL: `" 111222333" \'444555 ' 165 KEY: `K3', VAL: `" 111222333" \'444555 '
166 166
167 ITERATE (for each) 167 ITERATE (for each, by name)
168 168
169 $ falist_for_each LIST $'printf "EACH: %s key \\`%s\\\', value \\`%s\\\' at idx %d\\n"' # ` 169 $ falist_for_each LIST $'printf "EACH: %s key \\`%s\\\', value \\`%s\\\' at idx %d\\n"' # `
170 EACH: LIST key `K1', value `V1' at idx 1 170 EACH: LIST key `K1', value `V1' at idx 1
171 EACH: LIST key `K2', value `V2 2' at idx 2 171 EACH: LIST key `K2', value `V2 2' at idx 2
172 EACH: LIST key `K3', value `" 111222333" \'444555 ' at idx 3 172 EACH: LIST key `K3', value `" 111222333" \'444555 ' at idx 3
173
174 ITERATE (for each, by value)
175
176 $ falist_for_each "$LIST" $'printf "EACH: %s key \\`%s\\\', value \\`%s\\\' at idx %d\\n"' # `
177 EACH: _farr_KV\?\?_[a-f0-9]+ key `K1', value `V1' at idx 1 (re)
178 EACH: _farr_KV\?\?_[a-f0-9]+ key `K2', value `V2 2' at idx 2 (re)
179 EACH: _farr_KV\?\?_[a-f0-9]+ key `K3', value `" 111222333" \\'444555 ' at idx 3 (re)
173 180
174 $ falist_clear LIST 181 $ falist_clear LIST
175 $ falist_destroy LIST 182 $ falist_destroy LIST
176 $ falist_destroy LIST 183 $ falist_destroy LIST
177 ERROR: object `LIST' not created properly: token empty 184 ERROR: object `LIST' not created properly: token empty
414 DEBUG: alist `LIST' has length 1 421 DEBUG: alist `LIST' has length 1
415 DEBUG: `k1' -> `v2' 422 DEBUG: `k1' -> `v2'
416 $ _farr_destroy_object "$LIST" 423 $ _farr_destroy_object "$LIST"
417 $ check_no_alist_artifacts 424 $ check_no_alist_artifacts
418 $ (_farr_destroy_object "$LIST") 425 $ (_farr_destroy_object "$LIST")
419 ERROR: falist with token value `_farr_KV\*_([a-f0-9]+)' not created properly: no object for token `\1' (re) 426 ERROR: falist `_farr_KV\?\?_([a-f0-9]+)' not created properly: no object for token `\1' (re)
420 [1] 427 [70]
421 $ LIST='' 428 $ LIST=''
422 $ _farr_destroy_object "$LIST" 429 $ _farr_destroy_object "$LIST"
423 $ check_no_alist_artifacts 430 $ check_no_alist_artifacts