#!/usr/bin/ruby

#
## Array zipping
#

var arr1 = [1,3,5,7,9]
var arr2 = [2,4,6]

var arr3 = [arr1, arr2].zip
var arr4 = [arr2, arr1].zip
var arr5 = [arr1, arr2, arr1].zip

assert_eq(arr3, [[1, 2], [3, 4], [5, 6]])
assert_eq(arr4, [[2, 1], [4, 3], [6, 5]])
assert_eq(arr5, [[1, 2, 1], [3, 4, 3], [5, 6, 5]])

arr5 = [:a, :b, :c, :d, :e]
var arr6 = []
var arr7 = ^5

assert_eq(arr5.zip_indices, [Pair(0, :a), Pair(1, :b), Pair(2, :c), Pair(3, :d), Pair(4, :e)])
assert_eq(arr6.zip_indices, [])
assert_eq(arr7.zip_indices.flatten.uniq, arr7.to_a)

var arr8 = [].zip
var arr9 = [[], []].zip

assert_eq(arr8, [])
assert_eq(arr9, [])

say "** Test passed!"