summaryrefslogtreecommitdiff
path: root/dotfiles/system/.zsh/modules/Test/D06subscript.ztst
diff options
context:
space:
mode:
Diffstat (limited to 'dotfiles/system/.zsh/modules/Test/D06subscript.ztst')
-rw-r--r--dotfiles/system/.zsh/modules/Test/D06subscript.ztst268
1 files changed, 0 insertions, 268 deletions
diff --git a/dotfiles/system/.zsh/modules/Test/D06subscript.ztst b/dotfiles/system/.zsh/modules/Test/D06subscript.ztst
deleted file mode 100644
index 1449236..0000000
--- a/dotfiles/system/.zsh/modules/Test/D06subscript.ztst
+++ /dev/null
@@ -1,268 +0,0 @@
-# Test parameter subscripting.
-
-%prep
-
- s='Twinkle, twinkle, little *, [how] I [wonder] what? You are!'
- a=('1' ']' '?' '\2' '\]' '\?' '\\3' '\\]' '\\?' '\\\4' '\\\]' '\\\?')
- typeset -g -A A
- A=($a)
-
-%test
-
- x=','
- print $s[(i)winkle] $s[(I)winkle]
- print ${s[(i)You are]} $#s
- print ${s[(r)$x,(R)$x]}
-0:Scalar pattern subscripts without wildcards
->2 11
->53 60
->, twinkle, little *,
-
- x='*'
- print $s[(i)*] $s[(i)\*] $s[(i)$x*] $s[(i)${(q)x}*] $s[(I)$x\*]
- print $s[(r)?,(R)\?] $s[(r)\?,(R)?]
- print $s[(r)\*,(R)*]
- print $s[(r)\],(R)\[]
-0:Scalar pattern subscripts with wildcards
->1 26 1 26 26
->Twinkle, twinkle, little *, [how] I [wonder] what? ? You are!
->*, [how] I [wonder] what? You are!
->] I [
-
- print $s[(i)x] : $s[(I)x]
- print $s[(r)x] : $s[(R)x]
-0:Scalar pattern subscripts that do not match
->61 : 0
->:
-
- print -R $s[$s[(i)\[]] $s[(i)$s[(r)\*]] $s[(i)${(q)s[(r)\]]}]
-0:Scalar subscripting using a pattern subscript to get the index
->[ 1 33
-
- print -R $a[(r)?] $a[(R)?]
- print $a[(n:2:i)?] $a[(n:2:I)?]
- print $a[(i)\?] $a[(I)\?]
- print $a[(i)*] $a[(i)\*]
-0:Array pattern subscripts
->1 ?
->2 2
->3 3
->1 13
-
- # It'd be nice to do some of the following with (r), but we run into
- # limitations of the ztst script parsing of backslashes in the output.
- print -R $a[(i)\\\\?] $a[(i)\\\\\?]
- print -R $a[(i)\\\\\\\\?] $a[(i)\\\\\\\\\?]
- print -R ${a[(i)\\\\\\\\?]} ${a[(i)\\\\\\\\\?]}
- print -R "$a[(i)\\\\\\\\?] $a[(i)\\\\\\\\\?]"
- print -R $a[(i)\]] $a[(i)\\\\\]] $a[(i)\\\\\\\\\]] $a[(i)\\\\\\\\\\\\\]]
- print -R $a[(i)${(q)a[5]}] $a[(i)${(q)a[8]}] $a[(i)${(q)a[11]}]
- print -R $a[(i)${a[3]}] $a[(i)${a[6]}] $a[(i)${a[9]}] $a[(i)${a[12]}]
-0:Array pattern subscripts with multiple backslashes
->4 6
->7 9
->7 9
->7 9
->2 5 8 11
->5 8 11
->1 3 4 6
-
- print -R $A[1] $A[?] $A[\\\\3] $A[\\\]]
- print -R $A[$a[11]]
- print -R $A[${(q)a[5]}]
-0:Associative array lookup (direct subscripting)
->] \2 \\] \?
->\\\?
->\\\?
-
- # The (o) is necessary here for predictable output ordering
- print -R $A[(I)\?] ${(o)A[(I)?]}
- print -R $A[(i)\\\\\\\\3]
- print -R $A[(I)\\\\\\\\\?] ${(o)A[(I)\\\\\\\\?]}
-0:Associative array lookup (pattern subscripting)
->? 1 ?
->\\3
->\\? \\3 \\?
-
- print -R $A[(R)\?] : ${(o)A[(R)?]}
- print -R $A[(R)\\\\\?] ${(o)A[(R)\\\\?]} ${(o)A[(R)\\\\\?]}
- print -R ${(o)A[(R)\\\\\\\\\]]}
-0:Associative array lookup (reverse subscripting)
->: ]
->\? \2 \? \?
->\\]
-
- eval 'A[*]=star'
-1:Illegal associative array assignment
-?(eval):1: A: attempt to set slice of associative array
-
- x='*'
- A[$x]=xstar
- A[${(q)x}]=qxstar
- print -R ${(k)A[(r)xstar]} $A[$x]
- print -R ${(k)A[(r)qxstar]} $A[${(q)x}]
- A[(e)*]=star
- A[\*]=backstar
- print -R ${(k)A[(r)star]} $A[(e)*]
- print -R ${(k)A[(r)backstar]} $A[\*]
-0:Associative array assignment
->* xstar
->\* qxstar
->* star
->\* backstar
-
- o='['
- c=']'
- A[\]]=cbrack
- A[\[]=obrack
- A[\\\[]=backobrack
- A[\\\]]=backcbrack
- print -R $A[$o] $A[$c] $A[\[] $A[\]] $A[\\\[] $A[\\\]]
- print -R $A[(i)\[] $A[(i)\]] $A[(i)\\\\\[] $A[(i)\\\\\]]
-0:Associative array keys with open and close brackets
->obrack cbrack obrack cbrack backobrack backcbrack
->[ ] \[ \]
-
- print -R $A[$o] $A[$s[(r)\[]]
- print -R $A[(r)$c] $A[(r)$s[(r)\]]]
- print -R $A[$A[(i)\\\\\]]]
-0:Associative array lookup using a pattern subscript to get the key
->obrack obrack
->] ]
->backcbrack
-
- print -R ${A[${A[(r)\\\\\\\\\]]}]::=zounds}
- print -R ${A[${A[(r)\\\\\\\\\]]}]}
- print -R $A[\\\\\]]
-0:Associative array substitution-assignment with reverse pattern subscript key
->zounds
->zounds
->zounds
-
- print -R ${(o)A[(K)\]]}
- print -R ${(o)A[(K)\\\]]}
-0:Associative array keys interpreted as patterns
->\2 backcbrack cbrack star
->\\\4 \\\? star zounds
-
-# It doesn't matter which element we get, since we never guarantee
-# ordering of an associative array. So just test the number of matches.
- array=(${(o)A[(k)\]]})
- print ${#array}
- array=(${(o)A[(k)\\\]]})
- print ${#array}
-0:Associative array keys interpreted as patterns, single match
->1
->1
-
- typeset -g "A[one\"two\"three\"quotes]"=QQQ
- typeset -g 'A[one\"two\"three\"quotes]'=qqq
- print -R "$A[one\"two\"three\"quotes]"
- print -R $A[one\"two\"three\"quotes]
- A[one"two"three"four"quotes]=QqQq
- print -R $A[one"two"three"four"quotes]
- print -R $A[$A[(i)one\"two\"three\"quotes]]
- print -R "$A[$A[(i)one\"two\"three\"quotes]]"
-0:Associative array keys with double quotes
->QQQ
->qqq
->QqQq
->qqq
->QQQ
-
- print ${x::=$A[$A[(i)one\"two\"three\"quotes]]}
- print $x
- print ${x::="$A[$A[(i)one\"two\"three\"quotes]]"}
- print $x
-0:More keys with double quotes, used in assignment-expansion
->qqq
->qqq
->QQQ
->QQQ
-
- qqq=lower
- QQQ=upper
- print ${(P)A[one\"two\"three\"quotes]}
- print "${(P)A[$A[(i)one\"two\"three\"quotes]]}"
-0:Keys with double quotes and the (P) expansion flag
->lower
->upper
-
- typeset -ga empty
- echo X${${empty##*}[-1]}X
-0:Negative index applied to substition result from empty array
->XX
-
- print $empty[(i)] $empty[(I)]
-0:(i) returns 1 for empty array, (I) returns 0.
->1 0
-
- array=(one two three four)
- print X$array[0]X
-0:Element zero is empty if KSH_ZERO_SUBSCRIPT is off.
->XX
-
- array[0]=fumble
-1:Can't set element zero if KSH_ZERO_SUBSCRIPT is off.
-?(eval):1: array: assignment to invalid subscript range
-
- print X$array[(R)notfound]X
-0:(R) returns empty if not found if KSH_ZERO_SUBSCRIPT is off.
->XX
-
- setopt KSH_ZERO_SUBSCRIPT
- print X$array[0]X
-0:Element zero is element one if KSH_ZERO_SUBSCRIPT is on.
->XoneX
-
- array[0]=fimble
- print $array
-0:Can set element zero if KSH_ZERO_SUBSCRIPT is on.
->fimble two three four
-
- print X$array[(R)notfound]X
-0:(R) yuckily returns the first element on failure withe KSH_ZERO_SUBSCRIPT
->XfimbleX
-
- unsetopt KSH_ZERO_SUBSCRIPT
- array[(R)notfound,(r)notfound]=(help help here come the seventies retreads)
- print $array
-0:[(R)notfound,(r)notfound] replaces the whole array
->help help here come the seventies retreads
-
- string="Why, if it isn't Officer Dibble"
- print "[${string[0]}][${string[1]}][${string[0,3]}]"
-0:String subscripts with KSH_ZERO_SUBSCRIPT unset
->[][W][Why]
-
- setopt KSH_ZERO_SUBSCRIPT
- print "[${string[0]}][${string[1]}][${string[0,3]}]"
-0:String subscripts with KSH_ZERO_SUBSCRIPT set
->[W][W][Why]
-
- unsetopt KSH_ZERO_SUBSCRIPT
- string[0,3]="Goodness"
- print $string
-0:Assignment to chunk of string ignores element 0
->Goodness, if it isn't Officer Dibble
-
- string[0]=!
-1:Can't set only element zero of string
-?(eval):1: string: assignment to invalid subscript range
-
- typeset -A assoc=(leader topcat officer dibble sidekick choochoo)
- alias myind='echo leader' myletter='echo 1' myletter2='echo 4'
- print ${assoc[$(myind)]}
- print $assoc[$(myind)]
- print ${assoc[$(myind)][$(myletter)]}${assoc[$(myind)][$(myletter2)]}
- assoc[$(myind)]='of the gang'
- print ${assoc[$(myind)]}
- print $assoc[$(myind)]
- print $assoc[leader]
-0: Parsing subscript with non-trivial tokenisation
->topcat
->topcat
->tc
->of the gang
->of the gang
->of the gang