This commit is contained in:
1 parent
7282e44c5a
commit
90526500c9
4 files changed
+77
-15
No files matched your search
@@ -0,0 +1,17 @@
|
||||
(ns expand-test
|
||||
(:require [expand :as sut]
|
||||
[clojure.test :as t]))
|
||||
|
||||
(t/deftest nearest-test
|
||||
(t/is (= '#{#{a b}}
|
||||
(sut/nearest '#{a b c}
|
||||
'[#{a} #{a b} #{a d}]))
|
||||
"unambiguous")
|
||||
(t/is (= '#{#{a b} #{a c}}
|
||||
(sut/nearest
|
||||
'#{a b c} '[#{a} #{a b} #{a c}]))
|
||||
"ambiguous")
|
||||
(t/is (= #{}
|
||||
(sut/nearest
|
||||
'#{a b c} '[#{d} #{d e} #{f}]))
|
||||
"undefined"))
|
||||
@@ -0,0 +1,40 @@
|
||||
(ns scm-test
|
||||
(:require [scm :as sut]
|
||||
[clojure.test :as t]))
|
||||
|
||||
(t/deftest read-test
|
||||
(t/testing "boolean"
|
||||
(t/is (= true (sut/read "#t")))
|
||||
(t/is (= true (sut/read "#true")))
|
||||
(t/is (= false (sut/read "#f")))
|
||||
(t/is (= false (sut/read "#false"))))
|
||||
(t/testing "symbol"
|
||||
(t/is (= 'abc (sut/read "abc")))
|
||||
(t/is (= 'truth-nuke (sut/read "truth-nuke"))))
|
||||
(t/testing "list"
|
||||
(t/is (= (list 1 2 3) (sut/read "(1 2 3)")))
|
||||
(t/is (= (sut/improper-list 1 2 3) (sut/read "(1 2 . 3)")))))
|
||||
|
||||
(t/deftest read-syntax-test
|
||||
(t/is (sut/unresolved? (sut/read-syntax "123")))
|
||||
(t/is (sut/unresolved? (sut/read-syntax "(1 2 3)"))))
|
||||
|
||||
(t/deftest improper-list?-test
|
||||
(t/is (sut/improper-list? (sut/improper-list 1 2 3))))
|
||||
|
||||
(t/deftest improper-list-test
|
||||
(t/is (= [1 2] (:initial (sut/improper-list 1 2 3))))
|
||||
(t/is (= 3 (:dot (sut/improper-list 1 2 3)))))
|
||||
|
||||
(t/deftest constant?-test
|
||||
(t/is (sut/constant? 123))
|
||||
(t/is (sut/constant? #scm/stx 123)))
|
||||
|
||||
(t/deftest syntax-test
|
||||
(t/is (not (sut/syntax? 123)))
|
||||
(t/is (sut/syntax? #scm/stx 123))
|
||||
(t/is (sut/syntax? #scm/stx [123 #{}]))
|
||||
(t/is (= 123 (sut/syntax-e #scm/stx [123 #{}]))))
|
||||
|
||||
(t/deftest resolved?-test
|
||||
(t/is (sut/unresolved? #scm/stx 123)))
|
||||
Reference in new issue
Block a user