Test updates to also test simplify directly

This commit is contained in:
Paul deGrandis 2012-03-26 08:13:02 -04:00
parent 9cec3ee154
commit 3a4b27220b
2 changed files with 42 additions and 3 deletions

31
test/kibit/test/check.clj Normal file
View file

@ -0,0 +1,31 @@
(ns kibit.test.check
(:require [kibit.check :as kibit])
(:use [clojure.test]))
;; These tests are identical to the tests in kibit.test.core
;; The are here to illustrate kibit use via `check`
(deftest simplify-alts
(are [expected-alt test-form]
(= expected-alt (:alt (kibit/check-expr test-form)))
[1 2 3] '(do [1 2 3])
[] '(do [])
"Hello" '(do "Hello")
'(when test then) '(do (when test then))
:one '(do :one)
{:one 1} '(do {:one 1})))
(deftest simplify-exprs
(are [expected-expr test-expr]
(= expected-expr (:expr (kibit/check-expr test-expr)))
'(do [1 2 3]) '(do [1 2 3])
nil '(if (> 2 3) :one :two)))
(deftest simplify-deep
(is (= :one
(:alt (kibit/check-expr '(if (= 0 0) :one nil))))))
(deftest simplify-one
(is (= '(when (= 0 0) :one)
(:alt (kibit/check-expr '(if (= 0 0) :one nil) :resolution :subform)))))

View file

@ -1,10 +1,15 @@
(ns kibit.test.core
(:require [kibit.check :as kibit])
(:require [kibit.check :as kibit]
[kibit.core :as core]
[clojure.core.logic :as logic]
[kibit.rules :as core-rules])
(:use [clojure.test]))
(def all-rules (map logic/prep core-rules/all-rules))
(deftest simplify-alts
(are [expected-alt test-form]
(= expected-alt (:alt (kibit/check-expr test-form)))
(are [expected-alt test-expr]
(= expected-alt (core/simplify test-expr all-rules) (:alt (kibit/check-expr test-expr)))
[1 2 3] '(do [1 2 3])
[] '(do [])
"Hello" '(do "Hello")
@ -12,6 +17,7 @@
:one '(do :one)
{:one 1} '(do {:one 1})))
;; This test confirms when checking will happen and when it won't
(deftest simplify-exprs
(are [expected-expr test-expr]
(= expected-expr (:expr (kibit/check-expr test-expr)))
@ -20,9 +26,11 @@
(deftest simplify-deep
(is (= :one
(core/simplify '(if (= 0 0) :one nil) all-rules)
(:alt (kibit/check-expr '(if (= 0 0) :one nil))))))
(deftest simplify-one
(is (= '(when (= 0 0) :one)
(core/simplify-one '(if (= 0 0) :one nil) all-rules)
(:alt (kibit/check-expr '(if (= 0 0) :one nil) :resolution :subform)))))