diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7951405 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +lib \ No newline at end of file diff --git a/README.markdown b/README.markdown new file mode 100644 index 0000000..440f5b9 --- /dev/null +++ b/README.markdown @@ -0,0 +1,19 @@ +# Functional Koans + +### Getting Started + +To download the dependencies, install leiningen +(http://github.com/technomancy/leiningen). After you have leiningen +installed run + +`lein deps` + +which will download all dependencies you need to run the clojure koans. + +### Running The Koans + +To run the koans, simply run + +`ant` + +which will run all the files in the koans directory. diff --git a/build.xml b/build.xml new file mode 100644 index 0000000..e34ac4f --- /dev/null +++ b/build.xml @@ -0,0 +1,22 @@ + + + functional-koans + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/koans/about_asserts_test.clj b/koans/about_asserts_test.clj new file mode 100644 index 0000000..78b2705 --- /dev/null +++ b/koans/about_asserts_test.clj @@ -0,0 +1,12 @@ +(ns about-asserts-test + (:use clojure.test)) + +(deftest test-truth + (testing "We shall contemplate truth by testing reality, via asserts." + (assert false))) ;; This should be true + +(deftest test-assert-equality + (testing "To understand reality, we must compare our expectations against reality." + (let [expected-value 0 + actual-value (+ 1 1)] + (is (= expected-value actual-value))))) \ No newline at end of file diff --git a/koans/path_to_enlightenment.clj b/koans/path_to_enlightenment.clj new file mode 100644 index 0000000..70789e4 --- /dev/null +++ b/koans/path_to_enlightenment.clj @@ -0,0 +1,20 @@ +(use 'clojure.contrib.find-namespaces + 'clojure.test) + +(def exit-code (atom 0)) + +(defn find-tests [] + (filter + #(re-find #"-test" (str %)) (find-namespaces-in-dir (java.io.File. ".")))) + +(defn require-tests [] + + (doseq [test (find-tests)] + (require test))) + +(require-tests) +(let [results (apply merge-with + (map test-ns (find-tests)))] + (if (or (> (results :fail) 0) + (> (results :error) 0)) + (System/exit -1) + (System/exit 0))) \ No newline at end of file diff --git a/project.clj b/project.clj new file mode 100644 index 0000000..9ededd9 --- /dev/null +++ b/project.clj @@ -0,0 +1,6 @@ +(defproject functional-koans "0.0.1" + :description "The functional koans" + :dependencies [[org.clojure/clojure "1.1.0"] + [org.clojure/clojure-contrib "1.0-SNAPSHOT"]] + :dev-dependencies [[lein-clojars "0.5.0-SNAPSHOT"]] + :namespaces [koans]) \ No newline at end of file