(import /src/calc) (import /src/eval) (use testament) (defn unwrap [obj] (match obj {:data data} (map unwrap data) {:value value} value)) (defn vec= [val obj] (is (== val (unwrap obj)))) (defn- make-element [x] (if (number? x) (:new calc/Int x) x)) (defn wrap [& args] (calc/wrap ;(map make-element args))) (defn quote-wrap [& args] (calc/quote-wrap ;(map make-element args))) (defn pop-and-compare [val s] (let [found (match (calc/pop s) {:value value} value)] (is (== val found)))) (defn eval-all [stack tokens] (each token tokens (eval/eval-and-push stack token)))