This commit is contained in:
1 parent
36ca99b64a
commit
1dafbdec5a
3 files changed
+67
-1675
No files matched your search
+22
-3
@@ -33,7 +33,7 @@
|
||||
'... '(...) '(... a b c)
|
||||
'(a ... b ...)))
|
||||
(t/testing "simple data"
|
||||
(t/is (= 'a (sut/conform ::patern 'a)))))
|
||||
(t/is (= 'a (s/conform ::patern 'a)))))
|
||||
|
||||
(t/deftest expand-test
|
||||
(t/testing "unbound symbol"
|
||||
@@ -71,7 +71,13 @@
|
||||
(t/deftest template-spec
|
||||
(t/is (s/valid? ::sut/template '(x ... y)))
|
||||
(t/is (s/valid? ::sut/template 123))
|
||||
(t/is (s/valid? ::sut/template '(x y ... z ... a b c))))
|
||||
(t/is (= '[:list [[:var x]
|
||||
[:ellipsis [:var y]]
|
||||
[:ellipsis [:var z]]
|
||||
[:var a]
|
||||
[:var b]
|
||||
[:var c]]]
|
||||
(s/conform ::sut/template '(x y ... z ... a b c)))))
|
||||
|
||||
(t/deftest pattern-spec
|
||||
(t/is (s/valid? ::sut/pattern '(m))))
|
||||
@@ -88,4 +94,17 @@
|
||||
(t/deftest unify-test
|
||||
(t/are [result pattern datum] (= result (sut/unify pattern datum))
|
||||
{'a 123 'b 456} '(a b) '(123 456)
|
||||
nil '(a b) 123))
|
||||
nil '(a b) 123
|
||||
|
||||
'{b [:ellipsis ([:ellipsis (1 2)] [:ellipsis (3 4)])]}
|
||||
'((b ...) ...)
|
||||
'((1 2) (3 4))))
|
||||
|
||||
(t/deftest transcribe-test
|
||||
(t/are [result datum pattern template]
|
||||
(= result (sut/transcribe (sut/unify pattern datum) template))
|
||||
'(1 a 2 b) '((1 2) (a b))
|
||||
'((x y) ...) '(x ... y ...)
|
||||
|
||||
'(1 2 3 4) '(1 2 3 4)
|
||||
'(x ...) '(x ...)))
|
||||
Reference in new issue
Block a user