summaryrefslogtreecommitdiff
path: root/dotfiles/system/.zsh/modules/Test/D05array.ztst
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2025-05-08 18:49:34 -0500
committerCraig Jennings <c@cjennings.net>2025-05-08 18:51:59 -0500
commit000e00871830cd15de032c80e2b62946cf19445c (patch)
tree794a7922750472bbe0e024042d6ba84f411fc3e0 /dotfiles/system/.zsh/modules/Test/D05array.ztst
parentfe302606931e4bad91c4ed6df81a4403523ba780 (diff)
adding missing dotfiles and folders
- profile.d/ - bashrc - authinfo.gpg - .zsh/
Diffstat (limited to 'dotfiles/system/.zsh/modules/Test/D05array.ztst')
-rw-r--r--dotfiles/system/.zsh/modules/Test/D05array.ztst112
1 files changed, 112 insertions, 0 deletions
diff --git a/dotfiles/system/.zsh/modules/Test/D05array.ztst b/dotfiles/system/.zsh/modules/Test/D05array.ztst
new file mode 100644
index 0000000..1fa607d
--- /dev/null
+++ b/dotfiles/system/.zsh/modules/Test/D05array.ztst
@@ -0,0 +1,112 @@
+# Tests for array indexing
+
+%prep
+
+ foo=(a b c d e f g)
+ arr=(foo bar baz)
+ mkdir array.tmp
+ touch array.tmp/{1..9}
+
+%test
+
+ echo .$foo[1].
+0:The first element
+>.a.
+
+ echo .$foo[1,4].
+0:Normal multi-item indexing
+>.a b c d.
+
+ echo .$foo[1,0].
+0:This should be empty
+>..
+
+ echo .$foo[4,1].
+0:Another empty slice
+>..
+
+ echo .$foo[1,-8].
+0:An empty slice with a negative end
+>..
+
+ echo .$foo[0].
+0:Treat 0 as empty
+>..
+
+ echo .$foo[0,0].
+0:Treat 0,0 as empty
+>..
+
+ echo .$foo[0,1].
+0:Another weird way to access the first element
+>.a.
+
+ echo .$foo[3].
+0:An inner element
+>.c.
+
+ echo .$foo[2,2].
+0:Another inner element
+>.b.
+
+ echo .$foo[2,-4].
+0:A slice with a negative end
+>.b c d.
+
+ echo .$foo[-4,5].
+0:A slice with a negative start
+>.d e.
+
+ echo .$foo[-6,-2].
+0:A slice with a negative start and end
+>.b c d e f.
+
+ echo .${${arr[2]}[1]}.
+ echo .${${arr[-2]}[1]}.
+ echo .${${arr[2,2]}[1]}.
+ echo .${${arr[-2,-2]}[1]}.
+ echo .${${arr[2,-2]}[1]}.
+ echo .${${arr[-2,2]}[1]}.
+0:Slices should return an array, elements a scalar
+>.b.
+>.b.
+>.bar.
+>.bar.
+>.bar.
+>.bar.
+
+ setopt ksh_arrays
+ echo .${foo[1,2]}.
+ unsetopt ksh_arrays
+0:Ksh array indexing
+>.b c.
+
+ setopt ksh_arrays
+ echo .${foo[0,1]}.
+ unsetopt ksh_arrays
+0:Ksh array indexing (ii)
+>.a b.
+
+ setopt ksh_arrays
+ echo .${foo[1,-1]}.
+ unsetopt ksh_arrays
+0:Ksh array indexing (iii)
+>.b c d e f g.
+
+ cd array.tmp
+ echo . ?([3,5]) .
+ cd ..
+0:Glob array indexing
+>. 3 4 5 .
+
+ cd array.tmp
+ echo . ?([2,-2]) .
+ cd ..
+0:Glob array indexing (ii)
+>. 2 3 4 5 6 7 8 .
+
+ cd array.tmp
+ echo . ?([-6,-4]) .
+ cd ..
+0:Glob array indexing (iii)
+>. 4 5 6 .