anchor.diff:  ;; 5. Create a named lambda test function.
   ;; 6. Create new test suite instance and add it to lookup table.
   ;;
  +
   (defmacro deftest (name declarations &body body)
     "Defines a  test case called  NAME. DECLARATIONS declares  which test
   suites this  test case is  associated with as  well as any  other test
  
positive.code: (in-package :clunit)
  
  ;; The DEFTEST macro has three possible forms:
  ;;
  
negative.code:   depends on tests: test1 ... testN
  
     (deftest name ((suite1 suite2 ... suiteN) (test1 test2 ... testN)) . body)"
    (with-gensyms (parent-suites test-dependencies test-function)
      (multiple-value-bind (dependencies-suites dependencies-tests)
          (deftest-declaration-dependencies declarations)
        ;; Emit warnings for all dependencies on test cases that have not yet been defined.
        (deftest-ensure-dependency-exists name
             dependencies-tests
          #'get-test-case
          "Defining test case ~S which has a dependency on undefined test case ~S.")
        (deftest-ensure-dependency-exists name
          dependencies-suites
          #'get-test-suite
          "Trying to add test case ~S reference to test suite, but test suite ~S is not defined.")
  
        `(let ((,parent-suites     ',dependencies-suites)
               (,test-dependencies ',dependencies-tests)
               (,test-function     nil))
           ;; Add test case reference to each of its parent's TEST-CASES slot.
           (loop for parent in ,parent-suites do
             (pushnew ',name (test-cases (get-test-suite parent))))
           (setf ,test-function
                 (lambda ()
                   (block ,name
                     (with-test-restart
                       (let ((*test-name* ',name))
                         ;; If test  was not  called by any  test suite,
                         ;; then  do  not  attempt  to  expand  out  any
                         ;; fixtures.
                         ;; However, if the test  is being executed in
                         ;; a context with one or more test suites,
                         ;; expand out the fixtures starting with the most
                         ;; specific
                         ,(let ((body-forms `(progn ,@body)))
                            (dolist (suite (reverse dependencies-suites))
  
                              (setf body-forms (expand-fixture suite body-forms)))
                            body-forms))))))
           ;; Create new test case instance and add it to lookup table.
           (setf (get-test-case ',name)
                 (make-instance 'clunit-test-case
                                :name          ',name
                                :dependencies  ,test-dependencies
                                :test-function ,test-function))))))
  
  ;; UNDEFTEST Algorithm:
  ;; 1. Check if test case is defined, if its not throw an error.
  