======== #1 properties ========

x .. {{{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}},

 {{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}}}
x.elembytes .. 8
x.elemtype .. double
x.memoryid == x.offset(1).memoryid .. true
x.ndim .. 3
x.p .. <pointer:0>
x.shape .. [2, 3, 4]
x.size .. 24
x.T .. {{{0, 0, 0},
  {0, 0, 0},
  {0, 0, 0},
  {0, 0, 0}},

 {{0, 0, 0},
  {0, 0, 0},
  {0, 0, 0},
  {0, 0, 0}}}

======== #2 constructor ========

boolean
false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false
true true true true true true true true true true true true true true true true true true true true true true true true true true true true true true
false true true true true true true true true true true true true true true true true true true true true true true true true true true true true true
false true true true true true true true true true true true true true true true true true true true true true true true true true true true true true
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
false true true true true true true true true true true true true true true true true true true true true true true true true true true true true true
int8
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
uint8
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
int16
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
uint16
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
int32
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
uint32
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
int64
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
uint64
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
half
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
float
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
double
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
complex
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

======== #3 array.identity() ========

boolean
true
true false
false true
true false false
false true false
false false true
true false false false false
false true false false false
false false true false false
false false false true false
false false false false true
int8
1
1 0
0 1
1 0 0
0 1 0
0 0 1
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
uint8
1
1 0
0 1
1 0 0
0 1 0
0 0 1
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
int16
1
1 0
0 1
1 0 0
0 1 0
0 0 1
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
uint16
1
1 0
0 1
1 0 0
0 1 0
0 0 1
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
int32
1
1 0
0 1
1 0 0
0 1 0
0 0 1
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
uint32
1
1 0
0 1
1 0 0
0 1 0
0 0 1
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
int64
1
1 0
0 1
1 0 0
0 1 0
0 0 1
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
uint64
1
1 0
0 1
1 0 0
0 1 0
0 0 1
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
half
1
1 0
0 1
1 0 0
0 1 0
0 0 1
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
float
1
1 0
0 1
1 0 0
0 1 0
0 0 1
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
double
1
1 0
0 1
1 0 0
0 1 0
0 0 1
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
complex
1
1 0
0 1
1 0 0
0 1 0
0 0 1
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
Error in the test case: TypeError: not enough arguments

======== #4 array.interval() ========

boolean
array.interval(0, 8, 5, elemtype => elemtype) .. {false,  true,  true,  true,  true}
array.interval(0, 10, 5, elemtype => elemtype) .. {false,  true,  true,  true,  true}
int8
array.interval(0, 8, 5, elemtype => elemtype) .. {0, 2, 4, 6, 8}
array.interval(0, 10, 5, elemtype => elemtype) .. { 0,  2,  5,  7, 10}
uint8
array.interval(0, 8, 5, elemtype => elemtype) .. {0, 2, 4, 6, 8}
array.interval(0, 10, 5, elemtype => elemtype) .. { 0,  2,  5,  7, 10}
int16
array.interval(0, 8, 5, elemtype => elemtype) .. {0, 2, 4, 6, 8}
array.interval(0, 10, 5, elemtype => elemtype) .. { 0,  2,  5,  7, 10}
uint16
array.interval(0, 8, 5, elemtype => elemtype) .. {0, 2, 4, 6, 8}
array.interval(0, 10, 5, elemtype => elemtype) .. { 0,  2,  5,  7, 10}
int32
array.interval(0, 8, 5, elemtype => elemtype) .. {0, 2, 4, 6, 8}
array.interval(0, 10, 5, elemtype => elemtype) .. { 0,  2,  5,  7, 10}
uint32
array.interval(0, 8, 5, elemtype => elemtype) .. {0, 2, 4, 6, 8}
array.interval(0, 10, 5, elemtype => elemtype) .. { 0,  2,  5,  7, 10}
int64
array.interval(0, 8, 5, elemtype => elemtype) .. {0, 2, 4, 6, 8}
array.interval(0, 10, 5, elemtype => elemtype) .. { 0,  2,  5,  7, 10}
uint64
array.interval(0, 8, 5, elemtype => elemtype) .. {0, 2, 4, 6, 8}
array.interval(0, 10, 5, elemtype => elemtype) .. { 0,  2,  5,  7, 10}
half
array.interval(0, 8, 5, elemtype => elemtype) .. {0, 2, 4, 6, 8}
array.interval(0, 10, 5, elemtype => elemtype) .. {  0, 2.5,   5, 7.5,  10}
float
array.interval(0, 8, 5, elemtype => elemtype) .. {0, 2, 4, 6, 8}
array.interval(0, 10, 5, elemtype => elemtype) .. {  0, 2.5,   5, 7.5,  10}
double
array.interval(0, 8, 5, elemtype => elemtype) .. {0, 2, 4, 6, 8}
array.interval(0, 10, 5, elemtype => elemtype) .. {  0, 2.5,   5, 7.5,  10}
complex
array.interval(0, 8, 5, elemtype => elemtype) .. {0, 2, 4, 6, 8}
array.interval(0, 10, 5, elemtype => elemtype) .. {  0, 2.5,   5, 7.5,  10}
array@boolean.interval .. boolean
{false,  true,  true,  true,  true}
array@int8.interval .. int8
{ 0,  2,  5,  7, 10}
array@uint8.interval .. uint8
{ 0,  2,  5,  7, 10}
array@int16.interval .. int16
{ 0,  2,  5,  7, 10}
array@uint16.interval .. uint16
{ 0,  2,  5,  7, 10}
array@int32.interval .. int32
{ 0,  2,  5,  7, 10}
array@uint32.interval .. uint32
{ 0,  2,  5,  7, 10}
array@int64.interval .. int64
{ 0,  2,  5,  7, 10}
array@uint64.interval .. uint64
{ 0,  2,  5,  7, 10}
array@half.interval .. half
{  0, 2.5,   5, 7.5,  10}
array@float.interval .. float
{  0, 2.5,   5, 7.5,  10}
array@double.interval .. double
{  0, 2.5,   5, 7.5,  10}
array@complex.interval .. complex
{  0, 2.5,   5, 7.5,  10}

======== #5 array.ones() ========

boolean
{{true, true, true, true},
 {true, true, true, true},
 {true, true, true, true}}
{{{true, true, true, true},
  {true, true, true, true},
  {true, true, true, true}},

 {{true, true, true, true},
  {true, true, true, true},
  {true, true, true, true}}}
int8
{{1, 1, 1, 1},
 {1, 1, 1, 1},
 {1, 1, 1, 1}}
{{{1, 1, 1, 1},
  {1, 1, 1, 1},
  {1, 1, 1, 1}},

 {{1, 1, 1, 1},
  {1, 1, 1, 1},
  {1, 1, 1, 1}}}
uint8
{{1, 1, 1, 1},
 {1, 1, 1, 1},
 {1, 1, 1, 1}}
{{{1, 1, 1, 1},
  {1, 1, 1, 1},
  {1, 1, 1, 1}},

 {{1, 1, 1, 1},
  {1, 1, 1, 1},
  {1, 1, 1, 1}}}
int16
{{1, 1, 1, 1},
 {1, 1, 1, 1},
 {1, 1, 1, 1}}
{{{1, 1, 1, 1},
  {1, 1, 1, 1},
  {1, 1, 1, 1}},

 {{1, 1, 1, 1},
  {1, 1, 1, 1},
  {1, 1, 1, 1}}}
uint16
{{1, 1, 1, 1},
 {1, 1, 1, 1},
 {1, 1, 1, 1}}
{{{1, 1, 1, 1},
  {1, 1, 1, 1},
  {1, 1, 1, 1}},

 {{1, 1, 1, 1},
  {1, 1, 1, 1},
  {1, 1, 1, 1}}}
int32
{{1, 1, 1, 1},
 {1, 1, 1, 1},
 {1, 1, 1, 1}}
{{{1, 1, 1, 1},
  {1, 1, 1, 1},
  {1, 1, 1, 1}},

 {{1, 1, 1, 1},
  {1, 1, 1, 1},
  {1, 1, 1, 1}}}
uint32
{{1, 1, 1, 1},
 {1, 1, 1, 1},
 {1, 1, 1, 1}}
{{{1, 1, 1, 1},
  {1, 1, 1, 1},
  {1, 1, 1, 1}},

 {{1, 1, 1, 1},
  {1, 1, 1, 1},
  {1, 1, 1, 1}}}
int64
{{1, 1, 1, 1},
 {1, 1, 1, 1},
 {1, 1, 1, 1}}
{{{1, 1, 1, 1},
  {1, 1, 1, 1},
  {1, 1, 1, 1}},

 {{1, 1, 1, 1},
  {1, 1, 1, 1},
  {1, 1, 1, 1}}}
uint64
{{1, 1, 1, 1},
 {1, 1, 1, 1},
 {1, 1, 1, 1}}
{{{1, 1, 1, 1},
  {1, 1, 1, 1},
  {1, 1, 1, 1}},

 {{1, 1, 1, 1},
  {1, 1, 1, 1},
  {1, 1, 1, 1}}}
half
{{1, 1, 1, 1},
 {1, 1, 1, 1},
 {1, 1, 1, 1}}
{{{1, 1, 1, 1},
  {1, 1, 1, 1},
  {1, 1, 1, 1}},

 {{1, 1, 1, 1},
  {1, 1, 1, 1},
  {1, 1, 1, 1}}}
float
{{1, 1, 1, 1},
 {1, 1, 1, 1},
 {1, 1, 1, 1}}
{{{1, 1, 1, 1},
  {1, 1, 1, 1},
  {1, 1, 1, 1}},

 {{1, 1, 1, 1},
  {1, 1, 1, 1},
  {1, 1, 1, 1}}}
double
{{1, 1, 1, 1},
 {1, 1, 1, 1},
 {1, 1, 1, 1}}
{{{1, 1, 1, 1},
  {1, 1, 1, 1},
  {1, 1, 1, 1}},

 {{1, 1, 1, 1},
  {1, 1, 1, 1},
  {1, 1, 1, 1}}}
complex
{{1, 1, 1, 1},
 {1, 1, 1, 1},
 {1, 1, 1, 1}}
{{{1, 1, 1, 1},
  {1, 1, 1, 1},
  {1, 1, 1, 1}},

 {{1, 1, 1, 1},
  {1, 1, 1, 1},
  {1, 1, 1, 1}}}

======== #6 array.rands() ========

boolean
{true, true, true, true, true, true, true, true, true, true, true, true}
{{true, true, true, true},
 {true, true, true, true},
 {true, true, true, true}}
{{{true, true, true, true},
  {true, true, true, true},
  {true, true, true, true}},

 {{true, true, true, true},
  {true, true, true, true},
  {true, true, true, true}}}
{true, true, true, true, true, true, true, true, true, true, true, true}
{{true, true, true, true},
 {true, true, true, true},
 {true, true, true, true}}
{{{true, true, true, true},
  {true, true, true, true},
  {true, true, true, true}},

 {{true, true, true, true},
  {true, true, true, true},
  {true, true, true, true}}}
int8
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
{{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0}}
{{{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}},

 {{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}}}
{ 3, 21, 29, 38, 86, 13,  7, 92, 64, 13, 61, 75}
{{ 3, 21, 29, 38},
 {86, 13,  7, 92},
 {64, 13, 61, 75}}
{{{ 3, 21, 29, 38},
  {86, 13,  7, 92},
  {64, 13, 61, 75}},

 {{62, 28, 45, 49},
  {81, 16,  2, 99},
  {57, 82, 34, 62}}}
uint8
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
{{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0}}
{{{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}},

 {{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}}}
{ 3, 21, 29, 38, 86, 13,  7, 92, 64, 13, 61, 75}
{{ 3, 21, 29, 38},
 {86, 13,  7, 92},
 {64, 13, 61, 75}}
{{{ 3, 21, 29, 38},
  {86, 13,  7, 92},
  {64, 13, 61, 75}},

 {{62, 28, 45, 49},
  {81, 16,  2, 99},
  {57, 82, 34, 62}}}
int16
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
{{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0}}
{{{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}},

 {{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}}}
{ 3, 21, 29, 38, 86, 13,  7, 92, 64, 13, 61, 75}
{{ 3, 21, 29, 38},
 {86, 13,  7, 92},
 {64, 13, 61, 75}}
{{{ 3, 21, 29, 38},
  {86, 13,  7, 92},
  {64, 13, 61, 75}},

 {{62, 28, 45, 49},
  {81, 16,  2, 99},
  {57, 82, 34, 62}}}
uint16
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
{{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0}}
{{{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}},

 {{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}}}
{ 3, 21, 29, 38, 86, 13,  7, 92, 64, 13, 61, 75}
{{ 3, 21, 29, 38},
 {86, 13,  7, 92},
 {64, 13, 61, 75}}
{{{ 3, 21, 29, 38},
  {86, 13,  7, 92},
  {64, 13, 61, 75}},

 {{62, 28, 45, 49},
  {81, 16,  2, 99},
  {57, 82, 34, 62}}}
int32
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
{{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0}}
{{{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}},

 {{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}}}
{ 3, 21, 29, 38, 86, 13,  7, 92, 64, 13, 61, 75}
{{ 3, 21, 29, 38},
 {86, 13,  7, 92},
 {64, 13, 61, 75}}
{{{ 3, 21, 29, 38},
  {86, 13,  7, 92},
  {64, 13, 61, 75}},

 {{62, 28, 45, 49},
  {81, 16,  2, 99},
  {57, 82, 34, 62}}}
uint32
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
{{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0}}
{{{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}},

 {{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}}}
{ 3, 21, 29, 38, 86, 13,  7, 92, 64, 13, 61, 75}
{{ 3, 21, 29, 38},
 {86, 13,  7, 92},
 {64, 13, 61, 75}}
{{{ 3, 21, 29, 38},
  {86, 13,  7, 92},
  {64, 13, 61, 75}},

 {{62, 28, 45, 49},
  {81, 16,  2, 99},
  {57, 82, 34, 62}}}
int64
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
{{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0}}
{{{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}},

 {{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}}}
{ 3, 21, 29, 38, 86, 13,  7, 92, 64, 13, 61, 75}
{{ 3, 21, 29, 38},
 {86, 13,  7, 92},
 {64, 13, 61, 75}}
{{{ 3, 21, 29, 38},
  {86, 13,  7, 92},
  {64, 13, 61, 75}},

 {{62, 28, 45, 49},
  {81, 16,  2, 99},
  {57, 82, 34, 62}}}
uint64
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
{{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0}}
{{{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}},

 {{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}}}
{ 3, 21, 29, 38, 86, 13,  7, 92, 64, 13, 61, 75}
{{ 3, 21, 29, 38},
 {86, 13,  7, 92},
 {64, 13, 61, 75}}
{{{ 3, 21, 29, 38},
  {86, 13,  7, 92},
  {64, 13, 61, 75}},

 {{62, 28, 45, 49},
  {81, 16,  2, 99},
  {57, 82, 34, 62}}}
half
{0.0305786,  0.213135,  0.298828,  0.381104,  0.863281,  0.133423, 0.0734253,  0.924316,  0.642578,   0.13562,   0.61377,  0.758301}
{{0.0305786,  0.213135,  0.298828,  0.381104},
 { 0.863281,  0.133423, 0.0734253,  0.924316},
 { 0.642578,   0.13562,   0.61377,  0.758301}}
{{{0.0305786,  0.213135,  0.298828,  0.381104},
  { 0.863281,  0.133423, 0.0734253,  0.924316},
  { 0.642578,   0.13562,   0.61377,  0.758301}},

 {{ 0.629395,  0.280518,  0.450195,  0.493652},
  { 0.813965,  0.167358, 0.0294647,  0.995605},
  { 0.571777,  0.820801,  0.342041,  0.623047}}}
{ 3, 21, 29, 38, 86, 13,  7, 92, 64, 13, 61, 75}
{{ 3, 21, 29, 38},
 {86, 13,  7, 92},
 {64, 13, 61, 75}}
{{{ 3, 21, 29, 38},
  {86, 13,  7, 92},
  {64, 13, 61, 75}},

 {{62, 28, 45, 49},
  {81, 16,  2, 99},
  {57, 82, 34, 62}}}
float
{ 0.030581,   0.21314,  0.299003,  0.381139,  0.863488,  0.133443, 0.0734653,  0.924736,  0.642876,  0.135658,  0.614181,  0.758658}
{{ 0.030581,   0.21314,  0.299003,  0.381139},
 { 0.863488,  0.133443, 0.0734653,  0.924736},
 { 0.642876,  0.135658,  0.614181,  0.758658}}
{{{ 0.030581,   0.21314,  0.299003,  0.381139},
  { 0.863488,  0.133443, 0.0734653,  0.924736},
  { 0.642876,  0.135658,  0.614181,  0.758658}},

 {{ 0.629676,  0.280639,  0.450236,   0.49366},
  { 0.814271,  0.167373, 0.0294783,  0.995645},
  { 0.571796,  0.820992,  0.342216,  0.623155}}}
{ 3, 21, 29, 38, 86, 13,  7, 92, 64, 13, 61, 75}
{{ 3, 21, 29, 38},
 {86, 13,  7, 92},
 {64, 13, 61, 75}}
{{{ 3, 21, 29, 38},
  {86, 13,  7, 92},
  {64, 13, 61, 75}},

 {{62, 28, 45, 49},
  {81, 16,  2, 99},
  {57, 82, 34, 62}}}
double
{ 0.030581,   0.21314,  0.299003,  0.381139,  0.863488,  0.133443, 0.0734653,  0.924736,  0.642876,  0.135658,  0.614181,  0.758658}
{{ 0.030581,   0.21314,  0.299003,  0.381139},
 { 0.863488,  0.133443, 0.0734653,  0.924736},
 { 0.642876,  0.135658,  0.614181,  0.758658}}
{{{ 0.030581,   0.21314,  0.299003,  0.381139},
  { 0.863488,  0.133443, 0.0734653,  0.924736},
  { 0.642876,  0.135658,  0.614181,  0.758658}},

 {{ 0.629676,  0.280639,  0.450236,   0.49366},
  { 0.814271,  0.167373, 0.0294783,  0.995645},
  { 0.571796,  0.820991,  0.342216,  0.623155}}}
{ 3, 21, 29, 38, 86, 13,  7, 92, 64, 13, 61, 75}
{{ 3, 21, 29, 38},
 {86, 13,  7, 92},
 {64, 13, 61, 75}}
{{{ 3, 21, 29, 38},
  {86, 13,  7, 92},
  {64, 13, 61, 75}},

 {{62, 28, 45, 49},
  {81, 16,  2, 99},
  {57, 82, 34, 62}}}
complex
{ 0.030581,   0.21314,  0.299003,  0.381139,  0.863488,  0.133443, 0.0734653,  0.924736,  0.642876,  0.135658,  0.614181,  0.758658}
{{ 0.030581,   0.21314,  0.299003,  0.381139},
 { 0.863488,  0.133443, 0.0734653,  0.924736},
 { 0.642876,  0.135658,  0.614181,  0.758658}}
{{{ 0.030581,   0.21314,  0.299003,  0.381139},
  { 0.863488,  0.133443, 0.0734653,  0.924736},
  { 0.642876,  0.135658,  0.614181,  0.758658}},

 {{ 0.629676,  0.280639,  0.450236,   0.49366},
  { 0.814271,  0.167373, 0.0294783,  0.995645},
  { 0.571796,  0.820991,  0.342216,  0.623155}}}
{ 3, 21, 29, 38, 86, 13,  7, 92, 64, 13, 61, 75}
{{ 3, 21, 29, 38},
 {86, 13,  7, 92},
 {64, 13, 61, 75}}
{{{ 3, 21, 29, 38},
  {86, 13,  7, 92},
  {64, 13, 61, 75}},

 {{62, 28, 45, 49},
  {81, 16,  2, 99},
  {57, 82, 34, 62}}}

======== #7 array.rands@normal() ========

boolean
{true, true, true, true, true, true, true, true, true, true, true, true}
{{true, true, true, true},
 {true, true, true, true},
 {true, true, true, true}}
{{{true, true, true, true},
  {true, true, true, true},
  {true, true, true, true}},

 {{true, true, true, true},
  {true, true, true, true},
  {true, true, true, true}}}
{true, true, true, true, true, true, true, true, true, true, true, true}
{{true, true, true, true},
 {true, true, true, true},
 {true, true, true, true}}
{{{true, true, true, true},
  {true, true, true, true},
  {true, true, true, true}},

 {{true, true, true, true},
  {true, true, true, true},
  {true, true, true, true}}}
{true, true, true, true, true, true, true, true, true, true, true, true}
{{true, true, true, true},
 {true, true, true, true},
 {true, true, true, true}}
{{{true, true, true, true},
  {true, true, true, true},
  {true, true, true, true}},

 {{true, true, true, true},
  {true, true, true, true},
  {true, true, true, true}}}
int8
{ 2,  1,  0, -1,  0,  0,  0,  0,  0,  0,  0, -1}
{{ 2,  1,  0, -1},
 { 0,  0,  0,  0},
 { 0,  0,  0, -1}}
{{{ 2,  1,  0, -1},
  { 0,  0,  0,  0},
  { 0,  0,  0, -1}},

 {{ 0,  0,  0, -1},
  { 0,  0, -1,  0},
  {-1,  0,  1,  0}}}
{12, 11, 10,  8, 10,  9, 10, 10, 10,  9,  9,  8}
{{12, 11, 10,  8},
 {10,  9, 10, 10},
 {10,  9,  9,  8}}
{{{12, 11, 10,  8},
  {10,  9, 10, 10},
  {10,  9,  9,  8}},

 {{ 9, 10,  9,  8},
  {10,  9,  8, 10},
  { 8,  9, 11,  9}}}
{25, 16, 12,  3, 14,  4, 15, 10, 13,  9,  4,  3}
{{25, 16, 12,  3},
 {14,  4, 15, 10},
 {13,  9,  4,  3}}
{{{25, 16, 12,  3},
  {14,  4, 15, 10},
  {13,  9,  4,  3}},

 {{ 9, 12,  4,  2},
  {12,  6,  0, 11},
  { 2,  5, 17,  6}}}
uint8
{  2,   1,   0, 255,   0,   0,   0,   0,   0,   0,   0, 255}
{{  2,   1,   0, 255},
 {  0,   0,   0,   0},
 {  0,   0,   0, 255}}
{{{  2,   1,   0, 255},
  {  0,   0,   0,   0},
  {  0,   0,   0, 255}},

 {{  0,   0,   0, 255},
  {  0,   0, 255,   0},
  {255,   0,   1,   0}}}
{12, 11, 10,  8, 10,  9, 10, 10, 10,  9,  9,  8}
{{12, 11, 10,  8},
 {10,  9, 10, 10},
 {10,  9,  9,  8}}
{{{12, 11, 10,  8},
  {10,  9, 10, 10},
  {10,  9,  9,  8}},

 {{ 9, 10,  9,  8},
  {10,  9,  8, 10},
  { 8,  9, 11,  9}}}
{25, 16, 12,  3, 14,  4, 15, 10, 13,  9,  4,  3}
{{25, 16, 12,  3},
 {14,  4, 15, 10},
 {13,  9,  4,  3}}
{{{25, 16, 12,  3},
  {14,  4, 15, 10},
  {13,  9,  4,  3}},

 {{ 9, 12,  4,  2},
  {12,  6,  0, 11},
  { 2,  5, 17,  6}}}
int16
{ 2,  1,  0, -1,  0,  0,  0,  0,  0,  0,  0, -1}
{{ 2,  1,  0, -1},
 { 0,  0,  0,  0},
 { 0,  0,  0, -1}}
{{{ 2,  1,  0, -1},
  { 0,  0,  0,  0},
  { 0,  0,  0, -1}},

 {{ 0,  0,  0, -1},
  { 0,  0, -1,  0},
  {-1,  0,  1,  0}}}
{12, 11, 10,  8, 10,  9, 10, 10, 10,  9,  9,  8}
{{12, 11, 10,  8},
 {10,  9, 10, 10},
 {10,  9,  9,  8}}
{{{12, 11, 10,  8},
  {10,  9, 10, 10},
  {10,  9,  9,  8}},

 {{ 9, 10,  9,  8},
  {10,  9,  8, 10},
  { 8,  9, 11,  9}}}
{25, 16, 12,  3, 14,  4, 15, 10, 13,  9,  4,  3}
{{25, 16, 12,  3},
 {14,  4, 15, 10},
 {13,  9,  4,  3}}
{{{25, 16, 12,  3},
  {14,  4, 15, 10},
  {13,  9,  4,  3}},

 {{ 9, 12,  4,  2},
  {12,  6,  0, 11},
  { 2,  5, 17,  6}}}
uint16
{    2,     1,     0, 65535,     0,     0,     0,     0,     0,     0,     0, 65535}
{{    2,     1,     0, 65535},
 {    0,     0,     0,     0},
 {    0,     0,     0, 65535}}
{{{    2,     1,     0, 65535},
  {    0,     0,     0,     0},
  {    0,     0,     0, 65535}},

 {{    0,     0,     0, 65535},
  {    0,     0, 65535,     0},
  {65535,     0,     1,     0}}}
{12, 11, 10,  8, 10,  9, 10, 10, 10,  9,  9,  8}
{{12, 11, 10,  8},
 {10,  9, 10, 10},
 {10,  9,  9,  8}}
{{{12, 11, 10,  8},
  {10,  9, 10, 10},
  {10,  9,  9,  8}},

 {{ 9, 10,  9,  8},
  {10,  9,  8, 10},
  { 8,  9, 11,  9}}}
{25, 16, 12,  3, 14,  4, 15, 10, 13,  9,  4,  3}
{{25, 16, 12,  3},
 {14,  4, 15, 10},
 {13,  9,  4,  3}}
{{{25, 16, 12,  3},
  {14,  4, 15, 10},
  {13,  9,  4,  3}},

 {{ 9, 12,  4,  2},
  {12,  6,  0, 11},
  { 2,  5, 17,  6}}}
int32
{ 2,  1,  0, -1,  0,  0,  0,  0,  0,  0,  0, -1}
{{ 2,  1,  0, -1},
 { 0,  0,  0,  0},
 { 0,  0,  0, -1}}
{{{ 2,  1,  0, -1},
  { 0,  0,  0,  0},
  { 0,  0,  0, -1}},

 {{ 0,  0,  0, -1},
  { 0,  0, -1,  0},
  {-1,  0,  1,  0}}}
{12, 11, 10,  8, 10,  9, 10, 10, 10,  9,  9,  8}
{{12, 11, 10,  8},
 {10,  9, 10, 10},
 {10,  9,  9,  8}}
{{{12, 11, 10,  8},
  {10,  9, 10, 10},
  {10,  9,  9,  8}},

 {{ 9, 10,  9,  8},
  {10,  9,  8, 10},
  { 8,  9, 11,  9}}}
{25, 16, 12,  3, 14,  4, 15, 10, 13,  9,  4,  3}
{{25, 16, 12,  3},
 {14,  4, 15, 10},
 {13,  9,  4,  3}}
{{{25, 16, 12,  3},
  {14,  4, 15, 10},
  {13,  9,  4,  3}},

 {{ 9, 12,  4,  2},
  {12,  6,  0, 11},
  { 2,  5, 17,  6}}}
uint32
{         2,          1,          0, 4294967295,          0,          0,          0,          0,          0,          0,          0, 4294967295}
{{         2,          1,          0, 4294967295},
 {         0,          0,          0,          0},
 {         0,          0,          0, 4294967295}}
{{{         2,          1,          0, 4294967295},
  {         0,          0,          0,          0},
  {         0,          0,          0, 4294967295}},

 {{         0,          0,          0, 4294967295},
  {         0,          0, 4294967295,          0},
  {4294967295,          0,          1,          0}}}
{12, 11, 10,  8, 10,  9, 10, 10, 10,  9,  9,  8}
{{12, 11, 10,  8},
 {10,  9, 10, 10},
 {10,  9,  9,  8}}
{{{12, 11, 10,  8},
  {10,  9, 10, 10},
  {10,  9,  9,  8}},

 {{ 9, 10,  9,  8},
  {10,  9,  8, 10},
  { 8,  9, 11,  9}}}
{25, 16, 12,  3, 14,  4, 15, 10, 13,  9,  4,  3}
{{25, 16, 12,  3},
 {14,  4, 15, 10},
 {13,  9,  4,  3}}
{{{25, 16, 12,  3},
  {14,  4, 15, 10},
  {13,  9,  4,  3}},

 {{ 9, 12,  4,  2},
  {12,  6,  0, 11},
  { 2,  5, 17,  6}}}
int64
{ 2,  1,  0, -1,  0,  0,  0,  0,  0,  0,  0, -1}
{{ 2,  1,  0, -1},
 { 0,  0,  0,  0},
 { 0,  0,  0, -1}}
{{{ 2,  1,  0, -1},
  { 0,  0,  0,  0},
  { 0,  0,  0, -1}},

 {{ 0,  0,  0, -1},
  { 0,  0, -1,  0},
  {-1,  0,  1,  0}}}
{12, 11, 10,  8, 10,  9, 10, 10, 10,  9,  9,  8}
{{12, 11, 10,  8},
 {10,  9, 10, 10},
 {10,  9,  9,  8}}
{{{12, 11, 10,  8},
  {10,  9, 10, 10},
  {10,  9,  9,  8}},

 {{ 9, 10,  9,  8},
  {10,  9,  8, 10},
  { 8,  9, 11,  9}}}
{25, 16, 12,  3, 14,  4, 15, 10, 13,  9,  4,  3}
{{25, 16, 12,  3},
 {14,  4, 15, 10},
 {13,  9,  4,  3}}
{{{25, 16, 12,  3},
  {14,  4, 15, 10},
  {13,  9,  4,  3}},

 {{ 9, 12,  4,  2},
  {12,  6,  0, 11},
  { 2,  5, 17,  6}}}
uint64
{                   2,                    1,                    0, 18446744073709551615,                    0,                    0,                    0,                    0,                    0,                    0,                    0, 18446744073709551615}
{{                   2,                    1,                    0, 18446744073709551615},
 {                   0,                    0,                    0,                    0},
 {                   0,                    0,                    0, 18446744073709551615}}
{{{                   2,                    1,                    0, 18446744073709551615},
  {                   0,                    0,                    0,                    0},
  {                   0,                    0,                    0, 18446744073709551615}},

 {{                   0,                    0,                    0, 18446744073709551615},
  {                   0,                    0, 18446744073709551615,                    0},
  {18446744073709551615,                    0,                    1,                    0}}}
{12, 11, 10,  8, 10,  9, 10, 10, 10,  9,  9,  8}
{{12, 11, 10,  8},
 {10,  9, 10, 10},
 {10,  9,  9,  8}}
{{{12, 11, 10,  8},
  {10,  9, 10, 10},
  {10,  9,  9,  8}},

 {{ 9, 10,  9,  8},
  {10,  9,  8, 10},
  { 8,  9, 11,  9}}}
{25, 16, 12,  3, 14,  4, 15, 10, 13,  9,  4,  3}
{{25, 16, 12,  3},
 {14,  4, 15, 10},
 {13,  9,  4,  3}}
{{{25, 16, 12,  3},
  {14,  4, 15, 10},
  {13,  9,  4,  3}},

 {{ 9, 12,  4,  2},
  {12,  6,  0, 11},
  { 2,  5, 17,  6}}}
half
{   2.57031,    1.05469,   0.402832,   -1.04004,    0.70752,   -0.98584,   0.943848,   0.050293,   0.556152, -0.0726318,  -0.953613,   -1.02344}
{{   2.57031,    1.05469,   0.402832,   -1.04004},
 {   0.70752,   -0.98584,   0.943848,   0.050293},
 {  0.556152, -0.0726318,  -0.953613,   -1.02344}}
{{{   2.57031,    1.05469,   0.402832,   -1.04004},
  {   0.70752,   -0.98584,   0.943848,   0.050293},
  {  0.556152, -0.0726318,  -0.953613,   -1.02344}},

 {{  -0.12793,   0.414062,  -0.981445,   -1.21973},
  {  0.341064,  -0.641113,   -1.61328,   0.248291},
  {  -1.19922,  -0.745605,    1.27148,  -0.605957}}}
{12.5703, 11.0547, 10.3984, 8.95312, 10.7031, 9.00781, 10.9375, 10.0469, 10.5547, 9.92188, 9.03906, 8.96875}
{{12.5703, 11.0547, 10.3984, 8.95312},
 {10.7031, 9.00781, 10.9375, 10.0469},
 {10.5547, 9.92188, 9.03906, 8.96875}}
{{{12.5703, 11.0547, 10.3984, 8.95312},
  {10.7031, 9.00781, 10.9375, 10.0469},
  {10.5547, 9.92188, 9.03906, 8.96875}},

 {{9.86719, 10.4141, 9.01562, 8.77344},
  {10.3359, 9.35156, 8.38281, 10.2422},
  {8.79688,    9.25, 11.2656, 9.39062}}}
{25.4219, 16.3281, 12.4141, 3.75391, 14.2422, 4.08203, 15.6641, 10.2969, 13.3359,  9.5625, 4.27344, 3.85742}
{{25.4219, 16.3281, 12.4141, 3.75391},
 {14.2422, 4.08203, 15.6641, 10.2969},
 {13.3359,  9.5625, 4.27344, 3.85742}}
{{{ 25.4219,  16.3281,  12.4141,  3.75391},
  { 14.2422,  4.08203,  15.6641,  10.2969},
  { 13.3359,   9.5625,  4.27344,  3.85742}},

 {{ 9.22656,  12.4844,  4.10938,  2.67578},
  { 12.0469,  6.14844, 0.317871,  11.4844},
  { 2.80273,  5.52344,   17.625,  6.35938}}}
float
{   2.57046,    1.05559,   0.402888,   -1.04081,   0.707671,  -0.985925,   0.944053,  0.0503091,   0.556569, -0.0726323,  -0.953877,   -1.02345}
{{   2.57046,    1.05559,   0.402888,   -1.04081},
 {  0.707671,  -0.985925,   0.944053,  0.0503091},
 {  0.556569, -0.0726323,  -0.953877,   -1.02345}}
{{{   2.57046,    1.05559,   0.402888,   -1.04081},
  {  0.707671,  -0.985925,   0.944053,  0.0503091},
  {  0.556569, -0.0726323,  -0.953877,   -1.02345}},

 {{ -0.128033,   0.414272,   -0.98166,   -1.22041},
  {  0.341298,  -0.641298,   -1.61368,   0.248405},
  {  -1.19946,  -0.745875,    1.27203,  -0.606229}}}
{12.5705, 11.0556, 10.4029, 8.95919, 10.7077, 9.01408, 10.9441, 10.0503, 10.5566, 9.92737, 9.04612, 8.97655}
{{12.5705, 11.0556, 10.4029, 8.95919},
 {10.7077, 9.01408, 10.9441, 10.0503},
 {10.5566, 9.92737, 9.04612, 8.97655}}
{{{12.5705, 11.0556, 10.4029, 8.95919},
  {10.7077, 9.01408, 10.9441, 10.0503},
  {10.5566, 9.92737, 9.04612, 8.97655}},

 {{9.87197, 10.4143, 9.01834, 8.77959},
  {10.3413,  9.3587, 8.38632, 10.2484},
  {8.80054, 9.25413,  11.272, 9.39377}}}
{25.4228, 16.3335, 12.4173, 3.75511,  14.246, 4.08445, 15.6643, 10.3019, 13.3394, 9.56421, 4.27674, 3.85928}
{{25.4228, 16.3335, 12.4173, 3.75511},
 { 14.246, 4.08445, 15.6643, 10.3019},
 {13.3394, 9.56421, 4.27674, 3.85928}}
{{{ 25.4228,  16.3335,  12.4173,  3.75511},
  {  14.246,  4.08445,  15.6643,  10.3019},
  { 13.3394,  9.56421,  4.27674,  3.85928}},

 {{  9.2318,  12.4856,  4.11004,  2.67756},
  { 12.0478,  6.15221, 0.317932,  11.4904},
  { 2.80324,  5.52475,  17.6322,  6.36262}}}
double
{   2.57046,    1.05559,   0.402888,   -1.04081,   0.707671,  -0.985925,   0.944053,  0.0503091,   0.556569, -0.0726323,  -0.953877,   -1.02345}
{{   2.57046,    1.05559,   0.402888,   -1.04081},
 {  0.707671,  -0.985925,   0.944053,  0.0503091},
 {  0.556569, -0.0726323,  -0.953877,   -1.02345}}
{{{   2.57046,    1.05559,   0.402888,   -1.04081},
  {  0.707671,  -0.985925,   0.944053,  0.0503091},
  {  0.556569, -0.0726323,  -0.953877,   -1.02345}},

 {{ -0.128033,   0.414272,   -0.98166,   -1.22041},
  {  0.341299,  -0.641298,   -1.61368,   0.248405},
  {  -1.19946,  -0.745875,    1.27203,  -0.606229}}}
{12.5705, 11.0556, 10.4029, 8.95919, 10.7077, 9.01407, 10.9441, 10.0503, 10.5566, 9.92737, 9.04612, 8.97655}
{{12.5705, 11.0556, 10.4029, 8.95919},
 {10.7077, 9.01407, 10.9441, 10.0503},
 {10.5566, 9.92737, 9.04612, 8.97655}}
{{{12.5705, 11.0556, 10.4029, 8.95919},
  {10.7077, 9.01407, 10.9441, 10.0503},
  {10.5566, 9.92737, 9.04612, 8.97655}},

 {{9.87197, 10.4143, 9.01834, 8.77959},
  {10.3413,  9.3587, 8.38632, 10.2484},
  {8.80054, 9.25413,  11.272, 9.39377}}}
{25.4228, 16.3335, 12.4173, 3.75511,  14.246, 4.08445, 15.6643, 10.3019, 13.3394, 9.56421, 4.27674, 3.85928}
{{25.4228, 16.3335, 12.4173, 3.75511},
 { 14.246, 4.08445, 15.6643, 10.3019},
 {13.3394, 9.56421, 4.27674, 3.85928}}
{{{ 25.4228,  16.3335,  12.4173,  3.75511},
  {  14.246,  4.08445,  15.6643,  10.3019},
  { 13.3394,  9.56421,  4.27674,  3.85928}},

 {{  9.2318,  12.4856,  4.11004,  2.67756},
  { 12.0478,  6.15221, 0.317932,  11.4904},
  { 2.80324,  5.52475,  17.6322,  6.36262}}}
complex
{   2.57046,    1.05559,   0.402888,   -1.04081,   0.707671,  -0.985925,   0.944053,  0.0503091,   0.556569, -0.0726323,  -0.953877,   -1.02345}
{{   2.57046,    1.05559,   0.402888,   -1.04081},
 {  0.707671,  -0.985925,   0.944053,  0.0503091},
 {  0.556569, -0.0726323,  -0.953877,   -1.02345}}
{{{   2.57046,    1.05559,   0.402888,   -1.04081},
  {  0.707671,  -0.985925,   0.944053,  0.0503091},
  {  0.556569, -0.0726323,  -0.953877,   -1.02345}},

 {{ -0.128033,   0.414272,   -0.98166,   -1.22041},
  {  0.341299,  -0.641298,   -1.61368,   0.248405},
  {  -1.19946,  -0.745875,    1.27203,  -0.606229}}}
{12.5705, 11.0556, 10.4029, 8.95919, 10.7077, 9.01407, 10.9441, 10.0503, 10.5566, 9.92737, 9.04612, 8.97655}
{{12.5705, 11.0556, 10.4029, 8.95919},
 {10.7077, 9.01407, 10.9441, 10.0503},
 {10.5566, 9.92737, 9.04612, 8.97655}}
{{{12.5705, 11.0556, 10.4029, 8.95919},
  {10.7077, 9.01407, 10.9441, 10.0503},
  {10.5566, 9.92737, 9.04612, 8.97655}},

 {{9.87197, 10.4143, 9.01834, 8.77959},
  {10.3413,  9.3587, 8.38632, 10.2484},
  {8.80054, 9.25413,  11.272, 9.39377}}}
{25.4228, 16.3335, 12.4173, 3.75511,  14.246, 4.08445, 15.6643, 10.3019, 13.3394, 9.56421, 4.27674, 3.85928}
{{25.4228, 16.3335, 12.4173, 3.75511},
 { 14.246, 4.08445, 15.6643, 10.3019},
 {13.3394, 9.56421, 4.27674, 3.85928}}
{{{ 25.4228,  16.3335,  12.4173,  3.75511},
  {  14.246,  4.08445,  15.6643,  10.3019},
  { 13.3394,  9.56421,  4.27674,  3.85928}},

 {{  9.2318,  12.4856,  4.11004,  2.67756},
  { 12.0478,  6.15221, 0.317932,  11.4904},
  { 2.80324,  5.52475,  17.6322,  6.36262}}}

======== #8 array.range() ========

boolean
array.range(10, elemtype => elemtype) .. {false,  true,  true,  true,  true,  true,  true,  true,  true,  true}
array.range(0, 10, elemtype => elemtype) .. {false,  true,  true,  true,  true,  true,  true,  true,  true,  true}
array.range(0, -10, elemtype => elemtype) .. {false,  true,  true,  true,  true,  true,  true,  true,  true,  true}
array.range(3, 10, elemtype => elemtype) .. {true, true, true, true, true, true, true}
array.range(3, -10, elemtype => elemtype) .. { true,  true,  true, false,  true,  true,  true,  true,  true,  true,  true,  true,  true}
array.range(-3, 10, elemtype => elemtype) .. { true,  true,  true, false,  true,  true,  true,  true,  true,  true,  true,  true,  true}
array.range(-3, -10, elemtype => elemtype) .. {true, true, true, true, true, true, true}
array.range(3, 10, 2, elemtype => elemtype) .. {true, true, true, true}
array.range(3, -10, -2, elemtype => elemtype) .. {true, true, true, true, true, true, true}
array.range(-3, 10, 2, elemtype => elemtype) .. {true, true, true, true, true, true, true}
array.range(-3, -10, -2, elemtype => elemtype) .. {true, true, true, true}
array.range(3, 10, -2, elemtype => elemtype) .. ValueError: step must be positive
array.range(3, -10, 2, elemtype => elemtype) .. ValueError: step must be negative
array.range(3, 10, 0, elemtype => elemtype) .. ValueError: step must not be zero
int8
array.range(10, elemtype => elemtype) .. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array.range(0, 10, elemtype => elemtype) .. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array.range(0, -10, elemtype => elemtype) .. { 0, -1, -2, -3, -4, -5, -6, -7, -8, -9}
array.range(3, 10, elemtype => elemtype) .. {3, 4, 5, 6, 7, 8, 9}
array.range(3, -10, elemtype => elemtype) .. { 3,  2,  1,  0, -1, -2, -3, -4, -5, -6, -7, -8, -9}
array.range(-3, 10, elemtype => elemtype) .. {-3, -2, -1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9}
array.range(-3, -10, elemtype => elemtype) .. {-3, -4, -5, -6, -7, -8, -9}
array.range(3, 10, 2, elemtype => elemtype) .. {3, 5, 7, 9}
array.range(3, -10, -2, elemtype => elemtype) .. { 3,  1, -1, -3, -5, -7, -9}
array.range(-3, 10, 2, elemtype => elemtype) .. {-3, -1,  1,  3,  5,  7,  9}
array.range(-3, -10, -2, elemtype => elemtype) .. {-3, -5, -7, -9}
array.range(3, 10, -2, elemtype => elemtype) .. ValueError: step must be positive
array.range(3, -10, 2, elemtype => elemtype) .. ValueError: step must be negative
array.range(3, 10, 0, elemtype => elemtype) .. ValueError: step must not be zero
uint8
array.range(10, elemtype => elemtype) .. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array.range(0, 10, elemtype => elemtype) .. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array.range(0, -10, elemtype => elemtype) .. {  0, 255, 254, 253, 252, 251, 250, 249, 248, 247}
array.range(3, 10, elemtype => elemtype) .. {3, 4, 5, 6, 7, 8, 9}
array.range(3, -10, elemtype => elemtype) .. {  3,   2,   1,   0, 255, 254, 253, 252, 251, 250, 249, 248, 247}
array.range(-3, 10, elemtype => elemtype) .. {253, 254, 255,   0,   1,   2,   3,   4,   5,   6,   7,   8,   9}
array.range(-3, -10, elemtype => elemtype) .. {253, 252, 251, 250, 249, 248, 247}
array.range(3, 10, 2, elemtype => elemtype) .. {3, 5, 7, 9}
array.range(3, -10, -2, elemtype => elemtype) .. {  3,   1, 255, 253, 251, 249, 247}
array.range(-3, 10, 2, elemtype => elemtype) .. {253, 255,   1,   3,   5,   7,   9}
array.range(-3, -10, -2, elemtype => elemtype) .. {253, 251, 249, 247}
array.range(3, 10, -2, elemtype => elemtype) .. ValueError: step must be positive
array.range(3, -10, 2, elemtype => elemtype) .. ValueError: step must be negative
array.range(3, 10, 0, elemtype => elemtype) .. ValueError: step must not be zero
int16
array.range(10, elemtype => elemtype) .. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array.range(0, 10, elemtype => elemtype) .. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array.range(0, -10, elemtype => elemtype) .. { 0, -1, -2, -3, -4, -5, -6, -7, -8, -9}
array.range(3, 10, elemtype => elemtype) .. {3, 4, 5, 6, 7, 8, 9}
array.range(3, -10, elemtype => elemtype) .. { 3,  2,  1,  0, -1, -2, -3, -4, -5, -6, -7, -8, -9}
array.range(-3, 10, elemtype => elemtype) .. {-3, -2, -1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9}
array.range(-3, -10, elemtype => elemtype) .. {-3, -4, -5, -6, -7, -8, -9}
array.range(3, 10, 2, elemtype => elemtype) .. {3, 5, 7, 9}
array.range(3, -10, -2, elemtype => elemtype) .. { 3,  1, -1, -3, -5, -7, -9}
array.range(-3, 10, 2, elemtype => elemtype) .. {-3, -1,  1,  3,  5,  7,  9}
array.range(-3, -10, -2, elemtype => elemtype) .. {-3, -5, -7, -9}
array.range(3, 10, -2, elemtype => elemtype) .. ValueError: step must be positive
array.range(3, -10, 2, elemtype => elemtype) .. ValueError: step must be negative
array.range(3, 10, 0, elemtype => elemtype) .. ValueError: step must not be zero
uint16
array.range(10, elemtype => elemtype) .. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array.range(0, 10, elemtype => elemtype) .. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array.range(0, -10, elemtype => elemtype) .. {    0, 65535, 65534, 65533, 65532, 65531, 65530, 65529, 65528, 65527}
array.range(3, 10, elemtype => elemtype) .. {3, 4, 5, 6, 7, 8, 9}
array.range(3, -10, elemtype => elemtype) .. {    3,     2,     1,     0, 65535, 65534, 65533, 65532, 65531, 65530, 65529, 65528, 65527}
array.range(-3, 10, elemtype => elemtype) .. {65533, 65534, 65535,     0,     1,     2,     3,     4,     5,     6,     7,     8,     9}
array.range(-3, -10, elemtype => elemtype) .. {65533, 65532, 65531, 65530, 65529, 65528, 65527}
array.range(3, 10, 2, elemtype => elemtype) .. {3, 5, 7, 9}
array.range(3, -10, -2, elemtype => elemtype) .. {    3,     1, 65535, 65533, 65531, 65529, 65527}
array.range(-3, 10, 2, elemtype => elemtype) .. {65533, 65535,     1,     3,     5,     7,     9}
array.range(-3, -10, -2, elemtype => elemtype) .. {65533, 65531, 65529, 65527}
array.range(3, 10, -2, elemtype => elemtype) .. ValueError: step must be positive
array.range(3, -10, 2, elemtype => elemtype) .. ValueError: step must be negative
array.range(3, 10, 0, elemtype => elemtype) .. ValueError: step must not be zero
int32
array.range(10, elemtype => elemtype) .. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array.range(0, 10, elemtype => elemtype) .. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array.range(0, -10, elemtype => elemtype) .. { 0, -1, -2, -3, -4, -5, -6, -7, -8, -9}
array.range(3, 10, elemtype => elemtype) .. {3, 4, 5, 6, 7, 8, 9}
array.range(3, -10, elemtype => elemtype) .. { 3,  2,  1,  0, -1, -2, -3, -4, -5, -6, -7, -8, -9}
array.range(-3, 10, elemtype => elemtype) .. {-3, -2, -1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9}
array.range(-3, -10, elemtype => elemtype) .. {-3, -4, -5, -6, -7, -8, -9}
array.range(3, 10, 2, elemtype => elemtype) .. {3, 5, 7, 9}
array.range(3, -10, -2, elemtype => elemtype) .. { 3,  1, -1, -3, -5, -7, -9}
array.range(-3, 10, 2, elemtype => elemtype) .. {-3, -1,  1,  3,  5,  7,  9}
array.range(-3, -10, -2, elemtype => elemtype) .. {-3, -5, -7, -9}
array.range(3, 10, -2, elemtype => elemtype) .. ValueError: step must be positive
array.range(3, -10, 2, elemtype => elemtype) .. ValueError: step must be negative
array.range(3, 10, 0, elemtype => elemtype) .. ValueError: step must not be zero
uint32
array.range(10, elemtype => elemtype) .. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array.range(0, 10, elemtype => elemtype) .. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array.range(0, -10, elemtype => elemtype) .. {         0, 4294967295, 4294967294, 4294967293, 4294967292, 4294967291, 4294967290, 4294967289, 4294967288, 4294967287}
array.range(3, 10, elemtype => elemtype) .. {3, 4, 5, 6, 7, 8, 9}
array.range(3, -10, elemtype => elemtype) .. {         3,          2,          1,          0, 4294967295, 4294967294, 4294967293, 4294967292, 4294967291, 4294967290, 4294967289, 4294967288, 4294967287}
array.range(-3, 10, elemtype => elemtype) .. {4294967293, 4294967294, 4294967295,          0,          1,          2,          3,          4,          5,          6,          7,          8,          9}
array.range(-3, -10, elemtype => elemtype) .. {4294967293, 4294967292, 4294967291, 4294967290, 4294967289, 4294967288, 4294967287}
array.range(3, 10, 2, elemtype => elemtype) .. {3, 5, 7, 9}
array.range(3, -10, -2, elemtype => elemtype) .. {         3,          1, 4294967295, 4294967293, 4294967291, 4294967289, 4294967287}
array.range(-3, 10, 2, elemtype => elemtype) .. {4294967293, 4294967295,          1,          3,          5,          7,          9}
array.range(-3, -10, -2, elemtype => elemtype) .. {4294967293, 4294967291, 4294967289, 4294967287}
array.range(3, 10, -2, elemtype => elemtype) .. ValueError: step must be positive
array.range(3, -10, 2, elemtype => elemtype) .. ValueError: step must be negative
array.range(3, 10, 0, elemtype => elemtype) .. ValueError: step must not be zero
int64
array.range(10, elemtype => elemtype) .. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array.range(0, 10, elemtype => elemtype) .. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array.range(0, -10, elemtype => elemtype) .. { 0, -1, -2, -3, -4, -5, -6, -7, -8, -9}
array.range(3, 10, elemtype => elemtype) .. {3, 4, 5, 6, 7, 8, 9}
array.range(3, -10, elemtype => elemtype) .. { 3,  2,  1,  0, -1, -2, -3, -4, -5, -6, -7, -8, -9}
array.range(-3, 10, elemtype => elemtype) .. {-3, -2, -1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9}
array.range(-3, -10, elemtype => elemtype) .. {-3, -4, -5, -6, -7, -8, -9}
array.range(3, 10, 2, elemtype => elemtype) .. {3, 5, 7, 9}
array.range(3, -10, -2, elemtype => elemtype) .. { 3,  1, -1, -3, -5, -7, -9}
array.range(-3, 10, 2, elemtype => elemtype) .. {-3, -1,  1,  3,  5,  7,  9}
array.range(-3, -10, -2, elemtype => elemtype) .. {-3, -5, -7, -9}
array.range(3, 10, -2, elemtype => elemtype) .. ValueError: step must be positive
array.range(3, -10, 2, elemtype => elemtype) .. ValueError: step must be negative
array.range(3, 10, 0, elemtype => elemtype) .. ValueError: step must not be zero
uint64
array.range(10, elemtype => elemtype) .. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array.range(0, 10, elemtype => elemtype) .. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array.range(0, -10, elemtype => elemtype) .. {                   0, 18446744073709551615, 18446744073709551614, 18446744073709551613, 18446744073709551612, 18446744073709551611, 18446744073709551610, 18446744073709551609, 18446744073709551608, 18446744073709551607}
array.range(3, 10, elemtype => elemtype) .. {3, 4, 5, 6, 7, 8, 9}
array.range(3, -10, elemtype => elemtype) .. {                   3,                    2,                    1,                    0, 18446744073709551615, 18446744073709551614, 18446744073709551613, 18446744073709551612, 18446744073709551611, 18446744073709551610, 18446744073709551609, 18446744073709551608, 18446744073709551607}
array.range(-3, 10, elemtype => elemtype) .. {18446744073709551613, 18446744073709551614, 18446744073709551615,                    0,                    1,                    2,                    3,                    4,                    5,                    6,                    7,                    8,                    9}
array.range(-3, -10, elemtype => elemtype) .. {18446744073709551613, 18446744073709551612, 18446744073709551611, 18446744073709551610, 18446744073709551609, 18446744073709551608, 18446744073709551607}
array.range(3, 10, 2, elemtype => elemtype) .. {3, 5, 7, 9}
array.range(3, -10, -2, elemtype => elemtype) .. {                   3,                    1, 18446744073709551615, 18446744073709551613, 18446744073709551611, 18446744073709551609, 18446744073709551607}
array.range(-3, 10, 2, elemtype => elemtype) .. {18446744073709551613, 18446744073709551615,                    1,                    3,                    5,                    7,                    9}
array.range(-3, -10, -2, elemtype => elemtype) .. {18446744073709551613, 18446744073709551611, 18446744073709551609, 18446744073709551607}
array.range(3, 10, -2, elemtype => elemtype) .. ValueError: step must be positive
array.range(3, -10, 2, elemtype => elemtype) .. ValueError: step must be negative
array.range(3, 10, 0, elemtype => elemtype) .. ValueError: step must not be zero
half
array.range(10, elemtype => elemtype) .. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array.range(0, 10, elemtype => elemtype) .. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array.range(0, -10, elemtype => elemtype) .. { 0, -1, -2, -3, -4, -5, -6, -7, -8, -9}
array.range(3, 10, elemtype => elemtype) .. {3, 4, 5, 6, 7, 8, 9}
array.range(3, -10, elemtype => elemtype) .. { 3,  2,  1,  0, -1, -2, -3, -4, -5, -6, -7, -8, -9}
array.range(-3, 10, elemtype => elemtype) .. {-3, -2, -1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9}
array.range(-3, -10, elemtype => elemtype) .. {-3, -4, -5, -6, -7, -8, -9}
array.range(3, 10, 2, elemtype => elemtype) .. {3, 5, 7, 9}
array.range(3, -10, -2, elemtype => elemtype) .. { 3,  1, -1, -3, -5, -7, -9}
array.range(-3, 10, 2, elemtype => elemtype) .. {-3, -1,  1,  3,  5,  7,  9}
array.range(-3, -10, -2, elemtype => elemtype) .. {-3, -5, -7, -9}
array.range(3, 10, -2, elemtype => elemtype) .. ValueError: step must be positive
array.range(3, -10, 2, elemtype => elemtype) .. ValueError: step must be negative
array.range(3, 10, 0, elemtype => elemtype) .. ValueError: step must not be zero
float
array.range(10, elemtype => elemtype) .. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array.range(0, 10, elemtype => elemtype) .. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array.range(0, -10, elemtype => elemtype) .. { 0, -1, -2, -3, -4, -5, -6, -7, -8, -9}
array.range(3, 10, elemtype => elemtype) .. {3, 4, 5, 6, 7, 8, 9}
array.range(3, -10, elemtype => elemtype) .. { 3,  2,  1,  0, -1, -2, -3, -4, -5, -6, -7, -8, -9}
array.range(-3, 10, elemtype => elemtype) .. {-3, -2, -1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9}
array.range(-3, -10, elemtype => elemtype) .. {-3, -4, -5, -6, -7, -8, -9}
array.range(3, 10, 2, elemtype => elemtype) .. {3, 5, 7, 9}
array.range(3, -10, -2, elemtype => elemtype) .. { 3,  1, -1, -3, -5, -7, -9}
array.range(-3, 10, 2, elemtype => elemtype) .. {-3, -1,  1,  3,  5,  7,  9}
array.range(-3, -10, -2, elemtype => elemtype) .. {-3, -5, -7, -9}
array.range(3, 10, -2, elemtype => elemtype) .. ValueError: step must be positive
array.range(3, -10, 2, elemtype => elemtype) .. ValueError: step must be negative
array.range(3, 10, 0, elemtype => elemtype) .. ValueError: step must not be zero
double
array.range(10, elemtype => elemtype) .. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array.range(0, 10, elemtype => elemtype) .. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array.range(0, -10, elemtype => elemtype) .. { 0, -1, -2, -3, -4, -5, -6, -7, -8, -9}
array.range(3, 10, elemtype => elemtype) .. {3, 4, 5, 6, 7, 8, 9}
array.range(3, -10, elemtype => elemtype) .. { 3,  2,  1,  0, -1, -2, -3, -4, -5, -6, -7, -8, -9}
array.range(-3, 10, elemtype => elemtype) .. {-3, -2, -1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9}
array.range(-3, -10, elemtype => elemtype) .. {-3, -4, -5, -6, -7, -8, -9}
array.range(3, 10, 2, elemtype => elemtype) .. {3, 5, 7, 9}
array.range(3, -10, -2, elemtype => elemtype) .. { 3,  1, -1, -3, -5, -7, -9}
array.range(-3, 10, 2, elemtype => elemtype) .. {-3, -1,  1,  3,  5,  7,  9}
array.range(-3, -10, -2, elemtype => elemtype) .. {-3, -5, -7, -9}
array.range(3, 10, -2, elemtype => elemtype) .. ValueError: step must be positive
array.range(3, -10, 2, elemtype => elemtype) .. ValueError: step must be negative
array.range(3, 10, 0, elemtype => elemtype) .. ValueError: step must not be zero
complex
array.range(10, elemtype => elemtype) .. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array.range(0, 10, elemtype => elemtype) .. {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
array.range(0, -10, elemtype => elemtype) .. { 0, -1, -2, -3, -4, -5, -6, -7, -8, -9}
array.range(3, 10, elemtype => elemtype) .. {3, 4, 5, 6, 7, 8, 9}
array.range(3, -10, elemtype => elemtype) .. { 3,  2,  1,  0, -1, -2, -3, -4, -5, -6, -7, -8, -9}
array.range(-3, 10, elemtype => elemtype) .. {-3, -2, -1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9}
array.range(-3, -10, elemtype => elemtype) .. {-3, -4, -5, -6, -7, -8, -9}
array.range(3, 10, 2, elemtype => elemtype) .. {3, 5, 7, 9}
array.range(3, -10, -2, elemtype => elemtype) .. { 3,  1, -1, -3, -5, -7, -9}
array.range(-3, 10, 2, elemtype => elemtype) .. {-3, -1,  1,  3,  5,  7,  9}
array.range(-3, -10, -2, elemtype => elemtype) .. {-3, -5, -7, -9}
array.range(3, 10, -2, elemtype => elemtype) .. ValueError: step must be positive
array.range(3, -10, 2, elemtype => elemtype) .. ValueError: step must be negative
array.range(3, 10, 0, elemtype => elemtype) .. ValueError: step must not be zero

======== #9 array.rotation() ========

half
array.rotation(0, elemtype => elemtype) .. {{ 1, -0},
 { 0,  1}}
array.rotation(0, 2, elemtype => elemtype) .. {{ 1, -0,  2},
 { 0,  1,  0},
 { 0,  0,  1}}
array.rotation(0, 2, 3, elemtype => elemtype) .. {{ 1, -0,  2},
 { 0,  1,  3},
 { 0,  0,  1}}
array.rotation(math.pi / 6, elemtype => elemtype) .. {{0.865723,     -0.5},
 {     0.5, 0.865723}}
array.rotation(30, elemtype => elemtype):deg .. {{0.865723,     -0.5},
 {     0.5, 0.865723}}
float
array.rotation(0, elemtype => elemtype) .. {{ 1, -0},
 { 0,  1}}
array.rotation(0, 2, elemtype => elemtype) .. {{ 1, -0,  2},
 { 0,  1,  0},
 { 0,  0,  1}}
array.rotation(0, 2, 3, elemtype => elemtype) .. {{ 1, -0,  2},
 { 0,  1,  3},
 { 0,  0,  1}}
array.rotation(math.pi / 6, elemtype => elemtype) .. {{0.866025,     -0.5},
 {     0.5, 0.866025}}
array.rotation(30, elemtype => elemtype):deg .. {{0.866025,     -0.5},
 {     0.5, 0.866025}}
double
array.rotation(0, elemtype => elemtype) .. {{ 1, -0},
 { 0,  1}}
array.rotation(0, 2, elemtype => elemtype) .. {{ 1, -0,  2},
 { 0,  1,  0},
 { 0,  0,  1}}
array.rotation(0, 2, 3, elemtype => elemtype) .. {{ 1, -0,  2},
 { 0,  1,  3},
 { 0,  0,  1}}
array.rotation(math.pi / 6, elemtype => elemtype) .. {{0.866025,     -0.5},
 {     0.5, 0.866025}}
array.rotation(30, elemtype => elemtype):deg .. {{0.866025,     -0.5},
 {     0.5, 0.866025}}
complex
array.rotation(0, elemtype => elemtype) .. {{1, 0},
 {0, 1}}
array.rotation(0, 2, elemtype => elemtype) .. {{1, 0, 2},
 {0, 1, 0},
 {0, 0, 1}}
array.rotation(0, 2, 3, elemtype => elemtype) .. {{1, 0, 2},
 {0, 1, 3},
 {0, 0, 1}}
array.rotation(math.pi / 6, elemtype => elemtype) .. {{0.866025,     -0.5},
 {     0.5, 0.866025}}
array.rotation(30, elemtype => elemtype):deg .. {{0.866025,     -0.5},
 {     0.5, 0.866025}}

======== #10 array.rotation@x() ========

half
array.rotation@x(0, elemtype => elemtype) .. {{ 1,  0,  0},
 { 0,  1, -0},
 { 0,  0,  1}}
array.rotation@x(0, 2, elemtype => elemtype) .. {{ 1,  0,  0,  2},
 { 0,  1, -0,  0},
 { 0,  0,  1,  0},
 { 0,  0,  0,  1}}
array.rotation@x(0, 2, 3, elemtype => elemtype) .. {{ 1,  0,  0,  2},
 { 0,  1, -0,  3},
 { 0,  0,  1,  0},
 { 0,  0,  0,  1}}
array.rotation@x(0, 2, 3, 4, elemtype => elemtype) .. {{ 1,  0,  0,  2},
 { 0,  1, -0,  3},
 { 0,  0,  1,  4},
 { 0,  0,  0,  1}}
array.rotation@x(math.pi / 6, elemtype => elemtype) .. {{       1,        0,        0},
 {       0, 0.865723,     -0.5},
 {       0,      0.5, 0.865723}}
array.rotation@x(30, elemtype => elemtype):deg .. {{       1,        0,        0},
 {       0, 0.865723,     -0.5},
 {       0,      0.5, 0.865723}}
float
array.rotation@x(0, elemtype => elemtype) .. {{ 1,  0,  0},
 { 0,  1, -0},
 { 0,  0,  1}}
array.rotation@x(0, 2, elemtype => elemtype) .. {{ 1,  0,  0,  2},
 { 0,  1, -0,  0},
 { 0,  0,  1,  0},
 { 0,  0,  0,  1}}
array.rotation@x(0, 2, 3, elemtype => elemtype) .. {{ 1,  0,  0,  2},
 { 0,  1, -0,  3},
 { 0,  0,  1,  0},
 { 0,  0,  0,  1}}
array.rotation@x(0, 2, 3, 4, elemtype => elemtype) .. {{ 1,  0,  0,  2},
 { 0,  1, -0,  3},
 { 0,  0,  1,  4},
 { 0,  0,  0,  1}}
array.rotation@x(math.pi / 6, elemtype => elemtype) .. {{       1,        0,        0},
 {       0, 0.866025,     -0.5},
 {       0,      0.5, 0.866025}}
array.rotation@x(30, elemtype => elemtype):deg .. {{       1,        0,        0},
 {       0, 0.866025,     -0.5},
 {       0,      0.5, 0.866025}}
double
array.rotation@x(0, elemtype => elemtype) .. {{ 1,  0,  0},
 { 0,  1, -0},
 { 0,  0,  1}}
array.rotation@x(0, 2, elemtype => elemtype) .. {{ 1,  0,  0,  2},
 { 0,  1, -0,  0},
 { 0,  0,  1,  0},
 { 0,  0,  0,  1}}
array.rotation@x(0, 2, 3, elemtype => elemtype) .. {{ 1,  0,  0,  2},
 { 0,  1, -0,  3},
 { 0,  0,  1,  0},
 { 0,  0,  0,  1}}
array.rotation@x(0, 2, 3, 4, elemtype => elemtype) .. {{ 1,  0,  0,  2},
 { 0,  1, -0,  3},
 { 0,  0,  1,  4},
 { 0,  0,  0,  1}}
array.rotation@x(math.pi / 6, elemtype => elemtype) .. {{       1,        0,        0},
 {       0, 0.866025,     -0.5},
 {       0,      0.5, 0.866025}}
array.rotation@x(30, elemtype => elemtype):deg .. {{       1,        0,        0},
 {       0, 0.866025,     -0.5},
 {       0,      0.5, 0.866025}}
complex
array.rotation@x(0, elemtype => elemtype) .. {{1, 0, 0},
 {0, 1, 0},
 {0, 0, 1}}
array.rotation@x(0, 2, elemtype => elemtype) .. {{1, 0, 0, 2},
 {0, 1, 0, 0},
 {0, 0, 1, 0},
 {0, 0, 0, 1}}
array.rotation@x(0, 2, 3, elemtype => elemtype) .. {{1, 0, 0, 2},
 {0, 1, 0, 3},
 {0, 0, 1, 0},
 {0, 0, 0, 1}}
array.rotation@x(0, 2, 3, 4, elemtype => elemtype) .. {{1, 0, 0, 2},
 {0, 1, 0, 3},
 {0, 0, 1, 4},
 {0, 0, 0, 1}}
array.rotation@x(math.pi / 6, elemtype => elemtype) .. {{       1,        0,        0},
 {       0, 0.866025,     -0.5},
 {       0,      0.5, 0.866025}}
array.rotation@x(30, elemtype => elemtype):deg .. {{       1,        0,        0},
 {       0, 0.866025,     -0.5},
 {       0,      0.5, 0.866025}}

======== #11 array.rotation@y() ========

half
array.rotation@y(0, elemtype => elemtype) .. {{ 1,  0,  0},
 { 0,  1,  0},
 {-0,  0,  1}}
array.rotation@y(0, 2, elemtype => elemtype) .. {{ 1,  0,  0,  2},
 { 0,  1,  0,  0},
 {-0,  0,  1,  0},
 { 0,  0,  0,  1}}
array.rotation@y(0, 2, 3, elemtype => elemtype) .. {{ 1,  0,  0,  2},
 { 0,  1,  0,  3},
 {-0,  0,  1,  0},
 { 0,  0,  0,  1}}
array.rotation@y(0, 2, 3, 4, elemtype => elemtype) .. {{ 1,  0,  0,  2},
 { 0,  1,  0,  3},
 {-0,  0,  1,  4},
 { 0,  0,  0,  1}}
array.rotation@y(math.pi / 6, elemtype => elemtype) .. {{0.865723,        0,      0.5},
 {       0,        1,        0},
 {    -0.5,        0, 0.865723}}
array.rotation@y(30, elemtype => elemtype):deg .. {{0.865723,        0,      0.5},
 {       0,        1,        0},
 {    -0.5,        0, 0.865723}}
float
array.rotation@y(0, elemtype => elemtype) .. {{ 1,  0,  0},
 { 0,  1,  0},
 {-0,  0,  1}}
array.rotation@y(0, 2, elemtype => elemtype) .. {{ 1,  0,  0,  2},
 { 0,  1,  0,  0},
 {-0,  0,  1,  0},
 { 0,  0,  0,  1}}
array.rotation@y(0, 2, 3, elemtype => elemtype) .. {{ 1,  0,  0,  2},
 { 0,  1,  0,  3},
 {-0,  0,  1,  0},
 { 0,  0,  0,  1}}
array.rotation@y(0, 2, 3, 4, elemtype => elemtype) .. {{ 1,  0,  0,  2},
 { 0,  1,  0,  3},
 {-0,  0,  1,  4},
 { 0,  0,  0,  1}}
array.rotation@y(math.pi / 6, elemtype => elemtype) .. {{0.866025,        0,      0.5},
 {       0,        1,        0},
 {    -0.5,        0, 0.866025}}
array.rotation@y(30, elemtype => elemtype):deg .. {{0.866025,        0,      0.5},
 {       0,        1,        0},
 {    -0.5,        0, 0.866025}}
double
array.rotation@y(0, elemtype => elemtype) .. {{ 1,  0,  0},
 { 0,  1,  0},
 {-0,  0,  1}}
array.rotation@y(0, 2, elemtype => elemtype) .. {{ 1,  0,  0,  2},
 { 0,  1,  0,  0},
 {-0,  0,  1,  0},
 { 0,  0,  0,  1}}
array.rotation@y(0, 2, 3, elemtype => elemtype) .. {{ 1,  0,  0,  2},
 { 0,  1,  0,  3},
 {-0,  0,  1,  0},
 { 0,  0,  0,  1}}
array.rotation@y(0, 2, 3, 4, elemtype => elemtype) .. {{ 1,  0,  0,  2},
 { 0,  1,  0,  3},
 {-0,  0,  1,  4},
 { 0,  0,  0,  1}}
array.rotation@y(math.pi / 6, elemtype => elemtype) .. {{0.866025,        0,      0.5},
 {       0,        1,        0},
 {    -0.5,        0, 0.866025}}
array.rotation@y(30, elemtype => elemtype):deg .. {{0.866025,        0,      0.5},
 {       0,        1,        0},
 {    -0.5,        0, 0.866025}}
complex
array.rotation@y(0, elemtype => elemtype) .. {{1, 0, 0},
 {0, 1, 0},
 {0, 0, 1}}
array.rotation@y(0, 2, elemtype => elemtype) .. {{1, 0, 0, 2},
 {0, 1, 0, 0},
 {0, 0, 1, 0},
 {0, 0, 0, 1}}
array.rotation@y(0, 2, 3, elemtype => elemtype) .. {{1, 0, 0, 2},
 {0, 1, 0, 3},
 {0, 0, 1, 0},
 {0, 0, 0, 1}}
array.rotation@y(0, 2, 3, 4, elemtype => elemtype) .. {{1, 0, 0, 2},
 {0, 1, 0, 3},
 {0, 0, 1, 4},
 {0, 0, 0, 1}}
array.rotation@y(math.pi / 6, elemtype => elemtype) .. {{0.866025,        0,      0.5},
 {       0,        1,        0},
 {    -0.5,        0, 0.866025}}
array.rotation@y(30, elemtype => elemtype):deg .. {{0.866025,        0,      0.5},
 {       0,        1,        0},
 {    -0.5,        0, 0.866025}}

======== #12 array.rotation@z() ========

half
array.rotation@z(0, elemtype => elemtype) .. {{ 1, -0,  0},
 { 0,  1,  0},
 { 0,  0,  1}}
array.rotation@z(0, 2, elemtype => elemtype) .. {{ 1, -0,  0,  2},
 { 0,  1,  0,  0},
 { 0,  0,  1,  0},
 { 0,  0,  0,  1}}
array.rotation@z(0, 2, 3, elemtype => elemtype) .. {{ 1, -0,  0,  2},
 { 0,  1,  0,  3},
 { 0,  0,  1,  0},
 { 0,  0,  0,  1}}
array.rotation@z(0, 2, 3, 4, elemtype => elemtype) .. {{ 1, -0,  0,  2},
 { 0,  1,  0,  3},
 { 0,  0,  1,  4},
 { 0,  0,  0,  1}}
array.rotation@z(math.pi / 6, elemtype => elemtype) .. {{0.865723,     -0.5,        0},
 {     0.5, 0.865723,        0},
 {       0,        0,        1}}
array.rotation@z(30, elemtype => elemtype):deg .. {{0.865723,     -0.5,        0},
 {     0.5, 0.865723,        0},
 {       0,        0,        1}}
float
array.rotation@z(0, elemtype => elemtype) .. {{ 1, -0,  0},
 { 0,  1,  0},
 { 0,  0,  1}}
array.rotation@z(0, 2, elemtype => elemtype) .. {{ 1, -0,  0,  2},
 { 0,  1,  0,  0},
 { 0,  0,  1,  0},
 { 0,  0,  0,  1}}
array.rotation@z(0, 2, 3, elemtype => elemtype) .. {{ 1, -0,  0,  2},
 { 0,  1,  0,  3},
 { 0,  0,  1,  0},
 { 0,  0,  0,  1}}
array.rotation@z(0, 2, 3, 4, elemtype => elemtype) .. {{ 1, -0,  0,  2},
 { 0,  1,  0,  3},
 { 0,  0,  1,  4},
 { 0,  0,  0,  1}}
array.rotation@z(math.pi / 6, elemtype => elemtype) .. {{0.866025,     -0.5,        0},
 {     0.5, 0.866025,        0},
 {       0,        0,        1}}
array.rotation@z(30, elemtype => elemtype):deg .. {{0.866025,     -0.5,        0},
 {     0.5, 0.866025,        0},
 {       0,        0,        1}}
double
array.rotation@z(0, elemtype => elemtype) .. {{ 1, -0,  0},
 { 0,  1,  0},
 { 0,  0,  1}}
array.rotation@z(0, 2, elemtype => elemtype) .. {{ 1, -0,  0,  2},
 { 0,  1,  0,  0},
 { 0,  0,  1,  0},
 { 0,  0,  0,  1}}
array.rotation@z(0, 2, 3, elemtype => elemtype) .. {{ 1, -0,  0,  2},
 { 0,  1,  0,  3},
 { 0,  0,  1,  0},
 { 0,  0,  0,  1}}
array.rotation@z(0, 2, 3, 4, elemtype => elemtype) .. {{ 1, -0,  0,  2},
 { 0,  1,  0,  3},
 { 0,  0,  1,  4},
 { 0,  0,  0,  1}}
array.rotation@z(math.pi / 6, elemtype => elemtype) .. {{0.866025,     -0.5,        0},
 {     0.5, 0.866025,        0},
 {       0,        0,        1}}
array.rotation@z(30, elemtype => elemtype):deg .. {{0.866025,     -0.5,        0},
 {     0.5, 0.866025,        0},
 {       0,        0,        1}}
complex
array.rotation@z(0, elemtype => elemtype) .. {{1, 0, 0},
 {0, 1, 0},
 {0, 0, 1}}
array.rotation@z(0, 2, elemtype => elemtype) .. {{1, 0, 0, 2},
 {0, 1, 0, 0},
 {0, 0, 1, 0},
 {0, 0, 0, 1}}
array.rotation@z(0, 2, 3, elemtype => elemtype) .. {{1, 0, 0, 2},
 {0, 1, 0, 3},
 {0, 0, 1, 0},
 {0, 0, 0, 1}}
array.rotation@z(0, 2, 3, 4, elemtype => elemtype) .. {{1, 0, 0, 2},
 {0, 1, 0, 3},
 {0, 0, 1, 4},
 {0, 0, 0, 1}}
array.rotation@z(math.pi / 6, elemtype => elemtype) .. {{0.866025,     -0.5,        0},
 {     0.5, 0.866025,        0},
 {       0,        0,        1}}
array.rotation@z(30, elemtype => elemtype):deg .. {{0.866025,     -0.5,        0},
 {     0.5, 0.866025,        0},
 {       0,        0,        1}}

======== #13 array.scaling() ========

boolean
array.scaling(0, 0, elemtype => elemtype) .. {{false, false, false},
 {false, false, false},
 {false, false,  true}}
array.scaling(0, 0, 0, elemtype => elemtype) .. {{false, false, false, false},
 {false, false, false, false},
 {false, false, false, false},
 {false, false, false,  true}}
array.scaling(2, 3, elemtype => elemtype) .. {{ true, false, false},
 {false,  true, false},
 {false, false,  true}}
array.scaling(2, 3, 4, elemtype => elemtype) .. {{ true, false, false, false},
 {false,  true, false, false},
 {false, false,  true, false},
 {false, false, false,  true}}
int8
array.scaling(0, 0, elemtype => elemtype) .. {{0, 0, 0},
 {0, 0, 0},
 {0, 0, 1}}
array.scaling(0, 0, 0, elemtype => elemtype) .. {{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 1}}
array.scaling(2, 3, elemtype => elemtype) .. {{2, 0, 0},
 {0, 3, 0},
 {0, 0, 1}}
array.scaling(2, 3, 4, elemtype => elemtype) .. {{2, 0, 0, 0},
 {0, 3, 0, 0},
 {0, 0, 4, 0},
 {0, 0, 0, 1}}
uint8
array.scaling(0, 0, elemtype => elemtype) .. {{0, 0, 0},
 {0, 0, 0},
 {0, 0, 1}}
array.scaling(0, 0, 0, elemtype => elemtype) .. {{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 1}}
array.scaling(2, 3, elemtype => elemtype) .. {{2, 0, 0},
 {0, 3, 0},
 {0, 0, 1}}
array.scaling(2, 3, 4, elemtype => elemtype) .. {{2, 0, 0, 0},
 {0, 3, 0, 0},
 {0, 0, 4, 0},
 {0, 0, 0, 1}}
int16
array.scaling(0, 0, elemtype => elemtype) .. {{0, 0, 0},
 {0, 0, 0},
 {0, 0, 1}}
array.scaling(0, 0, 0, elemtype => elemtype) .. {{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 1}}
array.scaling(2, 3, elemtype => elemtype) .. {{2, 0, 0},
 {0, 3, 0},
 {0, 0, 1}}
array.scaling(2, 3, 4, elemtype => elemtype) .. {{2, 0, 0, 0},
 {0, 3, 0, 0},
 {0, 0, 4, 0},
 {0, 0, 0, 1}}
uint16
array.scaling(0, 0, elemtype => elemtype) .. {{0, 0, 0},
 {0, 0, 0},
 {0, 0, 1}}
array.scaling(0, 0, 0, elemtype => elemtype) .. {{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 1}}
array.scaling(2, 3, elemtype => elemtype) .. {{2, 0, 0},
 {0, 3, 0},
 {0, 0, 1}}
array.scaling(2, 3, 4, elemtype => elemtype) .. {{2, 0, 0, 0},
 {0, 3, 0, 0},
 {0, 0, 4, 0},
 {0, 0, 0, 1}}
int32
array.scaling(0, 0, elemtype => elemtype) .. {{0, 0, 0},
 {0, 0, 0},
 {0, 0, 1}}
array.scaling(0, 0, 0, elemtype => elemtype) .. {{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 1}}
array.scaling(2, 3, elemtype => elemtype) .. {{2, 0, 0},
 {0, 3, 0},
 {0, 0, 1}}
array.scaling(2, 3, 4, elemtype => elemtype) .. {{2, 0, 0, 0},
 {0, 3, 0, 0},
 {0, 0, 4, 0},
 {0, 0, 0, 1}}
uint32
array.scaling(0, 0, elemtype => elemtype) .. {{0, 0, 0},
 {0, 0, 0},
 {0, 0, 1}}
array.scaling(0, 0, 0, elemtype => elemtype) .. {{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 1}}
array.scaling(2, 3, elemtype => elemtype) .. {{2, 0, 0},
 {0, 3, 0},
 {0, 0, 1}}
array.scaling(2, 3, 4, elemtype => elemtype) .. {{2, 0, 0, 0},
 {0, 3, 0, 0},
 {0, 0, 4, 0},
 {0, 0, 0, 1}}
int64
array.scaling(0, 0, elemtype => elemtype) .. {{0, 0, 0},
 {0, 0, 0},
 {0, 0, 1}}
array.scaling(0, 0, 0, elemtype => elemtype) .. {{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 1}}
array.scaling(2, 3, elemtype => elemtype) .. {{2, 0, 0},
 {0, 3, 0},
 {0, 0, 1}}
array.scaling(2, 3, 4, elemtype => elemtype) .. {{2, 0, 0, 0},
 {0, 3, 0, 0},
 {0, 0, 4, 0},
 {0, 0, 0, 1}}
uint64
array.scaling(0, 0, elemtype => elemtype) .. {{0, 0, 0},
 {0, 0, 0},
 {0, 0, 1}}
array.scaling(0, 0, 0, elemtype => elemtype) .. {{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 1}}
array.scaling(2, 3, elemtype => elemtype) .. {{2, 0, 0},
 {0, 3, 0},
 {0, 0, 1}}
array.scaling(2, 3, 4, elemtype => elemtype) .. {{2, 0, 0, 0},
 {0, 3, 0, 0},
 {0, 0, 4, 0},
 {0, 0, 0, 1}}
half
array.scaling(0, 0, elemtype => elemtype) .. {{0, 0, 0},
 {0, 0, 0},
 {0, 0, 1}}
array.scaling(0, 0, 0, elemtype => elemtype) .. {{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 1}}
array.scaling(2, 3, elemtype => elemtype) .. {{2, 0, 0},
 {0, 3, 0},
 {0, 0, 1}}
array.scaling(2, 3, 4, elemtype => elemtype) .. {{2, 0, 0, 0},
 {0, 3, 0, 0},
 {0, 0, 4, 0},
 {0, 0, 0, 1}}
float
array.scaling(0, 0, elemtype => elemtype) .. {{0, 0, 0},
 {0, 0, 0},
 {0, 0, 1}}
array.scaling(0, 0, 0, elemtype => elemtype) .. {{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 1}}
array.scaling(2, 3, elemtype => elemtype) .. {{2, 0, 0},
 {0, 3, 0},
 {0, 0, 1}}
array.scaling(2, 3, 4, elemtype => elemtype) .. {{2, 0, 0, 0},
 {0, 3, 0, 0},
 {0, 0, 4, 0},
 {0, 0, 0, 1}}
double
array.scaling(0, 0, elemtype => elemtype) .. {{0, 0, 0},
 {0, 0, 0},
 {0, 0, 1}}
array.scaling(0, 0, 0, elemtype => elemtype) .. {{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 1}}
array.scaling(2, 3, elemtype => elemtype) .. {{2, 0, 0},
 {0, 3, 0},
 {0, 0, 1}}
array.scaling(2, 3, 4, elemtype => elemtype) .. {{2, 0, 0, 0},
 {0, 3, 0, 0},
 {0, 0, 4, 0},
 {0, 0, 0, 1}}
complex
array.scaling(0, 0, elemtype => elemtype) .. {{0, 0, 0},
 {0, 0, 0},
 {0, 0, 1}}
array.scaling(0, 0, 0, elemtype => elemtype) .. {{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 1}}
array.scaling(2, 3, elemtype => elemtype) .. {{2, 0, 0},
 {0, 3, 0},
 {0, 0, 1}}
array.scaling(2, 3, 4, elemtype => elemtype) .. {{2, 0, 0, 0},
 {0, 3, 0, 0},
 {0, 0, 4, 0},
 {0, 0, 0, 1}}

======== #14 array.translation() ========

boolean
array.translation(0, 0, elemtype => elemtype) .. {{ true, false, false},
 {false,  true, false},
 {false, false,  true}}
array.translation(0, 0, 0, elemtype => elemtype) .. {{ true, false, false, false},
 {false,  true, false, false},
 {false, false,  true, false},
 {false, false, false,  true}}
array.translation(2, 3, elemtype => elemtype) .. {{ true, false,  true},
 {false,  true,  true},
 {false, false,  true}}
array.translation(2, 3, 4, elemtype => elemtype) .. {{ true, false, false,  true},
 {false,  true, false,  true},
 {false, false,  true,  true},
 {false, false, false,  true}}
int8
array.translation(0, 0, elemtype => elemtype) .. {{1, 0, 0},
 {0, 1, 0},
 {0, 0, 1}}
array.translation(0, 0, 0, elemtype => elemtype) .. {{1, 0, 0, 0},
 {0, 1, 0, 0},
 {0, 0, 1, 0},
 {0, 0, 0, 1}}
array.translation(2, 3, elemtype => elemtype) .. {{1, 0, 2},
 {0, 1, 3},
 {0, 0, 1}}
array.translation(2, 3, 4, elemtype => elemtype) .. {{1, 0, 0, 2},
 {0, 1, 0, 3},
 {0, 0, 1, 4},
 {0, 0, 0, 1}}
uint8
array.translation(0, 0, elemtype => elemtype) .. {{1, 0, 0},
 {0, 1, 0},
 {0, 0, 1}}
array.translation(0, 0, 0, elemtype => elemtype) .. {{1, 0, 0, 0},
 {0, 1, 0, 0},
 {0, 0, 1, 0},
 {0, 0, 0, 1}}
array.translation(2, 3, elemtype => elemtype) .. {{1, 0, 2},
 {0, 1, 3},
 {0, 0, 1}}
array.translation(2, 3, 4, elemtype => elemtype) .. {{1, 0, 0, 2},
 {0, 1, 0, 3},
 {0, 0, 1, 4},
 {0, 0, 0, 1}}
int16
array.translation(0, 0, elemtype => elemtype) .. {{1, 0, 0},
 {0, 1, 0},
 {0, 0, 1}}
array.translation(0, 0, 0, elemtype => elemtype) .. {{1, 0, 0, 0},
 {0, 1, 0, 0},
 {0, 0, 1, 0},
 {0, 0, 0, 1}}
array.translation(2, 3, elemtype => elemtype) .. {{1, 0, 2},
 {0, 1, 3},
 {0, 0, 1}}
array.translation(2, 3, 4, elemtype => elemtype) .. {{1, 0, 0, 2},
 {0, 1, 0, 3},
 {0, 0, 1, 4},
 {0, 0, 0, 1}}
uint16
array.translation(0, 0, elemtype => elemtype) .. {{1, 0, 0},
 {0, 1, 0},
 {0, 0, 1}}
array.translation(0, 0, 0, elemtype => elemtype) .. {{1, 0, 0, 0},
 {0, 1, 0, 0},
 {0, 0, 1, 0},
 {0, 0, 0, 1}}
array.translation(2, 3, elemtype => elemtype) .. {{1, 0, 2},
 {0, 1, 3},
 {0, 0, 1}}
array.translation(2, 3, 4, elemtype => elemtype) .. {{1, 0, 0, 2},
 {0, 1, 0, 3},
 {0, 0, 1, 4},
 {0, 0, 0, 1}}
int32
array.translation(0, 0, elemtype => elemtype) .. {{1, 0, 0},
 {0, 1, 0},
 {0, 0, 1}}
array.translation(0, 0, 0, elemtype => elemtype) .. {{1, 0, 0, 0},
 {0, 1, 0, 0},
 {0, 0, 1, 0},
 {0, 0, 0, 1}}
array.translation(2, 3, elemtype => elemtype) .. {{1, 0, 2},
 {0, 1, 3},
 {0, 0, 1}}
array.translation(2, 3, 4, elemtype => elemtype) .. {{1, 0, 0, 2},
 {0, 1, 0, 3},
 {0, 0, 1, 4},
 {0, 0, 0, 1}}
uint32
array.translation(0, 0, elemtype => elemtype) .. {{1, 0, 0},
 {0, 1, 0},
 {0, 0, 1}}
array.translation(0, 0, 0, elemtype => elemtype) .. {{1, 0, 0, 0},
 {0, 1, 0, 0},
 {0, 0, 1, 0},
 {0, 0, 0, 1}}
array.translation(2, 3, elemtype => elemtype) .. {{1, 0, 2},
 {0, 1, 3},
 {0, 0, 1}}
array.translation(2, 3, 4, elemtype => elemtype) .. {{1, 0, 0, 2},
 {0, 1, 0, 3},
 {0, 0, 1, 4},
 {0, 0, 0, 1}}
int64
array.translation(0, 0, elemtype => elemtype) .. {{1, 0, 0},
 {0, 1, 0},
 {0, 0, 1}}
array.translation(0, 0, 0, elemtype => elemtype) .. {{1, 0, 0, 0},
 {0, 1, 0, 0},
 {0, 0, 1, 0},
 {0, 0, 0, 1}}
array.translation(2, 3, elemtype => elemtype) .. {{1, 0, 2},
 {0, 1, 3},
 {0, 0, 1}}
array.translation(2, 3, 4, elemtype => elemtype) .. {{1, 0, 0, 2},
 {0, 1, 0, 3},
 {0, 0, 1, 4},
 {0, 0, 0, 1}}
uint64
array.translation(0, 0, elemtype => elemtype) .. {{1, 0, 0},
 {0, 1, 0},
 {0, 0, 1}}
array.translation(0, 0, 0, elemtype => elemtype) .. {{1, 0, 0, 0},
 {0, 1, 0, 0},
 {0, 0, 1, 0},
 {0, 0, 0, 1}}
array.translation(2, 3, elemtype => elemtype) .. {{1, 0, 2},
 {0, 1, 3},
 {0, 0, 1}}
array.translation(2, 3, 4, elemtype => elemtype) .. {{1, 0, 0, 2},
 {0, 1, 0, 3},
 {0, 0, 1, 4},
 {0, 0, 0, 1}}
half
array.translation(0, 0, elemtype => elemtype) .. {{1, 0, 0},
 {0, 1, 0},
 {0, 0, 1}}
array.translation(0, 0, 0, elemtype => elemtype) .. {{1, 0, 0, 0},
 {0, 1, 0, 0},
 {0, 0, 1, 0},
 {0, 0, 0, 1}}
array.translation(2, 3, elemtype => elemtype) .. {{1, 0, 2},
 {0, 1, 3},
 {0, 0, 1}}
array.translation(2, 3, 4, elemtype => elemtype) .. {{1, 0, 0, 2},
 {0, 1, 0, 3},
 {0, 0, 1, 4},
 {0, 0, 0, 1}}
float
array.translation(0, 0, elemtype => elemtype) .. {{1, 0, 0},
 {0, 1, 0},
 {0, 0, 1}}
array.translation(0, 0, 0, elemtype => elemtype) .. {{1, 0, 0, 0},
 {0, 1, 0, 0},
 {0, 0, 1, 0},
 {0, 0, 0, 1}}
array.translation(2, 3, elemtype => elemtype) .. {{1, 0, 2},
 {0, 1, 3},
 {0, 0, 1}}
array.translation(2, 3, 4, elemtype => elemtype) .. {{1, 0, 0, 2},
 {0, 1, 0, 3},
 {0, 0, 1, 4},
 {0, 0, 0, 1}}
double
array.translation(0, 0, elemtype => elemtype) .. {{1, 0, 0},
 {0, 1, 0},
 {0, 0, 1}}
array.translation(0, 0, 0, elemtype => elemtype) .. {{1, 0, 0, 0},
 {0, 1, 0, 0},
 {0, 0, 1, 0},
 {0, 0, 0, 1}}
array.translation(2, 3, elemtype => elemtype) .. {{1, 0, 2},
 {0, 1, 3},
 {0, 0, 1}}
array.translation(2, 3, 4, elemtype => elemtype) .. {{1, 0, 0, 2},
 {0, 1, 0, 3},
 {0, 0, 1, 4},
 {0, 0, 0, 1}}
complex
array.translation(0, 0, elemtype => elemtype) .. {{1, 0, 0},
 {0, 1, 0},
 {0, 0, 1}}
array.translation(0, 0, 0, elemtype => elemtype) .. {{1, 0, 0, 0},
 {0, 1, 0, 0},
 {0, 0, 1, 0},
 {0, 0, 0, 1}}
array.translation(2, 3, elemtype => elemtype) .. {{1, 0, 2},
 {0, 1, 3},
 {0, 0, 1}}
array.translation(2, 3, 4, elemtype => elemtype) .. {{1, 0, 0, 2},
 {0, 1, 0, 3},
 {0, 0, 1, 4},
 {0, 0, 0, 1}}

======== #15 array.zeros() ========

boolean
{{false, false, false, false},
 {false, false, false, false},
 {false, false, false, false}}
{{{false, false, false, false},
  {false, false, false, false},
  {false, false, false, false}},

 {{false, false, false, false},
  {false, false, false, false},
  {false, false, false, false}}}
int8
{{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0}}
{{{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}},

 {{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}}}
uint8
{{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0}}
{{{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}},

 {{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}}}
int16
{{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0}}
{{{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}},

 {{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}}}
uint16
{{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0}}
{{{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}},

 {{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}}}
int32
{{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0}}
{{{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}},

 {{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}}}
uint32
{{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0}}
{{{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}},

 {{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}}}
int64
{{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0}}
{{{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}},

 {{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}}}
uint64
{{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0}}
{{{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}},

 {{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}}}
half
{{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0}}
{{{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}},

 {{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}}}
float
{{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0}}
{{{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}},

 {{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}}}
double
{{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0}}
{{{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}},

 {{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}}}
complex
{{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0}}
{{{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}},

 {{0, 0, 0, 0},
  {0, 0, 0, 0},
  {0, 0, 0, 0}}}

======== #16 cast to list ========

boolean
false true true true true true true true true true true true true true true true true true true true true true true true true true true true true true
int8
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
uint8
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
int16
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
uint16
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
int32
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
uint32
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
int64
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
uint64
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
half
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
float
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
double
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
complex
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

======== #17 cast from list ========

[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]

======== #18 cast from iterator ========

[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]

======== #19 head/tail ========

boolean
[ 0  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1]
[ 0  1  1  1  1  1  1  1  1  1  1  1]
[ 1  1  1  1  1  1  1  1  1  1  1  1]
[ 0  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1]
[ 0  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1]
expected error occurs: OutOfRange: specified size is out of range
expected error occurs: OutOfRange: specified size is out of range
{{{false,  true,  true,  true},
  { true,  true,  true,  true}},

 {{ true,  true,  true,  true},
  { true,  true,  true,  true}},

 {{ true,  true,  true,  true},
  { true,  true,  true,  true}},

 {{ true,  true,  true,  true},
  { true,  true,  true,  true}}}
head(0):
{}
head(1):
{{{false,  true,  true,  true},
  { true,  true,  true,  true}}}
head(2):
{{{false,  true,  true,  true},
  { true,  true,  true,  true}},

 {{ true,  true,  true,  true},
  { true,  true,  true,  true}}}
head(3):
{{{false,  true,  true,  true},
  { true,  true,  true,  true}},

 {{ true,  true,  true,  true},
  { true,  true,  true,  true}},

 {{ true,  true,  true,  true},
  { true,  true,  true,  true}}}
head(4):
{{{false,  true,  true,  true},
  { true,  true,  true,  true}},

 {{ true,  true,  true,  true},
  { true,  true,  true,  true}},

 {{ true,  true,  true,  true},
  { true,  true,  true,  true}},

 {{ true,  true,  true,  true},
  { true,  true,  true,  true}}}
tail(0):
{}
tail(1):
{{{true, true, true, true},
  {true, true, true, true}}}
tail(2):
{{{true, true, true, true},
  {true, true, true, true}},

 {{true, true, true, true},
  {true, true, true, true}}}
tail(3):
{{{true, true, true, true},
  {true, true, true, true}},

 {{true, true, true, true},
  {true, true, true, true}},

 {{true, true, true, true},
  {true, true, true, true}}}
tail(4):
{{{false,  true,  true,  true},
  { true,  true,  true,  true}},

 {{ true,  true,  true,  true},
  { true,  true,  true,  true}},

 {{ true,  true,  true,  true},
  { true,  true,  true,  true}},

 {{ true,  true,  true,  true},
  { true,  true,  true,  true}}}
offset(0):
{{{false,  true,  true,  true},
  { true,  true,  true,  true}},

 {{ true,  true,  true,  true},
  { true,  true,  true,  true}},

 {{ true,  true,  true,  true},
  { true,  true,  true,  true}},

 {{ true,  true,  true,  true},
  { true,  true,  true,  true}}}
offset(1):
{{{true, true, true, true},
  {true, true, true, true}},

 {{true, true, true, true},
  {true, true, true, true}},

 {{true, true, true, true},
  {true, true, true, true}}}
offset(2):
{{{true, true, true, true},
  {true, true, true, true}},

 {{true, true, true, true},
  {true, true, true, true}}}
offset(3):
{{{true, true, true, true},
  {true, true, true, true}}}
offset(4):
{}
int8
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11]
[18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
expected error occurs: OutOfRange: specified size is out of range
expected error occurs: OutOfRange: specified size is out of range
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
head(0):
{}
head(1):
{{{0, 1, 2, 3},
  {4, 5, 6, 7}}}
head(2):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}}}
head(3):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}}}
head(4):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(0):
{}
tail(1):
{{{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(2):
{{{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(3):
{{{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(4):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(0):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(1):
{{{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(2):
{{{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(3):
{{{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(4):
{}
uint8
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11]
[18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
expected error occurs: OutOfRange: specified size is out of range
expected error occurs: OutOfRange: specified size is out of range
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
head(0):
{}
head(1):
{{{0, 1, 2, 3},
  {4, 5, 6, 7}}}
head(2):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}}}
head(3):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}}}
head(4):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(0):
{}
tail(1):
{{{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(2):
{{{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(3):
{{{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(4):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(0):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(1):
{{{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(2):
{{{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(3):
{{{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(4):
{}
int16
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11]
[18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
expected error occurs: OutOfRange: specified size is out of range
expected error occurs: OutOfRange: specified size is out of range
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
head(0):
{}
head(1):
{{{0, 1, 2, 3},
  {4, 5, 6, 7}}}
head(2):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}}}
head(3):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}}}
head(4):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(0):
{}
tail(1):
{{{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(2):
{{{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(3):
{{{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(4):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(0):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(1):
{{{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(2):
{{{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(3):
{{{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(4):
{}
uint16
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11]
[18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
expected error occurs: OutOfRange: specified size is out of range
expected error occurs: OutOfRange: specified size is out of range
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
head(0):
{}
head(1):
{{{0, 1, 2, 3},
  {4, 5, 6, 7}}}
head(2):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}}}
head(3):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}}}
head(4):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(0):
{}
tail(1):
{{{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(2):
{{{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(3):
{{{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(4):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(0):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(1):
{{{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(2):
{{{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(3):
{{{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(4):
{}
int32
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11]
[18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
expected error occurs: OutOfRange: specified size is out of range
expected error occurs: OutOfRange: specified size is out of range
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
head(0):
{}
head(1):
{{{0, 1, 2, 3},
  {4, 5, 6, 7}}}
head(2):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}}}
head(3):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}}}
head(4):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(0):
{}
tail(1):
{{{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(2):
{{{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(3):
{{{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(4):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(0):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(1):
{{{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(2):
{{{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(3):
{{{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(4):
{}
uint32
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11]
[18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
expected error occurs: OutOfRange: specified size is out of range
expected error occurs: OutOfRange: specified size is out of range
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
head(0):
{}
head(1):
{{{0, 1, 2, 3},
  {4, 5, 6, 7}}}
head(2):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}}}
head(3):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}}}
head(4):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(0):
{}
tail(1):
{{{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(2):
{{{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(3):
{{{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(4):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(0):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(1):
{{{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(2):
{{{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(3):
{{{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(4):
{}
int64
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11]
[18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
expected error occurs: OutOfRange: specified size is out of range
expected error occurs: OutOfRange: specified size is out of range
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
head(0):
{}
head(1):
{{{0, 1, 2, 3},
  {4, 5, 6, 7}}}
head(2):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}}}
head(3):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}}}
head(4):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(0):
{}
tail(1):
{{{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(2):
{{{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(3):
{{{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(4):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(0):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(1):
{{{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(2):
{{{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(3):
{{{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(4):
{}
uint64
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11]
[18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
expected error occurs: OutOfRange: specified size is out of range
expected error occurs: OutOfRange: specified size is out of range
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
head(0):
{}
head(1):
{{{0, 1, 2, 3},
  {4, 5, 6, 7}}}
head(2):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}}}
head(3):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}}}
head(4):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(0):
{}
tail(1):
{{{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(2):
{{{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(3):
{{{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(4):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(0):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(1):
{{{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(2):
{{{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(3):
{{{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(4):
{}
half
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11]
[18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
expected error occurs: OutOfRange: specified size is out of range
expected error occurs: OutOfRange: specified size is out of range
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
head(0):
{}
head(1):
{{{0, 1, 2, 3},
  {4, 5, 6, 7}}}
head(2):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}}}
head(3):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}}}
head(4):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(0):
{}
tail(1):
{{{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(2):
{{{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(3):
{{{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(4):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(0):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(1):
{{{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(2):
{{{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(3):
{{{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(4):
{}
float
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11]
[18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
expected error occurs: OutOfRange: specified size is out of range
expected error occurs: OutOfRange: specified size is out of range
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
head(0):
{}
head(1):
{{{0, 1, 2, 3},
  {4, 5, 6, 7}}}
head(2):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}}}
head(3):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}}}
head(4):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(0):
{}
tail(1):
{{{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(2):
{{{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(3):
{{{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(4):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(0):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(1):
{{{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(2):
{{{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(3):
{{{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(4):
{}
double
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11]
[18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
expected error occurs: OutOfRange: specified size is out of range
expected error occurs: OutOfRange: specified size is out of range
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
head(0):
{}
head(1):
{{{0, 1, 2, 3},
  {4, 5, 6, 7}}}
head(2):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}}}
head(3):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}}}
head(4):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(0):
{}
tail(1):
{{{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(2):
{{{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(3):
{{{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(4):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(0):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(1):
{{{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(2):
{{{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(3):
{{{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(4):
{}
complex
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11]
[18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
expected error occurs: OutOfRange: specified size is out of range
expected error occurs: OutOfRange: specified size is out of range
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
head(0):
{}
head(1):
{{{0, 1, 2, 3},
  {4, 5, 6, 7}}}
head(2):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}}}
head(3):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}}}
head(4):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(0):
{}
tail(1):
{{{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(2):
{{{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(3):
{{{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
tail(4):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(0):
{{{ 0,  1,  2,  3},
  { 4,  5,  6,  7}},

 {{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(1):
{{{ 8,  9, 10, 11},
  {12, 13, 14, 15}},

 {{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(2):
{{{16, 17, 18, 19},
  {20, 21, 22, 23}},

 {{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(3):
{{{24, 25, 26, 27},
  {28, 29, 30, 31}}}
offset(4):
{}

======== #20 offset ========

boolean
[ 0  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1]
[ 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1]
[ 1  1  1]
[ 1]
[]
expected error occurs: OutOfRange: offset is out of range
int8
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[27 28 29]
[29]
[]
expected error occurs: OutOfRange: offset is out of range
uint8
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[27 28 29]
[29]
[]
expected error occurs: OutOfRange: offset is out of range
int16
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[27 28 29]
[29]
[]
expected error occurs: OutOfRange: offset is out of range
uint16
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[27 28 29]
[29]
[]
expected error occurs: OutOfRange: offset is out of range
int32
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[27 28 29]
[29]
[]
expected error occurs: OutOfRange: offset is out of range
uint32
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[27 28 29]
[29]
[]
expected error occurs: OutOfRange: offset is out of range
int64
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[27 28 29]
[29]
[]
expected error occurs: OutOfRange: offset is out of range
uint64
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[27 28 29]
[29]
[]
expected error occurs: OutOfRange: offset is out of range
half
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[27 28 29]
[29]
[]
expected error occurs: OutOfRange: offset is out of range
float
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[27 28 29]
[29]
[]
expected error occurs: OutOfRange: offset is out of range
double
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[27 28 29]
[29]
[]
expected error occurs: OutOfRange: offset is out of range
complex
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[ 3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[27 28 29]
[29]
[]
expected error occurs: OutOfRange: offset is out of range

======== #21 paste ========

boolean
[ 0  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1]
[ 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1]
[ 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1]
expected error occurs: OutOfRange: out of range
[ 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1]
int8
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[90 91 92 93 94 95 96 97 98 99 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[90 91 92 93 94 95 96 97 98 99 10 11 12 13 14 15 16 17 18 19 90 91 92 93 94 95 96 97 98 99]
expected error occurs: OutOfRange: out of range
[90 91 92 93 94 95 96 97 98 99 10 11 93 94 95 96 97 98 99 19 90 91 92 93 94 95 96 97 98 99]
uint8
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[90 91 92 93 94 95 96 97 98 99 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[90 91 92 93 94 95 96 97 98 99 10 11 12 13 14 15 16 17 18 19 90 91 92 93 94 95 96 97 98 99]
expected error occurs: OutOfRange: out of range
[90 91 92 93 94 95 96 97 98 99 10 11 93 94 95 96 97 98 99 19 90 91 92 93 94 95 96 97 98 99]
int16
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[90 91 92 93 94 95 96 97 98 99 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[90 91 92 93 94 95 96 97 98 99 10 11 12 13 14 15 16 17 18 19 90 91 92 93 94 95 96 97 98 99]
expected error occurs: OutOfRange: out of range
[90 91 92 93 94 95 96 97 98 99 10 11 93 94 95 96 97 98 99 19 90 91 92 93 94 95 96 97 98 99]
uint16
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[90 91 92 93 94 95 96 97 98 99 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[90 91 92 93 94 95 96 97 98 99 10 11 12 13 14 15 16 17 18 19 90 91 92 93 94 95 96 97 98 99]
expected error occurs: OutOfRange: out of range
[90 91 92 93 94 95 96 97 98 99 10 11 93 94 95 96 97 98 99 19 90 91 92 93 94 95 96 97 98 99]
int32
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[90 91 92 93 94 95 96 97 98 99 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[90 91 92 93 94 95 96 97 98 99 10 11 12 13 14 15 16 17 18 19 90 91 92 93 94 95 96 97 98 99]
expected error occurs: OutOfRange: out of range
[90 91 92 93 94 95 96 97 98 99 10 11 93 94 95 96 97 98 99 19 90 91 92 93 94 95 96 97 98 99]
uint32
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[90 91 92 93 94 95 96 97 98 99 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[90 91 92 93 94 95 96 97 98 99 10 11 12 13 14 15 16 17 18 19 90 91 92 93 94 95 96 97 98 99]
expected error occurs: OutOfRange: out of range
[90 91 92 93 94 95 96 97 98 99 10 11 93 94 95 96 97 98 99 19 90 91 92 93 94 95 96 97 98 99]
int64
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[90 91 92 93 94 95 96 97 98 99 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[90 91 92 93 94 95 96 97 98 99 10 11 12 13 14 15 16 17 18 19 90 91 92 93 94 95 96 97 98 99]
expected error occurs: OutOfRange: out of range
[90 91 92 93 94 95 96 97 98 99 10 11 93 94 95 96 97 98 99 19 90 91 92 93 94 95 96 97 98 99]
uint64
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[90 91 92 93 94 95 96 97 98 99 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[90 91 92 93 94 95 96 97 98 99 10 11 12 13 14 15 16 17 18 19 90 91 92 93 94 95 96 97 98 99]
expected error occurs: OutOfRange: out of range
[90 91 92 93 94 95 96 97 98 99 10 11 93 94 95 96 97 98 99 19 90 91 92 93 94 95 96 97 98 99]
half
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[90 91 92 93 94 95 96 97 98 99 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[90 91 92 93 94 95 96 97 98 99 10 11 12 13 14 15 16 17 18 19 90 91 92 93 94 95 96 97 98 99]
expected error occurs: OutOfRange: out of range
[90 91 92 93 94 95 96 97 98 99 10 11 93 94 95 96 97 98 99 19 90 91 92 93 94 95 96 97 98 99]
float
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[90 91 92 93 94 95 96 97 98 99 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[90 91 92 93 94 95 96 97 98 99 10 11 12 13 14 15 16 17 18 19 90 91 92 93 94 95 96 97 98 99]
expected error occurs: OutOfRange: out of range
[90 91 92 93 94 95 96 97 98 99 10 11 93 94 95 96 97 98 99 19 90 91 92 93 94 95 96 97 98 99]
double
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[90 91 92 93 94 95 96 97 98 99 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[90 91 92 93 94 95 96 97 98 99 10 11 12 13 14 15 16 17 18 19 90 91 92 93 94 95 96 97 98 99]
expected error occurs: OutOfRange: out of range
[90 91 92 93 94 95 96 97 98 99 10 11 93 94 95 96 97 98 99 19 90 91 92 93 94 95 96 97 98 99]
complex
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[90 91 92 93 94 95 96 97 98 99 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29]
[90 91 92 93 94 95 96 97 98 99 10 11 12 13 14 15 16 17 18 19 90 91 92 93 94 95 96 97 98 99]
expected error occurs: OutOfRange: out of range
[90 91 92 93 94 95 96 97 98 99 10 11 93 94 95 96 97 98 99 19 90 91 92 93 94 95 96 97 98 99]

======== #22 initializer ========

boolean:[ 0  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1]
int8:[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31]
uint8:[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31]
int16:[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31]
uint16:[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31]
int32:[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31]
uint32:[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31]
int64:[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31]
uint64:[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31]
half:[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31]
float:[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31]
double:[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31]
complex:[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31]
boolean:[[ 0  1  1  1  1  1  1  1][ 1  1  1  1  1  1  1  1][ 1  1  1  1  1  1  1  1][ 1  1  1  1  1  1  1  1]]
int8:[[ 0  1  2  3  4  5  6  7][ 8  9 10 11 12 13 14 15][16 17 18 19 20 21 22 23][24 25 26 27 28 29 30 31]]
uint8:[[ 0  1  2  3  4  5  6  7][ 8  9 10 11 12 13 14 15][16 17 18 19 20 21 22 23][24 25 26 27 28 29 30 31]]
int16:[[ 0  1  2  3  4  5  6  7][ 8  9 10 11 12 13 14 15][16 17 18 19 20 21 22 23][24 25 26 27 28 29 30 31]]
uint16:[[ 0  1  2  3  4  5  6  7][ 8  9 10 11 12 13 14 15][16 17 18 19 20 21 22 23][24 25 26 27 28 29 30 31]]
int32:[[ 0  1  2  3  4  5  6  7][ 8  9 10 11 12 13 14 15][16 17 18 19 20 21 22 23][24 25 26 27 28 29 30 31]]
uint32:[[ 0  1  2  3  4  5  6  7][ 8  9 10 11 12 13 14 15][16 17 18 19 20 21 22 23][24 25 26 27 28 29 30 31]]
int64:[[ 0  1  2  3  4  5  6  7][ 8  9 10 11 12 13 14 15][16 17 18 19 20 21 22 23][24 25 26 27 28 29 30 31]]
uint64:[[ 0  1  2  3  4  5  6  7][ 8  9 10 11 12 13 14 15][16 17 18 19 20 21 22 23][24 25 26 27 28 29 30 31]]
half:[[ 0  1  2  3  4  5  6  7][ 8  9 10 11 12 13 14 15][16 17 18 19 20 21 22 23][24 25 26 27 28 29 30 31]]
float:[[ 0  1  2  3  4  5  6  7][ 8  9 10 11 12 13 14 15][16 17 18 19 20 21 22 23][24 25 26 27 28 29 30 31]]
double:[[ 0  1  2  3  4  5  6  7][ 8  9 10 11 12 13 14 15][16 17 18 19 20 21 22 23][24 25 26 27 28 29 30 31]]
complex:[[ 0  1  2  3  4  5  6  7][ 8  9 10 11 12 13 14 15][16 17 18 19 20 21 22 23][24 25 26 27 28 29 30 31]]
boolean:[[[ 0  1  1  1][ 1  1  1  1]][[ 1  1  1  1][ 1  1  1  1]][[ 1  1  1  1][ 1  1  1  1]][[ 1  1  1  1][ 1  1  1  1]]]
int8:[[[ 0  1  2  3][ 4  5  6  7]][[ 8  9 10 11][12 13 14 15]][[16 17 18 19][20 21 22 23]][[24 25 26 27][28 29 30 31]]]
uint8:[[[ 0  1  2  3][ 4  5  6  7]][[ 8  9 10 11][12 13 14 15]][[16 17 18 19][20 21 22 23]][[24 25 26 27][28 29 30 31]]]
int16:[[[ 0  1  2  3][ 4  5  6  7]][[ 8  9 10 11][12 13 14 15]][[16 17 18 19][20 21 22 23]][[24 25 26 27][28 29 30 31]]]
uint16:[[[ 0  1  2  3][ 4  5  6  7]][[ 8  9 10 11][12 13 14 15]][[16 17 18 19][20 21 22 23]][[24 25 26 27][28 29 30 31]]]
int32:[[[ 0  1  2  3][ 4  5  6  7]][[ 8  9 10 11][12 13 14 15]][[16 17 18 19][20 21 22 23]][[24 25 26 27][28 29 30 31]]]
uint32:[[[ 0  1  2  3][ 4  5  6  7]][[ 8  9 10 11][12 13 14 15]][[16 17 18 19][20 21 22 23]][[24 25 26 27][28 29 30 31]]]
int64:[[[ 0  1  2  3][ 4  5  6  7]][[ 8  9 10 11][12 13 14 15]][[16 17 18 19][20 21 22 23]][[24 25 26 27][28 29 30 31]]]
uint64:[[[ 0  1  2  3][ 4  5  6  7]][[ 8  9 10 11][12 13 14 15]][[16 17 18 19][20 21 22 23]][[24 25 26 27][28 29 30 31]]]
half:[[[ 0  1  2  3][ 4  5  6  7]][[ 8  9 10 11][12 13 14 15]][[16 17 18 19][20 21 22 23]][[24 25 26 27][28 29 30 31]]]
float:[[[ 0  1  2  3][ 4  5  6  7]][[ 8  9 10 11][12 13 14 15]][[16 17 18 19][20 21 22 23]][[24 25 26 27][28 29 30 31]]]
double:[[[ 0  1  2  3][ 4  5  6  7]][[ 8  9 10 11][12 13 14 15]][[16 17 18 19][20 21 22 23]][[24 25 26 27][28 29 30 31]]]
complex:[[[ 0  1  2  3][ 4  5  6  7]][[ 8  9 10 11][12 13 14 15]][[16 17 18 19][20 21 22 23]][[24 25 26 27][28 29 30 31]]]

======== #23 operator ========

boolean
{ +a } = [ 1  1  1  1  1  1  1  1  1  1]
{ -a } = [ 1  1  1  1  1  1  1  1  1  1]
{ a + b } = [ 2  2  2  2  2  2  2  2  2  2]
{ a - b } = [ 0  0  0  0  0  0  0  0  0  0]
{ a * b } = [ 1  1  1  1  1  1  1  1  1  1]
{ a / b } = [ 1  1  1  1  1  1  1  1  1  1]
{ a % b } = [ 0  0  0  0  0  0  0  0  0  0]
{ a_short ** b_short } = [ 1  1  1]
{ a + 3 } = [ 4  4  4  4  4  4  4  4  4  4]
{ a - 3 } = [-2 -2 -2 -2 -2 -2 -2 -2 -2 -2]
{ a * 3 } = [ 3  3  3  3  3  3  3  3  3  3]
{ a / 3 } = [ 0  0  0  0  0  0  0  0  0  0]
{ a % 3 } = [ 1  1  1  1  1  1  1  1  1  1]
{ a ** 3 } = [ 1  1  1  1  1  1  1  1  1  1]
{ 3 + b } = [ 4  4  4  4  4  4  4  4  4  4]
{ 3 - b } = [ 2  2  2  2  2  2  2  2  2  2]
{ 3 * b } = [ 3  3  3  3  3  3  3  3  3  3]
{ 3 / b } = [ 3  3  3  3  3  3  3  3  3  3]
{ 3 % b } = [ 0  0  0  0  0  0  0  0  0  0]
{ 3 ** b } = [ 3  3  3  3  3  3  3  3  3  3]
{ a & b } = [ 1  1  1  1  1  1  1  1  1  1]
{ a | b } = [ 1  1  1  1  1  1  1  1  1  1]
{ a ^ b } = [ 0  0  0  0  0  0  0  0  0  0]
{ a & 3 } = [ 1  1  1  1  1  1  1  1  1  1]
{ a | 3 } = [ 3  3  3  3  3  3  3  3  3  3]
{ a ^ 3 } = [ 2  2  2  2  2  2  2  2  2  2]
{ 3 & b } = [ 1  1  1  1  1  1  1  1  1  1]
{ 3 | b } = [ 3  3  3  3  3  3  3  3  3  3]
{ 3 ^ b } = [ 2  2  2  2  2  2  2  2  2  2]

int8
{ +a } = [ 2  3  4  5  6  7  8  9 10 11]
{ -a } = [-2 -3 -4 -5 -6 -7 -8 -9 -10 -11]
{ a + b } = [ 3  5  7  9 11 13 15 17 19 21]
{ a - b } = [ 1  1  1  1  1  1  1  1  1  1]
{ a * b } = [ 2  6 12 20 30 42 56 72 90 110]
{ a / b } = [ 2  1  1  1  1  1  1  1  1  1]
{ a % b } = [ 0  1  1  1  1  1  1  1  1  1]
{ a_short ** b_short } = [ 2  9 64]
{ a + 3 } = [ 5  6  7  8  9 10 11 12 13 14]
{ a - 3 } = [-1  0  1  2  3  4  5  6  7  8]
{ a * 3 } = [ 6  9 12 15 18 21 24 27 30 33]
{ a / 3 } = [ 0  1  1  1  2  2  2  3  3  3]
{ a % 3 } = [ 2  0  1  2  0  1  2  0  1  2]
{ a ** 3 } = [ 8 27 64 125 -40 87  0 -39 -24 51]
{ 3 + b } = [ 4  5  6  7  8  9 10 11 12 13]
{ 3 - b } = [ 2  1  0 -1 -2 -3 -4 -5 -6 -7]
{ 3 * b } = [ 3  6  9 12 15 18 21 24 27 30]
{ 3 / b } = [ 3  1  1  0  0  0  0  0  0  0]
{ 3 % b } = [ 0  1  0  3  3  3  3  3  3  3]
{ 3 ** b } = [ 3  9 27 81 -13 -39 -117 -95 -29 -87]
{ a & b } = [ 0  2  0  4  4  6  0  8  8 10]
{ a | b } = [ 3  3  7  5  7  7 15  9 11 11]
{ a ^ b } = [ 3  1  7  1  3  1 15  1  3  1]
{ a & 3 } = [ 2  3  0  1  2  3  0  1  2  3]
{ a | 3 } = [ 3  3  7  7  7  7 11 11 11 11]
{ a ^ 3 } = [ 1  0  7  6  5  4 11 10  9  8]
{ 3 & b } = [ 1  2  3  0  1  2  3  0  1  2]
{ 3 | b } = [ 3  3  3  7  7  7  7 11 11 11]
{ 3 ^ b } = [ 2  1  0  7  6  5  4 11 10  9]

uint8
{ +a } = [ 2  3  4  5  6  7  8  9 10 11]
{ -a } = [254 253 252 251 250 249 248 247 246 245]
{ a + b } = [ 3  5  7  9 11 13 15 17 19 21]
{ a - b } = [ 1  1  1  1  1  1  1  1  1  1]
{ a * b } = [ 2  6 12 20 30 42 56 72 90 110]
{ a / b } = [ 2  1  1  1  1  1  1  1  1  1]
{ a % b } = [ 0  1  1  1  1  1  1  1  1  1]
{ a_short ** b_short } = [ 2  9 64]
{ a + 3 } = [ 5  6  7  8  9 10 11 12 13 14]
{ a - 3 } = [255  0  1  2  3  4  5  6  7  8]
{ a * 3 } = [ 6  9 12 15 18 21 24 27 30 33]
{ a / 3 } = [ 0  1  1  1  2  2  2  3  3  3]
{ a % 3 } = [ 2  0  1  2  0  1  2  0  1  2]
{ a ** 3 } = [ 8 27 64 125 216 87  0 217 232 51]
{ 3 + b } = [ 4  5  6  7  8  9 10 11 12 13]
{ 3 - b } = [ 2  1  0 255 254 253 252 251 250 249]
{ 3 * b } = [ 3  6  9 12 15 18 21 24 27 30]
{ 3 / b } = [ 3  1  1  0  0  0  0  0  0  0]
{ 3 % b } = [ 0  1  0  3  3  3  3  3  3  3]
{ 3 ** b } = [ 3  9 27 81 243 217 139 161 227 169]
{ a & b } = [ 0  2  0  4  4  6  0  8  8 10]
{ a | b } = [ 3  3  7  5  7  7 15  9 11 11]
{ a ^ b } = [ 3  1  7  1  3  1 15  1  3  1]
{ a & 3 } = [ 2  3  0  1  2  3  0  1  2  3]
{ a | 3 } = [ 3  3  7  7  7  7 11 11 11 11]
{ a ^ 3 } = [ 1  0  7  6  5  4 11 10  9  8]
{ 3 & b } = [ 1  2  3  0  1  2  3  0  1  2]
{ 3 | b } = [ 3  3  3  7  7  7  7 11 11 11]
{ 3 ^ b } = [ 2  1  0  7  6  5  4 11 10  9]

int16
{ +a } = [ 2  3  4  5  6  7  8  9 10 11]
{ -a } = [-2 -3 -4 -5 -6 -7 -8 -9 -10 -11]
{ a + b } = [ 3  5  7  9 11 13 15 17 19 21]
{ a - b } = [ 1  1  1  1  1  1  1  1  1  1]
{ a * b } = [ 2  6 12 20 30 42 56 72 90 110]
{ a / b } = [ 2  1  1  1  1  1  1  1  1  1]
{ a % b } = [ 0  1  1  1  1  1  1  1  1  1]
{ a_short ** b_short } = [ 2  9 64]
{ a + 3 } = [ 5  6  7  8  9 10 11 12 13 14]
{ a - 3 } = [-1  0  1  2  3  4  5  6  7  8]
{ a * 3 } = [ 6  9 12 15 18 21 24 27 30 33]
{ a / 3 } = [ 0  1  1  1  2  2  2  3  3  3]
{ a % 3 } = [ 2  0  1  2  0  1  2  0  1  2]
{ a ** 3 } = [ 8 27 64 125 216 343 512 729 1000 1331]
{ 3 + b } = [ 4  5  6  7  8  9 10 11 12 13]
{ 3 - b } = [ 2  1  0 -1 -2 -3 -4 -5 -6 -7]
{ 3 * b } = [ 3  6  9 12 15 18 21 24 27 30]
{ 3 / b } = [ 3  1  1  0  0  0  0  0  0  0]
{ 3 % b } = [ 0  1  0  3  3  3  3  3  3  3]
{ 3 ** b } = [ 3  9 27 81 243 729 2187 6561 19683 -6487]
{ a & b } = [ 0  2  0  4  4  6  0  8  8 10]
{ a | b } = [ 3  3  7  5  7  7 15  9 11 11]
{ a ^ b } = [ 3  1  7  1  3  1 15  1  3  1]
{ a & 3 } = [ 2  3  0  1  2  3  0  1  2  3]
{ a | 3 } = [ 3  3  7  7  7  7 11 11 11 11]
{ a ^ 3 } = [ 1  0  7  6  5  4 11 10  9  8]
{ 3 & b } = [ 1  2  3  0  1  2  3  0  1  2]
{ 3 | b } = [ 3  3  3  7  7  7  7 11 11 11]
{ 3 ^ b } = [ 2  1  0  7  6  5  4 11 10  9]

uint16
{ +a } = [ 2  3  4  5  6  7  8  9 10 11]
{ -a } = [65534 65533 65532 65531 65530 65529 65528 65527 65526 65525]
{ a + b } = [ 3  5  7  9 11 13 15 17 19 21]
{ a - b } = [ 1  1  1  1  1  1  1  1  1  1]
{ a * b } = [ 2  6 12 20 30 42 56 72 90 110]
{ a / b } = [ 2  1  1  1  1  1  1  1  1  1]
{ a % b } = [ 0  1  1  1  1  1  1  1  1  1]
{ a_short ** b_short } = [ 2  9 64]
{ a + 3 } = [ 5  6  7  8  9 10 11 12 13 14]
{ a - 3 } = [65535  0  1  2  3  4  5  6  7  8]
{ a * 3 } = [ 6  9 12 15 18 21 24 27 30 33]
{ a / 3 } = [ 0  1  1  1  2  2  2  3  3  3]
{ a % 3 } = [ 2  0  1  2  0  1  2  0  1  2]
{ a ** 3 } = [ 8 27 64 125 216 343 512 729 1000 1331]
{ 3 + b } = [ 4  5  6  7  8  9 10 11 12 13]
{ 3 - b } = [ 2  1  0 65535 65534 65533 65532 65531 65530 65529]
{ 3 * b } = [ 3  6  9 12 15 18 21 24 27 30]
{ 3 / b } = [ 3  1  1  0  0  0  0  0  0  0]
{ 3 % b } = [ 0  1  0  3  3  3  3  3  3  3]
{ 3 ** b } = [ 3  9 27 81 243 729 2187 6561 19683 59049]
{ a & b } = [ 0  2  0  4  4  6  0  8  8 10]
{ a | b } = [ 3  3  7  5  7  7 15  9 11 11]
{ a ^ b } = [ 3  1  7  1  3  1 15  1  3  1]
{ a & 3 } = [ 2  3  0  1  2  3  0  1  2  3]
{ a | 3 } = [ 3  3  7  7  7  7 11 11 11 11]
{ a ^ 3 } = [ 1  0  7  6  5  4 11 10  9  8]
{ 3 & b } = [ 1  2  3  0  1  2  3  0  1  2]
{ 3 | b } = [ 3  3  3  7  7  7  7 11 11 11]
{ 3 ^ b } = [ 2  1  0  7  6  5  4 11 10  9]

int32
{ +a } = [ 2  3  4  5  6  7  8  9 10 11]
{ -a } = [-2 -3 -4 -5 -6 -7 -8 -9 -10 -11]
{ a + b } = [ 3  5  7  9 11 13 15 17 19 21]
{ a - b } = [ 1  1  1  1  1  1  1  1  1  1]
{ a * b } = [ 2  6 12 20 30 42 56 72 90 110]
{ a / b } = [ 2  1  1  1  1  1  1  1  1  1]
{ a % b } = [ 0  1  1  1  1  1  1  1  1  1]
{ a_short ** b_short } = [ 2  9 64]
{ a + 3 } = [ 5  6  7  8  9 10 11 12 13 14]
{ a - 3 } = [-1  0  1  2  3  4  5  6  7  8]
{ a * 3 } = [ 6  9 12 15 18 21 24 27 30 33]
{ a / 3 } = [ 0  1  1  1  2  2  2  3  3  3]
{ a % 3 } = [ 2  0  1  2  0  1  2  0  1  2]
{ a ** 3 } = [ 8 27 64 125 216 343 512 729 1000 1331]
{ 3 + b } = [ 4  5  6  7  8  9 10 11 12 13]
{ 3 - b } = [ 2  1  0 -1 -2 -3 -4 -5 -6 -7]
{ 3 * b } = [ 3  6  9 12 15 18 21 24 27 30]
{ 3 / b } = [ 3  1  1  0  0  0  0  0  0  0]
{ 3 % b } = [ 0  1  0  3  3  3  3  3  3  3]
{ 3 ** b } = [ 3  9 27 81 243 729 2187 6561 19683 59049]
{ a & b } = [ 0  2  0  4  4  6  0  8  8 10]
{ a | b } = [ 3  3  7  5  7  7 15  9 11 11]
{ a ^ b } = [ 3  1  7  1  3  1 15  1  3  1]
{ a & 3 } = [ 2  3  0  1  2  3  0  1  2  3]
{ a | 3 } = [ 3  3  7  7  7  7 11 11 11 11]
{ a ^ 3 } = [ 1  0  7  6  5  4 11 10  9  8]
{ 3 & b } = [ 1  2  3  0  1  2  3  0  1  2]
{ 3 | b } = [ 3  3  3  7  7  7  7 11 11 11]
{ 3 ^ b } = [ 2  1  0  7  6  5  4 11 10  9]

uint32
{ +a } = [ 2  3  4  5  6  7  8  9 10 11]
{ -a } = [4294967294 4294967293 4294967292 4294967291 4294967290 4294967289 4294967288 4294967287 4294967286 4294967285]
{ a + b } = [ 3  5  7  9 11 13 15 17 19 21]
{ a - b } = [ 1  1  1  1  1  1  1  1  1  1]
{ a * b } = [ 2  6 12 20 30 42 56 72 90 110]
{ a / b } = [ 2  1  1  1  1  1  1  1  1  1]
{ a % b } = [ 0  1  1  1  1  1  1  1  1  1]
{ a_short ** b_short } = [ 2  9 64]
{ a + 3 } = [ 5  6  7  8  9 10 11 12 13 14]
{ a - 3 } = [4294967295  0  1  2  3  4  5  6  7  8]
{ a * 3 } = [ 6  9 12 15 18 21 24 27 30 33]
{ a / 3 } = [ 0  1  1  1  2  2  2  3  3  3]
{ a % 3 } = [ 2  0  1  2  0  1  2  0  1  2]
{ a ** 3 } = [ 8 27 64 125 216 343 512 729 1000 1331]
{ 3 + b } = [ 4  5  6  7  8  9 10 11 12 13]
{ 3 - b } = [ 2  1  0 4294967295 4294967294 4294967293 4294967292 4294967291 4294967290 4294967289]
{ 3 * b } = [ 3  6  9 12 15 18 21 24 27 30]
{ 3 / b } = [ 3  1  1  0  0  0  0  0  0  0]
{ 3 % b } = [ 0  1  0  3  3  3  3  3  3  3]
{ 3 ** b } = [ 3  9 27 81 243 729 2187 6561 19683 59049]
{ a & b } = [ 0  2  0  4  4  6  0  8  8 10]
{ a | b } = [ 3  3  7  5  7  7 15  9 11 11]
{ a ^ b } = [ 3  1  7  1  3  1 15  1  3  1]
{ a & 3 } = [ 2  3  0  1  2  3  0  1  2  3]
{ a | 3 } = [ 3  3  7  7  7  7 11 11 11 11]
{ a ^ 3 } = [ 1  0  7  6  5  4 11 10  9  8]
{ 3 & b } = [ 1  2  3  0  1  2  3  0  1  2]
{ 3 | b } = [ 3  3  3  7  7  7  7 11 11 11]
{ 3 ^ b } = [ 2  1  0  7  6  5  4 11 10  9]

int64
{ +a } = [ 2  3  4  5  6  7  8  9 10 11]
{ -a } = [-2 -3 -4 -5 -6 -7 -8 -9 -10 -11]
{ a + b } = [ 3  5  7  9 11 13 15 17 19 21]
{ a - b } = [ 1  1  1  1  1  1  1  1  1  1]
{ a * b } = [ 2  6 12 20 30 42 56 72 90 110]
{ a / b } = [ 2  1  1  1  1  1  1  1  1  1]
{ a % b } = [ 0  1  1  1  1  1  1  1  1  1]
{ a_short ** b_short } = [ 2  9 64]
{ a + 3 } = [ 5  6  7  8  9 10 11 12 13 14]
{ a - 3 } = [-1  0  1  2  3  4  5  6  7  8]
{ a * 3 } = [ 6  9 12 15 18 21 24 27 30 33]
{ a / 3 } = [ 0  1  1  1  2  2  2  3  3  3]
{ a % 3 } = [ 2  0  1  2  0  1  2  0  1  2]
{ a ** 3 } = [ 8 27 64 125 216 343 512 729 1000 1331]
{ 3 + b } = [ 4  5  6  7  8  9 10 11 12 13]
{ 3 - b } = [ 2  1  0 -1 -2 -3 -4 -5 -6 -7]
{ 3 * b } = [ 3  6  9 12 15 18 21 24 27 30]
{ 3 / b } = [ 3  1  1  0  0  0  0  0  0  0]
{ 3 % b } = [ 0  1  0  3  3  3  3  3  3  3]
{ 3 ** b } = [ 3  9 27 81 243 729 2187 6561 19683 59049]
{ a & b } = [ 0  2  0  4  4  6  0  8  8 10]
{ a | b } = [ 3  3  7  5  7  7 15  9 11 11]
{ a ^ b } = [ 3  1  7  1  3  1 15  1  3  1]
{ a & 3 } = [ 2  3  0  1  2  3  0  1  2  3]
{ a | 3 } = [ 3  3  7  7  7  7 11 11 11 11]
{ a ^ 3 } = [ 1  0  7  6  5  4 11 10  9  8]
{ 3 & b } = [ 1  2  3  0  1  2  3  0  1  2]
{ 3 | b } = [ 3  3  3  7  7  7  7 11 11 11]
{ 3 ^ b } = [ 2  1  0  7  6  5  4 11 10  9]

uint64
{ +a } = [ 2  3  4  5  6  7  8  9 10 11]
{ -a } = [-9223372036854775808 -9223372036854775808 -9223372036854775808 -9223372036854775808 -9223372036854775808 -9223372036854775808 -9223372036854775808 -9223372036854775808 -9223372036854775808 -9223372036854775808]
{ a + b } = [ 3  5  7  9 11 13 15 17 19 21]
{ a - b } = [ 1  1  1  1  1  1  1  1  1  1]
{ a * b } = [ 2  6 12 20 30 42 56 72 90 110]
{ a / b } = [ 2  1  1  1  1  1  1  1  1  1]
{ a % b } = [ 0  1  1  1  1  1  1  1  1  1]
{ a_short ** b_short } = [ 2  9 64]
{ a + 3 } = [ 5  6  7  8  9 10 11 12 13 14]
{ a - 3 } = [-9223372036854775808  0  1  2  3  4  5  6  7  8]
{ a * 3 } = [ 6  9 12 15 18 21 24 27 30 33]
{ a / 3 } = [ 0  1  1  1  2  2  2  3  3  3]
{ a % 3 } = [ 2  0  1  2  0  1  2  0  1  2]
{ a ** 3 } = [ 8 27 64 125 216 343 512 729 1000 1331]
{ 3 + b } = [ 4  5  6  7  8  9 10 11 12 13]
{ 3 - b } = [ 2  1  0 -9223372036854775808 -9223372036854775808 -9223372036854775808 -9223372036854775808 -9223372036854775808 -9223372036854775808 -9223372036854775808]
{ 3 * b } = [ 3  6  9 12 15 18 21 24 27 30]
{ 3 / b } = [ 3  1  1  0  0  0  0  0  0  0]
{ 3 % b } = [ 0  1  0  3  3  3  3  3  3  3]
{ 3 ** b } = [ 3  9 27 81 243 729 2187 6561 19683 59049]
{ a & b } = [ 0  2  0  4  4  6  0  8  8 10]
{ a | b } = [ 3  3  7  5  7  7 15  9 11 11]
{ a ^ b } = [ 3  1  7  1  3  1 15  1  3  1]
{ a & 3 } = [ 2  3  0  1  2  3  0  1  2  3]
{ a | 3 } = [ 3  3  7  7  7  7 11 11 11 11]
{ a ^ 3 } = [ 1  0  7  6  5  4 11 10  9  8]
{ 3 & b } = [ 1  2  3  0  1  2  3  0  1  2]
{ 3 | b } = [ 3  3  3  7  7  7  7 11 11 11]
{ 3 ^ b } = [ 2  1  0  7  6  5  4 11 10  9]

half
{ +a } = [ 2  3  4  5  6  7  8  9 10 11]
{ -a } = [-2 -3 -4 -5 -6 -7 -8 -9 -10 -11]
{ a + b } = [ 3  5  7  9 11 13 15 17 19 21]
{ a - b } = [ 1  1  1  1  1  1  1  1  1  1]
{ a * b } = [ 2  6 12 20 30 42 56 72 90 110]
{ a / b } = [ 2  1  1  1  1  1  1  1  1  1]
{ a % b } = [ 0  1  1  1  1  1  1  1  1  1]
{ a_short ** b_short } = [ 2  9 64]
{ a + 3 } = [ 5  6  7  8  9 10 11 12 13 14]
{ a - 3 } = [-1  0  1  2  3  4  5  6  7  8]
{ a * 3 } = [ 6  9 12 15 18 21 24 27 30 33]
{ a / 3 } = [ 0  1  1  1  2  2  2  3  3  3]
{ a % 3 } = [ 2  0  1  2  0  1  2  0  1  2]
{ a ** 3 } = [ 8 27 64 125 216 343 512 729 1000 1331]
{ 3 + b } = [ 4  5  6  7  8  9 10 11 12 13]
{ 3 - b } = [ 2  1  0 -1 -2 -3 -4 -5 -6 -7]
{ 3 * b } = [ 3  6  9 12 15 18 21 24 27 30]
{ 3 / b } = [ 3  1  1  0  0  0  0  0  0  0]
{ 3 % b } = [ 0  1  0  3  3  3  3  3  3  3]
{ 3 ** b } = [ 3  9 27 81 243 729 2186 6560 19680 59040]
{ a & b } = TypeError: can't apply and function on these arrays
{ a | b } = TypeError: can't apply or function on these arrays
{ a ^ b } = TypeError: can't apply xor function on these arrays
{ a & 3 } = TypeError: can't apply and function on these arrays
{ a | 3 } = TypeError: can't apply or function on these arrays
{ a ^ 3 } = TypeError: can't apply xor function on these arrays
{ 3 & b } = TypeError: can't apply and function on these arrays
{ 3 | b } = TypeError: can't apply or function on these arrays
{ 3 ^ b } = TypeError: can't apply xor function on these arrays

float
{ +a } = [ 2  3  4  5  6  7  8  9 10 11]
{ -a } = [-2 -3 -4 -5 -6 -7 -8 -9 -10 -11]
{ a + b } = [ 3  5  7  9 11 13 15 17 19 21]
{ a - b } = [ 1  1  1  1  1  1  1  1  1  1]
{ a * b } = [ 2  6 12 20 30 42 56 72 90 110]
{ a / b } = [ 2  1  1  1  1  1  1  1  1  1]
{ a % b } = [ 0  1  1  1  1  1  1  1  1  1]
{ a_short ** b_short } = [ 2  9 64]
{ a + 3 } = [ 5  6  7  8  9 10 11 12 13 14]
{ a - 3 } = [-1  0  1  2  3  4  5  6  7  8]
{ a * 3 } = [ 6  9 12 15 18 21 24 27 30 33]
{ a / 3 } = [ 0  1  1  1  2  2  2  3  3  3]
{ a % 3 } = [ 2  0  1  2  0  1  2  0  1  2]
{ a ** 3 } = [ 8 27 64 125 216 343 512 729 1000 1331]
{ 3 + b } = [ 4  5  6  7  8  9 10 11 12 13]
{ 3 - b } = [ 2  1  0 -1 -2 -3 -4 -5 -6 -7]
{ 3 * b } = [ 3  6  9 12 15 18 21 24 27 30]
{ 3 / b } = [ 3  1  1  0  0  0  0  0  0  0]
{ 3 % b } = [ 0  1  0  3  3  3  3  3  3  3]
{ 3 ** b } = [ 3  9 27 81 243 729 2187 6561 19683 59049]
{ a & b } = TypeError: can't apply and function on these arrays
{ a | b } = TypeError: can't apply or function on these arrays
{ a ^ b } = TypeError: can't apply xor function on these arrays
{ a & 3 } = TypeError: can't apply and function on these arrays
{ a | 3 } = TypeError: can't apply or function on these arrays
{ a ^ 3 } = TypeError: can't apply xor function on these arrays
{ 3 & b } = TypeError: can't apply and function on these arrays
{ 3 | b } = TypeError: can't apply or function on these arrays
{ 3 ^ b } = TypeError: can't apply xor function on these arrays

double
{ +a } = [ 2  3  4  5  6  7  8  9 10 11]
{ -a } = [-2 -3 -4 -5 -6 -7 -8 -9 -10 -11]
{ a + b } = [ 3  5  7  9 11 13 15 17 19 21]
{ a - b } = [ 1  1  1  1  1  1  1  1  1  1]
{ a * b } = [ 2  6 12 20 30 42 56 72 90 110]
{ a / b } = [ 2  1  1  1  1  1  1  1  1  1]
{ a % b } = [ 0  1  1  1  1  1  1  1  1  1]
{ a_short ** b_short } = [ 2  9 64]
{ a + 3 } = [ 5  6  7  8  9 10 11 12 13 14]
{ a - 3 } = [-1  0  1  2  3  4  5  6  7  8]
{ a * 3 } = [ 6  9 12 15 18 21 24 27 30 33]
{ a / 3 } = [ 0  1  1  1  2  2  2  3  3  3]
{ a % 3 } = [ 2  0  1  2  0  1  2  0  1  2]
{ a ** 3 } = [ 8 27 64 125 216 343 512 729 1000 1331]
{ 3 + b } = [ 4  5  6  7  8  9 10 11 12 13]
{ 3 - b } = [ 2  1  0 -1 -2 -3 -4 -5 -6 -7]
{ 3 * b } = [ 3  6  9 12 15 18 21 24 27 30]
{ 3 / b } = [ 3  1  1  0  0  0  0  0  0  0]
{ 3 % b } = [ 0  1  0  3  3  3  3  3  3  3]
{ 3 ** b } = [ 3  9 27 81 243 729 2187 6561 19683 59049]
{ a & b } = TypeError: can't apply and function on these arrays
{ a | b } = TypeError: can't apply or function on these arrays
{ a ^ b } = TypeError: can't apply xor function on these arrays
{ a & 3 } = TypeError: can't apply and function on these arrays
{ a | 3 } = TypeError: can't apply or function on these arrays
{ a ^ 3 } = TypeError: can't apply xor function on these arrays
{ 3 & b } = TypeError: can't apply and function on these arrays
{ 3 | b } = TypeError: can't apply or function on these arrays
{ 3 ^ b } = TypeError: can't apply xor function on these arrays

complex
{ +a } = [ 2  3  4  5  6  7  8  9 10 11]
{ -a } = [-2 -3 -4 -5 -6 -7 -8 -9 -10 -11]
{ a + b } = [ 3  5  7  9 11 13 15 17 19 21]
{ a - b } = [ 1  1  1  1  1  1  1  1  1  1]
{ a * b } = [ 2  6 12 20 30 42 56 72 90 110]
{ a / b } = [ 2  1  1  1  1  1  1  1  1  1]
{ a % b } = [ 0  1  1  1  1  1  1  1  1  1]
{ a_short ** b_short } = [ 2  9 63]
{ a + 3 } = [ 5  6  7  8  9 10 11 12 13 14]
{ a - 3 } = [-1  0  1  2  3  4  5  6  7  8]
{ a * 3 } = [ 6  9 12 15 18 21 24 27 30 33]
{ a / 3 } = [ 0  1  1  1  2  2  2  3  3  3]
{ a % 3 } = [ 2  0  1  2  0  1  2  0  1  2]
{ a ** 3 } = [ 7 27 63 124 216 342 511 729 1000 1331]
{ 3 + b } = [ 4  5  6  7  8  9 10 11 12 13]
{ 3 - b } = [ 2  1  0 -1 -2 -3 -4 -5 -6 -7]
{ 3 * b } = [ 3  6  9 12 15 18 21 24 27 30]
{ 3 / b } = [ 3  1  1  0  0  0  0  0  0  0]
{ 3 % b } = [ 0  1  0  3  3  3  3  3  3  3]
{ 3 ** b } = [ 3  9 27 81 243 729 2187 6561 19683 59049]
{ a & b } = TypeError: can't apply and function on these arrays
{ a | b } = TypeError: can't apply or function on these arrays
{ a ^ b } = TypeError: can't apply xor function on these arrays
{ a & 3 } = TypeError: can't apply and function on these arrays
{ a | 3 } = TypeError: can't apply or function on these arrays
{ a ^ 3 } = TypeError: can't apply xor function on these arrays
{ 3 & b } = TypeError: can't apply and function on these arrays
{ 3 | b } = TypeError: can't apply or function on these arrays
{ 3 ^ b } = TypeError: can't apply xor function on these arrays


======== #24 cast to memory ========

boolean
16bytes
00 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
int8
16bytes
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
uint8
16bytes
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
int16
32bytes
00 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08 00 09 00 0a 00 0b 00
0c 00 0d 00 0e 00 0f 00
uint16
32bytes
00 00 01 00 02 00 03 00 04 00 05 00 06 00 07 00 08 00 09 00 0a 00 0b 00
0c 00 0d 00 0e 00 0f 00
int32
64bytes
00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00
06 00 00 00 07 00 00 00 08 00 00 00 09 00 00 00 0a 00 00 00 0b 00 00 00
0c 00 00 00 0d 00 00 00 0e 00 00 00 0f 00 00 00
uint32
64bytes
00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00
06 00 00 00 07 00 00 00 08 00 00 00 09 00 00 00 0a 00 00 00 0b 00 00 00
0c 00 00 00 0d 00 00 00 0e 00 00 00 0f 00 00 00
int64
128bytes
00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00
03 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00
06 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00
09 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 0b 00 00 00 00 00 00 00
0c 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00 0e 00 00 00 00 00 00 00
0f 00 00 00 00 00 00 00
uint64
128bytes
00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00
03 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00
06 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00
09 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 0b 00 00 00 00 00 00 00
0c 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00 0e 00 00 00 00 00 00 00
0f 00 00 00 00 00 00 00
half
32bytes
00 00 00 3c 00 40 00 42 00 44 00 45 00 46 00 47 00 48 80 48 00 49 80 49
00 4a 80 4a 00 4b 80 4b
float
64bytes
00 00 00 00 00 00 80 3f 00 00 00 40 00 00 40 40 00 00 80 40 00 00 a0 40
00 00 c0 40 00 00 e0 40 00 00 00 41 00 00 10 41 00 00 20 41 00 00 30 41
00 00 40 41 00 00 50 41 00 00 60 41 00 00 70 41
double
128bytes
00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 40
00 00 00 00 00 00 08 40 00 00 00 00 00 00 10 40 00 00 00 00 00 00 14 40
00 00 00 00 00 00 18 40 00 00 00 00 00 00 1c 40 00 00 00 00 00 00 20 40
00 00 00 00 00 00 22 40 00 00 00 00 00 00 24 40 00 00 00 00 00 00 26 40
00 00 00 00 00 00 28 40 00 00 00 00 00 00 2a 40 00 00 00 00 00 00 2c 40
00 00 00 00 00 00 2e 40
complex
256bytes
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0 3f
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00
00 00 00 00 00 00 08 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 40
00 00 00 00 00 00 00 00 00 00 00 00 00 00 14 40 00 00 00 00 00 00 00 00
00 00 00 00 00 00 18 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1c 40
00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 40 00 00 00 00 00 00 00 00
00 00 00 00 00 00 22 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 24 40
00 00 00 00 00 00 00 00 00 00 00 00 00 00 26 40 00 00 00 00 00 00 00 00
00 00 00 00 00 00 28 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2a 40
00 00 00 00 00 00 00 00 00 00 00 00 00 00 2c 40 00 00 00 00 00 00 00 00
00 00 00 00 00 00 2e 40 00 00 00 00 00 00 00 00

======== #25 error for infinite iterator ========

expected error occurs: IteratorError: cannot evaluate infinite iterator

======== #26 divide by zero ========

boolean
x / y .. ZeroDivisionError: divide by zero
x / 0 .. ZeroDivisionError: divide by zero
2 / y .. ZeroDivisionError: divide by zero
int8
x / y .. ZeroDivisionError: divide by zero
x / 0 .. ZeroDivisionError: divide by zero
2 / y .. ZeroDivisionError: divide by zero
uint8
x / y .. ZeroDivisionError: divide by zero
x / 0 .. ZeroDivisionError: divide by zero
2 / y .. ZeroDivisionError: divide by zero
int16
x / y .. ZeroDivisionError: divide by zero
x / 0 .. ZeroDivisionError: divide by zero
2 / y .. ZeroDivisionError: divide by zero
uint16
x / y .. ZeroDivisionError: divide by zero
x / 0 .. ZeroDivisionError: divide by zero
2 / y .. ZeroDivisionError: divide by zero
int32
x / y .. ZeroDivisionError: divide by zero
x / 0 .. ZeroDivisionError: divide by zero
2 / y .. ZeroDivisionError: divide by zero
uint32
x / y .. ZeroDivisionError: divide by zero
x / 0 .. ZeroDivisionError: divide by zero
2 / y .. ZeroDivisionError: divide by zero
int64
x / y .. ZeroDivisionError: divide by zero
x / 0 .. ZeroDivisionError: divide by zero
2 / y .. ZeroDivisionError: divide by zero
uint64
x / y .. ZeroDivisionError: divide by zero
x / 0 .. ZeroDivisionError: divide by zero
2 / y .. ZeroDivisionError: divide by zero
half
x / y .. ZeroDivisionError: divide by zero
x / 0 .. ZeroDivisionError: divide by zero
2 / y .. ZeroDivisionError: divide by zero
float
x / y .. ZeroDivisionError: divide by zero
x / 0 .. ZeroDivisionError: divide by zero
2 / y .. ZeroDivisionError: divide by zero
double
x / y .. ZeroDivisionError: divide by zero
x / 0 .. ZeroDivisionError: divide by zero
2 / y .. ZeroDivisionError: divide by zero
complex
x / y .. ZeroDivisionError: divide by zero
x / 0 .. ZeroDivisionError: divide by zero
2 / y .. ZeroDivisionError: divide by zero

======== #27 sum/mean ========

boolean
sum = 10
avg = 1
int8
sum = 55
avg = 5
uint8
sum = 55
avg = 5
int16
sum = 55
avg = 5
uint16
sum = 55
avg = 5
int32
sum = 55
avg = 5
uint32
sum = 55
avg = 5
int64
sum = 55
avg = 5
uint64
sum = 55
avg = 5
half
sum = 55
avg = 5.5
float
sum = 55
avg = 5.5
double
sum = 55
avg = 5.5
complex
sum = 55
avg = 5.5

======== #28 modification on referenced instance ========

{{1, 2},
 {3, 4},
 {5, 6}}
{1, 2, 3, 4, 5, 6}
{   1,    2,    3, 3333,    5,    6}
{{1, 2},
 {3, 4},
 {5, 6}}

======== #29 array#flatten() ========

array([[1, 2], [3, 4], [5, 6]], elemtype => `int32).flatten() .. {1, 2, 3, 4, 5, 6}
array([[[1, 2], [3, 4], [5, 6]], [[7, 8], [9, 10], [11, 12]]], elemtype => `int32).flatten() .. { 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12}
array([[[1, 2], [3, 4], [5, 6]], [[7, 8], [9, 10], [11, 12]]], elemtype => `int32)[1].flatten() .. { 7,  8,  9, 10, 11, 12}

======== #30 array#reshape() ========

{ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23}
x.reshape([nil]) .. { 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23}
x.reshape([24]) .. { 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23}
x.reshape([1, 24]) .. {{ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23}}
x.reshape([8, 3]) .. {{ 0,  1,  2},
 { 3,  4,  5},
 { 6,  7,  8},
 { 9, 10, 11},
 {12, 13, 14},
 {15, 16, 17},
 {18, 19, 20},
 {21, 22, 23}}
x.reshape([4, 2, 3]) .. {{{ 0,  1,  2},
  { 3,  4,  5}},

 {{ 6,  7,  8},
  { 9, 10, 11}},

 {{12, 13, 14},
  {15, 16, 17}},

 {{18, 19, 20},
  {21, 22, 23}}}
x.reshape([8, nil]) .. {{ 0,  1,  2},
 { 3,  4,  5},
 { 6,  7,  8},
 { 9, 10, 11},
 {12, 13, 14},
 {15, 16, 17},
 {18, 19, 20},
 {21, 22, 23}}
x.reshape([nil, 3]) .. {{ 0,  1,  2},
 { 3,  4,  5},
 { 6,  7,  8},
 { 9, 10, 11},
 {12, 13, 14},
 {15, 16, 17},
 {18, 19, 20},
 {21, 22, 23}}
x.reshape([nil, 2, 3]) .. {{{ 0,  1,  2},
  { 3,  4,  5}},

 {{ 6,  7,  8},
  { 9, 10, 11}},

 {{12, 13, 14},
  {15, 16, 17}},

 {{18, 19, 20},
  {21, 22, 23}}}
x.reshape([4, nil, 3]) .. {{{ 0,  1,  2},
  { 3,  4,  5}},

 {{ 6,  7,  8},
  { 9, 10, 11}},

 {{12, 13, 14},
  {15, 16, 17}},

 {{18, 19, 20},
  {21, 22, 23}}}
x.reshape([4, 2, nil]) .. {{{ 0,  1,  2},
  { 3,  4,  5}},

 {{ 6,  7,  8},
  { 9, 10, 11}},

 {{12, 13, 14},
  {15, 16, 17}},

 {{18, 19, 20},
  {21, 22, 23}}}
x.reshape([4, nil, nil]) .. ValueError: only one dimension can be specified as an unfixed
x.reshape([4, 2, 4]) .. ValueError: incorrect shape specified

======== #31 array#transpose() ========

{{ 1,  2,  3,  4},
 { 5,  6,  7,  8},
 { 9, 10, 11, 12}}
[3, 4]
{{ 1,  2,  3,  4},
 { 5,  6,  7,  8},
 { 9, 10, 11, 12}}
[4, 3]
{{ 1,  5,  9},
 { 2,  6, 10},
 { 3,  7, 11},
 { 4,  8, 12}}
ValueError: specified axis is out of range
ValueError: mismatched number of axes to transpose
ValueError: mismatched number of axes to transpose
ValueError: duplicated axis is specified
{{{ 1,  2,  3,  4},
  { 5,  6,  7,  8},
  { 9, 10, 11, 12}},

 {{13, 14, 15, 16},
  {17, 18, 19, 20},
  {21, 22, 23, 24}}}
[2, 3, 4]
{{{ 1,  2,  3,  4},
  { 5,  6,  7,  8},
  { 9, 10, 11, 12}},

 {{13, 14, 15, 16},
  {17, 18, 19, 20},
  {21, 22, 23, 24}}}
[2, 4, 3]
{{{ 1,  5,  9},
  { 2,  6, 10},
  { 3,  7, 11},
  { 4,  8, 12}},

 {{13, 17, 21},
  {14, 18, 22},
  {15, 19, 23},
  {16, 20, 24}}}
[3, 2, 4]
{{{ 1,  2,  3,  4},
  {13, 14, 15, 16}},

 {{ 5,  6,  7,  8},
  {17, 18, 19, 20}},

 {{ 9, 10, 11, 12},
  {21, 22, 23, 24}}}
ValueError: specified axis is out of range
ValueError: mismatched number of axes to transpose
ValueError: mismatched number of axes to transpose
ValueError: mismatched number of axes to transpose
ValueError: duplicated axis is specified

======== #32 array#T ========

{{ 1,  2,  3,  4},
 { 5,  6,  7,  8},
 { 9, 10, 11, 12}}
[4, 3]
{{ 1,  5,  9},
 { 2,  6, 10},
 { 3,  7, 11},
 { 4,  8, 12}}

======== #33 array.dot() ========

elemtype: half
array.dot(a, d) .. {56, -2}
array.dot(a, e) .. {-50,  19,  17}
array.dot(b.reshape([2, 1]), a.reshape([1, 3])) .. {{ 5, 25, 45},
 { 2, 10, 18}}
array.dot(c, d) .. {{43, 19},
 {35,  1}}
array.dot(c, e) .. {{ 67,  40, -15},
 {-11,  12,  31}}
array.dot(d, b) .. {29, 17, 18}
array.dot(d, c) .. {{41, 20,  5},
 {24, 12,  2},
 {25, 16, -9}}
array.dot(e, d) .. {{ 60,  18},
 {-10,  11},
 {-15, -19}}
a |.| d .. {56, -2}
a |.| e .. {-50,  19,  17}
b.reshape([2, 1]) |.| a.reshape([1, 3]) .. {{ 5, 25, 45},
 { 2, 10, 18}}
c |.| d .. {{43, 19},
 {35,  1}}
c |.| e .. {{ 67,  40, -15},
 {-11,  12,  31}}
d |.| b .. {29, 17, 18}
d |.| c .. {{41, 20,  5},
 {24, 12,  2},
 {25, 16, -9}}
e |.| d .. {{ 60,  18},
 {-10,  11},
 {-15, -19}}
elemtype: float
array.dot(a, d) .. {56, -2}
array.dot(a, e) .. {-50,  19,  17}
array.dot(b.reshape([2, 1]), a.reshape([1, 3])) .. {{ 5, 25, 45},
 { 2, 10, 18}}
array.dot(c, d) .. {{43, 19},
 {35,  1}}
array.dot(c, e) .. {{ 67,  40, -15},
 {-11,  12,  31}}
array.dot(d, b) .. {29, 17, 18}
array.dot(d, c) .. {{41, 20,  5},
 {24, 12,  2},
 {25, 16, -9}}
array.dot(e, d) .. {{ 60,  18},
 {-10,  11},
 {-15, -19}}
a |.| d .. {56, -2}
a |.| e .. {-50,  19,  17}
b.reshape([2, 1]) |.| a.reshape([1, 3]) .. {{ 5, 25, 45},
 { 2, 10, 18}}
c |.| d .. {{43, 19},
 {35,  1}}
c |.| e .. {{ 67,  40, -15},
 {-11,  12,  31}}
d |.| b .. {29, 17, 18}
d |.| c .. {{41, 20,  5},
 {24, 12,  2},
 {25, 16, -9}}
e |.| d .. {{ 60,  18},
 {-10,  11},
 {-15, -19}}
elemtype: double
array.dot(a, d) .. {56, -2}
array.dot(a, e) .. {-50,  19,  17}
array.dot(b.reshape([2, 1]), a.reshape([1, 3])) .. {{ 5, 25, 45},
 { 2, 10, 18}}
array.dot(c, d) .. {{43, 19},
 {35,  1}}
array.dot(c, e) .. {{ 67,  40, -15},
 {-11,  12,  31}}
array.dot(d, b) .. {29, 17, 18}
array.dot(d, c) .. {{41, 20,  5},
 {24, 12,  2},
 {25, 16, -9}}
array.dot(e, d) .. {{ 60,  18},
 {-10,  11},
 {-15, -19}}
a |.| d .. {56, -2}
a |.| e .. {-50,  19,  17}
b.reshape([2, 1]) |.| a.reshape([1, 3]) .. {{ 5, 25, 45},
 { 2, 10, 18}}
c |.| d .. {{43, 19},
 {35,  1}}
c |.| e .. {{ 67,  40, -15},
 {-11,  12,  31}}
d |.| b .. {29, 17, 18}
d |.| c .. {{41, 20,  5},
 {24, 12,  2},
 {25, 16, -9}}
e |.| d .. {{ 60,  18},
 {-10,  11},
 {-15, -19}}
elemtype: complex
array.dot(a, d) .. {56, -2}
array.dot(a, e) .. {-50,  19,  17}
array.dot(b.reshape([2, 1]), a.reshape([1, 3])) .. {{ 5, 25, 45},
 { 2, 10, 18}}
array.dot(c, d) .. {{43, 19},
 {35,  1}}
array.dot(c, e) .. {{ 67,  40, -15},
 {-11,  12,  31}}
array.dot(d, b) .. {29, 17, 18}
array.dot(d, c) .. {{41, 20,  5},
 {24, 12,  2},
 {25, 16, -9}}
array.dot(e, d) .. {{ 60,  18},
 {-10,  11},
 {-15, -19}}
a |.| d .. {56, -2}
a |.| e .. {-50,  19,  17}
b.reshape([2, 1]) |.| a.reshape([1, 3]) .. {{ 5, 25, 45},
 { 2, 10, 18}}
c |.| d .. {{43, 19},
 {35,  1}}
c |.| e .. {{ 67,  40, -15},
 {-11,  12,  31}}
d |.| b .. {29, 17, 18}
d |.| c .. {{41, 20,  5},
 {24, 12,  2},
 {25, 16, -9}}
e |.| d .. {{ 60,  18},
 {-10,  11},
 {-15, -19}}

======== #34 array.invert() ========

elemtype: half
array([[1, 1, -1], [-2, 0, 1], [0, 2, 1]], elemtype).invert() .. {{ -0.5, -0.75,  0.25},
 {  0.5,  0.25,  0.25},
 {   -1,  -0.5,   0.5}}
array([[1, 2, 1], [2, 1, 0], [1, 1, 2]], elemtype).invert() .. {{-0.399658,  0.599609,  0.199951},
 { 0.799316, -0.200073, -0.399902},
 {-0.199951, -0.199951,  0.600098}}
array([[2, -1, 0], [2, -1, -1], [1, 0, -1]], elemtype).invert() .. {{ 1, -1,  1},
 { 1, -2,  2},
 { 1, -1, -0}}
array([[[1, 1, -1], [-2, 0, 1], [0, 2, 1]], [[1, 2, 1], [2, 1, 0], [1, 1, 2]], [[2, -1, 0], [2, -1, -1], [1, 0, -1]]], elemtype).invert() .. {{{     -0.5,     -0.75,      0.25},
  {      0.5,      0.25,      0.25},
  {       -1,      -0.5,       0.5}},

 {{-0.399658,  0.599609,  0.199951},
  { 0.799316, -0.200073, -0.399902},
  {-0.199951, -0.199951,  0.600098}},

 {{        1,        -1,         1},
  {        1,        -2,         2},
  {        1,        -1,        -0}}}
elemtype: float
array([[1, 1, -1], [-2, 0, 1], [0, 2, 1]], elemtype).invert() .. {{ -0.5, -0.75,  0.25},
 {  0.5,  0.25,  0.25},
 {   -1,  -0.5,   0.5}}
array([[1, 2, 1], [2, 1, 0], [1, 1, 2]], elemtype).invert() .. {{-0.4,  0.6,  0.2},
 { 0.8, -0.2, -0.4},
 {-0.2, -0.2,  0.6}}
array([[2, -1, 0], [2, -1, -1], [1, 0, -1]], elemtype).invert() .. {{ 1, -1,  1},
 { 1, -2,  2},
 { 1, -1, -0}}
array([[[1, 1, -1], [-2, 0, 1], [0, 2, 1]], [[1, 2, 1], [2, 1, 0], [1, 1, 2]], [[2, -1, 0], [2, -1, -1], [1, 0, -1]]], elemtype).invert() .. {{{ -0.5, -0.75,  0.25},
  {  0.5,  0.25,  0.25},
  {   -1,  -0.5,   0.5}},

 {{ -0.4,   0.6,   0.2},
  {  0.8,  -0.2,  -0.4},
  { -0.2,  -0.2,   0.6}},

 {{    1,    -1,     1},
  {    1,    -2,     2},
  {    1,    -1,    -0}}}
elemtype: double
array([[1, 1, -1], [-2, 0, 1], [0, 2, 1]], elemtype).invert() .. {{ -0.5, -0.75,  0.25},
 {  0.5,  0.25,  0.25},
 {   -1,  -0.5,   0.5}}
array([[1, 2, 1], [2, 1, 0], [1, 1, 2]], elemtype).invert() .. {{-0.4,  0.6,  0.2},
 { 0.8, -0.2, -0.4},
 {-0.2, -0.2,  0.6}}
array([[2, -1, 0], [2, -1, -1], [1, 0, -1]], elemtype).invert() .. {{ 1, -1,  1},
 { 1, -2,  2},
 { 1, -1, -0}}
array([[[1, 1, -1], [-2, 0, 1], [0, 2, 1]], [[1, 2, 1], [2, 1, 0], [1, 1, 2]], [[2, -1, 0], [2, -1, -1], [1, 0, -1]]], elemtype).invert() .. {{{ -0.5, -0.75,  0.25},
  {  0.5,  0.25,  0.25},
  {   -1,  -0.5,   0.5}},

 {{ -0.4,   0.6,   0.2},
  {  0.8,  -0.2,  -0.4},
  { -0.2,  -0.2,   0.6}},

 {{    1,    -1,     1},
  {    1,    -2,     2},
  {    1,    -1,    -0}}}
elemtype: complex
array([[1, 1, -1], [-2, 0, 1], [0, 2, 1]], elemtype).invert() .. {{ -0.5, -0.75,  0.25},
 {  0.5,  0.25,  0.25},
 {   -1,  -0.5,   0.5}}
array([[1, 2, 1], [2, 1, 0], [1, 1, 2]], elemtype).invert() .. {{-0.4,  0.6,  0.2},
 { 0.8, -0.2, -0.4},
 {-0.2, -0.2,  0.6}}
array([[2, -1, 0], [2, -1, -1], [1, 0, -1]], elemtype).invert() .. {{ 1, -1,  1},
 { 1, -2,  2},
 { 1, -1,  0}}
array([[[1, 1, -1], [-2, 0, 1], [0, 2, 1]], [[1, 2, 1], [2, 1, 0], [1, 1, 2]], [[2, -1, 0], [2, -1, -1], [1, 0, -1]]], elemtype).invert() .. {{{ -0.5, -0.75,  0.25},
  {  0.5,  0.25,  0.25},
  {   -1,  -0.5,   0.5}},

 {{ -0.4,   0.6,   0.2},
  {  0.8,  -0.2,  -0.4},
  { -0.2,  -0.2,   0.6}},

 {{    1,    -1,     1},
  {    1,    -2,     2},
  {    1,    -1,     0}}}
array.zeros([3, 3]).invert() .. ValueError: failed to calculate inverted matrix

======== #35 properties ========

boolean
elembytes: 1
elemtype: boolean
ndim: 3
shape: [4, 2, 3]
size: 24
int8
elembytes: 1
elemtype: int8
ndim: 3
shape: [4, 2, 3]
size: 24
uint8
elembytes: 1
elemtype: uint8
ndim: 3
shape: [4, 2, 3]
size: 24
int16
elembytes: 2
elemtype: int16
ndim: 3
shape: [4, 2, 3]
size: 24
uint16
elembytes: 2
elemtype: uint16
ndim: 3
shape: [4, 2, 3]
size: 24
int32
elembytes: 4
elemtype: int32
ndim: 3
shape: [4, 2, 3]
size: 24
uint32
elembytes: 4
elemtype: uint32
ndim: 3
shape: [4, 2, 3]
size: 24
int64
elembytes: 8
elemtype: int64
ndim: 3
shape: [4, 2, 3]
size: 24
uint64
elembytes: 8
elemtype: uint64
ndim: 3
shape: [4, 2, 3]
size: 24
half
elembytes: 2
elemtype: half
ndim: 3
shape: [4, 2, 3]
size: 24
float
elembytes: 4
elemtype: float
ndim: 3
shape: [4, 2, 3]
size: 24
double
elembytes: 8
elemtype: double
ndim: 3
shape: [4, 2, 3]
size: 24
complex
elembytes: 16
elemtype: complex
ndim: 3
shape: [4, 2, 3]
size: 24

======== #36 array as an alias of array@double ========

array.identity(5) .. {{1, 0, 0, 0, 0},
 {0, 1, 0, 0, 0},
 {0, 0, 1, 0, 0},
 {0, 0, 0, 1, 0},
 {0, 0, 0, 0, 1}}
array.interval(0, 8, 5) .. {0, 2, 4, 6, 8}
array.ones([3, 4]) .. {{1, 1, 1, 1},
 {1, 1, 1, 1},
 {1, 1, 1, 1}}
array.rands([3, 4], 10) .. {{0, 2, 2, 3},
 {8, 1, 0, 9},
 {6, 1, 6, 7}}
array.rands@normal([3, 4], 3, 5) .. {{ 7.72027,  3.25155,  5.78284,  2.63684},
 {-1.76938, -2.11727,  2.35984,  5.07136},
 { -1.9083, -3.10203,  4.70649, -0.20649}}
array.zeros([3, 4]) .. {{0, 0, 0, 0},
 {0, 0, 0, 0},
 {0, 0, 0, 0}}

======== #37 constructor with initial values ========

boolean
{}
{{}}
{{},
 {}}
{{},
 {},
 {}}
{true}
{true, true}
{true, true, true}
{true, true, true, true}
{{true, true},
 {true, true}}
{{true, true, true},
 {true, true, true}}
{true}
{true, true}
{true, true, true}
{true, true, true, true}
int8
{}
{{}}
{{},
 {}}
{{},
 {},
 {}}
{1}
{1, 2}
{1, 2, 3}
{1, 2, 3, 4}
{{1, 2},
 {3, 4}}
{{1, 2, 3},
 {4, 5, 6}}
{1}
{1, 2}
{1, 2, 3}
{1, 2, 3, 4}
uint8
{}
{{}}
{{},
 {}}
{{},
 {},
 {}}
{1}
{1, 2}
{1, 2, 3}
{1, 2, 3, 4}
{{1, 2},
 {3, 4}}
{{1, 2, 3},
 {4, 5, 6}}
{1}
{1, 2}
{1, 2, 3}
{1, 2, 3, 4}
int16
{}
{{}}
{{},
 {}}
{{},
 {},
 {}}
{1}
{1, 2}
{1, 2, 3}
{1, 2, 3, 4}
{{1, 2},
 {3, 4}}
{{1, 2, 3},
 {4, 5, 6}}
{1}
{1, 2}
{1, 2, 3}
{1, 2, 3, 4}
uint16
{}
{{}}
{{},
 {}}
{{},
 {},
 {}}
{1}
{1, 2}
{1, 2, 3}
{1, 2, 3, 4}
{{1, 2},
 {3, 4}}
{{1, 2, 3},
 {4, 5, 6}}
{1}
{1, 2}
{1, 2, 3}
{1, 2, 3, 4}
int32
{}
{{}}
{{},
 {}}
{{},
 {},
 {}}
{1}
{1, 2}
{1, 2, 3}
{1, 2, 3, 4}
{{1, 2},
 {3, 4}}
{{1, 2, 3},
 {4, 5, 6}}
{1}
{1, 2}
{1, 2, 3}
{1, 2, 3, 4}
uint32
{}
{{}}
{{},
 {}}
{{},
 {},
 {}}
{1}
{1, 2}
{1, 2, 3}
{1, 2, 3, 4}
{{1, 2},
 {3, 4}}
{{1, 2, 3},
 {4, 5, 6}}
{1}
{1, 2}
{1, 2, 3}
{1, 2, 3, 4}
int64
{}
{{}}
{{},
 {}}
{{},
 {},
 {}}
{1}
{1, 2}
{1, 2, 3}
{1, 2, 3, 4}
{{1, 2},
 {3, 4}}
{{1, 2, 3},
 {4, 5, 6}}
{1}
{1, 2}
{1, 2, 3}
{1, 2, 3, 4}
uint64
{}
{{}}
{{},
 {}}
{{},
 {},
 {}}
{1}
{1, 2}
{1, 2, 3}
{1, 2, 3, 4}
{{1, 2},
 {3, 4}}
{{1, 2, 3},
 {4, 5, 6}}
{1}
{1, 2}
{1, 2, 3}
{1, 2, 3, 4}
half
{}
{{}}
{{},
 {}}
{{},
 {},
 {}}
{1}
{1, 2}
{1, 2, 3}
{1, 2, 3, 4}
{{1, 2},
 {3, 4}}
{{1, 2, 3},
 {4, 5, 6}}
{1}
{1, 2}
{1, 2, 3}
{1, 2, 3, 4}
float
{}
{{}}
{{},
 {}}
{{},
 {},
 {}}
{1}
{1, 2}
{1, 2, 3}
{1, 2, 3, 4}
{{1, 2},
 {3, 4}}
{{1, 2, 3},
 {4, 5, 6}}
{1}
{1, 2}
{1, 2, 3}
{1, 2, 3, 4}
double
{}
{{}}
{{},
 {}}
{{},
 {},
 {}}
{1}
{1, 2}
{1, 2, 3}
{1, 2, 3, 4}
{{1, 2},
 {3, 4}}
{{1, 2, 3},
 {4, 5, 6}}
{1}
{1, 2}
{1, 2, 3}
{1, 2, 3, 4}
complex
{}
{{}}
{{},
 {}}
{{},
 {},
 {}}
{1}
{1, 2}
{1, 2, 3}
{1, 2, 3, 4}
{{1, 2},
 {3, 4}}
{{1, 2, 3},
 {4, 5, 6}}
{1}
{1, 2}
{1, 2, 3}
{1, 2, 3, 4}

======== #38 dimension mismatch error ========

array { 1, 2, 3 } + array { 1, 2 } .. ValueError: failed in array calculation: (3) + (2)
array { { 1, 2 }, { 3, 4 } } + array { { 1, 2, 3 }, { 4, 5, 6 } } .. ValueError: failed in array calculation: (2, 2) + (2, 3)
array { { 1, 2 }, { 3, 4 } } |.| array { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } } .. ValueError: failed in array calculation: (2, 2) |.| (3, 3)

======== #39 sum ========

----
{}
a.sum() .. 0
a.sum(0) .. 0
a.sum(1) .. OutOfRange: specified axis is out of range
a.sum(2) .. OutOfRange: specified axis is out of range
a.sum(3) .. OutOfRange: specified axis is out of range
a.sum(4) .. OutOfRange: specified axis is out of range
----
{0, 1, 2, 3, 4, 5}
a.sum() .. 15
a.sum(0) .. 15
a.sum(1) .. OutOfRange: specified axis is out of range
a.sum(2) .. OutOfRange: specified axis is out of range
a.sum(3) .. OutOfRange: specified axis is out of range
a.sum(4) .. OutOfRange: specified axis is out of range
----
{{0, 1},
 {2, 3},
 {4, 5}}
a.sum() .. 15
a.sum(0) .. {6, 9}
a.sum(1) .. {1, 5, 9}
a.sum(2) .. OutOfRange: specified axis is out of range
a.sum(3) .. OutOfRange: specified axis is out of range
a.sum(4) .. OutOfRange: specified axis is out of range
----
{{{ 0,  1},
  { 2,  3},
  { 4,  5}},

 {{ 6,  7},
  { 8,  9},
  {10, 11}},

 {{12, 13},
  {14, 15},
  {16, 17}},

 {{18, 19},
  {20, 21},
  {22, 23}}}
a.sum() .. 276
a.sum(0) .. {{36, 40},
 {44, 48},
 {52, 56}}
a.sum(1) .. {{ 6,  9},
 {24, 27},
 {42, 45},
 {60, 63}}
a.sum(2) .. {{ 1,  5,  9},
 {13, 17, 21},
 {25, 29, 33},
 {37, 41, 45}}
a.sum(3) .. OutOfRange: specified axis is out of range
a.sum(4) .. OutOfRange: specified axis is out of range
----
{{{{ 0,  1},
   { 2,  3},
   { 4,  5}},

  {{ 6,  7},
   { 8,  9},
   {10, 11}},

  {{12, 13},
   {14, 15},
   {16, 17}},

  {{18, 19},
   {20, 21},
   {22, 23}}},


 {{{24, 25},
   {26, 27},
   {28, 29}},

  {{30, 31},
   {32, 33},
   {34, 35}},

  {{36, 37},
   {38, 39},
   {40, 41}},

  {{42, 43},
   {44, 45},
   {46, 47}}}}
a.sum() .. 1128
a.sum(0) .. {{{24, 26},
  {28, 30},
  {32, 34}},

 {{36, 38},
  {40, 42},
  {44, 46}},

 {{48, 50},
  {52, 54},
  {56, 58}},

 {{60, 62},
  {64, 66},
  {68, 70}}}
a.sum(1) .. {{{ 36,  40},
  { 44,  48},
  { 52,  56}},

 {{132, 136},
  {140, 144},
  {148, 152}}}
a.sum(2) .. {{{  6,   9},
  { 24,  27},
  { 42,  45},
  { 60,  63}},

 {{ 78,  81},
  { 96,  99},
  {114, 117},
  {132, 135}}}
a.sum(3) .. {{{ 1,  5,  9},
  {13, 17, 21},
  {25, 29, 33},
  {37, 41, 45}},

 {{49, 53, 57},
  {61, 65, 69},
  {73, 77, 81},
  {85, 89, 93}}}
a.sum(4) .. OutOfRange: specified axis is out of range

======== #40 mean ========

----
{}
a.mean() .. 0
a.mean(0) .. 0
a.mean(1) .. OutOfRange: specified axis is out of range
a.mean(2) .. OutOfRange: specified axis is out of range
a.mean(3) .. OutOfRange: specified axis is out of range
a.mean(4) .. OutOfRange: specified axis is out of range
----
{0, 1, 2, 3, 4, 5}
a.mean() .. 2.5
a.mean(0) .. 2.5
a.mean(1) .. OutOfRange: specified axis is out of range
a.mean(2) .. OutOfRange: specified axis is out of range
a.mean(3) .. OutOfRange: specified axis is out of range
a.mean(4) .. OutOfRange: specified axis is out of range
----
{{0, 1},
 {2, 3},
 {4, 5}}
a.mean() .. 2.5
a.mean(0) .. {2, 3}
a.mean(1) .. {0.5, 2.5, 4.5}
a.mean(2) .. OutOfRange: specified axis is out of range
a.mean(3) .. OutOfRange: specified axis is out of range
a.mean(4) .. OutOfRange: specified axis is out of range
----
{{{ 0,  1},
  { 2,  3},
  { 4,  5}},

 {{ 6,  7},
  { 8,  9},
  {10, 11}},

 {{12, 13},
  {14, 15},
  {16, 17}},

 {{18, 19},
  {20, 21},
  {22, 23}}}
a.mean() .. 11.5
a.mean(0) .. {{ 9, 10},
 {11, 12},
 {13, 14}}
a.mean(1) .. {{ 2,  3},
 { 8,  9},
 {14, 15},
 {20, 21}}
a.mean(2) .. {{ 0.5,  2.5,  4.5},
 { 6.5,  8.5, 10.5},
 {12.5, 14.5, 16.5},
 {18.5, 20.5, 22.5}}
a.mean(3) .. OutOfRange: specified axis is out of range
a.mean(4) .. OutOfRange: specified axis is out of range
----
{{{{ 0,  1},
   { 2,  3},
   { 4,  5}},

  {{ 6,  7},
   { 8,  9},
   {10, 11}},

  {{12, 13},
   {14, 15},
   {16, 17}},

  {{18, 19},
   {20, 21},
   {22, 23}}},


 {{{24, 25},
   {26, 27},
   {28, 29}},

  {{30, 31},
   {32, 33},
   {34, 35}},

  {{36, 37},
   {38, 39},
   {40, 41}},

  {{42, 43},
   {44, 45},
   {46, 47}}}}
a.mean() .. 23.5
a.mean(0) .. {{{12, 13},
  {14, 15},
  {16, 17}},

 {{18, 19},
  {20, 21},
  {22, 23}},

 {{24, 25},
  {26, 27},
  {28, 29}},

 {{30, 31},
  {32, 33},
  {34, 35}}}
a.mean(1) .. {{{ 9, 10},
  {11, 12},
  {13, 14}},

 {{33, 34},
  {35, 36},
  {37, 38}}}
a.mean(2) .. {{{ 2,  3},
  { 8,  9},
  {14, 15},
  {20, 21}},

 {{26, 27},
  {32, 33},
  {38, 39},
  {44, 45}}}
a.mean(3) .. {{{ 0.5,  2.5,  4.5},
  { 6.5,  8.5, 10.5},
  {12.5, 14.5, 16.5},
  {18.5, 20.5, 22.5}},

 {{24.5, 26.5, 28.5},
  {30.5, 32.5, 34.5},
  {36.5, 38.5, 40.5},
  {42.5, 44.5, 46.5}}}
a.mean(4) .. OutOfRange: specified axis is out of range

======== #41 constructor with elemtype ========

int8: {{0, 1, 2},
 {3, 4, 5}}
uint8: {{0, 1, 2},
 {3, 4, 5}}
int16: {{0, 1, 2},
 {3, 4, 5}}
uint16: {{0, 1, 2},
 {3, 4, 5}}
int32: {{0, 1, 2},
 {3, 4, 5}}
uint32: {{0, 1, 2},
 {3, 4, 5}}
int64: {{0, 1, 2},
 {3, 4, 5}}
uint64: {{0, 1, 2},
 {3, 4, 5}}
float: {{0, 1, 2},
 {3, 4, 5}}
double: {{0, 1, 2},
 {3, 4, 5}}
ValueError: invalid symbol for element type of array: int9

======== #42 operation test on array with offset ========

x_off .. {32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63}
x_off.flatten() .. {32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63}
x_off.reshape([4, 8]) .. {{32, 33, 34, 35, 36, 37, 38, 39},
 {40, 41, 42, 43, 44, 45, 46, 47},
 {48, 49, 50, 51, 52, 53, 54, 55},
 {56, 57, 58, 59, 60, 61, 62, 63}}
x_off.head(16) .. {32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47}
x_off.tail(16) .. {48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63}
x_off.offset(16) .. {48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63}
x_off.each().head(16):list .. [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47]

======== #43 tranpsose() and T ========

x .. { 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11}
x.transpose() .. { 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11}
x.T .. { 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11}
----
x .. {{ 0,  1,  2,  3},
 { 4,  5,  6,  7},
 { 8,  9, 10, 11}}
x.transpose() .. {{ 0,  4,  8},
 { 1,  5,  9},
 { 2,  6, 10},
 { 3,  7, 11}}
x.T .. {{ 0,  4,  8},
 { 1,  5,  9},
 { 2,  6, 10},
 { 3,  7, 11}}
----
x .. {{{ 0,  1,  2,  3},
  { 4,  5,  6,  7},
  { 8,  9, 10, 11}},

 {{12, 13, 14, 15},
  {16, 17, 18, 19},
  {20, 21, 22, 23}}}
x.transpose() .. {{{ 0,  4,  8},
  { 1,  5,  9},
  { 2,  6, 10},
  { 3,  7, 11}},

 {{12, 16, 20},
  {13, 17, 21},
  {14, 18, 22},
  {15, 19, 23}}}
x.T .. {{{ 0,  4,  8},
  { 1,  5,  9},
  { 2,  6, 10},
  { 3,  7, 11}},

 {{12, 16, 20},
  {13, 17, 21},
  {14, 18, 22},
  {15, 19, 23}}}
----
x .. {{{{ 0,  1,  2,  3},
   { 4,  5,  6,  7},
   { 8,  9, 10, 11}},

  {{12, 13, 14, 15},
   {16, 17, 18, 19},
   {20, 21, 22, 23}}},


 {{{24, 25, 26, 27},
   {28, 29, 30, 31},
   {32, 33, 34, 35}},

  {{36, 37, 38, 39},
   {40, 41, 42, 43},
   {44, 45, 46, 47}}},


 {{{48, 49, 50, 51},
   {52, 53, 54, 55},
   {56, 57, 58, 59}},

  {{60, 61, 62, 63},
   {64, 65, 66, 67},
   {68, 69, 70, 71}}}}
x.transpose() .. {{{{ 0,  4,  8},
   { 1,  5,  9},
   { 2,  6, 10},
   { 3,  7, 11}},

  {{12, 16, 20},
   {13, 17, 21},
   {14, 18, 22},
   {15, 19, 23}}},


 {{{24, 28, 32},
   {25, 29, 33},
   {26, 30, 34},
   {27, 31, 35}},

  {{36, 40, 44},
   {37, 41, 45},
   {38, 42, 46},
   {39, 43, 47}}},


 {{{48, 52, 56},
   {49, 53, 57},
   {50, 54, 58},
   {51, 55, 59}},

  {{60, 64, 68},
   {61, 65, 69},
   {62, 66, 70},
   {63, 67, 71}}}}
x.T .. {{{{ 0,  4,  8},
   { 1,  5,  9},
   { 2,  6, 10},
   { 3,  7, 11}},

  {{12, 16, 20},
   {13, 17, 21},
   {14, 18, 22},
   {15, 19, 23}}},


 {{{24, 28, 32},
   {25, 29, 33},
   {26, 30, 34},
   {27, 31, 35}},

  {{36, 40, 44},
   {37, 41, 45},
   {38, 42, 46},
   {39, 43, 47}}},


 {{{48, 52, 56},
   {49, 53, 57},
   {50, 54, 58},
   {51, 55, 59}},

  {{60, 64, 68},
   {61, 65, 69},
   {62, 66, 70},
   {63, 67, 71}}}}

======== #44 array#transpose() sharing memory ========

x =
{}
x.T =
{} .. shared
transpose([0]) =
{} .. shared
----
x =
{0, 1}
x.T =
{0, 1} .. shared
transpose([0]) =
{0, 1} .. shared
----
x =
{{0, 1}}
x.T =
{{0},
 {1}} .. shared
transpose([1, 0]) =
{{0},
 {1}} .. shared
----
x =
{{0},
 {1}}
x.T =
{{0, 1}} .. shared
transpose([1, 0]) =
{{0, 1}} .. shared
----
x =
{0, 1, 2, 3, 4, 5, 6, 7}
x.T =
{0, 1, 2, 3, 4, 5, 6, 7} .. shared
transpose([0]) =
{0, 1, 2, 3, 4, 5, 6, 7} .. shared
----
x =
{{0, 1, 2, 3, 4, 5, 6, 7}}
x.T =
{{0},
 {1},
 {2},
 {3},
 {4},
 {5},
 {6},
 {7}} .. shared
transpose([1, 0]) =
{{0},
 {1},
 {2},
 {3},
 {4},
 {5},
 {6},
 {7}} .. shared
----
x =
{{0},
 {1},
 {2},
 {3},
 {4},
 {5},
 {6},
 {7}}
x.T =
{{0, 1, 2, 3, 4, 5, 6, 7}} .. shared
transpose([1, 0]) =
{{0, 1, 2, 3, 4, 5, 6, 7}} .. shared
----
x =
{{{ 0,  1,  2}},

 {{ 3,  4,  5}},

 {{ 6,  7,  8}},

 {{ 9, 10, 11}}}
x.T =
{{{ 0},
  { 1},
  { 2}},

 {{ 3},
  { 4},
  { 5}},

 {{ 6},
  { 7},
  { 8}},

 {{ 9},
  {10},
  {11}}} .. shared
transpose([0, 2, 1]) =
{{{ 0},
  { 1},
  { 2}},

 {{ 3},
  { 4},
  { 5}},

 {{ 6},
  { 7},
  { 8}},

 {{ 9},
  {10},
  {11}}} .. shared
----
x =
{{{ 0},
  { 1},
  { 2}},

 {{ 3},
  { 4},
  { 5}},

 {{ 6},
  { 7},
  { 8}},

 {{ 9},
  {10},
  {11}}}
x.T =
{{{ 0,  1,  2}},

 {{ 3,  4,  5}},

 {{ 6,  7,  8}},

 {{ 9, 10, 11}}} .. shared
transpose([0, 2, 1]) =
{{{ 0,  1,  2}},

 {{ 3,  4,  5}},

 {{ 6,  7,  8}},

 {{ 9, 10, 11}}} .. shared
----
x =
{{{{ 0,  1,  2}},

  {{ 3,  4,  5}},

  {{ 6,  7,  8}},

  {{ 9, 10, 11}}},


 {{{12, 13, 14}},

  {{15, 16, 17}},

  {{18, 19, 20}},

  {{21, 22, 23}}}}
x.T =
{{{{ 0},
   { 1},
   { 2}},

  {{ 3},
   { 4},
   { 5}},

  {{ 6},
   { 7},
   { 8}},

  {{ 9},
   {10},
   {11}}},


 {{{12},
   {13},
   {14}},

  {{15},
   {16},
   {17}},

  {{18},
   {19},
   {20}},

  {{21},
   {22},
   {23}}}} .. shared
transpose([0, 1, 3, 2]) =
{{{{ 0},
   { 1},
   { 2}},

  {{ 3},
   { 4},
   { 5}},

  {{ 6},
   { 7},
   { 8}},

  {{ 9},
   {10},
   {11}}},


 {{{12},
   {13},
   {14}},

  {{15},
   {16},
   {17}},

  {{18},
   {19},
   {20}},

  {{21},
   {22},
   {23}}}} .. shared
transpose([1, 0, 3, 2]) =
{{{{ 0},
   { 1},
   { 2}},

  {{12},
   {13},
   {14}}},


 {{{ 3},
   { 4},
   { 5}},

  {{15},
   {16},
   {17}}},


 {{{ 6},
   { 7},
   { 8}},

  {{18},
   {19},
   {20}}},


 {{{ 9},
   {10},
   {11}},

  {{21},
   {22},
   {23}}}} .. not-shared
----
x =
{{{{ 0},
   { 1},
   { 2}},

  {{ 3},
   { 4},
   { 5}},

  {{ 6},
   { 7},
   { 8}},

  {{ 9},
   {10},
   {11}}},


 {{{12},
   {13},
   {14}},

  {{15},
   {16},
   {17}},

  {{18},
   {19},
   {20}},

  {{21},
   {22},
   {23}}}}
x.T =
{{{{ 0,  1,  2}},

  {{ 3,  4,  5}},

  {{ 6,  7,  8}},

  {{ 9, 10, 11}}},


 {{{12, 13, 14}},

  {{15, 16, 17}},

  {{18, 19, 20}},

  {{21, 22, 23}}}} .. shared
transpose([0, 1, 3, 2]) =
{{{{ 0,  1,  2}},

  {{ 3,  4,  5}},

  {{ 6,  7,  8}},

  {{ 9, 10, 11}}},


 {{{12, 13, 14}},

  {{15, 16, 17}},

  {{18, 19, 20}},

  {{21, 22, 23}}}} .. shared
transpose([1, 0, 3, 2]) =
{{{{ 0,  1,  2}},

  {{12, 13, 14}}},


 {{{ 3,  4,  5}},

  {{15, 16, 17}}},


 {{{ 6,  7,  8}},

  {{18, 19, 20}}},


 {{{ 9, 10, 11}},

  {{21, 22, 23}}}} .. not-shared
----
x =
{{0, 1},
 {2, 3}}
x.T =
{{0, 2},
 {1, 3}} .. not-shared
transpose([1, 0]) =
{{0, 2},
 {1, 3}} .. not-shared
----
x =
{{0, 1},
 {2, 3}}
x.T =
{{0, 2},
 {1, 3}} .. not-shared
transpose([1, 0]) =
{{0, 2},
 {1, 3}} .. not-shared
----
x =
{{ 0,  1,  2,  3},
 { 4,  5,  6,  7},
 { 8,  9, 10, 11}}
x.T =
{{ 0,  4,  8},
 { 1,  5,  9},
 { 2,  6, 10},
 { 3,  7, 11}} .. not-shared
transpose([1, 0]) =
{{ 0,  4,  8},
 { 1,  5,  9},
 { 2,  6, 10},
 { 3,  7, 11}} .. not-shared
----
x =
{{ 0,  1,  2,  3},
 { 4,  5,  6,  7},
 { 8,  9, 10, 11}}
x.T =
{{ 0,  4,  8},
 { 1,  5,  9},
 { 2,  6, 10},
 { 3,  7, 11}} .. not-shared
transpose([1, 0]) =
{{ 0,  4,  8},
 { 1,  5,  9},
 { 2,  6, 10},
 { 3,  7, 11}} .. not-shared
----

======== #45 sharing collapses after assignment ========

{{ 0,  1,  2},
 { 3,  4,  5},
 { 6,  7,  8},
 { 9, 10, 11}}
shared
not-shared
shared
not-shared

======== #46 array#issquare() ========

array.zeros([]).issquare() .. false
array.zeros([3]).issquare() .. false
array.zeros([3, 4]).issquare() .. false
array.zeros([3, 3]).issquare() .. true
array.zeros([2, 4, 3, 3]).issquare() .. true
array.zeros([2, 4, 3, 2]).issquare() .. false

======== #47 pointer ========

00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f  ................
10 11 12 13 14 15 16 17                          ........
0a
0b
0d0c
11100f0e

======== #48 index-get ========

{{ 0,  1,  2,  3,  4,  5,  6,  7},
 { 8,  9, 10, 11, 12, 13, 14, 15},
 {16, 17, 18, 19, 20, 21, 22, 23},
 {24, 25, 26, 27, 28, 29, 30, 31},
 {32, 33, 34, 35, 36, 37, 38, 39},
 {40, 41, 42, 43, 44, 45, 46, 47}}
x[0] .. {0, 1, 2, 3, 4, 5, 6, 7}
x[5] .. {40, 41, 42, 43, 44, 45, 46, 47}
x[0, 0] .. 0
x[5, 0] .. 40
x[5, 7] .. 47
x[0, 7] .. 7
x[2, 3] .. 19
x[6, 0] .. OutOfRange: index is out of range
x[0, 8] .. OutOfRange: index is out of range
x[0, 2, 0] .. IndexError: number of indices exceeds dimensions
x[1 .. 4, 2 .. 6] .. {{10, 11, 12, 13, 14},
 {18, 19, 20, 21, 22},
 {26, 27, 28, 29, 30},
 {34, 35, 36, 37, 38}}
x[1 .. 4] .. {{ 8,  9, 10, 11, 12, 13, 14, 15},
 {16, 17, 18, 19, 20, 21, 22, 23},
 {24, 25, 26, 27, 28, 29, 30, 31},
 {32, 33, 34, 35, 36, 37, 38, 39}}
x[*, *] .. {{ 0,  1,  2,  3,  4,  5,  6,  7},
 { 8,  9, 10, 11, 12, 13, 14, 15},
 {16, 17, 18, 19, 20, 21, 22, 23},
 {24, 25, 26, 27, 28, 29, 30, 31},
 {32, 33, 34, 35, 36, 37, 38, 39},
 {40, 41, 42, 43, 44, 45, 46, 47}}
x[*, 2 .. 6] .. {{ 2,  3,  4,  5,  6},
 {10, 11, 12, 13, 14},
 {18, 19, 20, 21, 22},
 {26, 27, 28, 29, 30},
 {34, 35, 36, 37, 38},
 {42, 43, 44, 45, 46}}
x[1 .. 4, *] .. {{ 8,  9, 10, 11, 12, 13, 14, 15},
 {16, 17, 18, 19, 20, 21, 22, 23},
 {24, 25, 26, 27, 28, 29, 30, 31},
 {32, 33, 34, 35, 36, 37, 38, 39}}
x[1 .. 4, 3] .. {11, 19, 27, 35}
x[4, 2 .. 6] .. {34, 35, 36, 37, 38}

======== #49 index-set ========

{ x[] = 3 }
{{3, 3, 3, 3, 3, 3, 3, 3},
 {3, 3, 3, 3, 3, 3, 3, 3},
 {3, 3, 3, 3, 3, 3, 3, 3},
 {3, 3, 3, 3, 3, 3, 3, 3},
 {3, 3, 3, 3, 3, 3, 3, 3},
 {3, 3, 3, 3, 3, 3, 3, 3}}
{ x[0] = 1, x[1] = 2, x[2] = 3, x[3] = 4, x[4] = 5, x[5] = 6 }
{{1, 1, 1, 1, 1, 1, 1, 1},
 {2, 2, 2, 2, 2, 2, 2, 2},
 {3, 3, 3, 3, 3, 3, 3, 3},
 {4, 4, 4, 4, 4, 4, 4, 4},
 {5, 5, 5, 5, 5, 5, 5, 5},
 {6, 6, 6, 6, 6, 6, 6, 6}}
{ x[2 .. 4] = 3 }
{{0, 0, 0, 0, 0, 0, 0, 0},
 {0, 0, 0, 0, 0, 0, 0, 0},
 {3, 3, 3, 3, 3, 3, 3, 3},
 {3, 3, 3, 3, 3, 3, 3, 3},
 {3, 3, 3, 3, 3, 3, 3, 3},
 {0, 0, 0, 0, 0, 0, 0, 0}}
{ x[0, 0] = 1, x[5, 7] = 2, x[5, 0] = 3, x[0, 7] = 4, x[1 .. 4, 2 .. 6] = 5 }
{{1, 0, 0, 0, 0, 0, 0, 4},
 {0, 0, 5, 5, 5, 5, 5, 0},
 {0, 0, 5, 5, 5, 5, 5, 0},
 {0, 0, 5, 5, 5, 5, 5, 0},
 {0, 0, 5, 5, 5, 5, 5, 0},
 {3, 0, 0, 0, 0, 0, 0, 2}}
{ x[*, *] = 3 }
{{3, 3, 3, 3, 3, 3, 3, 3},
 {3, 3, 3, 3, 3, 3, 3, 3},
 {3, 3, 3, 3, 3, 3, 3, 3},
 {3, 3, 3, 3, 3, 3, 3, 3},
 {3, 3, 3, 3, 3, 3, 3, 3},
 {3, 3, 3, 3, 3, 3, 3, 3}}
{ x[*, 2 .. 6] = 3 }
{{0, 0, 3, 3, 3, 3, 3, 0},
 {0, 0, 3, 3, 3, 3, 3, 0},
 {0, 0, 3, 3, 3, 3, 3, 0},
 {0, 0, 3, 3, 3, 3, 3, 0},
 {0, 0, 3, 3, 3, 3, 3, 0},
 {0, 0, 3, 3, 3, 3, 3, 0}}
{ x[1 .. 4, *] = 3 }
{{0, 0, 0, 0, 0, 0, 0, 0},
 {3, 3, 3, 3, 3, 3, 3, 3},
 {3, 3, 3, 3, 3, 3, 3, 3},
 {3, 3, 3, 3, 3, 3, 3, 3},
 {3, 3, 3, 3, 3, 3, 3, 3},
 {0, 0, 0, 0, 0, 0, 0, 0}}
{ x[1 .. 4, 3] = 3 }
{{0, 0, 0, 0, 0, 0, 0, 0},
 {0, 0, 0, 3, 0, 0, 0, 0},
 {0, 0, 0, 3, 0, 0, 0, 0},
 {0, 0, 0, 3, 0, 0, 0, 0},
 {0, 0, 0, 3, 0, 0, 0, 0},
 {0, 0, 0, 0, 0, 0, 0, 0}}
{ x[4, 2 .. 6] = 3 }
{{0, 0, 0, 0, 0, 0, 0, 0},
 {0, 0, 0, 0, 0, 0, 0, 0},
 {0, 0, 0, 0, 0, 0, 0, 0},
 {0, 0, 0, 0, 0, 0, 0, 0},
 {0, 0, 3, 3, 3, 3, 3, 0},
 {0, 0, 0, 0, 0, 0, 0, 0}}
{ x[4, 3] = '' }
ValueError: value of string can not be stored in array
{ x[] = '' }
ValueError: value of string can not be stored in array
{ x[*, *] = true }
{{1, 1, 1, 1, 1, 1, 1, 1},
 {1, 1, 1, 1, 1, 1, 1, 1},
 {1, 1, 1, 1, 1, 1, 1, 1},
 {1, 1, 1, 1, 1, 1, 1, 1},
 {1, 1, 1, 1, 1, 1, 1, 1},
 {1, 1, 1, 1, 1, 1, 1, 1}}
{ x[*, 2 .. 6] = true }
{{0, 0, 1, 1, 1, 1, 1, 0},
 {0, 0, 1, 1, 1, 1, 1, 0},
 {0, 0, 1, 1, 1, 1, 1, 0},
 {0, 0, 1, 1, 1, 1, 1, 0},
 {0, 0, 1, 1, 1, 1, 1, 0},
 {0, 0, 1, 1, 1, 1, 1, 0}}
{ x[1 .. 4, *] = true }
{{0, 0, 0, 0, 0, 0, 0, 0},
 {1, 1, 1, 1, 1, 1, 1, 1},
 {1, 1, 1, 1, 1, 1, 1, 1},
 {1, 1, 1, 1, 1, 1, 1, 1},
 {1, 1, 1, 1, 1, 1, 1, 1},
 {0, 0, 0, 0, 0, 0, 0, 0}}
{ x[1 .. 4, 3] = true }
{{0, 0, 0, 0, 0, 0, 0, 0},
 {0, 0, 0, 1, 0, 0, 0, 0},
 {0, 0, 0, 1, 0, 0, 0, 0},
 {0, 0, 0, 1, 0, 0, 0, 0},
 {0, 0, 0, 1, 0, 0, 0, 0},
 {0, 0, 0, 0, 0, 0, 0, 0}}
{ x[4, 2 .. 6] = true }
{{0, 0, 0, 0, 0, 0, 0, 0},
 {0, 0, 0, 0, 0, 0, 0, 0},
 {0, 0, 0, 0, 0, 0, 0, 0},
 {0, 0, 0, 0, 0, 0, 0, 0},
 {0, 0, 1, 1, 1, 1, 1, 0},
 {0, 0, 0, 0, 0, 0, 0, 0}}

======== #50 index-set with iterator assigned ========

{ x[] = 1.. }
{{ 1,  2,  3,  4,  5,  6,  7,  8},
 { 9, 10, 11, 12, 13, 14, 15, 16},
 {17, 18, 19, 20, 21, 22, 23, 24},
 {25, 26, 27, 28, 29, 30, 31, 32},
 {33, 34, 35, 36, 37, 38, 39, 40},
 {41, 42, 43, 44, 45, 46, 47, 48}}
{ x[1] = 1.., x[3] = 1.. }
{{0, 0, 0, 0, 0, 0, 0, 0},
 {1, 2, 3, 4, 5, 6, 7, 8},
 {0, 0, 0, 0, 0, 0, 0, 0},
 {1, 2, 3, 4, 5, 6, 7, 8},
 {0, 0, 0, 0, 0, 0, 0, 0},
 {0, 0, 0, 0, 0, 0, 0, 0}}
{ x[1, 1 .. 5] = 1.. }
{{0, 0, 0, 0, 0, 0, 0, 0},
 {0, 1, 2, 3, 4, 5, 0, 0},
 {0, 0, 0, 0, 0, 0, 0, 0},
 {0, 0, 0, 0, 0, 0, 0, 0},
 {0, 0, 0, 0, 0, 0, 0, 0},
 {0, 0, 0, 0, 0, 0, 0, 0}}
{ x[1 .. 4, 3] = 1.. }
{{0, 0, 0, 0, 0, 0, 0, 0},
 {0, 0, 0, 1, 0, 0, 0, 0},
 {0, 0, 0, 2, 0, 0, 0, 0},
 {0, 0, 0, 3, 0, 0, 0, 0},
 {0, 0, 0, 4, 0, 0, 0, 0},
 {0, 0, 0, 0, 0, 0, 0, 0}}
{ x[1 .. 4, 1 .. 5] = 1.. }
{{ 0,  0,  0,  0,  0,  0,  0,  0},
 { 0,  1,  2,  3,  4,  5,  0,  0},
 { 0,  6,  7,  8,  9, 10,  0,  0},
 { 0, 11, 12, 13, 14, 15,  0,  0},
 { 0, 16, 17, 18, 19, 20,  0,  0},
 { 0,  0,  0,  0,  0,  0,  0,  0}}
{ x[1 .. 3, 1 .. 3] = [1, 2, 3, 4, 5, 6, 7, 8, 9] }
{{0, 0, 0, 0, 0, 0, 0, 0},
 {0, 1, 2, 3, 0, 0, 0, 0},
 {0, 4, 5, 6, 0, 0, 0, 0},
 {0, 7, 8, 9, 0, 0, 0, 0},
 {0, 0, 0, 0, 0, 0, 0, 0},
 {0, 0, 0, 0, 0, 0, 0, 0}}
{ x[1 .. 3, 1 .. 3] = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] }
{{0, 0, 0, 0, 0, 0, 0, 0},
 {0, 1, 2, 3, 0, 0, 0, 0},
 {0, 4, 5, 6, 0, 0, 0, 0},
 {0, 7, 8, 9, 0, 0, 0, 0},
 {0, 0, 0, 0, 0, 0, 0, 0},
 {0, 0, 0, 0, 0, 0, 0, 0}}
{ x[1 .. 3, 1 .. 3] = [[1, 2, [3]], [[4, 5, 6, 7], [8, 9]]] }
{{0, 0, 0, 0, 0, 0, 0, 0},
 {0, 1, 2, 3, 0, 0, 0, 0},
 {0, 4, 5, 6, 0, 0, 0, 0},
 {0, 7, 8, 9, 0, 0, 0, 0},
 {0, 0, 0, 0, 0, 0, 0, 0},
 {0, 0, 0, 0, 0, 0, 0, 0}}
{ x[1.., 1] = 1.., x[1.., 5] = 6.. }
{{ 0,  0,  0,  0,  0,  0,  0,  0},
 { 0,  1,  0,  0,  0,  6,  0,  0},
 { 0,  2,  0,  0,  0,  7,  0,  0},
 { 0,  3,  0,  0,  0,  8,  0,  0},
 { 0,  4,  0,  0,  0,  9,  0,  0},
 { 0,  5,  0,  0,  0, 10,  0,  0}}
{ x[*, *] = 1.. }
{{ 1,  2,  3,  4,  5,  6,  7,  8},
 { 9, 10, 11, 12, 13, 14, 15, 16},
 {17, 18, 19, 20, 21, 22, 23, 24},
 {25, 26, 27, 28, 29, 30, 31, 32},
 {33, 34, 35, 36, 37, 38, 39, 40},
 {41, 42, 43, 44, 45, 46, 47, 48}}
{ x[*, 2 .. 6] = 1.. }
{{ 0,  0,  1,  2,  3,  4,  5,  0},
 { 0,  0,  6,  7,  8,  9, 10,  0},
 { 0,  0, 11, 12, 13, 14, 15,  0},
 { 0,  0, 16, 17, 18, 19, 20,  0},
 { 0,  0, 21, 22, 23, 24, 25,  0},
 { 0,  0, 26, 27, 28, 29, 30,  0}}
{ x[1 .. 4, *] = 1.. }
{{ 0,  0,  0,  0,  0,  0,  0,  0},
 { 1,  2,  3,  4,  5,  6,  7,  8},
 { 9, 10, 11, 12, 13, 14, 15, 16},
 {17, 18, 19, 20, 21, 22, 23, 24},
 {25, 26, 27, 28, 29, 30, 31, 32},
 { 0,  0,  0,  0,  0,  0,  0,  0}}

======== #51 index-set with array assigned ========

{ x[2] = array.range(12) + 1 }
{{{ 0,  0,  0},
  { 0,  0,  0},
  { 0,  0,  0},
  { 0,  0,  0}},

 {{ 0,  0,  0},
  { 0,  0,  0},
  { 0,  0,  0},
  { 0,  0,  0}},

 {{ 1,  2,  3},
  { 4,  5,  6},
  { 7,  8,  9},
  {10, 11, 12}},

 {{ 0,  0,  0},
  { 0,  0,  0},
  { 0,  0,  0},
  { 0,  0,  0}},

 {{ 0,  0,  0},
  { 0,  0,  0},
  { 0,  0,  0},
  { 0,  0,  0}}}
{ x[2] = array.range(8) + 1 }
{{{0, 0, 0},
  {0, 0, 0},
  {0, 0, 0},
  {0, 0, 0}},

 {{0, 0, 0},
  {0, 0, 0},
  {0, 0, 0},
  {0, 0, 0}},

 {{1, 2, 3},
  {4, 5, 6},
  {7, 8, 0},
  {0, 0, 0}},

 {{0, 0, 0},
  {0, 0, 0},
  {0, 0, 0},
  {0, 0, 0}},

 {{0, 0, 0},
  {0, 0, 0},
  {0, 0, 0},
  {0, 0, 0}}}
{ x[2] = (array.range(12) + 1).reshape([4, 3]) }
{{{ 0,  0,  0},
  { 0,  0,  0},
  { 0,  0,  0},
  { 0,  0,  0}},

 {{ 0,  0,  0},
  { 0,  0,  0},
  { 0,  0,  0},
  { 0,  0,  0}},

 {{ 1,  2,  3},
  { 4,  5,  6},
  { 7,  8,  9},
  {10, 11, 12}},

 {{ 0,  0,  0},
  { 0,  0,  0},
  { 0,  0,  0},
  { 0,  0,  0}},

 {{ 0,  0,  0},
  { 0,  0,  0},
  { 0,  0,  0},
  { 0,  0,  0}}}
{ x[2..] = array.range(12) + 1 }
{{{ 0,  0,  0},
  { 0,  0,  0},
  { 0,  0,  0},
  { 0,  0,  0}},

 {{ 0,  0,  0},
  { 0,  0,  0},
  { 0,  0,  0},
  { 0,  0,  0}},

 {{ 1,  2,  3},
  { 4,  5,  6},
  { 7,  8,  9},
  {10, 11, 12}},

 {{ 1,  2,  3},
  { 4,  5,  6},
  { 7,  8,  9},
  {10, 11, 12}},

 {{ 1,  2,  3},
  { 4,  5,  6},
  { 7,  8,  9},
  {10, 11, 12}}}
{ x[2..] = array.range(10) + 1 }
{{{ 0,  0,  0},
  { 0,  0,  0},
  { 0,  0,  0},
  { 0,  0,  0}},

 {{ 0,  0,  0},
  { 0,  0,  0},
  { 0,  0,  0},
  { 0,  0,  0}},

 {{ 1,  2,  3},
  { 4,  5,  6},
  { 7,  8,  9},
  {10,  0,  0}},

 {{ 1,  2,  3},
  { 4,  5,  6},
  { 7,  8,  9},
  {10,  0,  0}},

 {{ 1,  2,  3},
  { 4,  5,  6},
  { 7,  8,  9},
  {10,  0,  0}}}
{ x[*, *, 2] = array.range(4) + 1 }
{{{0, 0, 1},
  {0, 0, 2},
  {0, 0, 3},
  {0, 0, 4}},

 {{0, 0, 1},
  {0, 0, 2},
  {0, 0, 3},
  {0, 0, 4}},

 {{0, 0, 1},
  {0, 0, 2},
  {0, 0, 3},
  {0, 0, 4}},

 {{0, 0, 1},
  {0, 0, 2},
  {0, 0, 3},
  {0, 0, 4}},

 {{0, 0, 1},
  {0, 0, 2},
  {0, 0, 3},
  {0, 0, 4}}}
{ x[*, *, 2] = array.range(7) + 1 }
{{{0, 0, 1},
  {0, 0, 2},
  {0, 0, 3},
  {0, 0, 4}},

 {{0, 0, 5},
  {0, 0, 6},
  {0, 0, 7},
  {0, 0, 1}},

 {{0, 0, 2},
  {0, 0, 3},
  {0, 0, 4},
  {0, 0, 5}},

 {{0, 0, 6},
  {0, 0, 7},
  {0, 0, 1},
  {0, 0, 2}},

 {{0, 0, 3},
  {0, 0, 4},
  {0, 0, 5},
  {0, 0, 6}}}

======== #52 index-set between array@complex and array of other type ========

{ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11}
expected error occured: TypeError: can't copy elements from array@complex to array@double

======== #53 operation between array and complex ========

x + 2j .. { 1+2j,  2+2j,  3+2j,  4+2j,  5+2j,  6+2j,  7+2j,  8+2j,  9+2j, 10+2j}
x - 2j .. { 1-2j,  2-2j,  3-2j,  4-2j,  5-2j,  6-2j,  7-2j,  8-2j,  9-2j, 10-2j}
x * 2j .. { 2j,  4j,  6j,  8j, 10j, 12j, 14j, 16j, 18j, 20j}
x / 2j .. {-0.5j,   -1j, -1.5j,   -2j, -2.5j,   -3j, -3.5j,   -4j, -4.5j,   -5j}
x ** 2j .. {                   1,   0.183457+0.983028j,  -0.586255+0.810127j,  -0.932687+0.360687j, -0.997015-0.0772063j,   -0.90393-0.427681j,  -0.731534-0.681805j,  -0.525673-0.850687j,   -0.31261-0.949881j,  -0.107013-0.994258j}
2j + x .. { 1+2j,  2+2j,  3+2j,  4+2j,  5+2j,  6+2j,  7+2j,  8+2j,  9+2j, 10+2j}
2j - x .. { -1+2j,  -2+2j,  -3+2j,  -4+2j,  -5+2j,  -6+2j,  -7+2j,  -8+2j,  -9+2j, -10+2j}
2j * x .. { 2j,  4j,  6j,  8j, 10j, 12j, 14j, 16j, 18j, 20j}
2j / x .. {       2j,        1j, 0.666667j,      0.5j,      0.4j, 0.333333j, 0.285714j,     0.25j, 0.222222j,      0.2j}

======== #54 index-set to array@complex ========

{ x[] = 3 }
{{3, 3, 3},
 {3, 3, 3},
 {3, 3, 3},
 {3, 3, 3}}
{ x[] = 1 + 2j }
{{1+2j, 1+2j, 1+2j},
 {1+2j, 1+2j, 1+2j},
 {1+2j, 1+2j, 1+2j},
 {1+2j, 1+2j, 1+2j}}
{ x[] = 1.. }
{{ 1,  2,  3},
 { 4,  5,  6},
 { 7,  8,  9},
 {10, 11, 12}}
{ x[1 .. 3, 2] = 3 }
{{0, 0, 0},
 {0, 0, 3},
 {0, 0, 3},
 {0, 0, 3}}
{ x[1 .. 3, 2] = 2 + 3j }
{{   0,    0,    0},
 {   0,    0, 2+3j},
 {   0,    0, 2+3j},
 {   0,    0, 2+3j}}
{ x[0, 0] = 1, x[0, 2] = 2, x[3, 0] = 3, x[3, 2] = 4 }
{{1, 0, 2},
 {0, 0, 0},
 {0, 0, 0},
 {3, 0, 4}}
{ x[0, 0] = 1 + 2j, x[0, 2] = 2 + 1j, x[3, 0] = 3 - 2j, x[3, 2] = 4 + 3j }
{{1+2j,    0, 2+1j},
 {   0,    0,    0},
 {   0,    0,    0},
 {3-2j,    0, 4+3j}}
{ x[0] = 1, x[2] = 3 }
{{1, 1, 1},
 {0, 0, 0},
 {3, 3, 3},
 {0, 0, 0}}
{ x[0] = 1 + 2j, x[2] = 3 - 2j }
{{1+2j, 1+2j, 1+2j},
 {   0,    0,    0},
 {3-2j, 3-2j, 3-2j},
 {   0,    0,    0}}
{ x[1 .. 3, 2] = 3.. }
{{0, 0, 0},
 {0, 0, 3},
 {0, 0, 4},
 {0, 0, 5}}
{ x[1 .. 3, 2] = (3..) + 2j }
{{   0,    0,    0},
 {   0,    0, 3+2j},
 {   0,    0, 4+2j},
 {   0,    0, 5+2j}}
{ x[2] = array { 2, 3, 4 } }
{{0, 0, 0},
 {0, 0, 0},
 {2, 3, 4},
 {0, 0, 0}}
{ x[2] = array(elemtype => `complex) { 2 + 1j, 3 - 1j, 4 } }
{{   0,    0,    0},
 {   0,    0,    0},
 {2+1j, 3-1j,    4},
 {   0,    0,    0}}
{ x[2..] = array { 2, 3, 4 } }
{{0, 0, 0},
 {0, 0, 0},
 {2, 3, 4},
 {2, 3, 4}}
{ x[2..] = array(elemtype => `complex) { 2 + 1j, 3 - 1j, 4 } }
{{   0,    0,    0},
 {   0,    0,    0},
 {2+1j, 3-1j,    4},
 {2+1j, 3-1j,    4}}
{ x[2..] = array { 2, 3, 4, 1 } }
{{0, 0, 0},
 {0, 0, 0},
 {2, 3, 4},
 {1, 0, 0}}
{ x[2..] = array(elemtype => `complex) { 2 + 1j, 3 - 1j, 4, 1 } }
{{   0,    0,    0},
 {   0,    0,    0},
 {2+1j, 3-1j,    4},
 {   1,    0,    0}}

======== #55 array#elemcast() ========

{false,  true,  true,  true,  true,  true,  true,  true,  true,  true}: boolean <- boolean [shared]
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1}: int8 <- boolean
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1}: uint8 <- boolean
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1}: int16 <- boolean
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1}: uint16 <- boolean
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1}: int32 <- boolean
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1}: uint32 <- boolean
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1}: int64 <- boolean
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1}: uint64 <- boolean
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1}: half <- boolean
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1}: float <- boolean
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1}: double <- boolean
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1}: complex <- boolean
{false,  true,  true,  true,  true,  true,  true,  true,  true,  true}: boolean <- int8
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int8 <- int8 [shared]
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint8 <- int8
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int16 <- int8
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint16 <- int8
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int32 <- int8
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint32 <- int8
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int64 <- int8
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint64 <- int8
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: half <- int8
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: float <- int8
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: double <- int8
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: complex <- int8
{false,  true,  true,  true,  true,  true,  true,  true,  true,  true}: boolean <- uint8
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int8 <- uint8
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint8 <- uint8 [shared]
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int16 <- uint8
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint16 <- uint8
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int32 <- uint8
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint32 <- uint8
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int64 <- uint8
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint64 <- uint8
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: half <- uint8
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: float <- uint8
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: double <- uint8
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: complex <- uint8
{false,  true,  true,  true,  true,  true,  true,  true,  true,  true}: boolean <- int16
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int8 <- int16
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint8 <- int16
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int16 <- int16 [shared]
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint16 <- int16
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int32 <- int16
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint32 <- int16
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int64 <- int16
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint64 <- int16
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: half <- int16
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: float <- int16
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: double <- int16
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: complex <- int16
{false,  true,  true,  true,  true,  true,  true,  true,  true,  true}: boolean <- uint16
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int8 <- uint16
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint8 <- uint16
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int16 <- uint16
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint16 <- uint16 [shared]
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int32 <- uint16
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint32 <- uint16
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int64 <- uint16
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint64 <- uint16
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: half <- uint16
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: float <- uint16
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: double <- uint16
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: complex <- uint16
{false,  true,  true,  true,  true,  true,  true,  true,  true,  true}: boolean <- int32
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int8 <- int32
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint8 <- int32
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int16 <- int32
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint16 <- int32
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int32 <- int32 [shared]
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint32 <- int32
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int64 <- int32
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint64 <- int32
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: half <- int32
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: float <- int32
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: double <- int32
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: complex <- int32
{false,  true,  true,  true,  true,  true,  true,  true,  true,  true}: boolean <- uint32
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int8 <- uint32
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint8 <- uint32
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int16 <- uint32
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint16 <- uint32
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int32 <- uint32
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint32 <- uint32 [shared]
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int64 <- uint32
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint64 <- uint32
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: half <- uint32
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: float <- uint32
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: double <- uint32
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: complex <- uint32
{false,  true,  true,  true,  true,  true,  true,  true,  true,  true}: boolean <- int64
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int8 <- int64
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint8 <- int64
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int16 <- int64
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint16 <- int64
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int32 <- int64
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint32 <- int64
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int64 <- int64 [shared]
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint64 <- int64
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: half <- int64
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: float <- int64
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: double <- int64
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: complex <- int64
{false,  true,  true,  true,  true,  true,  true,  true,  true,  true}: boolean <- uint64
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int8 <- uint64
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint8 <- uint64
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int16 <- uint64
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint16 <- uint64
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int32 <- uint64
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint32 <- uint64
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int64 <- uint64
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint64 <- uint64 [shared]
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: half <- uint64
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: float <- uint64
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: double <- uint64
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: complex <- uint64
{false,  true,  true,  true,  true,  true,  true,  true,  true,  true}: boolean <- half
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int8 <- half
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint8 <- half
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int16 <- half
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint16 <- half
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int32 <- half
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint32 <- half
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int64 <- half
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint64 <- half
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: half <- half [shared]
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: float <- half
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: double <- half
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: complex <- half
{false,  true,  true,  true,  true,  true,  true,  true,  true,  true}: boolean <- float
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int8 <- float
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint8 <- float
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int16 <- float
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint16 <- float
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int32 <- float
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint32 <- float
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int64 <- float
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint64 <- float
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: half <- float
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: float <- float [shared]
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: double <- float
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: complex <- float
{false,  true,  true,  true,  true,  true,  true,  true,  true,  true}: boolean <- double
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int8 <- double
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint8 <- double
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int16 <- double
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint16 <- double
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int32 <- double
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint32 <- double
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: int64 <- double
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: uint64 <- double
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: half <- double
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: float <- double
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: double <- double [shared]
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: complex <- double
{false,  true,  true,  true,  true,  true,  true,  true,  true,  true}: boolean <- complex
TypeError: can't copy elements from array@complex to array@int8: int8 <- complex
TypeError: can't copy elements from array@complex to array@uint8: uint8 <- complex
TypeError: can't copy elements from array@complex to array@int16: int16 <- complex
TypeError: can't copy elements from array@complex to array@uint16: uint16 <- complex
TypeError: can't copy elements from array@complex to array@int32: int32 <- complex
TypeError: can't copy elements from array@complex to array@uint32: uint32 <- complex
TypeError: can't copy elements from array@complex to array@int64: int64 <- complex
TypeError: can't copy elements from array@complex to array@uint64: uint64 <- complex
TypeError: can't copy elements from array@complex to array@half: half <- complex
TypeError: can't copy elements from array@complex to array@float: float <- complex
TypeError: can't copy elements from array@complex to array@double: double <- complex
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}: complex <- complex [shared]

======== #56 store several matrices in a multi-dimensional array ========

half
{{{       1,        0},
  {       0,        1}},

 {{     0.5,        0},
  {0.865723,      0.5}},

 {{       0,        0},
  {0.865723,        0}},

 {{       0,        0},
  {       0,        0}},

 {{       0, 0.865723},
  {       0,        0}}}
x |.| array { 1, 0 } .. {{       1,        0},
 {     0.5, 0.865723},
 {       0, 0.865723},
 {       0,        0},
 {       0,        0}}
float
{{{       1,        0},
  {       0,        1}},

 {{     0.5,        0},
  {0.866025,      0.5}},

 {{       0,        0},
  {0.866025,        0}},

 {{       0,        0},
  {       0,        0}},

 {{       0, 0.866025},
  {       0,        0}}}
x |.| array { 1, 0 } .. {{       1,        0},
 {     0.5, 0.866025},
 {       0, 0.866025},
 {       0,        0},
 {       0,        0}}
double
{{{       1,        0},
  {       0,        1}},

 {{     0.5,        0},
  {0.866025,      0.5}},

 {{       0,        0},
  {0.866025,        0}},

 {{       0,        0},
  {       0,        0}},

 {{       0, 0.866025},
  {       0,        0}}}
x |.| array { 1, 0 } .. {{       1,        0},
 {     0.5, 0.866025},
 {       0, 0.866025},
 {       0,        0},
 {       0,        0}}
complex
{{{        1,         0},
  {        0,         1}},

 {{      0.5, -0.866025},
  { 0.866025,       0.5}},

 {{     -0.5, -0.866025},
  { 0.866025,      -0.5}},

 {{       -1,         0},
  {        0,        -1}},

 {{     -0.5,  0.866025},
  {-0.866025,      -0.5}}}
x |.| array { 1, 0 } .. {{        1,         0},
 {      0.5,  0.866025},
 {     -0.5,  0.866025},
 {       -1,         0},
 {     -0.5, -0.866025}}

======== #57 comparator ========

boolean
x == 5 .. {false, false, false, false, false, false, false, false, false, false}
x != 5 .. {true, true, true, true, true, true, true, true, true, true}
x > 5 .. {false, false, false, false, false, false, false, false, false, false}
x < 5 .. {true, true, true, true, true, true, true, true, true, true}
x >= 5 .. {false, false, false, false, false, false, false, false, false, false}
x <= 5 .. {true, true, true, true, true, true, true, true, true, true}
int8
x == 5 .. {false, false, false, false, false,  true, false, false, false, false}
x != 5 .. { true,  true,  true,  true,  true, false,  true,  true,  true,  true}
x > 5 .. {false, false, false, false, false, false,  true,  true,  true,  true}
x < 5 .. { true,  true,  true,  true,  true, false, false, false, false, false}
x >= 5 .. {false, false, false, false, false,  true,  true,  true,  true,  true}
x <= 5 .. { true,  true,  true,  true,  true,  true, false, false, false, false}
uint8
x == 5 .. {false, false, false, false, false,  true, false, false, false, false}
x != 5 .. { true,  true,  true,  true,  true, false,  true,  true,  true,  true}
x > 5 .. {false, false, false, false, false, false,  true,  true,  true,  true}
x < 5 .. { true,  true,  true,  true,  true, false, false, false, false, false}
x >= 5 .. {false, false, false, false, false,  true,  true,  true,  true,  true}
x <= 5 .. { true,  true,  true,  true,  true,  true, false, false, false, false}
int16
x == 5 .. {false, false, false, false, false,  true, false, false, false, false}
x != 5 .. { true,  true,  true,  true,  true, false,  true,  true,  true,  true}
x > 5 .. {false, false, false, false, false, false,  true,  true,  true,  true}
x < 5 .. { true,  true,  true,  true,  true, false, false, false, false, false}
x >= 5 .. {false, false, false, false, false,  true,  true,  true,  true,  true}
x <= 5 .. { true,  true,  true,  true,  true,  true, false, false, false, false}
uint16
x == 5 .. {false, false, false, false, false,  true, false, false, false, false}
x != 5 .. { true,  true,  true,  true,  true, false,  true,  true,  true,  true}
x > 5 .. {false, false, false, false, false, false,  true,  true,  true,  true}
x < 5 .. { true,  true,  true,  true,  true, false, false, false, false, false}
x >= 5 .. {false, false, false, false, false,  true,  true,  true,  true,  true}
x <= 5 .. { true,  true,  true,  true,  true,  true, false, false, false, false}
int32
x == 5 .. {false, false, false, false, false,  true, false, false, false, false}
x != 5 .. { true,  true,  true,  true,  true, false,  true,  true,  true,  true}
x > 5 .. {false, false, false, false, false, false,  true,  true,  true,  true}
x < 5 .. { true,  true,  true,  true,  true, false, false, false, false, false}
x >= 5 .. {false, false, false, false, false,  true,  true,  true,  true,  true}
x <= 5 .. { true,  true,  true,  true,  true,  true, false, false, false, false}
uint32
x == 5 .. {false, false, false, false, false,  true, false, false, false, false}
x != 5 .. { true,  true,  true,  true,  true, false,  true,  true,  true,  true}
x > 5 .. {false, false, false, false, false, false,  true,  true,  true,  true}
x < 5 .. { true,  true,  true,  true,  true, false, false, false, false, false}
x >= 5 .. {false, false, false, false, false,  true,  true,  true,  true,  true}
x <= 5 .. { true,  true,  true,  true,  true,  true, false, false, false, false}
int64
x == 5 .. {false, false, false, false, false,  true, false, false, false, false}
x != 5 .. { true,  true,  true,  true,  true, false,  true,  true,  true,  true}
x > 5 .. {false, false, false, false, false, false,  true,  true,  true,  true}
x < 5 .. { true,  true,  true,  true,  true, false, false, false, false, false}
x >= 5 .. {false, false, false, false, false,  true,  true,  true,  true,  true}
x <= 5 .. { true,  true,  true,  true,  true,  true, false, false, false, false}
uint64
x == 5 .. {false, false, false, false, false,  true, false, false, false, false}
x != 5 .. { true,  true,  true,  true,  true, false,  true,  true,  true,  true}
x > 5 .. {false, false, false, false, false, false,  true,  true,  true,  true}
x < 5 .. { true,  true,  true,  true,  true, false, false, false, false, false}
x >= 5 .. {false, false, false, false, false,  true,  true,  true,  true,  true}
x <= 5 .. { true,  true,  true,  true,  true,  true, false, false, false, false}
half
x == 5 .. {false, false, false, false, false,  true, false, false, false, false}
x != 5 .. { true,  true,  true,  true,  true, false,  true,  true,  true,  true}
x > 5 .. {false, false, false, false, false, false,  true,  true,  true,  true}
x < 5 .. { true,  true,  true,  true,  true, false, false, false, false, false}
x >= 5 .. {false, false, false, false, false,  true,  true,  true,  true,  true}
x <= 5 .. { true,  true,  true,  true,  true,  true, false, false, false, false}
float
x == 5 .. {false, false, false, false, false,  true, false, false, false, false}
x != 5 .. { true,  true,  true,  true,  true, false,  true,  true,  true,  true}
x > 5 .. {false, false, false, false, false, false,  true,  true,  true,  true}
x < 5 .. { true,  true,  true,  true,  true, false, false, false, false, false}
x >= 5 .. {false, false, false, false, false,  true,  true,  true,  true,  true}
x <= 5 .. { true,  true,  true,  true,  true,  true, false, false, false, false}
double
x == 5 .. {false, false, false, false, false,  true, false, false, false, false}
x != 5 .. { true,  true,  true,  true,  true, false,  true,  true,  true,  true}
x > 5 .. {false, false, false, false, false, false,  true,  true,  true,  true}
x < 5 .. { true,  true,  true,  true,  true, false, false, false, false, false}
x >= 5 .. {false, false, false, false, false,  true,  true,  true,  true,  true}
x <= 5 .. { true,  true,  true,  true,  true,  true, false, false, false, false}
complex
x == 5 .. {false, false, false, false, false,  true, false, false, false, false}
x != 5 .. { true,  true,  true,  true,  true, false,  true,  true,  true,  true}
x > 5 .. {false, false, false, false, false, false, false, false, false, false}
x < 5 .. {false, false, false, false, false, false, false, false, false, false}
x >= 5 .. {false, false, false, false, false, false, false, false, false, false}
x <= 5 .. {false, false, false, false, false, false, false, false, false, false}

======== #58 logical operation on array@boolean ========

{false,  true, false,  true} & {false, false,  true,  true} -> {false, false, false,  true}
{false,  true, false,  true} | {false, false,  true,  true} -> {false,  true,  true,  true}
{false,  true, false,  true} ^ {false, false,  true,  true} -> {false,  true,  true, false}

======== #59 array#iselemsame() ========

array(1 .. 1000, elemtype => `double).iselemsame(array(1 .. 1000, elemtype => `double)) .. true
array(1 .. 1000, elemtype => `double).iselemsame(array(1 .. 1000, elemtype => `float)) .. false
array(1 .. 1000, elemtype => `double).iselemsame(array(1000 .. 1, elemtype => `double)) .. false
array(1 .. 1000, elemtype => `double).iselemsame(array(1 .. 1000, elemtype => `double).reshape([nil])) .. true
array(1 .. 1000, elemtype => `double).iselemsame(array(1 .. 1000, elemtype => `double).reshape([100, nil])) .. false
