# HG changeset patch # User Franz Glasner # Date 1725202667 -7200 # Node ID 2e2ba2203117cd2a5f17cd7ca9a2fc0817f4d2c1 # Parent 1d1a4c217e38cb94434cb5485b5d164578314ece array.sh: some tests diff -r 1d1a4c217e38 -r 2e2ba2203117 share/local-bsdtools/array.sh --- 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