Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 53s
338 lines
7.8 KiB
Plaintext
338 lines
7.8 KiB
Plaintext
(define rv (fn (arr) (get arr :ravel)))
|
|
(define sh (fn (arr) (get arr :shape)))
|
|
|
|
(apl-test
|
|
"reduce +/ vector"
|
|
(rv (apl-reduce apl-add (make-array (list 5) (list 1 2 3 4 5))))
|
|
(list 15))
|
|
|
|
(apl-test
|
|
"reduce x/ vector"
|
|
(rv (apl-reduce apl-mul (make-array (list 4) (list 1 2 3 4))))
|
|
(list 24))
|
|
|
|
(apl-test
|
|
"reduce max/ vector"
|
|
(rv (apl-reduce apl-max (make-array (list 5) (list 3 1 4 1 5))))
|
|
(list 5))
|
|
|
|
(apl-test
|
|
"reduce min/ vector"
|
|
(rv (apl-reduce apl-min (make-array (list 3) (list 3 1 4))))
|
|
(list 1))
|
|
|
|
(apl-test
|
|
"reduce and/ all true"
|
|
(rv (apl-reduce apl-and (make-array (list 3) (list 1 1 1))))
|
|
(list 1))
|
|
|
|
(apl-test
|
|
"reduce or/ with true"
|
|
(rv (apl-reduce apl-or (make-array (list 3) (list 0 0 1))))
|
|
(list 1))
|
|
|
|
(apl-test
|
|
"reduce +/ single element"
|
|
(rv (apl-reduce apl-add (make-array (list 1) (list 42))))
|
|
(list 42))
|
|
|
|
(apl-test
|
|
"reduce +/ scalar no-op"
|
|
(rv (apl-reduce apl-add (apl-scalar 7)))
|
|
(list 7))
|
|
|
|
(apl-test
|
|
"reduce +/ shape is scalar"
|
|
(sh (apl-reduce apl-add (make-array (list 4) (list 1 2 3 4))))
|
|
(list))
|
|
|
|
(apl-test
|
|
"reduce +/ matrix row sums shape"
|
|
(sh (apl-reduce apl-add (make-array (list 2 3) (list 1 2 3 4 5 6))))
|
|
(list 2))
|
|
|
|
(apl-test
|
|
"reduce +/ matrix row sums values"
|
|
(rv (apl-reduce apl-add (make-array (list 2 3) (list 1 2 3 4 5 6))))
|
|
(list 6 15))
|
|
|
|
(apl-test
|
|
"reduce max/ matrix row maxima"
|
|
(rv (apl-reduce apl-max (make-array (list 2 3) (list 3 1 4 1 5 9))))
|
|
(list 4 9))
|
|
|
|
(apl-test
|
|
"reduce-first +/ vector same as reduce"
|
|
(rv (apl-reduce-first apl-add (make-array (list 5) (list 1 2 3 4 5))))
|
|
(list 15))
|
|
|
|
(apl-test
|
|
"reduce-first +/ matrix col sums shape"
|
|
(sh
|
|
(apl-reduce-first apl-add (make-array (list 2 3) (list 1 2 3 4 5 6))))
|
|
(list 3))
|
|
|
|
(apl-test
|
|
"reduce-first +/ matrix col sums values"
|
|
(rv
|
|
(apl-reduce-first apl-add (make-array (list 2 3) (list 1 2 3 4 5 6))))
|
|
(list 5 7 9))
|
|
|
|
(apl-test
|
|
"reduce-first max/ matrix col maxima"
|
|
(rv
|
|
(apl-reduce-first apl-max (make-array (list 3 2) (list 1 9 2 8 3 7))))
|
|
(list 3 9))
|
|
|
|
(apl-test
|
|
"scan +\\ vector"
|
|
(rv (apl-scan apl-add (make-array (list 5) (list 1 2 3 4 5))))
|
|
(list 1 3 6 10 15))
|
|
|
|
(apl-test
|
|
"scan x\\ vector cumulative product"
|
|
(rv (apl-scan apl-mul (make-array (list 5) (list 1 2 3 4 5))))
|
|
(list 1 2 6 24 120))
|
|
|
|
(apl-test
|
|
"scan max\\ vector running max"
|
|
(rv (apl-scan apl-max (make-array (list 5) (list 3 1 4 1 5))))
|
|
(list 3 3 4 4 5))
|
|
|
|
(apl-test
|
|
"scan min\\ vector running min"
|
|
(rv (apl-scan apl-min (make-array (list 5) (list 3 1 4 1 5))))
|
|
(list 3 1 1 1 1))
|
|
|
|
(apl-test
|
|
"scan +\\ single element"
|
|
(rv (apl-scan apl-add (make-array (list 1) (list 42))))
|
|
(list 42))
|
|
|
|
(apl-test
|
|
"scan +\\ scalar no-op"
|
|
(rv (apl-scan apl-add (apl-scalar 7)))
|
|
(list 7))
|
|
|
|
(apl-test
|
|
"scan +\\ vector preserves shape"
|
|
(sh (apl-scan apl-add (make-array (list 5) (list 1 2 3 4 5))))
|
|
(list 5))
|
|
|
|
(apl-test
|
|
"scan +\\ matrix preserves shape"
|
|
(sh (apl-scan apl-add (make-array (list 2 3) (list 1 2 3 4 5 6))))
|
|
(list 2 3))
|
|
|
|
(apl-test
|
|
"scan +\\ matrix row-wise"
|
|
(rv (apl-scan apl-add (make-array (list 2 3) (list 1 2 3 4 5 6))))
|
|
(list 1 3 6 4 9 15))
|
|
|
|
(apl-test
|
|
"scan max\\ matrix row-wise running max"
|
|
(rv (apl-scan apl-max (make-array (list 2 3) (list 3 1 4 1 5 9))))
|
|
(list 3 3 4 1 5 9))
|
|
|
|
(apl-test
|
|
"scan-first +\\ vector same as scan"
|
|
(rv (apl-scan-first apl-add (make-array (list 5) (list 1 2 3 4 5))))
|
|
(list 1 3 6 10 15))
|
|
|
|
(apl-test
|
|
"scan-first +\\ scalar no-op"
|
|
(rv (apl-scan-first apl-add (apl-scalar 9)))
|
|
(list 9))
|
|
|
|
(apl-test
|
|
"scan-first +\\ matrix preserves shape"
|
|
(sh (apl-scan-first apl-add (make-array (list 2 3) (list 1 2 3 4 5 6))))
|
|
(list 2 3))
|
|
|
|
(apl-test
|
|
"scan-first +\\ matrix col-wise"
|
|
(rv (apl-scan-first apl-add (make-array (list 2 3) (list 1 2 3 4 5 6))))
|
|
(list 1 2 3 5 7 9))
|
|
|
|
(apl-test
|
|
"scan-first max\\ matrix col-wise running max"
|
|
(rv (apl-scan-first apl-max (make-array (list 3 2) (list 3 1 4 1 5 9))))
|
|
(list 3 1 4 1 5 9))
|
|
|
|
(apl-test
|
|
"each negate vector"
|
|
(rv (apl-each apl-neg-m (make-array (list 3) (list 1 2 3))))
|
|
(list -1 -2 -3))
|
|
|
|
(apl-test
|
|
"each negate vector preserves shape"
|
|
(sh (apl-each apl-neg-m (make-array (list 3) (list 1 2 3))))
|
|
(list 3))
|
|
|
|
(apl-test
|
|
"each reciprocal vector"
|
|
(rv (apl-each apl-recip (make-array (list 3) (list 1 2 4))))
|
|
(list 1 (/ 1 2) (/ 1 4)))
|
|
|
|
(apl-test
|
|
"each abs vector"
|
|
(rv (apl-each apl-abs (make-array (list 4) (list -1 2 -3 4))))
|
|
(list 1 2 3 4))
|
|
|
|
(apl-test "each scalar" (rv (apl-each apl-neg-m (apl-scalar 5))) (list -5))
|
|
|
|
(apl-test
|
|
"each scalar shape"
|
|
(sh (apl-each apl-neg-m (apl-scalar 5)))
|
|
(list))
|
|
|
|
(apl-test
|
|
"each negate matrix shape"
|
|
(sh (apl-each apl-neg-m (make-array (list 2 3) (list 1 2 3 4 5 6))))
|
|
(list 2 3))
|
|
|
|
(apl-test
|
|
"each negate matrix values"
|
|
(rv (apl-each apl-neg-m (make-array (list 2 3) (list 1 2 3 4 5 6))))
|
|
(list -1 -2 -3 -4 -5 -6))
|
|
|
|
(apl-test
|
|
"each-dyadic scalar+scalar"
|
|
(rv (apl-each-dyadic apl-add (apl-scalar 3) (apl-scalar 4)))
|
|
(list 7))
|
|
|
|
(apl-test
|
|
"each-dyadic scalar+vector"
|
|
(rv
|
|
(apl-each-dyadic
|
|
apl-add
|
|
(apl-scalar 10)
|
|
(make-array (list 3) (list 1 2 3))))
|
|
(list 11 12 13))
|
|
|
|
(apl-test
|
|
"each-dyadic vector+scalar"
|
|
(rv
|
|
(apl-each-dyadic
|
|
apl-add
|
|
(make-array (list 3) (list 1 2 3))
|
|
(apl-scalar 10)))
|
|
(list 11 12 13))
|
|
|
|
(apl-test
|
|
"each-dyadic vector+vector"
|
|
(rv
|
|
(apl-each-dyadic
|
|
apl-add
|
|
(make-array (list 3) (list 1 2 3))
|
|
(make-array (list 3) (list 10 20 30))))
|
|
(list 11 22 33))
|
|
|
|
(apl-test
|
|
"each-dyadic mul matrix+matrix shape"
|
|
(sh
|
|
(apl-each-dyadic
|
|
apl-mul
|
|
(make-array (list 2 2) (list 1 2 3 4))
|
|
(make-array (list 2 2) (list 5 6 7 8))))
|
|
(list 2 2))
|
|
|
|
(apl-test
|
|
"each-dyadic mul matrix+matrix values"
|
|
(rv
|
|
(apl-each-dyadic
|
|
apl-mul
|
|
(make-array (list 2 2) (list 1 2 3 4))
|
|
(make-array (list 2 2) (list 5 6 7 8))))
|
|
(list 5 12 21 32))
|
|
|
|
(apl-test
|
|
"outer product mult table values"
|
|
(rv
|
|
(apl-outer
|
|
apl-mul
|
|
(make-array (list 3) (list 1 2 3))
|
|
(make-array (list 3) (list 1 2 3))))
|
|
(list 1 2 3 2 4 6 3 6 9))
|
|
|
|
(apl-test
|
|
"outer product mult table shape"
|
|
(sh
|
|
(apl-outer
|
|
apl-mul
|
|
(make-array (list 3) (list 1 2 3))
|
|
(make-array (list 3) (list 1 2 3))))
|
|
(list 3 3))
|
|
|
|
(apl-test
|
|
"outer product add table values"
|
|
(rv
|
|
(apl-outer
|
|
apl-add
|
|
(make-array (list 2) (list 1 2))
|
|
(make-array (list 3) (list 10 20 30))))
|
|
(list 11 21 31 12 22 32))
|
|
|
|
(apl-test
|
|
"outer product add table shape"
|
|
(sh
|
|
(apl-outer
|
|
apl-add
|
|
(make-array (list 2) (list 1 2))
|
|
(make-array (list 3) (list 10 20 30))))
|
|
(list 2 3))
|
|
|
|
(apl-test
|
|
"outer product scalar+vector shape"
|
|
(sh
|
|
(apl-outer apl-mul (apl-scalar 5) (make-array (list 3) (list 1 2 3))))
|
|
(list 3))
|
|
|
|
(apl-test
|
|
"outer product scalar+vector values"
|
|
(rv
|
|
(apl-outer apl-mul (apl-scalar 5) (make-array (list 3) (list 1 2 3))))
|
|
(list 5 10 15))
|
|
|
|
(apl-test
|
|
"outer product vector+scalar shape"
|
|
(sh
|
|
(apl-outer apl-mul (make-array (list 3) (list 1 2 3)) (apl-scalar 10)))
|
|
(list 3))
|
|
|
|
(apl-test
|
|
"outer product scalar+scalar"
|
|
(rv (apl-outer apl-mul (apl-scalar 6) (apl-scalar 7)))
|
|
(list 42))
|
|
|
|
(apl-test
|
|
"outer product scalar+scalar shape"
|
|
(sh (apl-outer apl-mul (apl-scalar 6) (apl-scalar 7)))
|
|
(list))
|
|
|
|
(apl-test
|
|
"outer product equality identity matrix values"
|
|
(rv
|
|
(apl-outer
|
|
apl-eq
|
|
(make-array (list 3) (list 1 2 3))
|
|
(make-array (list 3) (list 1 2 3))))
|
|
(list 1 0 0 0 1 0 0 0 1))
|
|
|
|
(apl-test
|
|
"outer product matrix+vector rank doubling shape"
|
|
(sh
|
|
(apl-outer
|
|
apl-add
|
|
(make-array (list 2 2) (list 1 2 3 4))
|
|
(make-array (list 3) (list 10 20 30))))
|
|
(list 2 2 3))
|
|
|
|
(apl-test
|
|
"outer product matrix+vector rank doubling values"
|
|
(rv
|
|
(apl-outer
|
|
apl-add
|
|
(make-array (list 2 2) (list 1 2 3 4))
|
|
(make-array (list 3) (list 10 20 30))))
|
|
(list 11 21 31 12 22 32 13 23 33 14 24 34)) |