Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 24s
Two-line definition: a list is a palindrome iff it equals its reverse. Direct composition of reverseo + ==. 7 new tests: empty / singleton / equal pair / unequal pair / 5-element-yes / 5-element-no / strings. 389/389 cumulative.
45 lines
805 B
Plaintext
45 lines
805 B
Plaintext
;; lib/minikanren/tests/palindromeo.sx — palindromic list relation.
|
|
|
|
(mk-test
|
|
"palindromeo-empty"
|
|
(run* q (palindromeo (list)))
|
|
(list (make-symbol "_.0")))
|
|
|
|
(mk-test
|
|
"palindromeo-singleton"
|
|
(run* q (palindromeo (list :a)))
|
|
(list (make-symbol "_.0")))
|
|
|
|
(mk-test
|
|
"palindromeo-pair-equal"
|
|
(run* q (palindromeo (list 1 1)))
|
|
(list (make-symbol "_.0")))
|
|
|
|
(mk-test
|
|
"palindromeo-pair-unequal-fails"
|
|
(run* q (palindromeo (list 1 2)))
|
|
(list))
|
|
|
|
(mk-test
|
|
"palindromeo-five-yes"
|
|
(run*
|
|
q
|
|
(palindromeo
|
|
(list 1 2 3 2 1)))
|
|
(list (make-symbol "_.0")))
|
|
|
|
(mk-test
|
|
"palindromeo-five-no"
|
|
(run*
|
|
q
|
|
(palindromeo
|
|
(list 1 2 3 4 5)))
|
|
(list))
|
|
|
|
(mk-test
|
|
"palindromeo-strings"
|
|
(run* q (palindromeo (list "a" "b" "a")))
|
|
(list (make-symbol "_.0")))
|
|
|
|
(mk-tests-run!)
|