Carp/test/static_array.carp
2020-05-04 09:30:45 +01:00

52 lines
1.3 KiB
Plaintext

(load "Test.carp")
(use Test)
(use StaticArray)
(deftest test
(assert-true test
(= $[1 2 3] $[1 2 3])
"= works as expected I")
(assert-false test
(= $[1 2 3] $[1 2 3 4 5])
"= works as expected II")
(assert-false test
(= $[1 1 1] $[0 0 0])
"= works as expected III")
(assert-equal test
5
(let [a $[0 1 2 3 4 5 6 7 8 9]]
@(unsafe-nth a 5))
"unsafe-nth works as expected")
;; TODO: FIX! THIS ONE IS PROBLEMATIC.
;; (assert-equal test
;; &[4 5 6]
;; (let [nested $[[1 2 3]
;; [4 5 6]
;; [7 8 9]]]
;; &@(unsafe-nth nested 1))
;; "unsafe-nth works as expected")
(assert-equal test
10
(let [arr $[2 2 2 2]]
(reduce
&(fn [acc val] (+ acc @val))
2
arr))
"reduce works as expected")
(assert-equal test
$[2 4 8]
(let-do [arr $[1 2 4]]
(map!
arr
&(fn [val] (* @val 2)))
arr)
"map! works as expected"))