# testgen A Clojure library designed to generate charaterisation tests. ## Usage At this stage, try (testgen ) It will attempt to generate as Clojure source a set of clojure.test test definitions for the code passed. For example: user=> (pprint (testgen '(defn testgen [fndef] #_=> (cond (= (first fndef) 'defn) #_=> (let [name (first (rest fndef))] #_=> (list 'deftest (symbol (str "test-" name)) #_=> (map #(write-test name %) (find-interesting-args fndef)))))) #_=> ) #_=> ) (deftest test-testgen ((is (= (testgen nil) nil)) (is (= (testgen ()) nil)) (is (thrown? java.lang.IllegalArgumentException (testgen true))) (is (= (testgen "test") nil)) (is (thrown? java.lang.IllegalArgumentException (testgen :test))) (is (thrown? java.lang.IllegalArgumentException (testgen 0))) (is (thrown? java.lang.IllegalArgumentException (testgen Integer/MAX_VALUE))) (is (thrown? java.lang.IllegalArgumentException (testgen 1.0E-4))) (is (thrown? java.lang.IllegalArgumentException (testgen -1.0E-4))) (is (= (testgen "test-") nil)))) Note, however, that it only works if the function for which tests are being generated already exists in the environment. ## License Copyright © 2014 FIXME Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.