;; lib/minikanren/tests/counto.sx — count occurrences of x in l (intarith).

(mk-test
  "counto-empty"
  (run* q (counto 1 (list) q))
  (list 0))
(mk-test
  "counto-not-found"
  (run* q (counto 99 (list 1 2 3) q))
  (list 0))
(mk-test
  "counto-once"
  (run* q (counto 2 (list 1 2 3) q))
  (list 1))
(mk-test
  "counto-thrice"
  (run*
    q
    (counto
      1
      (list 1 2 1 3 1)
      q))
  (list 3))
(mk-test
  "counto-all-same"
  (run*
    q
    (counto 7 (list 7 7 7 7) q))
  (list 4))
(mk-test
  "counto-string"
  (run* q (counto "x" (list "x" "y" "x") q))
  (list 2))

(mk-tests-run!)
