;; lib/minikanren/tests/nafc.sx — Phase 5 piece C tests for `nafc`. (mk-test "nafc-failed-goal-succeeds" (run* q (nafc (== 1 2))) (list (make-symbol "_.0"))) (mk-test "nafc-successful-goal-fails" (run* q (nafc (== 1 1))) (list)) (mk-test "nafc-double-negation" (run* q (nafc (nafc (== 1 1)))) (list (make-symbol "_.0"))) (mk-test "nafc-with-conde-no-clauses-succeed" (run* q (nafc (conde ((== 1 2)) ((== 3 4))))) (list (make-symbol "_.0"))) (mk-test "nafc-with-conde-some-clause-succeeds-fails" (run* q (nafc (conde ((== 1 1)) ((== 3 4))))) (list)) ;; --- composing nafc with == as a guard --- (mk-test "nafc-as-guard" (run* q (fresh (x) (== x 5) (nafc (== x 99)) (== q x))) (list 5)) (mk-test "nafc-guard-blocking" (run* q (fresh (x) (== x 5) (nafc (== x 5)) (== q x))) (list)) (mk-tests-run!)