   (get-tests [this] (list this))
   RunnableTest
   (run-tests [this]
-	     (debug "TestGroup.run-tests" this)
 	     (lazy-seq
 	      (list
 	       (or (skip-or-pending this)

       (catch Throwable e (thrown tc e))))

(defn- run-test-sequence [tc]
  (debug "run-test-sequence" tc)
  (try 
    (let [state-sequences (map (fn [fix]
				 (debug "Mapping over fixture" fix)
				 (if (:sequential (meta fix))
				   (do (debug "sequential fixture" fix)
				       (setup fix))
				   (do (debug "singular fixture" fix)
				       (repeatedly (fn [] (setup fix))))))
			       (:fixtures tc))
	  _unused_ (debug "state-sequences" state-sequences)
	  argument-lists (apply map list state-sequences)]
      (debug "argument-lists" argument-lists)
      (map (partial apply-test-case tc) argument-lists))
    (catch Throwable e (list (thrown tc e)))))


	[lazytest.result :only (pass fail thrown result-group)])
  (:import (lazytest ExpectationFailed)))

(defn- apply-test-case [tc arguments]
  (let [this (vary-meta tc assoc :states arguments)]
    (try (apply (:f tc) arguments)
	 (pass this)
