18 lines
524 B
Clojure
18 lines
524 B
Clojure
(ns expand-test
|
|
(:require [expand :as sut]
|
|
[clojure.test :as t]
|
|
[clojure.spec.alpha :as s]))
|
|
|
|
(t/deftest scheme-base-env-test
|
|
(t/is (s/valid? ::sut/environment sut/scheme-base-env)))
|
|
|
|
(t/deftest symtable-for-env-test
|
|
(t/is (s/valid? ::sut/symtable (sut/symtable-for-env sut/scheme-base-env))))
|
|
|
|
(t/deftest expand-test
|
|
(t/testing "unbound symbol"
|
|
(t/is (thrown? Exception (sut/expand 'x))))
|
|
(t/testing "identity fn"
|
|
(t/is (= '(lambda (x) x)
|
|
(sut/expand '(λ (x) x))))))
|