; Tests for APL ⎕ system functions. (define mkrv (fn (arr) (get arr :ravel))) (define mksh (fn (arr) (get arr :shape))) (apl-test "⎕IO returns 1" (mkrv (apl-quad-io)) (list 1)) (apl-test "⎕ML returns 1" (mkrv (apl-quad-ml)) (list 1)) (apl-test "⎕FR returns 1248" (mkrv (apl-quad-fr)) (list 1248)) (apl-test "⎕TS shape is 7" (mksh (apl-quad-ts)) (list 7)) (apl-test "⎕TS year is 1970 default" (first (mkrv (apl-quad-ts))) 1970) (apl-test "⎕FMT scalar 42" (apl-quad-fmt (apl-scalar 42)) "42") (apl-test "⎕FMT scalar negative" (apl-quad-fmt (apl-scalar -7)) "-7") (apl-test "⎕FMT empty vector" (apl-quad-fmt (make-array (list 0) (list))) "") (apl-test "⎕FMT singleton vector" (apl-quad-fmt (make-array (list 1) (list 42))) "42") (apl-test "⎕FMT vector" (apl-quad-fmt (make-array (list 5) (list 1 2 3 4 5))) "1 2 3 4 5") (apl-test "⎕FMT matrix 2x3" (apl-quad-fmt (make-array (list 2 3) (list 1 2 3 4 5 6))) "1 2 3\n4 5 6\n") (apl-test "⎕← (print) returns its arg" (mkrv (apl-quad-print (apl-scalar 99))) (list 99)) (apl-test "⎕← preserves shape" (mksh (apl-quad-print (make-array (list 3) (list 1 2 3)))) (list 3))