wisp
 
(Arne Babenhauserheide)
2017-10-10: working simpler tests

working simpler tests

diff --git a/examples/doctests.w b/examples/doctests.w
--- a/examples/doctests.w
+++ b/examples/doctests.w
@@ -57,8 +57,8 @@ define : doctests-extract-from-string s
                                  . tests
 
 define : subtract a b
-    . "Subtract B from A"
-    . #((tests ('positive (test-eqv 3 (subtract 5 2)))))
+    . "Subtract B from A."
+    . #((tests ((test-eqv 3 (subtract 5 2))))) ;; TODO: remove the double paren
     - a b
 
 define : doctests-testmod mod
@@ -97,6 +97,7 @@ define : doctests-testmod mod
                        let*
                            : name : car names
                              docstring : car docstrings
+                             
                            let loop-tests
                               : doctest : car doctests
                               when : and (pair? doctest) (car doctest) : pair? : car doctest
@@ -105,20 +106,29 @@ define : doctests-testmod mod
                                  let*
                                    :
                                      testid
-                                        if : not : pair? doctest
-                                             . #f
-                                             string-join : list filename (symbol->string name) : symbol->string : primitive-eval : car : car doctest
+                                        match : car doctest
+                                          : ('quote id) tests ...
+                                            string-join : list filename (symbol->string name) : symbol->string id
+                                                         . "--"
+                                          : tests ...
+                                            string-join : list filename (symbol->string name)
                                                          . "--"
+                                     body
+                                         match : car doctest
+                                          : ('quote id) tests ...
+                                            . tests
+                                          : tests ...
+                                            . tests
                                      cleaned
-                                         if : not : list? doctest
-                                           . '#f
-                                           append
-                                               cons 'begin
-                                                   cons '(import (srfi srfi-64))
-                                                       cons
-                                                           list 'test-begin testid
-                                                           cdr : car doctest
-                                               list : list 'test-end testid
+                                            cons 'begin
+                                                cons '(import (srfi srfi-64)) 
+                                                    cons 
+                                                        list 'test-begin : or testid ""
+                                                        append
+                                                            . body
+                                                            list : list 'test-end : or testid ""
+                                   ;; pretty-print testid
+                                   ;; pretty-print body
                                    ;; pretty-print cleaned
                                    ;; newline
                                    when cleaned