(ns mw-parser.bulk-test
  (:use clojure.java.io)
  (:require [clojure.test :refer :all]
            [mw-parser.bulk :refer :all]))

(deftest bulk-parsing-test
         (testing "Bulk (file) parsing and compilation"
                  (is (= (count (parse-file (as-file "resources/rules.txt"))) 15)
                      "Should parse all rules and throw no exceptions")
                  (is (empty? 
                        (remove #(= % 'fn) 
                                (map first 
                                     (parse-file 
                                       (as-file "resources/rules.txt")))))
                      "all parsed rules should be lambda sexprs")
                  (is (= (count (compile-file (as-file "resources/rules.txt"))) 15)
                      "Should compile all rules and throw no exceptions")
                  (is (empty?
                        (remove ifn? 
                                (map first 
                                     (compile-file 
                                       (as-file "resources/rules.txt")))))
                      "all compiled rules should be ifns")
                  ))