(import /src/calc)
(import /src/parser)
(import /src/eval)
(import /src/env)
(import /src/operations :prefix "o/")
(import /src/adverbs :prefix "a/")
(use testament)
(use /test-support)
(deftest pushable
(let [s (env/new-env)
parsed (parser/parse "4 5 +")]
(eval-all s parsed)
(is (= 1 (length (s :data))))
(def res (first (s :data)))
(is (= 9 (res :value)))
(is (calc/Float? res))))
(deftest push-adverb
(let [s (env/new-env)
parsed (parser/parse "[1 2 3] 0 (+) dist")]
(eval-all s parsed)
(is (= 1 (length (s :data))))
(def res (first (s :data)))
(is (= 6 (res :value)))
(is (calc/Float? res))))
(run-tests!)