changeset 517:2e2ba2203117

array.sh: some tests
author Franz Glasner <fzglas.hg@dom66.de>
date Sun, 01 Sep 2024 16:57:47 +0200
parents 1d1a4c217e38
children a749f8793fd2
files share/local-bsdtools/array.sh
diffstat 1 files changed, 115 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/share/local-bsdtools/array.sh	Sun Sep 01 16:57:25 2024 +0200
+++ b/share/local-bsdtools/array.sh	Sun Sep 01 16:57:47 2024 +0200
@@ -1123,3 +1123,118 @@
     fi
     return 0
 }
+
+
+_array_test() {
+    local _i _var _k _v
+
+    set -
+    set -eu
+
+    array_create TEST 1 2 3 '4  5   6' $'" 123" \\\'45 '    # '
+    array_debug TEST
+    if array_contains TEST 7; then
+        echo "CONTAINS (ERROR)"
+    fi
+    if ! array_contains TEST '4  5   6'; then
+        echo "NO CONTAINS (ERROR)"
+    fi
+    if array_contains TEST '4 5 6'; then
+        echo "CONTAINS (ERROR)"
+    fi
+    if ! array_contains TEST 1; then
+        echo "NOT CONTAINS (ERROR)"
+    fi
+    if ! array_contains TEST 2; then
+        echo "NOT CONTAINS (ERROR)"
+    fi
+
+    if ! array_contains TEST $'" 123" \\\'45 ' ; then      # '
+       echo "NOT CONTAINS (ERROR)"
+    fi
+    if ! array_find _i TEST $'" 123" \\\'45 ' ; then       # '
+       echo "NOT CONTAINS (ERROR)"
+    fi
+
+    array_get _var TEST 1
+    printf "VAR 1: %s\n" "$_var"
+    array_get _var TEST 5
+    printf "VAR 2: %s\n" "$_var"
+    [ "$_var" = $'" 123" \\\'45 ' ] || echo "COMPARE ERROR"
+
+    array_new TEST 11 22 33 '44  55   66' $'" 112233" \\\'4455 '    # '
+    array_debug TEST
+
+    array_get _i TEST 1
+    echo $_i
+    array_get _i TEST 2
+    array_del TEST 4
+    array_get _i TEST 4
+    echo $_i
+    array_tryget _i TEST 1 || echo "NOT FOUND (ERROR)"
+    array_tryget _i TEST 4 || echo "NOT FOUND (ERROR)"
+    ! array_tryget _i TEST 5 || echo "FOUND (ERROR)"
+    array_get _var TEST 4
+    [ "$_var" = $'" 112233" \\\'4455 ' ] || echo "COMPARE ERROR"  # '
+
+    if ! array_destroy TEST; then
+        echo "DESTROY FAILED (ERROR)"
+    fi
+    if array_destroy TEST; then
+        echo "DESTROY succeeded (ERROR)"
+    fi
+    array_destroy TEST || true
+
+    alist_create LIST
+    alist_debug LIST
+    alist_set LIST K1 V1
+    alist_set LIST K2 V2
+    alist_debug LIST
+    alist_set LIST K2 V2-2
+    alist_set LIST K3 $'" 111222333" \\\'444555 '    # '
+    if ! alist_contains LIST K1; then
+        echo "NOT CONTAINS (ERROR)"
+    fi
+    if alist_contains LIST K; then
+        echo "CONTAINS (ERROR)"
+    fi
+    alist_debug LIST
+    if ! alist_tryget _var LIST K1; then
+        echo "NOT FOUND (ERROR)"
+    fi
+    if alist_tryget _i LIST K; then
+        echo "FOUND (ERROR)"
+    fi
+    alist_length _i LIST
+    echo "LENGTH: $_i"
+    printf "%s" "PRINT LENGTH: "
+    alist_print_length LIST
+    echo
+    _var="$(alist_print_length NON_EXISTING_LIST)"
+    if [ "${_var}" != "-1" ]; then
+        echo "VALID LENGTH (ERROR)"
+    fi
+
+    # Iteration
+    echo "ITERATE:"
+    _i=1
+    while alist_tryget_key_at_index _k LIST ${_i}; do
+        # cannot fail
+        alist_tryget_value_at_index _v LIST ${_i}
+        printf "  KEY: \`%s', VAL: \`%s'\\n" "${_k}" "${_v}"
+        _i=$((${_i} + 1))
+    done
+    
+    alist_clear LIST
+    if ! alist_destroy LIST ; then
+        echo "DESTROY FAILED (ERROR)"
+    fi
+    if alist_destroy LIST ; then
+        echo "DESTROY SUCCEEDED (ERROR)"
+    fi
+    alist_destroy LIST || true
+    #set
+}
+
+
+#_array_test