Hi all,

raek helped me on IRC, and that's what finally works:
(defmacro defcomparisontest
  "Define a GReQL/FunQL comparison test with name n on graph g that asserts the
equality of the results evaluating greql and all funqls."
  [n g greql & funqls]
  `(deftest ~n
     ~g ;; ensure the graph is loaded, if it is given as memoized function.
     (println "####################################################")
     (println "Comparison test:" ~(name n))
     (let [gr# (do
                 (print "GReQL evaluation time:")
                 (jvalue-unpack (time (greql-eval ~g ~greql))))]
       (doseq [funql-fn# ~(vec (for [funql funqls] `(fn [] ~funql)))]
         (print "FunQL evaluation time:")
         (is (= gr#
                (time (let [r# (funql-fn#)]
                        (if (instance? clojure.lang.LazySeq r#)
                          (doall r#)
                          r#)))))))))

Bye,
Tassilo

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to