about summary refs log tree commit diff
path: root/Test/D04parameter.ztst
diff options
context:
space:
mode:
authorMikael Magnusson <mikachu@gmail.com>2014-07-31 19:39:26 +0200
committerMikael Magnusson <mikachu@gmail.com>2014-08-04 19:00:01 +0200
commitb8751cb9d71d9f8e0ff24c469a8011ff1a58b1a8 (patch)
treef4b233d6a58b488661cf2bd6f34b291f3728f006 /Test/D04parameter.ztst
parent1f396dbe25259d4279811c893cbf381d675ad97c (diff)
downloadzsh-b8751cb9d71d9f8e0ff24c469a8011ff1a58b1a8.tar.gz
zsh-b8751cb9d71d9f8e0ff24c469a8011ff1a58b1a8.tar.xz
zsh-b8751cb9d71d9f8e0ff24c469a8011ff1a58b1a8.zip
32949 (wip 32928, 32937): Add :^ syntax for zipping two arrays
Diffstat (limited to 'Test/D04parameter.ztst')
-rw-r--r--Test/D04parameter.ztst76
1 files changed, 76 insertions, 0 deletions
diff --git a/Test/D04parameter.ztst b/Test/D04parameter.ztst
index a8cc93a12..49dcea901 100644
--- a/Test/D04parameter.ztst
+++ b/Test/D04parameter.ztst
@@ -1560,3 +1560,79 @@
 0:Intersection and disjunction with empty parameters
 >0
 >0
+
+  foo=(a b c)
+  bar=(1 2 3)
+  print ${foo:^bar}
+  print ${foo:^^bar}
+  foo=(a b c d)
+  bar=(1 2)
+  print ${foo:^bar}
+  print ${foo:^^bar}
+  foo=('a a' b)
+  bar=(1 '2 2')
+  print -l "${foo:^bar}"
+  print -l "${(@)foo:^bar}"
+0:Zipping arrays, correct output
+>a 1 b 2 c 3
+>a 1 b 2 c 3
+>a 1 b 2
+>a 1 b 2 c 1 d 2
+# maybe this should be changed to output "a a b 1"
+>a a b
+>1
+>a a
+>1
+>b
+>2 2
+
+  foo=(a b c)
+  bar=()
+  print ${foo:^bar}
+  print ${foo:^^bar}
+  print ${bar:^foo}
+  print ${bar:^^foo}
+  print ${bar:^bar}
+  print ${bar:^^bar}
+0:Zipping arrays, one or both inputs empty
+>
+>a b c
+>
+>a b c
+>
+>
+
+  foo=text
+  bar=()
+  print ${foo:^bar}
+  print ${bar:^^foo}
+  bar=other
+  print ${foo:^bar}
+  bar=(array elements)
+  print ${foo:^bar}
+  print ${foo:^^bar}
+  print ${bar:^foo}
+  print ${bar:^^foo}
+0:Zipping arrays, scalar input
+>
+>text
+>text other
+>text array
+>text array text elements
+>array text
+>array text elements text
+
+  foo=(a b c)
+  print ${foo:^^^bar}
+1:Zipping arrays, parsing
+?(eval):2: not an identifier: ^bar
+
+  (setopt nounset
+  print ${foo:^noexist})
+1:Zipping arrays, NO_UNSET part 1
+?(eval):2: noexist: parameter not set
+
+  (setopt nounset
+  print ${noexist:^foo})
+1:Zipping arrays, NO_UNSET part 2
+?(eval):2: noexist: parameter not set