diff --git a/chebyshev.lisp b/chebyshev.lisp
index 78d99d8ea2247c72aebb7ba0f28976b8a88258cc..a3cd4905f4bd9bbfc6b8a0c75ad0dba55d622464 100644
--- a/chebyshev.lisp
+++ b/chebyshev.lisp
@@ -1,6 +1,6 @@
 ;; Chebyshev Approximations
 ;; Liam Healy Sat Nov 17 2007 - 20:36
-;; Time-stamp: <2008-08-23 11:27:10EDT chebyshev.lisp>
+;; Time-stamp: <2008-10-25 11:33:06EDT chebyshev.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -123,16 +123,6 @@
      (evaluate-chebyshev deriv x)
      (evaluate-chebyshev integ x))))
 
-
-#|
-(make-tests chebyshev
+;;; Unit test
+(save-test chebyshev
   (chebyshev-point-example 0.55d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST CHEBYSHEV
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 0.7159209901689866d0 -1.5019966658054353d0
-	  0.17239719403979925d0))
-   (MULTIPLE-VALUE-LIST (CHEBYSHEV-POINT-EXAMPLE 0.55d0))))
-
diff --git a/data/combination.lisp b/data/combination.lisp
index 0de5c7cebbc68e2c1931b199cd149b9f31f91e59..33cb2aac412c9a723554f06decbdbffc76dabed8 100644
--- a/data/combination.lisp
+++ b/data/combination.lisp
@@ -1,6 +1,6 @@
 ;; Combinations
 ;; Liam Healy, Sun Mar 26 2006 - 11:51
-;; Time-stamp: <2008-09-20 22:04:48EDT combination.lisp>
+;; Time-stamp: <2008-10-25 19:05:36EDT combination.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -172,8 +172,7 @@
 ;;;; Examples and unit test
 ;;;;****************************************************************************
 
-#|
-(make-tests combination
+(save-test combination
  (letm ((comb (combination '(4 2) t)))	; combination-range
    (combination-range comb))
  (letm ((comb (combination '(4 2) t)))	; combination-size
@@ -192,42 +191,3 @@
 	 (init-first comb)
 	 (loop collect (copy-seq (cl-array comb))
 	       while (combination-next comb)))))
-|#
-
-(LISP-UNIT:DEFINE-TEST COMBINATION
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 4)
-   (MULTIPLE-VALUE-LIST
-    (LETM ((COMB (COMBINATION '(4 2) T)))
-      (COMBINATION-RANGE COMB))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 2)
-   (MULTIPLE-VALUE-LIST
-    (LETM ((COMB (COMBINATION '(4 2) T)))
-      (COMBINATION-SIZE COMB))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST (LIST #(0 1) #(0 2) #(0 3) #(1 2) #(1 3) #(2 3)))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((COMB (COMBINATION '(4 2) T)))
-      (INIT-FIRST COMB)
-      (LOOP COLLECT (COPY-SEQ (CL-ARRAY COMB)) WHILE
-	   (COMBINATION-NEXT COMB)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST (LIST #(2 3) #(1 3) #(1 2) #(0 3) #(0 2) #(0 1)))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((COMB (COMBINATION '(4 2) T))) (INIT-LAST COMB)
-	  (LOOP COLLECT (COPY-SEQ (CL-ARRAY COMB)) WHILE
-	       (COMBINATION-PREVIOUS COMB)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST #() #(0) #(1) #(2) #(3) #(0 1) #(0 2) #(0 3)
-	  #(1 2) #(1 3) #(2 3) #(0 1 2) #(0 1 3) #(0 2 3)
-	  #(1 2 3) #(0 1 2 3)))
-   (MULTIPLE-VALUE-LIST
-    (LOOP FOR I FROM 0 TO 4 APPEND
-	 (LETM ((COMB (COMBINATION (LIST 4 I) T)))
-	   (INIT-FIRST COMB)
-	   (LOOP COLLECT (COPY-SEQ (CL-ARRAY COMB))
-	      WHILE (COMBINATION-NEXT COMB)))))))
-
-
diff --git a/data/permutation.lisp b/data/permutation.lisp
index 139d012fd3e2d671c502f069a3483b7028f06656..3607fe2b7fa12a3d8de9833e96f926c8f5f23931 100644
--- a/data/permutation.lisp
+++ b/data/permutation.lisp
@@ -1,6 +1,6 @@
 ;; Permutations
 ;; Liam Healy, Sun Mar 26 2006 - 11:51
-;; Time-stamp: <2008-09-20 21:59:49EDT permutation.lisp>
+;; Time-stamp: <2008-10-25 18:52:27EDT permutation.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -263,8 +263,7 @@
     (loop collect (copy-seq (cl-array perm))
 	  while (permutation-previous perm))))
 
-#|
-(make-tests
+(save-test
  permutation
  (letm ((perm-1 (permutation 4 t)))	;maref
    (set-identity perm-1)
@@ -307,77 +306,3 @@
    (swap-elements perm-1 1 3)
    (swap-elements perm-1 0 2)
    (canonical-cycles perm-1)))
-|#
-
-(LISP-UNIT:DEFINE-TEST PERMUTATION
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 2)
-   (MULTIPLE-VALUE-LIST
-    (LETM ((PERM-1 (PERMUTATION 4 T)))
-      (SET-IDENTITY PERM-1)
-      (MAREF PERM-1 2))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #(0 1 2 3))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((PERM-1 (PERMUTATION 4 T)))
-      (SET-IDENTITY PERM-1)
-      (CL-ARRAY PERM-1))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #(3 2 1 0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((PERM-1 (PERMUTATION 4 T)))
-      (SET-IDENTITY
-       PERM-1)
-      (CL-ARRAY (PERMUTATION-REVERSE PERM-1)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #(0 3 1 2))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((PERM-1 (PERMUTATION 4 T))
-	 (PERM-2 (PERMUTATION 4 T)))
-      (SET-IDENTITY PERM-1)
-      (PERMUTATION-NEXT PERM-1)
-      (PERMUTATION-NEXT PERM-1)
-      (PERMUTATION-NEXT PERM-1)
-      (PERMUTATION-INVERSE PERM-2 PERM-1)
-      (CL-ARRAY PERM-2))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #(0 3 2 1))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((PERM-1 (PERMUTATION 4 T)))
-      (SET-IDENTITY PERM-1)
-      (SWAP-ELEMENTS PERM-1 1 3)
-      (CL-ARRAY PERM-1))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #(33 44 11 22))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((PERM-1 (PERMUTATION 4 T))
-	 (INTVEC (VECTOR-SIGNED-BYTE-32
-	   (A 11 22 33 44))))
-      (SET-IDENTITY PERM-1)
-      (SWAP-ELEMENTS PERM-1 1 3)
-      (SWAP-ELEMENTS PERM-1 0 2)
-      (PERMUTE-VECTOR PERM-1 INTVEC)
-      (CL-ARRAY INTVEC))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 3)
-   (MULTIPLE-VALUE-LIST
-    (LETM ((PERM-1 (PERMUTATION 4 T)))
-      (SET-IDENTITY PERM-1)
-      (SWAP-ELEMENTS PERM-1 1 3)
-      (INVERSIONS PERM-1))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 3)
-   (MULTIPLE-VALUE-LIST
-    (LETM ((PERM-1 (PERMUTATION 4 T)))
-      (SET-IDENTITY PERM-1)
-      (SWAP-ELEMENTS PERM-1 1 3)
-      (LINEAR-CYCLES PERM-1))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 2)
-   (MULTIPLE-VALUE-LIST
-    (LETM ((PERM-1 (PERMUTATION 4 T)))
-      (SET-IDENTITY PERM-1)
-      (SWAP-ELEMENTS PERM-1 1 3)
-      (SWAP-ELEMENTS PERM-1 0 2)
-      (CANONICAL-CYCLES PERM-1)))))
-
diff --git a/documentation/documentation.html b/documentation/documentation.html
index b843aa8f78c19db6f9faa922448d18a4f7b6f76d..7ce4848b74471ae760e19f448bb4624766c52275 100644
--- a/documentation/documentation.html
+++ b/documentation/documentation.html
@@ -39,10 +39,11 @@ to find that the Lisp function name is <code>#'jacobian-elliptic-functions</code
    </pre>
    to get an explanation of the arguments etc.
  </li>
- <li>Look at the end of the Lisp source file, or in an "example" file
- in the same directory, for examples.  Often, the examples are placed
- in a <code>make-tests</code> form (which will be commented out with
- a #| |# block).  If the 
+ <li>Use the function <code>(examples)</code> to get a list of example
+ categories.  Then use the function with a category name as the
+ argument to get a list of examples under that category, for
+ example 
+   <code>(examples 'higher-moments)</code>.  If the 
  <a href="http://www.gnu.org/software/gsl/manual/">GSL documentation</a>
  provides an example, there will usually be the same or similar
  example provided in GSLL.</li>
@@ -200,7 +201,7 @@ gamma-randist, negative-binomial.
     <address><a href="mailto:gsll-devel@common-lisp.net">Liam Healy</a></address>
 <!-- hhmts start -->
     <small>
-      Time-stamp: <2008-09-21 15:37:13EDT documentation.html>
+      Time-stamp: <2008-10-25 18:59:39EDT documentation.html>
       </small>
 <!-- hhmts end -->
  </div>
diff --git a/eigensystems.lisp b/eigensystems.lisp
index 415da6af5b702279a34f86775343571882f9fa02..7a2ed5fa2b91fbf6576b837deba8772688b82482 100644
--- a/eigensystems.lisp
+++ b/eigensystems.lisp
@@ -1,6 +1,6 @@
 ;; Eigenvectors and eigenvalues
 ;; Liam Healy, Sun May 21 2006 - 19:52
-;; Time-stamp: <2008-08-14 22:48:02EDT eigensystems.lisp>
+;; Time-stamp: <2008-10-25 11:34:13EDT eigensystems.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -168,17 +168,6 @@
     (eigenvalues-eigenvectors mat evals evecs ws)
     (values (cl-array evals) (cl-array evecs))))
 
-#|
-(make-tests eigensystems
-	    (eigenvalue-eigenvectors-example))
-|#
-
-(LISP-UNIT:DEFINE-TEST EIGENSYSTEMS
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    #(13.819660112501051d0 36.180339887498945d0 40.0d0)
-    #2A((0.8506508083520399d0 -0.5257311121191337d0 0.0d0)
-	(0.5257311121191337d0 0.8506508083520399d0 0.0d0)
-	(0.0d0 0.0d0 1.0d0)))
-   (MULTIPLE-VALUE-LIST
-    (EIGENVALUE-EIGENVECTORS-EXAMPLE))))
+(save-test eigensystems
+	   (eigenvalue-eigenvectors-example))
+
diff --git a/histogram/updating-accessing.lisp b/histogram/updating-accessing.lisp
index 1b6cffe2ff7012dd014bf310be1e49d0b9e3f4cd..7905b703fe50319a48144f884fde4d8d75fa8359 100644
--- a/histogram/updating-accessing.lisp
+++ b/histogram/updating-accessing.lisp
@@ -1,6 +1,6 @@
 ;; Updating and accessing histogram elements.
 ;; Liam Healy, Mon Jan  1 2007 - 14:43
-;; Time-stamp: <2008-09-14 22:04:40EDT updating-accessing.lisp>
+;; Time-stamp: <2008-10-25 18:24:41EDT updating-accessing.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -99,8 +99,7 @@
 |#
 ;;; Examples and unit test
 
-#|
-(make-tests histogram
+(save-test histogram
    ;; The first one gives a warning while compiling in SBCL,
    ;; should only give a warning while runnin.
  (letm ((histo (histogram 10)))
@@ -141,67 +140,3 @@
    (increment histo 2.7d0)
    (increment histo 6.9d0 2.0d0)
    (histogram-find histo 5.5d0)))
-|#
-
-(LISP-UNIT:DEFINE-TEST HISTOGRAM
-  (LISP-UNIT:ASSERT-ERROR
-   'GSL-CONDITION
-   (LETM ((HISTO (HISTOGRAM 10)))
-     (SET-RANGES-UNIFORM HISTO 0.0d0 10.0d0)
-     (INCREMENT HISTO -2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.0d0)
-   (MULTIPLE-VALUE-LIST
-    (LETM ((HISTO (HISTOGRAM 10)))
-      (SET-RANGES-UNIFORM HISTO 0.0d0 10.0d0)
-      (INCREMENT HISTO 2.7d0)
-      (INCREMENT HISTO 6.9d0 2.0d0)
-      (MAREF HISTO 1))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.0d0)
-   (MULTIPLE-VALUE-LIST
-    (LETM ((HISTO (HISTOGRAM 10)))
-      (SET-RANGES-UNIFORM HISTO 0.0d0 10.0d0)
-      (INCREMENT HISTO 2.7d0)
-      (INCREMENT HISTO 6.9d0 2.0d0)
-      (MAREF HISTO 2))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 2.0d0)
-   (MULTIPLE-VALUE-LIST
-    (LETM ((HISTO (HISTOGRAM 10)))
-      (SET-RANGES-UNIFORM HISTO 0.0d0 10.0d0)
-      (INCREMENT HISTO 2.7d0)
-      (INCREMENT HISTO 6.9d0 2.0d0)
-      (MAREF HISTO 6))))
-  (LISP-UNIT:ASSERT-ERROR
-   'GSL-CONDITION
-   (LETM ((HISTO (HISTOGRAM 10)))
-     (SET-RANGES-UNIFORM HISTO 0.0d0 10.0d0)
-     (INCREMENT HISTO 2.7d0)
-     (INCREMENT HISTO 6.9d0 2.0d0)
-     (MAREF HISTO 16)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.0d0 10.0d0)
-   (MULTIPLE-VALUE-LIST
-    (LETM ((HISTO (HISTOGRAM 10)))
-      (SET-RANGES-UNIFORM HISTO 0.0d0 10.0d0)
-      (INCREMENT HISTO 2.7d0)
-      (INCREMENT HISTO 6.9d0 2.0d0)
-      (VALUES (MIN-RANGE HISTO)
-	      (MAX-RANGE HISTO)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 10)
-   (MULTIPLE-VALUE-LIST
-    (LETM ((HISTO (HISTOGRAM 10)))
-      (SET-RANGES-UNIFORM HISTO 0.0d0 10.0d0)
-      (INCREMENT HISTO 2.7d0)
-      (INCREMENT HISTO 6.9d0 2.0d0)
-      (BINS HISTO))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 5)
-   (MULTIPLE-VALUE-LIST
-    (LETM ((HISTO (HISTOGRAM 10)))
-      (SET-RANGES-UNIFORM HISTO 0.0d0 10.0d0)
-      (INCREMENT HISTO 2.7d0)
-      (INCREMENT HISTO 6.9d0 2.0d0)
-      (HISTOGRAM-FIND HISTO 5.5d0)))))
diff --git a/init/generate-tests.lisp b/init/generate-tests.lisp
index 5ddc6d8094932cbcb38f126500f1690075573d59..6d52c47280bb148fbbe5407c0ac73780f5748d0a 100644
--- a/init/generate-tests.lisp
+++ b/init/generate-tests.lisp
@@ -1,10 +1,12 @@
 ;; Make tests and examples
 ;; Liam Healy 2008-09-07 21:00:48EDT generate-tests.lisp
-;; Time-stamp: <2008-10-21 22:40:41EDT generate-tests.lisp>
+;; Time-stamp: <2008-10-25 19:06:40EDT generate-tests.lisp>
 ;; $Id: $
 
 (in-package :gsl)
 
+(export 'examples)
+
 ;;;;****************************************************************************
 ;;;; Data pool 
 ;;;;****************************************************************************
@@ -26,12 +28,8 @@
 	  ,(numerical-serialize vals)
 	  (multiple-value-list ,form)))))
 
-(defmacro make-tests (name &rest forms)
-  (append
-   `(lisp-unit:define-test ,name)
-   (mapcar #'make-test forms)))
-
 (defparameter *all-generated-tests* nil) 
+
 (defmacro save-test (name &rest forms)
   "Save the test with the given name."
   `(setf
@@ -42,6 +40,15 @@
       (getf *all-generated-tests* ',name))
      :test #'equal)))
 
+(defun examples (&optional name)
+  "If no argument is supplied, list the names of the example categories.
+   If a category name is given as the argument, give the list of examples
+   in that category."
+  (if name 
+      (getf *all-generated-tests* name)
+      (loop for (key value) on *all-generated-tests* by #'cddr
+	 collect key)))
+
 (defun create-test (test-name)
   "Find the saved test by name and create it, with the generated results."
   (append
@@ -86,10 +93,6 @@
        (format t "Writing test ~a to file~&" test-name)
        (format stream "~s~%~%" (create-test test-name)))))
 
-(defmacro make-tests (name &rest forms)
-  (append
-   `(lisp-unit:define-test ,name)
-   (mapcar #'make-test forms)))
 |#
 
 ;;;;****************************************************************************
diff --git a/linear-algebra/blas1.lisp b/linear-algebra/blas1.lisp
index b0eed3c3943aaccb33e9973f9e73718afd96fd6f..d4ec608b9a2b3fc10deebe4ea07cf00082086178 100644
--- a/linear-algebra/blas1.lisp
+++ b/linear-algebra/blas1.lisp
@@ -1,6 +1,6 @@
 ;; BLAS level 1, Vector operations
 ;; Liam Healy, Wed Apr 26 2006 - 15:23
-;; Time-stamp: <2008-08-31 15:12:31EDT blas1.lisp>
+;; Time-stamp: <2008-10-25 18:41:45EDT blas1.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -182,67 +182,58 @@
 ;;;;****************************************************************************
 
 #|
-;;; Before expanding, set 
-;;; (setf *read-default-float-format* 'double-float)
-(make-tests blas1-single
+(save-test blas1-single
  ;; single
- (letm ((a (vector-single-float #(1.0f0 2.0f0 3.0f0)))
-	(b (vector-single-float #(3.0f0 4.0f0 5.0f0))))
+ (letm ((a (vector-single-float (a 1.0f0 2.0f0 3.0f0)))
+	(b (vector-single-float (a 3.0f0 4.0f0 5.0f0))))
    (dot a b))
- (letm ((b (vector-single-float #(3.0f0 4.0f0 5.0f0))))
+ (letm ((b (vector-single-float (a 3.0f0 4.0f0 5.0f0))))
    (euclidean-norm b))
- (letm ((b (vector-single-float #(3.0f0 4.0f0 5.0f0))))
-   (asum b))
- (letm ((b (vector-single-float #(3.0f0 5.0f0 4.0f0))))
-   (imax b))
- (letm ((a (vector-single-float #(1.0f0 2.0f0 3.0f0)))
-	 (b (vector-single-float #(3.0f0 4.0f0 5.0f0))))
-    (setf (data a) #(1.0f0 2.0f0 3.0f0)
-	  (data b) #(3.0f0 4.0f0 5.0f0))
-    (axpy 2.0f0 a b)
-    (data b))
- (letm ((b (vector-single-float #(3.0f0 4.0f0 5.0f0))))
-    (setf (data b) #(3.0f0 4.0f0 5.0f0))
-    (scal 2.0f0 b)
-    (data b))
+ (letm ((b (vector-single-float (a 3.0f0 4.0f0 5.0f0))))
+   (absolute-sum b))
+ (letm ((b (vector-single-float (a 3.0f0 5.0f0 4.0f0))))
+   (index-max b))
+ (letm ((a (vector-single-float (a 1.0f0 2.0f0 3.0f0)))
+	(b (vector-single-float (a 3.0f0 4.0f0 5.0f0))))
+   (axpy 2.0f0 a b)
+   (cl-array b))
+ (letm ((b (vector-single-float (a 3.0f0 4.0f0 5.0f0))))
+   (scale 2.0f0 b)
+   (cl-array b))
  (letm ((a (vector-single-float #(1.0f0 3.0f0)))
-	 (b (vector-single-float #(8.0f0 9.0f0))))
-    (rot a b (/ (sqrt 2.0f0)) (/ (sqrt 2.0f0)))
-    (data b)))
+	(b (vector-single-float #(8.0f0 9.0f0))))
+   (givens-rotation a b (/ (sqrt 2.0f0)) (/ (sqrt 2.0f0)))
+   (cl-array b)))
 
-;;; Before expanding, set 
-;;; (setf *read-default-float-format* 'single-float)
-(make-tests blas1-double
- (letm ((a (vector-double-float #(1.0d0 2.0d0 3.0d0)))
-	(b (vector-double-float #(3.0d0 4.0d0 5.0d0))))
+(save-test blas1-double
+ (letm ((a (vector-double-float (a 1.0d0 2.0d0 3.0d0)))
+	(b (vector-double-float (a 3.0d0 4.0d0 5.0d0))))
    (dot a b))
- (letm ((b (vector-double-float #(3.0d0 4.0d0 5.0d0))))
+ (letm ((b (vector-double-float (a 3.0d0 4.0d0 5.0d0))))
    (euclidean-norm b))
- (letm ((b (vector-double-float #(3.0d0 4.0d0 5.0d0))))
-   (setf (data b) #(3.0d0 4.0d0 5.0d0))
-   (asum b))
- (letm ((b (vector-double-float #(3.0d0 5.0d0 4.0d0))))
-   (setf (data b) #(3.0d0 5.0d0 4.0d0))
-   (imax b))
- (letm ((a (vector-double-float #(1.0d0 2.0d0 3.0d0)))
-	(b (vector-double-float #(3.0d0 4.0d0 5.0d0))))
+ (letm ((b (vector-double-float (a 3.0d0 4.0d0 5.0d0))))
+   (absolute-sum b))
+ (letm ((b (vector-double-float (a 3.0d0 5.0d0 4.0d0))))
+   (index-max b))
+ (letm ((a (vector-double-float (a 1.0d0 2.0d0 3.0d0)))
+	(b (vector-double-float (a 3.0d0 4.0d0 5.0d0))))
    (blas-swap a b)
-   (data a))
- (letm ((a (vector-double-float #(1.0d0 2.0d0 3.0d0)))
-	(b (vector-double-float #(3.0d0 4.0d0 5.0d0))))
+   (cl-array a))
+ (letm ((a (vector-double-float (a 1.0d0 2.0d0 3.0d0)))
+	(b (vector-double-float (a 3.0d0 4.0d0 5.0d0))))
    (blas-copy b a)
-   (data a))
- (letm ((a (vector-double-float #(1.0d0 2.0d0 3.0d0)))
-	(b (vector-double-float #(3.0d0 4.0d0 5.0d0))))
+   (cl-array a))
+ (letm ((a (vector-double-float (a 1.0d0 2.0d0 3.0d0)))
+	(b (vector-double-float (a 3.0d0 4.0d0 5.0d0))))
    (axpy 2.0d0 a b)
-   (data b))
- (letm ((b (vector-double-float #(3.0d0 4.0d0 5.0d0))))
-   (scal 2.0d0 b)
-   (data b))
- (letm ((a (vector-double-float #(1.0d0 3.0d0)))
-	(b (vector-double-float #(8.0d0 9.0d0))))
-   (rot a b (/ (sqrt 2.0d0)) (/ (sqrt 2.0d0)))
-   (data b)))
+   (cl-array b))
+ (letm ((b (vector-double-float (a 3.0d0 4.0d0 5.0d0))))
+   (scale 2.0d0 b)
+   (cl-array b))
+ (letm ((a (vector-double-float (a 1.0d0 3.0d0)))
+	(b (vector-double-float (a 8.0d0 9.0d0))))
+   (givens-rotation a b (/ (sqrt 2.0d0)) (/ (sqrt 2.0d0)))
+   (cl-array b)))
 
 (LISP-UNIT:DEFINE-TEST BLAS1-SINGLE
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
@@ -348,4 +339,3 @@
       (ROT A B (/ (SQRT 2.0d0)) (/ (SQRT 2.0d0)))
       (DATA B)))))
 |#
-
diff --git a/linear-algebra/lu.lisp b/linear-algebra/lu.lisp
index f83883021fbe9634b68e37f06458081e1571ed91..4581bda281b7d313c4e469741b5bdc9823992909 100644
--- a/linear-algebra/lu.lisp
+++ b/linear-algebra/lu.lisp
@@ -1,6 +1,6 @@
 ;; LU decomposition
 ;; Liam Healy, Thu Apr 27 2006 - 12:42
-;; Time-stamp: <2008-09-21 15:25:09EDT lu.lisp>
+;; Time-stamp: <2008-10-25 18:24:40EDT lu.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -144,18 +144,6 @@
     (lu-invert mmat per inv)
     (cl-array inv)))
 
-#|
-(make-tests lu
-	    (invert-matrix
-	     (make-array* '(2 2) 'double-float :initial-contents '(1.0d0 2.0d0 3.0d0 4.0d0))))
-|#
-
-(LISP-UNIT:DEFINE-TEST LU
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    #2A((-1.9999999999999998 1.0)
-	(1.4999999999999998 -0.49999999999999994)))
-   (MULTIPLE-VALUE-LIST
-    (INVERT-MATRIX
-     (MAKE-ARRAY* '(2 2) 'DOUBLE-FLOAT :INITIAL-CONTENTS
-		  '(1.0 2.0 3.0 4.0))))))
+(save-test lu
+ (invert-matrix
+  (make-array* '(2 2) 'double-float :initial-contents '(1.0d0 2.0d0 3.0d0 4.0d0))))
diff --git a/mathematical.lisp b/mathematical.lisp
index 6d1a6017b82a91bf1b1c02dd612d6cec05d4410b..264331e8ba7b3173851b5269342b704e725887c6 100644
--- a/mathematical.lisp
+++ b/mathematical.lisp
@@ -1,6 +1,6 @@
 ;; Mathematical functions
 ;; Liam Healy, Wed Mar  8 2006 - 22:09
-;; Time-stamp: <2008-02-17 09:13:19EST mathematical.lisp>
+;; Time-stamp: <2008-10-25 19:09:09EDT mathematical.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -180,27 +180,18 @@ Function: double gsl_pow_9 (const double x)
 ;;;; Examples and unit test
 ;;;;****************************************************************************
 
-#|
-(make-tests mathematical
+(save-test mathematical
   (log+1 0.001d0)
   (exp-1 0.001d0)
   (hypotenuse 3.0d0 4.0d0))
-|#
 
+#| 
+;;; I would like to add
 (lisp-unit:define-test mathematical
   (lisp-unit:assert-true (nanp +nan+))
   (lisp-unit:assert-false (nanp 1.0d0))
   (lisp-unit:assert-true (finitep 1.0d0))
   (lisp-unit:assert-false (infinityp 1.0d0))
   (lisp-unit:assert-eq 1 (infinityp +positive-infinity+))
-  (lisp-unit:assert-false (finitep +positive-infinity+))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 9.995003330835331d-4)
-   (MULTIPLE-VALUE-LIST (LOG+1 0.001d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.0010005001667083417d0)
-   (MULTIPLE-VALUE-LIST (EXP-1 0.001d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 5.0d0 2.220446049250313d-15)
-   (MULTIPLE-VALUE-LIST (HYPOTENUSE 3.0d0 4.0d0)))
-  (lisp-unit:assert-false (double-float-unequal 1.0d0 1.0d0 0.001d0)))
+  (lisp-unit:assert-false (finitep +positive-infinity+)))
+|#
diff --git a/monte-carlo.lisp b/monte-carlo.lisp
index 674a48c7b7114e4cbd6e04a07ce7dfe7bf42c3eb..201432eeef5474f9cf89b8c4c375dd0982c9c734 100644
--- a/monte-carlo.lisp
+++ b/monte-carlo.lisp
@@ -1,6 +1,6 @@
 ;; Monte Carlo Integration
 ;; Liam Healy Sat Feb  3 2007 - 17:42
-;; Time-stamp: <2008-08-21 21:58:28EDT monte-carlo.lisp>
+;; Time-stamp: <2008-10-25 11:44:35EDT monte-carlo.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -313,21 +313,9 @@
 	 (rng (random-number-generator *mt19937* 0)))
     (monte-carlo-integrate-vegas monte-carlo-g lower upper nsamples rng ws)))
 
-#|
-(make-tests monte-carlo
+(save-test monte-carlo
   (random-walk-plain-example)
   (random-walk-miser-example)
   (random-walk-vegas-example))
-|#
-
-(LISP-UNIT:DEFINE-TEST MONTE-CARLO
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.4122087033540667d0 0.013435861456267064d0)
-   (MULTIPLE-VALUE-LIST (RANDOM-WALK-PLAIN-EXAMPLE)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.3895297058825096d0 0.0050106269732269415d0)
-   (MULTIPLE-VALUE-LIST (RANDOM-WALK-MISER-EXAMPLE)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.3931632739551914d0 1.4981164744582692d-4)
-   (MULTIPLE-VALUE-LIST (RANDOM-WALK-VEGAS-EXAMPLE))))
+
 
diff --git a/numerical-differentiation.lisp b/numerical-differentiation.lisp
index f36d4bcd0084c5529fcf0b1dd3954b515c730da8..2b248a9b96268f78d22644ee13118c32e5ecd289 100644
--- a/numerical-differentiation.lisp
+++ b/numerical-differentiation.lisp
@@ -1,6 +1,6 @@
 ;; Numerical differentiation.                
 ;; Liam Healy Mon Nov 12 2007 - 22:07
-;; Time-stamp: <2008-09-20 18:23:28EDT numerical-differentiation.lisp>
+;; Time-stamp: <2008-10-25 12:00:36EDT numerical-differentiation.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -102,27 +102,25 @@
 (forward-derivative deriv-f6 10.0d0 1.0d-4)
 (backward-derivative deriv-f6 10.0d0 1.0d-4)
 
-#|
-(make-tests numerical-differentiation
-	    (central-derivative deriv-f1 1.0d0 1.0d-4)
-	    (forward-derivative deriv-f1 1.0d0 1.0d-4)
-	    (backward-derivative deriv-f1 1.0d0 1.0d-4)
-	    (central-derivative deriv-f2 0.1d0 1.0d-4)
-	    (forward-derivative deriv-f2 0.1d0 1.0d-4)
-	    (backward-derivative deriv-f2 0.1d0 1.0d-4)
-	    (central-derivative deriv-f3 0.45d0 1.0d-4)
-	    (forward-derivative deriv-f3 0.45d0 1.0d-4)
-	    (backward-derivative deriv-f3 0.45d0 1.0d-4)
-	    (central-derivative deriv-f4 0.5d0 1.0d-4)
-	    (forward-derivative deriv-f4 0.5d0 1.0d-4)
-	    (backward-derivative deriv-f4 0.5d0 1.0d-4)
-	    (central-derivative deriv-f5 0.0d0 1.0d-4)
-	    (forward-derivative deriv-f5 0.0d0 1.0d-4)
-	    (backward-derivative deriv-f5 0.0d0 1.0d-4)
-	    (central-derivative deriv-f6 10.0d0 1.0d-4)
-	    (forward-derivative deriv-f6 10.0d0 1.0d-4)
-	    (backward-derivative deriv-f6 10.0d0 1.0d-4))
-|#
+(save-test numerical-differentiation
+	   (central-derivative deriv-f1 1.0d0 1.0d-4)
+	   (forward-derivative deriv-f1 1.0d0 1.0d-4)
+	   (backward-derivative deriv-f1 1.0d0 1.0d-4)
+	   (central-derivative deriv-f2 0.1d0 1.0d-4)
+	   (forward-derivative deriv-f2 0.1d0 1.0d-4)
+	   (backward-derivative deriv-f2 0.1d0 1.0d-4)
+	   (central-derivative deriv-f3 0.45d0 1.0d-4)
+	   (forward-derivative deriv-f3 0.45d0 1.0d-4)
+	   (backward-derivative deriv-f3 0.45d0 1.0d-4)
+	   (central-derivative deriv-f4 0.5d0 1.0d-4)
+	   (forward-derivative deriv-f4 0.5d0 1.0d-4)
+	   (backward-derivative deriv-f4 0.5d0 1.0d-4)
+	   (central-derivative deriv-f5 0.0d0 1.0d-4)
+	   (forward-derivative deriv-f5 0.0d0 1.0d-4)
+	   (backward-derivative deriv-f5 0.0d0 1.0d-4)
+	   (central-derivative deriv-f6 10.0d0 1.0d-4)
+	   (forward-derivative deriv-f6 10.0d0 1.0d-4)
+	   (backward-derivative deriv-f6 10.0d0 1.0d-4))
 
 (LISP-UNIT:DEFINE-TEST NUMERICAL-DIFFERENTIATION
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
diff --git a/numerical-integration.lisp b/numerical-integration.lisp
index b2e163190c468e48ed4b76b2a309d0affbd2d583..f1b755e02015c3983a5ed91bfc6e830c30caf2c6 100644
--- a/numerical-integration.lisp
+++ b/numerical-integration.lisp
@@ -1,6 +1,6 @@
 ;; Numerical integration
 ;; Liam Healy, Wed Jul  5 2006 - 23:14
-;; Time-stamp: <2008-09-16 22:43:59EDT numerical-integration.lisp>
+;; Time-stamp: <2008-10-25 11:35:53EDT numerical-integration.lisp>
 ;; $Id$
 
 ;;; To do: QAWS, QAWO, QAWF, more tests
@@ -226,28 +226,10 @@
   (defun-single two-sine (x) (sin (* mult x))))
 |#
 
-#|
-(make-tests numerical-integration
+(save-test numerical-integration
   (integration-qng one-sine 0.0d0 pi)
   (letm ((ws (integration-workspace 20)))
      (integration-QAG one-sine 0.0d0 pi :gauss15 20 ws))
   (letm ((ws (integration-workspace 20)))
      (integration-QAG one-sine 0.0d0 pi :gauss15 50 ws)))
 
-|#
-
-(LISP-UNIT:DEFINE-TEST NUMERICAL-INTEGRATION
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 2.0d0 2.220446049250313d-14 21)
-   (MULTIPLE-VALUE-LIST
-    (INTEGRATION-QNG ONE-SINE 0.0d0 PI)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 2.0d0 2.220446049250313d-14)
-   (MULTIPLE-VALUE-LIST
-    (LETM ((WS (INTEGRATION-WORKSPACE 20)))
-      (INTEGRATION-QAG ONE-SINE 0.0d0 PI :GAUSS15 20
-		       WS))))
-  (LISP-UNIT:ASSERT-ERROR
-   'GSL-CONDITION
-   (LETM ((WS (INTEGRATION-WORKSPACE 20)))
-     (INTEGRATION-QAG ONE-SINE 0.0d0 PI :GAUSS15 50 WS))))
diff --git a/polynomial.lisp b/polynomial.lisp
index 41bde745b8c5bb0ae4394fb99bfc731adad69ef8..97e93abae009eb29c769441914de84569555c6e9 100644
--- a/polynomial.lisp
+++ b/polynomial.lisp
@@ -1,6 +1,6 @@
 ;; Polynomials
 ;; Liam Healy, Tue Mar 21 2006 - 18:33
-;; Time-stamp: <2008-09-14 22:01:10EDT polynomial.lisp>
+;; Time-stamp: <2008-10-25 11:47:01EDT polynomial.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -171,8 +171,7 @@
 ;;;; Examples and unit test
 ;;;;****************************************************************************
 
-#|
-(make-tests polynomial
+(save-test polynomial
  (letm ((xa (vector-double-float (a 0.0d0 1.0d0 2.0d0 3.0d0)))
 	(ya (vector-double-float (a 2.5d0 7.2d0 32.7d0 91.0d0)))
 	(dd (vector-double-float 4)))
@@ -191,55 +190,4 @@
  (solve-cubic-complex -1.0d0 1.0d0 -1.0d0)
  ;; Example from GSL manual
  (polynomial-solve (a double-float -1.0d0 0.0d0 0.0d0 0.0d0 0.0d0 1.0d0)))
-|#
-
-(LISP-UNIT:DEFINE-TEST POLYNOMIAL
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST (LIST 2.5d0 7.2d0 32.7d0 91.0d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM
-	((XA (VECTOR-DOUBLE-FLOAT (A 0.0d0 1.0d0 2.0d0 3.0d0)))
-	 (YA (VECTOR-DOUBLE-FLOAT (A 2.5d0 7.2d0 32.7d0 91.0d0)))
-	 (DD (VECTOR-DOUBLE-FLOAT 4)))
-      (DIVIDED-DIFFERENCE DD XA YA)
-      (LIST
-       (POLYNOMIAL-EVAL-DIVIDED-DIFFERENCE DD XA 0.0d0)
-       (POLYNOMIAL-EVAL-DIVIDED-DIFFERENCE DD XA 1.0d0)
-       (POLYNOMIAL-EVAL-DIVIDED-DIFFERENCE DD XA 2.0d0)
-       (POLYNOMIAL-EVAL-DIVIDED-DIFFERENCE DD XA 3.0d0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 2.0d0)
-   (MULTIPLE-VALUE-LIST
-    (LETM ((VEC (VECTOR-DOUBLE-FLOAT (A 1.0d0 2.0d0 3.0d0))))
-      (POLYNOMIAL-EVAL VEC -1.0d0))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST (LIST) (LIST))
-   (MULTIPLE-VALUE-LIST
-    (SOLVE-QUADRATIC 1.0d0 0.0d0 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.0d0 1.0d0)
-   (MULTIPLE-VALUE-LIST (SOLVE-QUADRATIC 1.0d0 -2.0d0 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #C(1.0d0 0.0d0) #C(1.0d0 0.0d0))
-   (MULTIPLE-VALUE-LIST
-    (SOLVE-QUADRATIC-COMPLEX 1.0d0 -2.0d0 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST -3.000000000000001d0 1.9999999999999996d0
-	 7.000000000000001d0)
-   (MULTIPLE-VALUE-LIST
-    (SOLVE-CUBIC -6.0d0 -13.0d0 42.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #C(-5.551115123125783d-17 -0.9999999999999999d0)
-	 #C(-5.551115123125783d-17 0.9999999999999999d0)
-	 #C(1.0d0 0.0d0))
-   (MULTIPLE-VALUE-LIST
-    (SOLVE-CUBIC-COMPLEX -1.0d0 1.0d0 -1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #C(-0.8090169943749477d0 0.5877852522924734d0)
-	 #C(-0.8090169943749477d0 -0.5877852522924734d0)
-	 #C(0.3090169943749475d0 0.951056516295153d0)
-	 #C(0.3090169943749475d0 -0.951056516295153d0)
-	 #C(0.9999999999999999d0 0.0d0))
-   (MULTIPLE-VALUE-LIST
-    (POLYNOMIAL-SOLVE
-     (A DOUBLE-FLOAT -1.0d0 0.0d0 0.0d0 0.0d0 0.0d0 1.0d0)))))
+
diff --git a/random/bernoulli.lisp b/random/bernoulli.lisp
index f9462dc1b29c716463ae7b46663ee42fa526634a..37eca427f46588f29ffeca694b44d4ab37c3b78e 100644
--- a/random/bernoulli.lisp
+++ b/random/bernoulli.lisp
@@ -1,6 +1,6 @@
 ;; Bernoulli distribution
 ;; Liam Healy, Sat Nov 25 2006 - 16:59
-;; Time-stamp: <2008-02-17 13:39:15EST bernoulli.lisp>
+;; Time-stamp: <2008-10-25 12:08:06EDT bernoulli.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -25,23 +25,11 @@
   p, using the formula given in #'bernoulli.")
 
 ;;; Examples and unit test
-#|
-(make-tests bernoulli
+(save-test bernoulli
   (letm ((rng (random-number-generator *mt19937* 0)))
      (loop for i from 0 to 10
 	   collect
 	   (bernoulli rng 0.5d0)))
   (bernoulli-pdf 0 0.5d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST BERNOULLI
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST (LIST 0 1 1 0 1 1 0 0 0 0 0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (BERNOULLI RNG 0.5d0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.5d0)
-   (MULTIPLE-VALUE-LIST (BERNOULLI-PDF 0 0.5d0))))
+b
 
diff --git a/random/beta.lisp b/random/beta.lisp
index 21efdd302783eab512672026c9d74efe14212af5..4122cfb2f50131c6adcc5cb44c3cafb77f54ab7f 100644
--- a/random/beta.lisp
+++ b/random/beta.lisp
@@ -1,6 +1,6 @@
 ;; Beta distribution
 ;; Liam Healy, Sat Sep 30 2006
-;; Time-stamp: <2008-09-20 21:20:32EDT beta.lisp>
+;; Time-stamp: <2008-10-25 12:08:05EDT beta.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -52,8 +52,7 @@
    Q(x) for the beta distribution with parameters a and b.")
 
 ;;; Examples and unit test
-#|
-(make-tests beta
+(save-test beta
   (letm ((rng (random-number-generator *mt19937* 0)))
       (loop for i from 0 to 10
 	    collect
@@ -63,35 +62,6 @@
   (beta-Q 0.1d0 1.0d0 2.0d0)
   (beta-Pinv 0.19d0 1.0d0 2.0d0)
   (beta-Qinv 0.81d0 1.0d0 2.0d0))
-|#
 
-(LISP-UNIT:DEFINE-TEST BETA
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 0.3935474359990073 0.7063621551518341
-	  0.044515648447265056 0.09286083229785232
-	  0.210544366728104 0.010114317425185686
-	  0.4595767375719009 0.1515157002550483
-	  0.1731331145031117 0.4270743075655188
-	  0.3353314142479658))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	   (BETA-RD RNG 1.0 2.0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.8000000000000016)
-   (MULTIPLE-VALUE-LIST (BETA-PDF 0.1 1.0 2.0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.19000000000000017)
-   (MULTIPLE-VALUE-LIST (BETA-P 0.1 1.0 2.0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.8099999999999998)
-   (MULTIPLE-VALUE-LIST (BETA-Q 0.1 1.0 2.0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.09999999999999992)
-   (MULTIPLE-VALUE-LIST (BETA-PINV 0.19 1.0 2.0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.09999999999999988)
-   (MULTIPLE-VALUE-LIST (BETA-QINV 0.81 1.0 2.0))))
 
 
diff --git a/random/binomial.lisp b/random/binomial.lisp
index 305a66b1aa7ba5892def64ea0297b293d2a3577d..a949266d2a951647b360a03805140f1d18d2083b 100644
--- a/random/binomial.lisp
+++ b/random/binomial.lisp
@@ -1,6 +1,6 @@
 ;; Binomial distribution
 ;; Liam Healy, Sat Nov 25 2006 - 16:00
-;; Time-stamp: <2008-02-17 13:46:01EST binomial.lisp>
+;; Time-stamp: <2008-10-25 12:09:46EDT binomial.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -40,8 +40,7 @@
    with parameters p and n.")
 
 ;;; Examples and unit test
-#|
-(make-tests binomial
+(save-test binomial
   (letm ((rng (random-number-generator *mt19937* 0)))
      (loop for i from 0 to 10
 	   collect
@@ -49,22 +48,5 @@
   (binomial-pdf 5 0.4d0 12)
   (binomial-P 5 0.4d0 12)
   (binomial-Q 5 0.4d0 12))
-|#
 
-(LISP-UNIT:DEFINE-TEST BINOMIAL
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST (LIST 11 3 4 8 4 5 8 6 5 6 6))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (BINOMIAL RNG 0.4d0 12)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.22703033548799986d0)
-   (MULTIPLE-VALUE-LIST (BINOMIAL-PDF 5 0.4d0 12)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.6652085575680018d0)
-   (MULTIPLE-VALUE-LIST (BINOMIAL-P 5 0.4d0 12)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.33479144243199815d0)
-   (MULTIPLE-VALUE-LIST (BINOMIAL-Q 5 0.4d0 12))))
 
diff --git a/random/cauchy.lisp b/random/cauchy.lisp
index fbf661fc451a4964d1ee4623dba60c9d99cd901e..4a40c88e4dfdcc5513a465b9e857921b05d51910 100644
--- a/random/cauchy.lisp
+++ b/random/cauchy.lisp
@@ -1,6 +1,6 @@
 ;; Cauchy distribution
 ;; Liam Healy, Sat Sep 30 2006
-;; Time-stamp: <2008-02-17 12:55:30EST cauchy.lisp>
+;; Time-stamp: <2008-10-25 12:13:41EDT cauchy.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -54,8 +54,7 @@
    Q(x) for the Cauchy distribution with scale parameter a.")
 
 ;;; Examples and unit test
-#|
-(make-tests cauchy
+(save-test cauchy
   (letm ((rng (random-number-generator *mt19937* 0)))
       (loop for i from 0 to 10
 	    collect
@@ -65,35 +64,4 @@
   (cauchy-Q 1.0d0 2.0d0)
   (cauchy-Pinv 0.6475836176504333d0 2.0d0)
   (cauchy-Qinv 0.35241638234956674d0 2.0d0))
-|#
 
-(LISP-UNIT:DEFINE-TEST CAUCHY
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST -0.00811319915595434d0 5.617196410586812d0
-	  12.292369828923075d0 -1.6741088357812182d0
-	  8.909104486260928d0 211.6765861544609d0
-	  -1.3439049184367153d0 -10.364363282910663d0
-	  -79.0709314248171d0 -10.652071087998578d0
-	  -9.393948243493877d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (CAUCHY RNG 10.0d0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.03183098861837907d0)
-   (MULTIPLE-VALUE-LIST (CAUCHY-PDF 0.0d0 10.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.6475836176504333d0)
-   (MULTIPLE-VALUE-LIST (CAUCHY-P 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.35241638234956674d0)
-   (MULTIPLE-VALUE-LIST (CAUCHY-Q 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.9999999999999998d0)
-   (MULTIPLE-VALUE-LIST
-    (CAUCHY-PINV 0.6475836176504333d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.0000000000000002d0)
-   (MULTIPLE-VALUE-LIST
-    (CAUCHY-QINV 0.35241638234956674d0 2.0d0))))
diff --git a/random/chi-squared.lisp b/random/chi-squared.lisp
index 0e34fe6b3e1b7e1c39c357432d65350b42796942..4e812a18d734c47c90e517798bd04ba922fb6588 100644
--- a/random/chi-squared.lisp
+++ b/random/chi-squared.lisp
@@ -1,6 +1,6 @@
 ;; Chi-squared distribution
 ;; Liam Healy, Sat Oct  7 2006 - 16:13
-;; Time-stamp: <2008-09-20 21:23:34EDT chi-squared.lisp>
+;; Time-stamp: <2008-10-25 12:13:41EDT chi-squared.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -52,8 +52,7 @@
    Q(x) for the chi-squared distribution with nu degrees of freedom.")
 
 ;;; Examples and unit test
-#|
-(make-tests chi-squared
+(save-test chi-squared
   (letm ((rng (random-number-generator *mt19937* 0)))
       (loop for i from 0 to 10
 	    collect
@@ -63,37 +62,6 @@
   (chi-squared-Q 0.5d0 1.0d0)
   (chi-squared-Pinv 0.5204998778130463d0 1.0d0)
   (chi-squared-Qinv 0.4795001221869537d0 1.0d0))
-|#
 
-(LISP-UNIT:DEFINE-TEST CHI-SQUARED
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 13.043328884186328 11.427227829236712
-	  16.55811815484942 7.128795406995407
-	  5.120266499239882 10.464572605669142
-	  5.8126929867006405 8.784940866479005
-	  7.559275305609187 8.35181083950897
-	  4.140798004825149))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	   (CHI-SQUARED RNG 10.0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.43939128946772227)
-   (MULTIPLE-VALUE-LIST (CHI-SQUARED-PDF 0.5 1.0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.5204998778130462)
-   (MULTIPLE-VALUE-LIST (CHI-SQUARED-P 0.5 1.0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.4795001221869538)
-   (MULTIPLE-VALUE-LIST (CHI-SQUARED-Q 0.5 1.0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.5000000000000003)
-   (MULTIPLE-VALUE-LIST
-    (CHI-SQUARED-PINV 0.5204998778130463 1.0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.5000000000000003)
-   (MULTIPLE-VALUE-LIST
-    (CHI-SQUARED-QINV 0.4795001221869537 1.0))))
 
 
diff --git a/random/dirichlet.lisp b/random/dirichlet.lisp
index 492539651b6475d0fc470f7081677ef4caefa762..c77e6b547ce36857e100cd73a4df84b70fea5f6a 100644
--- a/random/dirichlet.lisp
+++ b/random/dirichlet.lisp
@@ -1,6 +1,6 @@
 ;; Dirichlet distribution
 ;; Liam Healy, Sun Oct 29 2006
-;; Time-stamp: <2008-09-20 21:24:25EDT dirichlet.lisp>
+;; Time-stamp: <2008-10-25 12:13:42EDT dirichlet.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -55,8 +55,7 @@
    alpha[K].")
 
 ;;; Examples and unit test
-#|
-(make-tests dirichlet
+(save-test dirichlet
   (letm ((rng (random-number-generator *mt19937* 0))
 	   (alpha (vector-double-float (a 1.0d0 2.0d0 3.0d0 4.0d0)))
 	   (theta (vector-double-float 4)))
@@ -68,32 +67,6 @@
   (letm ((alpha (vector-double-float (a 1.0d0 2.0d0 3.0d0 4.0d0)))
 	  (theta (vector-double-float (a 0.1d0 0.3d0 0.4d0 0.2d0))))
      (dirichlet-log-pdf alpha theta)))
-|#
 
-(LISP-UNIT:DEFINE-TEST DIRICHLET
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    #(0.12448073544131681 0.19182353706734917
-      0.46054388544826397 0.22315184204307006))
-   (MULTIPLE-VALUE-LIST
-    (LETM
-	((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0))
-	 (ALPHA (VECTOR-DOUBLE-FLOAT (A 1.0 2.0 3.0 4.0)))
-	 (THETA (VECTOR-DOUBLE-FLOAT 4)))
-      (DIRICHLET RNG ALPHA THETA) (CL-ARRAY THETA))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 2.8800000000000043)
-   (MULTIPLE-VALUE-LIST
-    (LETM
-	((ALPHA (VECTOR-DOUBLE-FLOAT (A 1.0 2.0 3.0 4.0)))
-	 (THETA (VECTOR-DOUBLE-FLOAT (A 0.1 0.3 0.4 0.2))))
-      (DIRICHLET-PDF ALPHA THETA))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.057790294147856)
-   (MULTIPLE-VALUE-LIST
-    (LETM
-	((ALPHA (VECTOR-DOUBLE-FLOAT (A 1.0 2.0 3.0 4.0)))
-	 (THETA (VECTOR-DOUBLE-FLOAT (A 0.1 0.3 0.4 0.2))))
-      (DIRICHLET-LOG-PDF ALPHA THETA)))))
 
 
diff --git a/random/discrete.lisp b/random/discrete.lisp
index d1a78b514d571564b7cd12316a0cc44c3ae8dfeb..08602820148d87c8d6a07a14869e693d742d2ff0 100644
--- a/random/discrete.lisp
+++ b/random/discrete.lisp
@@ -1,6 +1,6 @@
 ;; Discrete random variables
 ;; Liam Healy, Sat Nov 11 2006 - 21:51
-;; Time-stamp: <2008-09-14 21:44:32EDT discrete.lisp>
+;; Time-stamp: <2008-10-25 12:14:54EDT discrete.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -50,8 +50,7 @@
    around.")
 
 ;;; Examples and unit test
-#|
-(make-tests discrete
+(save-test discrete
    ;; Must have two letms because the vector value is not set until
    ;; the body, but the discrete-random needs that set value.
    (letm ((probabilities (vector-double-float (a 0.25d0 0.5d0 0.25d0))))
@@ -63,22 +62,6 @@
    (letm ((probabilities (vector-double-float (a 0.25d0 0.5d0 0.25d0))))
       (letm ((table (discrete-random probabilities)))
 	(discrete-pdf 1 table))))
-|#
 
-(LISP-UNIT:DEFINE-TEST DISCRETE
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST (LIST 1 0 1 1 0 1 1 2 1 2 2))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((PROBABILITIES (VECTOR-DOUBLE-FLOAT (A 0.25d0 0.5d0 0.25d0))))
-      (LETM ((TABLE (DISCRETE-RANDOM PROBABILITIES))
-	   (RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-	(LOOP FOR I FROM 0 TO 10 COLLECT
-	     (DISCRETE RNG TABLE))))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.5d0)
-   (MULTIPLE-VALUE-LIST
-    (LETM ((PROBABILITIES (VECTOR-DOUBLE-FLOAT (A 0.25d0 0.5d0 0.25d0))))
-      (LETM ((TABLE (DISCRETE-RANDOM PROBABILITIES)))
-	(DISCRETE-PDF 1 TABLE))))))
 
 
diff --git a/random/exponential-power.lisp b/random/exponential-power.lisp
index 2e0b2abddf79b4a944acffafdddf82b9b156784b..121e4088ecaeb0c7a03cda5089f15aa1f26f1fe1 100644
--- a/random/exponential-power.lisp
+++ b/random/exponential-power.lisp
@@ -1,6 +1,6 @@
 ;; Exponential power distribution
 ;; Liam Healy, Sat Sep 30 2006
-;; Time-stamp: <2008-02-17 12:53:01EST exponential-power.lisp>
+;; Time-stamp: <2008-10-25 13:23:31EDT exponential-power.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -43,8 +43,7 @@
   parameters a and b.")
 
 ;;; Examples and unit test
-#|
-(make-tests exponential-power
+(save-test exponential-power
   (letm ((rng (random-number-generator *mt19937* 0)))
       (loop for i from 0 to 10
 	    collect
@@ -52,30 +51,4 @@
   (exponential-power-pdf 0.0d0 1.0d0 2.0d0)
   (exponential-power-P 1.0d0 1.0d0 2.0d0)
   (exponential-power-Q 1.0d0 1.0d0 2.0d0))
-|#
 
-(LISP-UNIT:DEFINE-TEST EXPONENTIAL-POWER
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 0.09469475592777954d0 -0.06229680875327071d0
-	  1.183985538537803d0 0.5187626019237904d0
-	  0.7053564314063956d0 -0.9033303844569821d0
-	  -1.6947336289940842d0 -0.4803236108055401d0
-	  -0.027641736349912214d0 0.6318391856046153d0
-	  -0.012478875227423025d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (EXPONENTIAL-POWER RNG 1.0d0 2.0d0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.5641895835477557d0)
-   (MULTIPLE-VALUE-LIST
-    (EXPONENTIAL-POWER-PDF 0.0d0 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.9213503964748571d0)
-   (MULTIPLE-VALUE-LIST
-    (EXPONENTIAL-POWER-P 1.0d0 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.07864960352514248d0)
-   (MULTIPLE-VALUE-LIST
-    (EXPONENTIAL-POWER-Q 1.0d0 1.0d0 2.0d0))))
diff --git a/random/exponential.lisp b/random/exponential.lisp
index febc9c0bc3450ae9d100246d8c2c146f04a16ba6..8b129d7db984d5352fa873fa26c9dae77331574d 100644
--- a/random/exponential.lisp
+++ b/random/exponential.lisp
@@ -1,6 +1,6 @@
 ;; Exponential distribution
 ;; Liam Healy, Sat Sep  2 2006 - 19:04
-;; Time-stamp: <2008-02-17 12:34:11EST exponential.lisp>
+;; Time-stamp: <2008-10-25 13:21:30EDT exponential.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -52,8 +52,7 @@
    Q(x) for the exponential distribution with mean mu.")
 
 ;;; Examples and unit test
-#|
-(make-tests exponential
+(save-test exponential
   (letm ((rng (random-number-generator *mt19937* 0)))
       (loop for i from 0 to 10
 	    collect
@@ -63,38 +62,4 @@
   (exponential-q 1.0d0 2.0d0)
   (exponential-pinv 0.3934693402873666d0 2.0d0)
   (exponential-qinv 0.6065306597126334d0 2.0d0))
-|#
 
-(LISP-UNIT:DEFINE-TEST EXPONENTIAL
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 0.0025828444588394794d0 18.145581427987647d0
-	  12.636598054339759d0 0.5424387252062355d0
-	  14.624994234158105d0 7.236607929535993d0
-	  0.4345362449683603d0 2.95303920904529d0
-	  6.161052939065796d0 3.011686333539114d0
-	  2.7451079819355364d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (EXPONENTIAL RNG 10.0d0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST 0.1d0)
-				     (MULTIPLE-VALUE-LIST
-				      (EXPONENTIAL-PDF
-				       0.0d0 10.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.3934693402873666d0)
-   (MULTIPLE-VALUE-LIST (EXPONENTIAL-P 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.6065306597126334d0)
-   (MULTIPLE-VALUE-LIST (EXPONENTIAL-Q 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST 1.0d0)
-				     (MULTIPLE-VALUE-LIST
-				      (EXPONENTIAL-PINV
-				       0.3934693402873666d0
-				       2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST 1.0d0)
-				     (MULTIPLE-VALUE-LIST
-				      (EXPONENTIAL-QINV
-				       0.6065306597126334d0
-				       2.0d0))))
diff --git a/random/fdist.lisp b/random/fdist.lisp
index 8d1458d950807fd6f2c1530f589b6c9cdd96777b..5b4d6b749aa3a789e7fb663a20d16486f12cfaee 100644
--- a/random/fdist.lisp
+++ b/random/fdist.lisp
@@ -1,6 +1,6 @@
 ;; Fdist distribution
 ;; Liam Healy, Sat Sep 30 2006
-;; Time-stamp: <2008-09-20 21:25:00EDT fdist.lisp>
+;; Time-stamp: <2008-10-25 13:25:15EDT fdist.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -60,8 +60,7 @@
    nu1 and nu2 degrees of freedom.")
 
 ;;; Examples and unit test
-#|
-(make-tests fdist
+(save-test fdist
   (letm ((rng (random-number-generator *mt19937* 0)))
       (loop for i from 0 to 10
 	    collect
@@ -71,38 +70,3 @@
   (fdist-Q 1.2d0 1.0d0 2.0d0)
   (fdist-Pinv 0.612372435695795d0 1.0d0 2.0d0)
   (fdist-Qinv 0.38762756430420503d0 1.0d0 2.0d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST FDIST
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 18.411308904958695 5.120881381831058
-	  18.104535265974707 0.15934280606960227
-	  0.06272171507636773 2.2809441726456456
-	  0.5259458753395939 1.8256109001076744
-	  0.845346894458977 2.5212086970057763
-	  0.5212415547032052))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	   (FDIST RNG 1.0 2.0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.1594719884624466)
-   (MULTIPLE-VALUE-LIST (FDIST-PDF 1.2 1.0 2.0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.6123724356957948)
-   (MULTIPLE-VALUE-LIST (FDIST-P 1.2 1.0 2.0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.3876275643042052)
-   (MULTIPLE-VALUE-LIST (FDIST-Q 1.2 1.0 2.0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST 1.2)
-				     (MULTIPLE-VALUE-LIST
-				      (FDIST-PINV
-				       0.612372435695795
-				       1.0 2.0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.1999999999999995)
-   (MULTIPLE-VALUE-LIST
-    (FDIST-QINV 0.38762756430420503 1.0 2.0))))
-
-
diff --git a/random/flat.lisp b/random/flat.lisp
index 95c65c432efb5813f1abaea75c293295a80b9cf5..5f19b8f9694fc45412d07aede94471c6874e949e 100644
--- a/random/flat.lisp
+++ b/random/flat.lisp
@@ -1,6 +1,6 @@
 ;; Flat distribution
 ;; Liam Healy, Oct  7 2006
-;; Time-stamp: <2008-02-17 13:08:10EST flat.lisp>
+;; Time-stamp: <2008-10-25 13:26:12EDT flat.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -52,8 +52,7 @@
    Q(x) for a uniform distribution from a to b.")
 
 ;;; Examples and unit test
-#|
-(make-tests flat
+(save-test flat
   (letm ((rng (random-number-generator *mt19937* 0)))
       (loop for i from 0 to 10
 	    collect
@@ -63,36 +62,3 @@
   (flat-Q 1.2d0 1.0d0 2.0d0)
   (flat-Pinv 0.19999999999999996d0 1.0d0 2.0d0)
   (flat-Qinv 0.8d0 1.0d0 2.0d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST FLAT
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 1.999741748906672d0 1.1629098753910512d0
-	  1.2826178052928299d0 1.9472010820172727d0
-	  1.2316565427463502d0 1.4849736143369228d0
-	  1.9574769565369934d0 1.7443053431343287d0
-	  1.540043658344075d0 1.7399529814720154d0
-	  1.7599437981843948d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (FLAT RNG 1.0d0 2.0d0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.0d0)
-   (MULTIPLE-VALUE-LIST (FLAT-PDF 1.2d0 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.19999999999999996d0)
-   (MULTIPLE-VALUE-LIST (FLAT-P 1.2d0 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.8d0)
-   (MULTIPLE-VALUE-LIST (FLAT-Q 1.2d0 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.2d0)
-   (MULTIPLE-VALUE-LIST
-    (FLAT-PINV 0.19999999999999996d0 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.2d0)
-   (MULTIPLE-VALUE-LIST
-    (FLAT-QINV 0.8d0 1.0d0 2.0d0))))
-
diff --git a/random/gamma.lisp b/random/gamma.lisp
index 37ebaa592e30ef474d56666c3028e5afde377bc9..2749ac79a3762930b466f30bed1a530d9c835561 100644
--- a/random/gamma.lisp
+++ b/random/gamma.lisp
@@ -1,6 +1,6 @@
 ;; Gamma distribution
 ;; Liam Healy, Sat Sep 30 2006
-;; Time-stamp: <2008-09-20 21:25:37EDT gamma.lisp>
+;; Time-stamp: <2008-10-25 13:30:58EDT gamma.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -62,8 +62,7 @@
    Q(x) for the Gamma distribution with parameters a and b.")
 
 ;;; Examples and unit test
-#|
-(make-tests gamma-randist
+(save-test gamma-randist
  (letm ((rng (random-number-generator *mt19937* 0)))
    (loop for i from 0 to 10
 	 collect
@@ -77,49 +76,3 @@
  (gamma-Q 0.1d0 1.0d0 2.0d0)
  (gamma-Pinv 0.048770575499286005d0 1.0d0 2.0d0)
  (gamma-Qinv 0.951229424500714d0 1.0d0 2.0d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST GAMMA-RANDIST
-                       (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-                        (LIST
-                         (LIST 3.012983063768798 2.216796987787054
-                               5.033971231985026 0.6152002566487763
-                               0.1876159751197978 1.7884608326846099
-                               0.30812625873110316 1.1328459017528132
-                               0.7363931539298727 0.9843618987581162
-                               0.06871686155296197))
-                        (MULTIPLE-VALUE-LIST
-                         (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-                               (LOOP FOR I FROM 0 TO 10 COLLECT
-                                     (GAMMA-RD RNG 1.0 2.0)))))
-                       (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-                        (LIST
-                         (LIST 3.012983063768798 2.216796987787054
-                               5.033971231985026 0.6152002566487763
-                               0.1876159751197978 1.7884608326846099
-                               0.30812625873110316 1.1328459017528132
-                               0.7363931539298727 0.9843618987581162
-                               0.06871686155296197))
-                        (MULTIPLE-VALUE-LIST
-                         (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-                               (LOOP FOR I FROM 0 TO 10 COLLECT
-                                     (GAMMA-MT RNG 1.0 2.0)))))
-                       (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-                        (LIST 0.475614712250357)
-                        (MULTIPLE-VALUE-LIST (GAMMA-PDF 0.1 1.0 2.0)))
-                       (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-                        (LIST 0.04877057549928599)
-                        (MULTIPLE-VALUE-LIST (GAMMA-P 0.1 1.0 2.0)))
-                       (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-                        (LIST 0.951229424500714)
-                        (MULTIPLE-VALUE-LIST (GAMMA-Q 0.1 1.0 2.0)))
-                       (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-                        (LIST 0.10000000000000006)
-                        (MULTIPLE-VALUE-LIST
-                         (GAMMA-PINV 0.048770575499286005 1.0 2.0)))
-                       (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-                        (LIST 0.10000000000000003)
-                        (MULTIPLE-VALUE-LIST
-                         (GAMMA-QINV 0.951229424500714 1.0 2.0))))
-
-
diff --git a/random/gaussian-bivariate.lisp b/random/gaussian-bivariate.lisp
index 4ff703f1b0071a1b76a8c6850561cf8bb6ba0ebf..d2659731d251ccfe97357a747a35d25ab4e58ace 100644
--- a/random/gaussian-bivariate.lisp
+++ b/random/gaussian-bivariate.lisp
@@ -1,6 +1,6 @@
 ;; Gaussian bivariate distribution
 ;; Liam Healy, Sat Sep  2 2006 - 16:32
-;; Time-stamp: <2008-02-17 12:32:10EST gaussian-bivariate.lisp>
+;; Time-stamp: <2008-10-25 13:30:58EDT gaussian-bivariate.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -33,15 +33,13 @@
    rho, using the formula given for bivariate-gaussian.")
 
 ;;; Examples and unit test
-#|
-(make-tests gaussian-bivariate
+(save-test gaussian-bivariate
   (letm ((rng (random-number-generator *mt19937* 0)))
       (loop for i from 0 to 10
 	    collect
 	    (bivariate-gaussian rng 1.0d0 0.75d0 0.25d0)))
   (bivariate-gaussian-pdf 0.25d0 0.5d0 0.25d0
 			   0.4d0 0.2d0))
-|#
 
 (LISP-UNIT:DEFINE-TEST GAUSSIAN-BIVARIATE
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
diff --git a/random/gaussian-tail.lisp b/random/gaussian-tail.lisp
index d0d47132270aacc1a718d3d0faa8651e5b102e61..470423b4470e4fd9ae526c05203a33d9cadfad51 100644
--- a/random/gaussian-tail.lisp
+++ b/random/gaussian-tail.lisp
@@ -1,6 +1,6 @@
 ;; Gaussian tail distribution
 ;; Liam Healy, Mon Aug 21 2006 - 21:52
-;; Time-stamp: <2008-02-17 12:28:20EST gaussian-tail.lisp>
+;; Time-stamp: <2008-10-25 13:33:16EDT gaussian-tail.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -44,8 +44,7 @@
   "Equivalent to gaussian-tail-pdf with sigma=1.")
 
 ;;; Examples and unit test
-#|
-(make-tests
+(save-test
  gaussian-tail
  (letm ((rng (random-number-generator *mt19937* 0)))
    (loop for i from 0 to 10
@@ -57,37 +56,3 @@
 	   collect
 	   (ugaussian-tail rng 5.0d0)))
  (ugaussian-tail-pdf 5.2d0 5.0d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST GAUSSIAN-TAIL
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 50.10837030381376d0 51.42695945309931d0
-	  50.587160269982604d0 50.59875222444504d0
-	  50.82830572864337d0 50.43343112125345d0
-	  53.442286287287374d0 51.83761714183811d0
-	  53.00107421429086d0 52.149774169929884d0
-	  50.11572443504253d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (GAUSSIAN-TAIL RNG 50.0d0 10.0d0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.18702270877331703d0)
-   (MULTIPLE-VALUE-LIST
-    (GAUSSIAN-TAIL-PDF 52.0d0 50.0d0 10.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 5.010837030381376d0 5.142695945309931d0
-	  5.05871602699826d0 5.0598752224445045d0
-	  5.082830572864337d0 5.043343112125345d0
-	  5.344228628728738d0 5.183761714183811d0
-	  5.300107421429086d0 5.214977416992989d0
-	  5.011572443504253d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (UGAUSSIAN-TAIL RNG 5.0d0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.8702270877331704d0)
-   (MULTIPLE-VALUE-LIST (UGAUSSIAN-TAIL-PDF 5.2d0 5.0d0))))
diff --git a/random/gaussian.lisp b/random/gaussian.lisp
index b46530c6dd1927885d489cad1a41855f12cdc3bb..048b9dbe5571a03a16c58cb91835536507f5d6af 100644
--- a/random/gaussian.lisp
+++ b/random/gaussian.lisp
@@ -1,6 +1,6 @@
 ;; Gaussian distribution
 ;; Liam Healy, Sun Jul 16 2006 - 22:09
-;; Time-stamp: <2008-09-20 21:28:07EDT gaussian.lisp>
+;; Time-stamp: <2008-10-25 13:30:56EDT gaussian.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -126,8 +126,7 @@
    distribution with unit standard deviation.")
 
 ;;; Examples and unit test
-#|
-(make-tests
+(save-test
  gaussian
  (letm ((rng (random-number-generator *mt19937* 0)))
    (loop for i from 0 to 10
@@ -143,48 +142,3 @@
  (ugaussian-q 2.0d0)
  (ugaussian-pinv 0.9772498680518208d0)
  (ugaussian-qinv 0.02275013194817921d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST GAUSSIAN
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 1.3391860811867589 -0.8810099183143839
-	  16.744084062537738 7.336411072925795
-	  9.975246316020124 -12.775020810027664
-	  -23.967152827332075 -6.79280164729211
-	  -0.3909131843358723 8.935555455208181
-	  -0.17647794589783283))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	   (GAUSSIAN RNG 10.0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.039894228040143274)
-   (MULTIPLE-VALUE-LIST (GAUSSIAN-PDF 0.0 10.0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 7.648734260124924 -11.307312946196086
-	  4.523361654215173 -4.5181725947577185
-	  13.64676540828912 3.553650119391929
-	  -5.567035948404032 10.097727863788887
-	  2.519120940798607 -9.024585521868676
-	  -9.463283369593537))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	   (GAUSSIAN-ZIGGURAT RNG 10.0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.9772498680518208)
-   (MULTIPLE-VALUE-LIST (UGAUSSIAN-P 2.0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.022750131948179212)
-   (MULTIPLE-VALUE-LIST (UGAUSSIAN-Q 2.0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST 2.0)
-				     (MULTIPLE-VALUE-LIST
-				      (UGAUSSIAN-PINV
-				       0.9772498680518208)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST 2.0)
-				     (MULTIPLE-VALUE-LIST
-				      (UGAUSSIAN-QINV
-				       0.02275013194817921))))
-
diff --git a/random/generators.lisp b/random/generators.lisp
index 400e47e5add405486db70aacb0bb94b6de1dc7cf..fea2aa8b15c4b1822223ec2a391a352f90a8b83a 100644
--- a/random/generators.lisp
+++ b/random/generators.lisp
@@ -1,6 +1,6 @@
 ;; Generators of random numbers.
 ;; Liam Healy, Sat Jul 15 2006 - 14:43
-;; Time-stamp: <2008-08-23 19:17:26EDT generators.lisp>
+;; Time-stamp: <2008-10-25 13:34:33EDT generators.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -237,33 +237,11 @@
 ;;;; Examples and unit test
 ;;;;****************************************************************************
 
-#|
-(make-tests random-number-generators
+(save-test random-number-generators
  (letm ((rng (random-number-generator *mt19937* 0)))
    (loop for i from 0 to 10
 	 collect
 	 (uniform-fixnum rng 1000)))
  (letm ((rng (random-number-generator *cmrg* 0)))
    (loop for i from 0 to 10 collect (uniform rng))))
-|#
-
-(LISP-UNIT:DEFINE-TEST RANDOM-NUMBER-GENERATORS
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 999 162 282 947 231 484 957 744 540 739 759))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (UNIFORM-FIXNUM RNG 1000)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 0.11177622997750353d0 0.9591667949963206d0
-	  0.8415268011584537d0 0.9254037136795947d0
-	  0.27540698474059205d0 0.7093040573919677d0
-	  0.5541333041871588d0 0.8806957769583426d0
-	  0.597139396982798d0 0.7518741133398722d0
-	  0.9311084621265104d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *CMRG* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (UNIFORM RNG))))))
+
diff --git a/random/geometric.lisp b/random/geometric.lisp
index 11612e9c6a06a48f10f98de47987a878836374b0..7ed944bf3979b0626f93a41817047361fb764d44 100644
--- a/random/geometric.lisp
+++ b/random/geometric.lisp
@@ -1,6 +1,6 @@
 ;; Geometric distribution
 ;; Liam Healy, Sat Nov 25 2006 - 16:00
-;; Time-stamp: <2008-02-17 13:45:43EST geometric.lisp>
+;; Time-stamp: <2008-10-25 13:35:34EDT geometric.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -41,8 +41,7 @@
   Q(k) for the geometric distribution with parameters p.")
 
 ;;; Examples and unit test
-#|
-(make-tests geometric
+(save-test geometric
   (letm ((rng (random-number-generator *mt19937* 0)))
      (loop for i from 0 to 10
 	   collect
@@ -50,22 +49,3 @@
   (geometric-pdf 2 0.4d0)
   (geometric-P 2 0.4d0)
   (geometric-Q 2 0.4d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST GEOMETRIC
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST (LIST 1 4 3 1 3 2 1 1 2 1 1))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (GEOMETRIC RNG 0.4d0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.24d0)
-   (MULTIPLE-VALUE-LIST (GEOMETRIC-PDF 2 0.4d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.64d0)
-   (MULTIPLE-VALUE-LIST (GEOMETRIC-P 2 0.4d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.36d0)
-   (MULTIPLE-VALUE-LIST (GEOMETRIC-Q 2 0.4d0))))
-
diff --git a/random/gumbel1.lisp b/random/gumbel1.lisp
index 502fb2df9cfd2c1088d27000c14d087d8cf31afe..904f62cb99783332b28b1e8f18427be2c59772e5 100644
--- a/random/gumbel1.lisp
+++ b/random/gumbel1.lisp
@@ -1,6 +1,6 @@
 ;; The Gumbel type 1 random number distribution
 ;; Liam Healy, Sun Oct 29 2006
-;; Time-stamp: <2008-02-17 13:30:24EST gumbel1.lisp>
+;; Time-stamp: <2008-10-25 13:37:01EDT gumbel1.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -56,8 +56,7 @@
   parameters a and b.")
 
 ;;; Examples and unit test
-#|
-(make-tests gumbel1
+(save-test gumbel1
   (letm ((rng (random-number-generator *mt19937* 0)))
       (loop for i from 0 to 10
 	    collect (gumbel1 rng 1.0d0 2.0d0)))
@@ -66,36 +65,5 @@
   (gumbel1-Q 0.1d0 1.0d0 2.0d0)
   (gumbel1-Pinv 0.1637073598773166d0 1.0d0 2.0d0)
   (gumbel1-Qinv 0.8362926401226833d0 1.0d0 2.0d0))
-|#
 
-(LISP-UNIT:DEFINE-TEST GUMBEL1
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 8.954596257487015d0 0.0973051899750762d0
-	  0.45913506233088003d0 3.6074124224293223d0
-	  0.31300027468174807d0 1.0165796949651174d0
-	  3.8292081936610396d0 1.912897393181305d0
-	  1.17748457894919d0 1.893232107970416d0
-	  1.9859118616847695d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (GUMBEL1 RNG 1.0d0 2.0d0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.29625708964974956d0)
-   (MULTIPLE-VALUE-LIST (GUMBEL1-PDF 0.1d0 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.1637073598773166d0)
-   (MULTIPLE-VALUE-LIST (GUMBEL1-P 0.1d0 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.8362926401226833d0)
-   (MULTIPLE-VALUE-LIST (GUMBEL1-Q 0.1d0 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.10000000000000007d0)
-   (MULTIPLE-VALUE-LIST
-    (GUMBEL1-PINV 0.1637073598773166d0 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.10000000000000028d0)
-   (MULTIPLE-VALUE-LIST
-    (GUMBEL1-QINV 0.8362926401226833d0 1.0d0 2.0d0))))
 
diff --git a/random/gumbel2.lisp b/random/gumbel2.lisp
index a42f6ade542c02f4ad6f20944ab9008ed8bddc1b..0cff266aa96fdab87a2132370d9c2c62f2e469d2 100644
--- a/random/gumbel2.lisp
+++ b/random/gumbel2.lisp
@@ -1,6 +1,6 @@
 ;; The Gumbel type 2 random number distribution
 ;; Liam Healy, Sun Oct 29 2006
-;; Time-stamp: <2008-02-17 13:32:16EST gumbel2.lisp>
+;; Time-stamp: <2008-10-25 13:38:04EDT gumbel2.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -54,8 +54,7 @@
   parameters a and b.")
 
 ;;; Examples and unit test
-#|
-(make-tests gumbel2
+(save-test gumbel2
   (letm ((rng (random-number-generator *mt19937* 0)))
       (loop for i from 0 to 10
 	    collect
@@ -65,35 +64,3 @@
   (gumbel2-Q 10.0d0 1.0d0 2.0d0)
   (gumbel2-Pinv 0.8187307530779818d0 1.0d0 2.0d0)
   (gumbel2-Qinv 0.18126924692201815d0 1.0d0 2.0d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST GUMBEL2
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 7743.400858519516d0 1.102196701680339d0
-	  1.5827044520998628d0 36.87052393317972d0
-	  1.3675219066608615d0 2.7637257945633085d0
-	  46.026080060263446d0 6.772683525074477d0
-	  3.2461983686562204d0 6.640797807286079d0
-	  7.285687897019733d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (GUMBEL2 RNG 1.0d0 2.0d0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.053625603682851145d0)
-   (MULTIPLE-VALUE-LIST (GUMBEL2-PDF 5.0d0 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.8187307530779818d0)
-   (MULTIPLE-VALUE-LIST (GUMBEL2-P 10.0d0 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.18126924692201815d0)
-   (MULTIPLE-VALUE-LIST (GUMBEL2-Q 10.0d0 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 9.999999999999998d0)
-   (MULTIPLE-VALUE-LIST
-    (GUMBEL2-PINV 0.8187307530779818d0 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 10.0d0)
-   (MULTIPLE-VALUE-LIST (GUMBEL2-QINV 0.18126924692201815d0 1.0d0 2.0d0))))
-
diff --git a/random/hypergeometric.lisp b/random/hypergeometric.lisp
index f16aa493688fba7f6a9773202c6c041a9b2180a1..95673b9b4a2be4d6af025ec337f89dafca8dca40 100644
--- a/random/hypergeometric.lisp
+++ b/random/hypergeometric.lisp
@@ -1,6 +1,6 @@
 ;; Hypergeometric distribution
 ;; Liam Healy, Sat Nov 25 2006 - 16:00
-;; Time-stamp: <2008-02-17 15:35:14EST hypergeometric.lisp>
+;; Time-stamp: <2008-10-25 13:39:43EDT hypergeometric.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -46,8 +46,7 @@
    hypergeometric distribution with parameters n1, n2, and tt.")
 
 ;;; Examples and unit test
-#|
-(make-tests hypergeometric-randist
+(save-test hypergeometric-randist
   (letm ((rng (random-number-generator *mt19937* 0)))
      (loop for i from 0 to 10
 	   collect
@@ -55,22 +54,5 @@
   (hypergeometric-pdf 0 2 6 3)
   (hypergeometric-P 1 2 6 3)
   (hypergeometric-Q 1 2 6 3))
-|#
 
-(LISP-UNIT:DEFINE-TEST HYPERGEOMETRIC-RANDIST
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST (LIST 2 1 0 0 1 1 3 1 0 1 3))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (HYPERGEOMETRIC RNG 3 6 3)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.35714285714285693d0)
-   (MULTIPLE-VALUE-LIST (HYPERGEOMETRIC-PDF 0 2 6 3)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.892857142857143d0)
-   (MULTIPLE-VALUE-LIST (HYPERGEOMETRIC-P 1 2 6 3)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.10714285714285704d0)
-   (MULTIPLE-VALUE-LIST (HYPERGEOMETRIC-Q 1 2 6 3))))
 
diff --git a/random/landau.lisp b/random/landau.lisp
index 4964f722059064bc6997d329f85941ad5c988ad6..39031dd792df8faae282b16bf95011c9dc02fa4d 100644
--- a/random/landau.lisp
+++ b/random/landau.lisp
@@ -1,6 +1,6 @@
 ;; Landau distribution
 ;; Liam Healy, Sat Sep 30 2006
-;; Time-stamp: <2008-02-17 13:01:50EST landau.lisp>
+;; Time-stamp: <2008-10-25 13:41:16EDT landau.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -27,28 +27,8 @@
    in #'landau.")
 
 ;;; Examples and unit test
-#|
-(make-tests landau
+(save-test landau
   (letm ((rng (random-number-generator *mt19937* 0)))
       (loop for i from 0 to 10
 	    collect (landau rng)))
   (landau-pdf 0.25d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST LANDAU
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 3880.037426254597d0 -0.6953200314545297d0
-	  -0.02354364646600932d0 21.329209630030316d0
-	  -0.3062224704714883d0 1.2424186669362394d0
-	  26.146168479649152d0 4.337217640968217d0
-	  1.6799546281085946d0 4.2475719218268395d0
-	  4.681506208977819d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (LANDAU RNG)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.17331968995860203d0)
-   (MULTIPLE-VALUE-LIST (LANDAU-PDF 0.25d0))))
-
diff --git a/random/laplace.lisp b/random/laplace.lisp
index 977e0ec9fc2de1a8a9340bafcf8bab754665f079..de57514aeef1e390742725e4e4271d6e4cc7da6c 100644
--- a/random/laplace.lisp
+++ b/random/laplace.lisp
@@ -1,6 +1,6 @@
 ;; Exponential distribution
 ;; Liam Healy, Sun Sep 17 2006
-;; Time-stamp: <2008-02-17 12:50:28EST laplace.lisp>
+;; Time-stamp: <2008-10-25 13:42:41EDT laplace.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -52,8 +52,7 @@
    Q(x) for the laplace distribution with width a.")
 
 ;;; Examples and unit test
-#|
-(make-tests laplace
+(save-test laplace
   (letm ((rng (random-number-generator *mt19937* 0)))
       (loop for i from 0 to 10
 	    collect
@@ -63,33 +62,3 @@
   (laplace-q 1.0d0 2.0d0)
   (laplace-pinv 0.6967346701436833d0 2.0d0)
   (laplace-qinv 0.3032653298563167d0 2.0d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST LAPLACE
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 0.005166356198580803d0 -3.942577717493807d0
-	  -8.329510281601332d0 1.1159975704649974d0
-	  -6.2234038148786555d0 -35.04800398421181d0
-	  0.8888158320028845d0 7.161892491969776d0
-	  25.24637780914261d0 7.341651048064451d0
-	  6.54142651602034d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (LAPLACE RNG 10.0d0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.05d0)
-   (MULTIPLE-VALUE-LIST (LAPLACE-PDF 0.0d0 10.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.6967346701436833d0)
-   (MULTIPLE-VALUE-LIST (LAPLACE-P 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.3032653298563167d0)
-   (MULTIPLE-VALUE-LIST (LAPLACE-Q 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.0d0)
-   (MULTIPLE-VALUE-LIST (LAPLACE-PINV 0.6967346701436833d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.0d0)
-   (MULTIPLE-VALUE-LIST (LAPLACE-QINV 0.3032653298563167d0 2.0d0))))
diff --git a/random/levy.lisp b/random/levy.lisp
index 848e9d9f57b9d70748903d43a4c35e99ce2bea64..2c8234751ef6922df0e8eb057bec5de1163d2a2e 100644
--- a/random/levy.lisp
+++ b/random/levy.lisp
@@ -1,6 +1,6 @@
 ;; Levy distribution
 ;; Liam Healy, Sat Sep 30 2006
-;; Time-stamp: <2008-02-17 13:03:36EST levy.lisp>
+;; Time-stamp: <2008-10-25 17:52:43EDT levy.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -42,10 +42,8 @@
    become extremely wide.  The symmetric distribution corresponds to \beta = 0.
    The algorithm only works for 0 < \alpha \le 2.")
 
-
 ;;; Examples and unit test
-#|
-(make-tests levy
+(save-test levy
   (letm ((rng (random-number-generator *mt19937* 0)))
       (loop for i from 0 to 10
 	    collect
@@ -54,31 +52,3 @@
       (loop for i from 0 to 10
 	    collect
 	    (levy-skew rng 1.0d0 2.0d0 1.0d0))))
-|#
-
-(LISP-UNIT:DEFINE-TEST LEVY
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 2.6941098332360465d0 -0.29395438644676647d0
-	  -1.2703401352272083d0 1.0771538640113538d0
-	  0.13771218406916103d0 0.9419728438107844d0
-	  -0.5107134674789159d0 0.1648207853689268d0
-	  -0.14857899041035147d0 -1.9074885744364487d0
-	  -2.086195213997167d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (LEVY RNG 1.0d0 2.0d0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 2.6941098332360465d0 -0.2939543864467665d0
-	  -1.2703401352272083d0 1.0771538640113538d0
-	  0.13771218406916097d0 0.9419728438107844d0
-	  -0.510713467478916d0 0.1648207853689266d0
-	  -0.14857899041035158d0 -1.907488574436449d0
-	  -2.086195213997167d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (LEVY-SKEW RNG 1.0d0 2.0d0 1.0d0))))))
-
diff --git a/random/logarithmic.lisp b/random/logarithmic.lisp
index 35cf384355d8c03318bbb051de3cd5d40ca1528e..fae4e3e2aa1aeb4ba98308559eb61a81f70f464c 100644
--- a/random/logarithmic.lisp
+++ b/random/logarithmic.lisp
@@ -1,6 +1,6 @@
 ;; Logarithmic distribution
 ;; Liam Healy, Sat Nov 25 2006 - 16:00
-;; Time-stamp: <2008-02-17 15:36:14EST logarithmic.lisp>
+;; Time-stamp: <2008-10-25 17:53:40EDT logarithmic.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -24,23 +24,9 @@
    using the formula given in #'logarithmic.")
 
 ;;; Examples and unit test
-#|
-(make-tests logarithmic
+(save-test logarithmic
   (letm ((rng (random-number-generator *mt19937* 0)))
      (loop for i from 0 to 10
 	   collect
 	   (logarithmic rng 0.9d0)))
   (logarithmic-pdf 2 0.4d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST LOGARITHMIC
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST (LIST 1 3 1 4 1 1 2 1 1 5 2))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (LOGARITHMIC RNG 0.9d0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.15660921511769743d0)
-   (MULTIPLE-VALUE-LIST (LOGARITHMIC-PDF 2 0.4d0))))
-
diff --git a/random/logistic.lisp b/random/logistic.lisp
index 0d51f8a6139902e5af3ab7ad0e5bdc87722bfe7f..828d06ea22852549f515c789a57ec8120190eb0b 100644
--- a/random/logistic.lisp
+++ b/random/logistic.lisp
@@ -1,6 +1,6 @@
 ;; Logistic distribution
 ;; Liam Healy, Sat Oct  7 2006 - 16:13
-;; Time-stamp: <2008-02-17 13:20:11EST logistic.lisp>
+;; Time-stamp: <2008-10-25 17:54:29EDT logistic.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -51,8 +51,7 @@
    Q(x) for the logistic distribution with scale parameter a.")
 
 ;;; Examples and unit test
-#|
-(make-tests logistic
+(save-test logistic
   (letm ((rng (random-number-generator *mt19937* 0)))
       (loop for i from 0 to 10
 	    collect
@@ -62,36 +61,3 @@
   (logistic-Q 0.5d0 1.0d0)
   (logistic-Pinv 0.6224593312018546d0 1.0d0)
   (logistic-Qinv 0.37754066879814546d0 1.0d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST LOGISTIC
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 82.6131993192451d0 -16.367346042668906d0
-	  -9.31513272043762d0 28.87020708710654d0
-	  -11.989809875784625d0 -0.6012364762000397d0
-	  31.142555263622d0 10.684673721048895d0
-	  1.6051840954024446d0 10.457241904701199d0
-	  11.523714106294097d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (LOGISTIC RNG 10.0d0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.2350037122015945d0)
-   (MULTIPLE-VALUE-LIST (LOGISTIC-PDF 0.5d0 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.6224593312018546d0)
-   (MULTIPLE-VALUE-LIST (LOGISTIC-P 0.5d0 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.37754066879814546d0)
-   (MULTIPLE-VALUE-LIST (LOGISTIC-Q 0.5d0 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.5000000000000001d0)
-   (MULTIPLE-VALUE-LIST
-    (LOGISTIC-PINV 0.6224593312018546d0 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.4999999999999998d0)
-   (MULTIPLE-VALUE-LIST
-    (LOGISTIC-QINV 0.37754066879814546d0 1.0d0))))
-
diff --git a/random/lognormal.lisp b/random/lognormal.lisp
index f4f6f38137ee257f4e0d0e5f88c64966ea6cb796..3c7df8890461b1bf733f585256b63c6c5b9887bb 100644
--- a/random/lognormal.lisp
+++ b/random/lognormal.lisp
@@ -1,6 +1,6 @@
 ;; Lognormal distribution
 ;; Liam Healy, Sat Sep 30 2006
-;; Time-stamp: <2008-02-17 13:10:13EST lognormal.lisp>
+;; Time-stamp: <2008-10-25 17:57:40EDT lognormal.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -55,8 +55,7 @@
    zeta and sigma.")
 
 ;;; Examples and unit test
-#|
-(make-tests lognormal
+(save-test lognormal
   (letm ((rng (random-number-generator *mt19937* 0)))
       (loop for i from 0 to 10
 	    collect
@@ -66,7 +65,6 @@
   (lognormal-Q 1.2d0 1.0d0 2.0d0)
   (lognormal-Pinv 0.3413288272347352d0 1.0d0 2.0d0)
   (lognormal-Qinv 0.6586711727652649d0 1.0d0 2.0d0))
-|#
 
 (LISP-UNIT:DEFINE-TEST LOGNORMAL
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
diff --git a/random/multinomial.lisp b/random/multinomial.lisp
index 31c614b936dcd1d1e8a2ee1609550b4927f8b2bf..f26579dd767cfa1aa6d14cada8c2bb6388d22759 100644
--- a/random/multinomial.lisp
+++ b/random/multinomial.lisp
@@ -1,6 +1,6 @@
 ;; Multinomial distribution
 ;; Liam Healy, Sat Nov 25 2006 - 16:00
-;; Time-stamp: <2008-09-14 21:40:55EDT multinomial.lisp>
+;; Time-stamp: <2008-10-25 18:04:19EDT multinomial.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -48,43 +48,15 @@
    with parameters p[K], using the formula given for #'multinomial.")
 
 ;;; Examples and unit test
-#|
-(make-tests multinomial
-  (letm ((rng (random-number-generator *mt19937* 0))
-	  (p (vector-double-float (a 0.1d0 0.2d0 0.3d0 0.4d0)))
-	  (n (vector-fixnum 4)))
-     (multinomial rng 8 p n)
-     (cl-array n))
-  (letm ((p (vector-double-float (a 0.1d0 0.2d0 0.3d0 0.4d0)))
-	  (n (vector-fixnum 4) (a 5 0 1 2)))
-     (multinomial-pdf p N))
-  (letm ((p (vector-double-float (a 0.1d0 0.2d0 0.3d0 0.4d0)))
-	  (n (vector-fixnum 4) (a 5 0 1 2)))
-     (multinomial-log-pdf p n)))
-
-(LISP-UNIT:DEFINE-TEST MULTINOMIAL
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #(5 0 1 2))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0))
-	 (P (VECTOR-DOUBLE-FLOAT #(0.1d0 0.2d0 0.3d0 0.4d0)))
-	 (N (VECTOR-FIXNUM 4)))
-      (MULTINOMIAL RNG 8 P N)
-      (DATA N))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 8.064000000000026d-5)
-   (MULTIPLE-VALUE-LIST
-    (LETM
-	((P (VECTOR-DOUBLE-FLOAT #(0.1d0 0.2d0 0.3d0 0.4d0)))
-	 (N (VECTOR-FIXNUM 4)))
-      (SETF (DATA N) #(5 0 1 2)) (MULTINOMIAL-PDF P N))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST -9.425515753641212d0)
-   (MULTIPLE-VALUE-LIST
-    (LETM
-	((P (VECTOR-DOUBLE-FLOAT #(0.1d0 0.2d0 0.3d0 0.4d0)))
-	 (N (VECTOR-FIXNUM 4)))
-      (SETF (DATA N) #(5 0 1 2))
-      (MULTINOMIAL-LOG-PDF P N)))))
-
-|#
+(save-test multinomial
+ (letm ((rng (random-number-generator *mt19937* 0))
+	(p (vector-double-float (a 0.1d0 0.2d0 0.3d0 0.4d0)))
+	(n (vector-signed-byte-32 4)))
+   (multinomial rng 8 p n)
+   (cl-array n))
+ (letm ((p (vector-double-float (a 0.1d0 0.2d0 0.3d0 0.4d0)))
+	(n (vector-signed-byte-32 (a 5 0 1 2))))
+   (multinomial-pdf p N))
+ (letm ((p (vector-double-float (a 0.1d0 0.2d0 0.3d0 0.4d0)))
+	(n (vector-signed-byte-32 (a 5 0 1 2))))
+   (multinomial-log-pdf p n)))
diff --git a/random/negative-binomial.lisp b/random/negative-binomial.lisp
index ffb5e9dc7dc6efeca7c9d8220559958b78d39c4d..78724186944e33d62098f5af40ffe91773816278 100644
--- a/random/negative-binomial.lisp
+++ b/random/negative-binomial.lisp
@@ -1,6 +1,6 @@
 ;; Negative binomial and Pascal distributions
 ;; Liam Healy, Sat Nov 25 2006 - 16:00
-;; Time-stamp: <2008-09-20 21:28:50EDT negative-binomial.lisp>
+;; Time-stamp: <2008-10-25 18:06:14EDT negative-binomial.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -88,8 +88,7 @@
 ;;;; Examples and unit test
 ;;;;****************************************************************************
 
-#|
-(make-tests negative-binomial
+(save-test negative-binomial
   (letm ((rng (random-number-generator *mt19937* 0)))
      (loop for i from 0 to 10
 	   collect
@@ -104,7 +103,6 @@
   (pascal-pdf 5 0.4d0 12)
   (pascal-P 5 0.4d0 12)
   (pascal-Q 5 0.4d0 12))
-|#
 
 (LISP-UNIT:DEFINE-TEST NEGATIVE-BINOMIAL
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
diff --git a/random/pareto.lisp b/random/pareto.lisp
index b49df9c44c49295766b05e93f8fbd24aad832e53..e86f324e9e2daa75ade2b1a54c4e6d1750d6c070 100644
--- a/random/pareto.lisp
+++ b/random/pareto.lisp
@@ -1,6 +1,6 @@
 ;; Pareto distribution
 ;; Liam Healy, Sat Oct  8 2006 - 21:23
-;; Time-stamp: <2008-02-17 13:23:00EST pareto.lisp>
+;; Time-stamp: <2008-10-25 18:07:27EDT pareto.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -52,8 +52,7 @@
    Q(x) for the Pareto distribution with exponent a and scale b.")
 
 ;;; Examples and unit test
-#|
-(make-tests pareto
+(save-test pareto
   (letm ((rng (random-number-generator *mt19937* 0)))
       (loop for i from 0 to 10
 	    collect
@@ -63,36 +62,3 @@
   (pareto-Q 3.5d0 1.3d0 2.0d0)
   (pareto-Pinv 0.5168849835182453d0 1.3d0 2.0d0)
   (pareto-Qinv 0.4831150164817547d0 1.3d0 2.0d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST PARETO
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 2.0005166356083666d0 12.276726596218747d0
-	  7.076694965937239d0 2.111484074469764d0
-	  8.633470811095883d0 4.123935696449152d0
-	  2.0888231161547828d0 2.6870692498025632d0
-	  3.703404287965457d0 2.7028744394290123d0
-	  2.631773566385122d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (PARETO RNG 1.0d0 2.0d0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.5116034405707658d0)
-   (MULTIPLE-VALUE-LIST (PARETO-PDF 1.5d0 1.3d0 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.5168849835182453d0)
-   (MULTIPLE-VALUE-LIST (PARETO-P 3.5d0 1.3d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.4831150164817547d0)
-   (MULTIPLE-VALUE-LIST (PARETO-Q 3.5d0 1.3d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 3.5000000000000004d0)
-   (MULTIPLE-VALUE-LIST
-    (PARETO-PINV 0.5168849835182453d0 1.3d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 3.5000000000000004d0)
-   (MULTIPLE-VALUE-LIST
-    (PARETO-QINV 0.4831150164817547d0 1.3d0 2.0d0))))
-
diff --git a/random/poisson.lisp b/random/poisson.lisp
index e9fb8248d03ad692fb92c1d7e0f56f2f3d1949fd..062d54ea74dd938f6f5b93c3448370d9733fe15a 100644
--- a/random/poisson.lisp
+++ b/random/poisson.lisp
@@ -1,6 +1,6 @@
 ;; Poisson distribution
 ;; Liam Healy, Sat Nov 25 2006 - 16:00
-;; Time-stamp: <2008-02-17 13:38:14EST poisson.lisp>
+;; Time-stamp: <2008-10-25 18:08:19EDT poisson.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -38,8 +38,7 @@
   Q(k) for the Poisson distribution with parameter mu.")
 
 ;;; Examples and unit test
-#|
-(make-tests poisson
+(save-test poisson
   (letm ((rng (random-number-generator *mt19937* 0)))
      (loop for i from 0 to 10
 	   collect
@@ -47,22 +46,3 @@
   (poisson-pdf 8 10.0d0)
   (poisson-P 8 10.0d0)
   (poisson-Q 8 10.0d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST POISSON
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST (LIST 15 6 9 9 5 8 11 9 11 5 10))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (POISSON RNG 10.0d0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.11259903214902009d0)
-   (MULTIPLE-VALUE-LIST (POISSON-PDF 8 10.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.3328196787507177d0)
-   (MULTIPLE-VALUE-LIST (POISSON-P 8 10.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.6671803212492823d0)
-   (MULTIPLE-VALUE-LIST (POISSON-Q 8 10.0d0))))
-
diff --git a/random/quasi.lisp b/random/quasi.lisp
index 74354f6b95018368c388edb4db04528b7ab6b069..39eef30ea557497fbb3411a9d1e6562a93f0ac76 100644
--- a/random/quasi.lisp
+++ b/random/quasi.lisp
@@ -1,6 +1,6 @@
 ;; Quasi-random sequences in arbitrary dimensions.
 ;; Liam Healy, Sun Jul 16 2006 - 15:54
-;; Time-stamp: <2008-09-14 22:01:42EDT quasi.lisp>
+;; Time-stamp: <2008-10-25 18:09:21EDT quasi.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -125,25 +125,10 @@
   "gsl_qrng_sobol")
 
 ;;; Examples and unit test
-#|
-(make-tests quasi-random-number-generators
+(save-test quasi-random-number-generators
   ;; This example is given in the GSL documentation
   (letm ((gen (quasi-random-number-generator 2 *sobol*))
 	  (vec (vector-double-float 2)))
      (loop repeat 5
 	   do (qrng-get gen vec)
 	   append (coerce (cl-array vec) 'list))))
-|#
-
-(LISP-UNIT:DEFINE-TEST QUASI-RANDOM-NUMBER-GENERATORS
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 0.5d0 0.5d0 0.75d0 0.25d0 0.25d0 0.75d0 0.375d0
-	  0.375d0 0.875d0 0.875d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM
-	((GEN (QUASI-RANDOM-NUMBER-GENERATOR 2 *SOBOL*))
-	 (VEC (VECTOR-DOUBLE-FLOAT 2)))
-      (LOOP REPEAT 5 DO (QRNG-GET GEN VEC) APPEND
-	    (COERCE (CL-ARRAY VEC) 'LIST))))))
-
diff --git a/random/rayleigh-tail.lisp b/random/rayleigh-tail.lisp
index 8995cf5152d63ec8cde2ab7f13d13aaa1e02ff99..ee3f3f0b02c4a076356182cdbc2bc7596be71c98 100644
--- a/random/rayleigh-tail.lisp
+++ b/random/rayleigh-tail.lisp
@@ -1,6 +1,6 @@
 ;; Rayleigh tail distribution
 ;; Liam Healy, Sat Sep 30 2006
-;; Time-stamp: <2008-02-17 13:00:06EST rayleigh-tail.lisp>
+;; Time-stamp: <2008-10-25 18:16:47EDT rayleigh-tail.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -25,28 +25,8 @@
    lower limit a, using the formula given in #'rayleigh-tail.")
 
 ;;; Examples and unit test
-#|
-(make-tests rayleigh-tail
+(save-test rayleigh-tail
   (letm ((rng (random-number-generator *mt19937* 0)))
       (loop for i from 0 to 10
 	    collect (rayleigh-tail rng 1.0d0 10.0d0)))
   (rayleigh-tail-pdf 0.25d0 -2.0d0 2.0d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST RAYLEIGH-TAIL
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 1.0255032370386696d0 19.0764679267351d0
-	  15.928966102255199d0 3.4422048899106383d0
-	  17.131838333441106d0 12.071957529361999d0
-	  3.112992916690818d0 7.749889301203328d0
-	  11.145450138119857d0 7.825198187316554d0
-	  7.476774681552917d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (RAYLEIGH-TAIL RNG 1.0d0 10.0d0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.10224317624874313d0)
-   (MULTIPLE-VALUE-LIST
-    (RAYLEIGH-TAIL-PDF 0.25d0 -2.0d0 2.0d0))))
diff --git a/random/rayleigh.lisp b/random/rayleigh.lisp
index 35104da482f59f6b98f1da3d97df0c9127e8a759..a77c1c8fa1bffbbf4cc0bcfed40d9c5d4ef6e1c9 100644
--- a/random/rayleigh.lisp
+++ b/random/rayleigh.lisp
@@ -1,6 +1,6 @@
 ;; Rayleigh distribution
 ;; Liam Healy, Sat Sep 30 2006
-;; Time-stamp: <2008-02-17 18:45:41EST rayleigh.lisp>
+;; Time-stamp: <2008-10-25 18:11:18EDT rayleigh.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -56,8 +56,7 @@
   parameter sigma.")
 
 ;;; Examples and unit test
-#|
-(make-tests rayleigh
+(save-test rayleigh
   (letm ((rng (random-number-generator *mt19937* 0)))
       (loop for i from 0 to 10
 	    collect
@@ -67,36 +66,3 @@
   (rayleigh-Q 1.0d0 2.0d0)
   (rayleigh-Pinv 0.1175030974154046d0 2.0d0)
   (rayleigh-Qinv 0.8824969025845955d0 2.0d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST RAYLEIGH
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 0.22728151965522753d0 19.05023959323748d0
-	  15.897545756713367d0 3.2937477899992147d0
-	  17.102628005168157d0 12.030467929000928d0
-	  2.9480035446666624d0 7.6851014424603274d0
-	  11.100498132125239d0 7.76103902005281d0
-	  7.409599155063027d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (RAYLEIGH RNG 10.0d0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.4412484512922977d0)
-   (MULTIPLE-VALUE-LIST (RAYLEIGH-PDF 0.5d0 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.1175030974154046d0)
-   (MULTIPLE-VALUE-LIST (RAYLEIGH-P 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.8824969025845955d0)
-   (MULTIPLE-VALUE-LIST (RAYLEIGH-Q 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.0000000000000002d0)
-   (MULTIPLE-VALUE-LIST
-    (RAYLEIGH-PINV 0.1175030974154046d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.9999999999999998d0)
-   (MULTIPLE-VALUE-LIST
-    (RAYLEIGH-QINV 0.8824969025845955d0 2.0d0))))
-
diff --git a/random/shuffling-sampling.lisp b/random/shuffling-sampling.lisp
index 4595a248542cbaecc683c9038c988b3659e8c05e..1fe33b9b2f5f9fbc5c60ff2a09ac1a834c510539 100644
--- a/random/shuffling-sampling.lisp
+++ b/random/shuffling-sampling.lisp
@@ -1,6 +1,6 @@
 ;; Shuffling and sampling
 ;; Liam Healy, Sat Dec  2 2006 - 18:40
-;; Time-stamp: <2008-09-14 21:41:43EDT shuffling-sampling.lisp>
+;; Time-stamp: <2008-10-25 18:16:45EDT shuffling-sampling.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -56,46 +56,18 @@
    in this case.")
 
 ;;; Examples and unit test
-#|
-(make-tests shuffling-sampling
+(save-test shuffling-sampling
  (letm ((rng (random-number-generator *mt19937* 0))
-	(v1 (vector-fixnum #(1 2 3 4 5 6 7 8))))
+	(v1 (vector-signed-byte-32 (a 1 2 3 4 5 6 7 8))))
    (shuffle rng v1)
-   (data v1))
+   (cl-array v1))
  (letm ((rng (random-number-generator *mt19937* 0))
-	(v1 (vector-fixnum #(1 2 3 4 5 6 7 8)))
-	(v2 (vector-fixnum 4)))
+	(v1 (vector-signed-byte-32 (a 1 2 3 4 5 6 7 8)))
+	(v2 (vector-signed-byte-32 4)))
    (choose-random rng v2 v1)
-   (data v2))
+   (cl-array v2))
  (letm ((rng (random-number-generator *mt19937* 0))
-	(v1 (vector-fixnum #(1 2 3 4 5 6 7 8)))
-	(v2 (vector-fixnum 10)))
+	(v1 (vector-signed-byte-32 (a 1 2 3 4 5 6 7 8)))
+	(v2 (vector-signed-byte-32 10)))
    (sample rng v2 v1)
-   (data v2)))
-
-(LISP-UNIT:DEFINE-TEST SHUFFLING-SAMPLING
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #(4 3 6 1 5 7 2 8))
-   (MULTIPLE-VALUE-LIST
-    (LETM
-	((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0))
-	 (V1 (VECTOR-FIXNUM #(1 2 3 4 5 6 7 8))))
-      (SHUFFLE RNG V1) (DATA V1))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #(2 3 5 8))
-   (MULTIPLE-VALUE-LIST
-    (LETM
-	((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0))
-	 (V1 (VECTOR-FIXNUM #(1 2 3 4 5 6 7 8)))
-	 (V2 (VECTOR-FIXNUM 4)))
-      (CHOOSE-RANDOM RNG V2 V1)
-      (DATA V2))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #(8 2 3 8 2 4 8 6 5 6))
-   (MULTIPLE-VALUE-LIST
-    (LETM
-	((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0))
-	 (V1 (VECTOR-FIXNUM #(1 2 3 4 5 6 7 8)))
-	 (V2 (VECTOR-FIXNUM 10)))
-      (SAMPLE RNG V2 V1) (DATA V2)))))
-|#
+   (cl-array v2)))
diff --git a/random/spherical-vector.lisp b/random/spherical-vector.lisp
index 457253cdba6d778574aa4cfc0c3058923bdea949..a8be9fb1f83e94fa57e364ad2316f5125ecbc455 100644
--- a/random/spherical-vector.lisp
+++ b/random/spherical-vector.lisp
@@ -1,6 +1,6 @@
 ;; Spherical Vector distribution
 ;; Liam Healy, Sun Oct  22 2006
-;; Time-stamp: <2008-08-16 18:43:18EDT spherical-vector.lisp>
+;; Time-stamp: <2008-10-25 18:17:49EDT spherical-vector.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -56,8 +56,7 @@
    Mathematics for the Engineer (1956).")
 
 ;;; Examples and unit test
-#|
-(make-tests spherical-vector
+(save-test spherical-vector
   (letm ((rng (random-number-generator *mt19937* 0)))
       (loop for i from 0 to 4
 	    append
@@ -70,43 +69,3 @@
       (loop for i from 0 to 2
 	    append
 	    (multiple-value-list (direction-3d rng)))))
-|#
-
-(LISP-UNIT:DEFINE-TEST SPHERICAL-VECTOR
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST -0.617745613497854d0 -0.7863779988047479d0
-	  0.993748310886084d0 0.1116436053298841d0
-	  -0.9458104280982743d0 0.3247193158722761d0
-	  0.45726622946182216d0 0.8893298574734622d0
-	  -0.46325616159849964d0 -0.8862244234622655d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 4 APPEND
-	    (MULTIPLE-VALUE-LIST
-	     (DIRECTION-2D RNG))))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 0.9999986835208556d0 -0.0016226387631051197d0
-	  0.5203010106077766d0 0.8539829379797504d0
-	  -0.2035120531038584d0 0.9790724407527016d0
-	  0.9454753227485545d0 -0.3256937427607672d0
-	  0.11500033916619544d0 0.9933654523848008d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 4 APPEND
-	    (MULTIPLE-VALUE-LIST
-	     (DIRECTION-2D-TRIG-METHOD RNG))))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST -0.09129925750445994d0 0.18782185357162273d0
-	  0.977950610665004d0 -0.9051182961559773d0
-	  -0.050683764485791594d0 -0.4221279734645046d0
-	  0.13993766535985133d0 0.8385462620524484d0
-	  -0.526552576872909d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 2 APPEND
-	    (MULTIPLE-VALUE-LIST
-	     (DIRECTION-3D RNG)))))))
-
diff --git a/random/tdist.lisp b/random/tdist.lisp
index 57a037db8eeda110267c00d9542de6fd89a10390..c0a7f994880c8fa6d165a6ee0774c3b6c925a1cf 100644
--- a/random/tdist.lisp
+++ b/random/tdist.lisp
@@ -1,6 +1,6 @@
 ;; Tdist distribution
 ;; Liam Healy, Sat Oct  7 2006 - 16:13
-;; Time-stamp: <2008-02-17 13:16:23EST tdist.lisp>
+;; Time-stamp: <2008-10-25 18:18:44EDT tdist.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -53,8 +53,7 @@
    Q(x) for the tdist distribution with nu degrees of freedom.")
 
 ;;; Examples and unit test
-#|
-(make-tests tdist
+(save-test tdist
   (letm ((rng (random-number-generator *mt19937* 0)))
       (rng-set rng 0)
       (loop for i from 0 to 10
@@ -65,35 +64,3 @@
   (tdist-Q 0.5d0 1.0d0)
   (tdist-Pinv 0.6475836176504334d0 1.0d0)
   (tdist-Qinv 0.3524163823495667d0 1.0d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST TDIST
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 0.14989366374481017d0 0.6794142879291215d0
-	  -1.615833951108472d0 -1.6008862825783456d0
-	  -1.7010935505767397d0 -0.04370959749808691d0
-	  0.12761159276595174d0 -0.019731218255494867d0
-	  -0.6534666117199732d0 0.2035771324523077d0
-	  1.77650300477611d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (RNG-SET RNG 0)
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (TDIST RNG 10.0d0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.2546479089470325d0)
-   (MULTIPLE-VALUE-LIST (TDIST-PDF 0.5d0 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.6475836176504332d0)
-   (MULTIPLE-VALUE-LIST (TDIST-P 0.5d0 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.35241638234956685d0)
-   (MULTIPLE-VALUE-LIST (TDIST-Q 0.5d0 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.500000000000001d0)
-   (MULTIPLE-VALUE-LIST
-    (TDIST-PINV 0.6475836176504334d0 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.5d0)
-   (MULTIPLE-VALUE-LIST (TDIST-QINV 0.3524163823495667d0 1.0d0))))
diff --git a/random/weibull.lisp b/random/weibull.lisp
index 97ac33df213630c896f2c5b736a5793badc56f1e..e1c44209ea5bf02fa1b9b6ab7a6675ee7b29cb25 100644
--- a/random/weibull.lisp
+++ b/random/weibull.lisp
@@ -1,6 +1,6 @@
 ;; Weibull distribution
 ;; Liam Healy, Sun Oct 22 2006
-;; Time-stamp: <2008-02-17 13:30:33EST weibull.lisp>
+;; Time-stamp: <2008-10-25 18:20:28EDT weibull.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -51,8 +51,7 @@
    Q(x) for the Weibull distribution exponent a and scale b.")
 
 ;;; Examples and unit test
-#|
-(make-tests weibull
+(save-test weibull
   (letm ((rng (random-number-generator *mt19937* 0)))
       (loop for i from 0 to 10
 	    collect
@@ -62,34 +61,3 @@
   (weibull-Q 3.5d0 1.3d0 2.0d0)
   (weibull-Pinv 0.9992887742799077d0 1.3d0 2.0d0)
   (weibull-Qinv 7.112257200923508d-4 1.3d0 2.0d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST WEIBULL
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 0.0160712303786595d0 1.347055359960668d0
-	  1.1241262408795445d0 0.2329031397826649d0
-	  1.209338423856536d0 0.8506825453443836d0
-	  0.20845532973957762d0 0.5434187344070215d0
-	  0.7849237503774361d0 0.5487883320132739d0
-	  0.5239377808419179d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((RNG (RANDOM-NUMBER-GENERATOR *MT19937* 0)))
-      (LOOP FOR I FROM 0 TO 10 COLLECT
-	    (WEIBULL RNG 1.0d0 2.0d0)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.24263174972226745d0)
-   (MULTIPLE-VALUE-LIST (WEIBULL-PDF 1.5d0 1.3d0 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.9992887742799077d0)
-   (MULTIPLE-VALUE-LIST (WEIBULL-P 3.5d0 1.3d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 7.112257200923508d-4)
-   (MULTIPLE-VALUE-LIST (WEIBULL-Q 3.5d0 1.3d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 3.5000000000000164d0)
-   (MULTIPLE-VALUE-LIST
-    (WEIBULL-PINV 0.9992887742799077d0 1.3d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 3.5d0)
-   (MULTIPLE-VALUE-LIST (WEIBULL-QINV 7.112257200923508d-4 1.3d0 2.0d0))))
diff --git a/sorting.lisp b/sorting.lisp
index 7885702a91c271be3e7d081e1a8f3ccf7ea5aac1..d3ed19427c761fda1f42a0dd22928252cb79b0df 100644
--- a/sorting.lisp
+++ b/sorting.lisp
@@ -1,6 +1,6 @@
 ;; Sorting
 ;; Liam Healy, Fri Apr 14 2006 - 20:20
-;; Time-stamp: <2008-09-20 22:29:33EDT sorting.lisp>
+;; Time-stamp: <2008-10-25 12:00:37EDT sorting.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -243,8 +243,7 @@
 ;;;; Examples and unit test
 ;;;;****************************************************************************
 
-#|
-(make-tests sorting
+(save-test sorting
  (letm ((vec (vector-double-float (a 7.1d0 -2.0d0 12.8d0 -3.21d0 1.0d0))))
    (sort-vector vec)
    (cl-array vec))
@@ -269,55 +268,4 @@
  (letm ((vec (vector-double-float (a 7.1d0 -2.0d0 12.8d0 -3.21d0 1.0d0)))
 	(comb (combination '(5 3))))
    (cl-array (sort-vector-largest-index comb vec))))
-|#
 
-
-(LISP-UNIT:DEFINE-TEST SORTING
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #(-3.21 -2.0 1.0 7.1 12.8))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((VEC (VECTOR-DOUBLE-FLOAT (A 7.1 -2.0 12.8 -3.21 1.0))))
-      (SORT-VECTOR VEC) (CL-ARRAY VEC))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #(3 1 4 0 2))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((PERM (PERMUTATION 5))
-	   (VEC (VECTOR-DOUBLE-FLOAT (A 7.1 -2.0 12.8 -3.21 1.0))))
-      (SORT-VECTOR-INDEX PERM VEC)
-      (CL-ARRAY PERM))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #(-3.21 -2.0 1.0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((VEC (VECTOR-DOUBLE-FLOAT (A 7.1 -2.0 12.8 -3.21 1.0)))
-	   (SMALLEST (VECTOR-DOUBLE-FLOAT 3)))
-      (SORT-VECTOR-SMALLEST SMALLEST VEC)
-      (CL-ARRAY SMALLEST))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #(3 1 4))
-   (MULTIPLE-VALUE-LIST
-    (LETM
-	((VEC (VECTOR-DOUBLE-FLOAT
-	       (A 7.1 -2.0 12.8 -3.21 1.0)))
-	 (COMB (COMBINATION '(5 3))))
-      (CL-ARRAY (SORT-VECTOR-SMALLEST-INDEX COMB VEC)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #(3 1 4))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((VEC (VECTOR-DOUBLE-FLOAT
-		 (A 7.1 -2.0 12.8 -3.21 1.0)))
-	   (SM (COMBINATION '(5 3))))
-      (CL-ARRAY (SORT-SMALLEST-INDEX SM VEC)))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #(12.8 7.1 1.0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((VEC (VECTOR-DOUBLE-FLOAT (A 7.1 -2.0 12.8 -3.21 1.0)))
-	   (LARGEST (VECTOR-DOUBLE-FLOAT 3)))
-      (SORT-VECTOR-LARGEST LARGEST VEC)
-      (CL-ARRAY LARGEST))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #(2 0 4))
-   (MULTIPLE-VALUE-LIST
-    (LETM
-	((VEC (VECTOR-DOUBLE-FLOAT (A 7.1 -2.0 12.8 -3.21 1.0)))
-	 (COMB (COMBINATION '(5 3))))
-      (CL-ARRAY (SORT-VECTOR-LARGEST-INDEX COMB VEC))))))
diff --git a/special-functions/bessel.lisp b/special-functions/bessel.lisp
index 3c1796b434064d03bff5d5eaed11991e9e3685e2..391ca0ecc41e096caab8de12542cd210486f04b7 100644
--- a/special-functions/bessel.lisp
+++ b/special-functions/bessel.lisp
@@ -1,6 +1,6 @@
 ;; Bessel functions
 ;; Liam Healy, Fri Mar 17 2006 - 18:42
-;; Time-stamp: <2008-10-21 22:39:32EDT bessel.lisp>
+;; Time-stamp: <2008-10-23 22:37:15EDT bessel.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -451,8 +451,6 @@
 ;;;; Examples and unit test
 ;;;;****************************************************************************
 
-#|
-
 ;; This bizarrely causes a division-by-zero error 
 ;;	    (bessel-jnu 3.0d0 4.0d0)
 ;; in macroexpansion the form from within SLIME using SBCL (expands
@@ -540,7 +538,3 @@
 	   (bessel-zero-J0 5)
 	   (bessel-zero-J1 5)
 	   (bessel-zero-Jnu 2.0d0 5))
-
-
-
-
diff --git a/special-functions/coupling.lisp b/special-functions/coupling.lisp
index 7b1ee962fba010d3c98ceca432fc384a583cd5b4..c067112528a35d90b32069f18d76f3d741ac2ca9 100644
--- a/special-functions/coupling.lisp
+++ b/special-functions/coupling.lisp
@@ -1,6 +1,6 @@
 ;; Coupling coefficients
 ;; Liam Healy, Sun Mar 19 2006 - 13:30
-;; Time-stamp: <2008-10-21 22:48:31EDT coupling.lisp>
+;; Time-stamp: <2008-10-23 22:39:07EDT coupling.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -56,7 +56,7 @@ section are declared in the header file gsl_sf_coupling.h.
   ja = two_ja/2, ma = two_ma/2, etc.")
 
 ;; Check with online calculator http://www-stone.ch.cam.ac.uk/wigner.html
-(save-tests coupling
+(save-test coupling
   (coupling-3j 0 1 1 0 1 -1)
   (coupling-6j 1 1 2 0 2 1)
   (coupling-9j 1 1 2 1 2 1 2 1 1))
diff --git a/special-functions/error-functions.lisp b/special-functions/error-functions.lisp
index 549e7ea7423de8b319cafb86099a5b9ae0503480..cfb8c479aea9902ed2961ec9faf2ac5d8daa5882 100644
--- a/special-functions/error-functions.lisp
+++ b/special-functions/error-functions.lisp
@@ -1,6 +1,6 @@
 ;; Error functions
 ;; Liam Healy, Mon Mar 20 2006 - 22:31
-;; Time-stamp: <2008-02-16 20:54:49EST error-functions.lisp>
+;; Time-stamp: <2008-10-23 22:50:45EDT error-functions.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -39,33 +39,11 @@
   :documentation			; FDL
   "The hazard function for the normal distribution.")
 
-#|
-(make-tests error-functions
+(save-test error-functions
   (erf 1.0d0)
   (erfc 1.0d0)
   (log-erfc 1.0d0)
   (erf-z 1.0d0)
   (erf-q 1.0d0)
   (hazard 1.0d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST ERROR-FUNCTIONS
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.8427007929497149d0 7.789237746491556d-16)
-   (MULTIPLE-VALUE-LIST (ERF 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.1572992070502851d0 4.0468944536809554d-16)
-   (MULTIPLE-VALUE-LIST (ERFC 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST -1.8496055099332485d0 3.394126565390616d-15)
-   (MULTIPLE-VALUE-LIST (LOG-ERFC 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.24197072451914334d0 1.611848817878303d-16)
-   (MULTIPLE-VALUE-LIST (ERF-Z 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.15865525393145707d0 2.832400331480832d-16)
-   (MULTIPLE-VALUE-LIST (ERF-Q 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.5251352761609807d0 5.532094155354489d-15)
-   (MULTIPLE-VALUE-LIST (HAZARD 1.0d0))))
 
diff --git a/special-functions/exponential-functions.lisp b/special-functions/exponential-functions.lisp
index 80c40f492536de8cb7e5207084262664a042d345..a361eb0ad2b2c1811663a5ee6633d357d176a2e5 100644
--- a/special-functions/exponential-functions.lisp
+++ b/special-functions/exponential-functions.lisp
@@ -1,6 +1,6 @@
 ;; Exponential functions
 ;; Liam Healy, Tue Mar 21 2006 - 17:05
-;; Time-stamp: <2008-09-16 22:51:18EDT exponential-functions.lisp>
+;; Time-stamp: <2008-10-23 22:55:32EDT exponential-functions.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -94,8 +94,7 @@
 ;;;; Examples and unit test
 ;;;;****************************************************************************
 
-#|
-(make-tests exponential-functions
+(save-test exponential-functions
   (gsl-exp 3.0d0)
   (exp-scaled 2000.0d0)
   (exp-mult 101.0d0 5.0d0)
@@ -106,39 +105,3 @@
   (exprel-n 3 0.001d0)
   (exp-err 3.0d0 0.001d0)
   (exp-mult-err 3.0d0 0.001d0 23.0d0 0.001d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST EXPONENTIAL-FUNCTIONS
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 20.085536923187668d0 8.91977022163267d-15)
-   (MULTIPLE-VALUE-LIST (GSL-EXP 3.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 3.8811801942838993 868 3.448904081776264e-12)
-   (MULTIPLE-VALUE-LIST (EXP-SCALED 2000.0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 3.6535299896840335d44 8.355840218353793d30)
-   (MULTIPLE-VALUE-LIST (EXP-MULT 101.0d0 5.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.0908344123363103d0 243 2.7201204352005766d-15)
-   (MULTIPLE-VALUE-LIST
-    (EXP-MULT-SCALED 555.0d0 101.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.0000500016667085d-4 4.441114150507224d-20)
-   (MULTIPLE-VALUE-LIST (EXPM1 1.d-4)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.0000500016667084d0 4.4411141505072235d-16)
-   (MULTIPLE-VALUE-LIST (EXPREL 1.d-4)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.0003334166833362d0 4.442372766015162d-16)
-   (MULTIPLE-VALUE-LIST (EXPREL-2 0.001d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.0002500500083344d0 2.665201526164121d-15)
-   (MULTIPLE-VALUE-LIST (EXPREL-N 3 0.001d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 20.085536923187668d0 0.04017108054156605d0)
-   (MULTIPLE-VALUE-LIST (EXP-ERR 3.0d0 0.001d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 461.9673492333164d0 0.4820528861567092d0)
-   (MULTIPLE-VALUE-LIST
-    (EXP-MULT-ERR 3.0d0 0.001d0 23.0d0 0.001d0))))
-
diff --git a/special-functions/exponential-integrals.lisp b/special-functions/exponential-integrals.lisp
index f91dc5f70c1f93fdfbf4ca122408dc9628c0ae76..8ba30a613053859deb4f463b7bea12c5b0aa18be 100644
--- a/special-functions/exponential-integrals.lisp
+++ b/special-functions/exponential-integrals.lisp
@@ -1,6 +1,6 @@
 ;; Exponential integrals
 ;; Liam Healy, Tue Mar 21 2006 - 17:37
-;; Time-stamp: <2008-03-27 21:29:32EDT exponential-integrals.lisp>
+;; Time-stamp: <2008-10-23 22:56:59EDT exponential-integrals.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -86,12 +86,11 @@
 ;;;; Examples and unit test
 ;;;;****************************************************************************
 
-#|
 ;;; Macroexpanding in SLIME with slime-macroexpand-1 will produce the
 ;;; wrong error type for the first test.  Instead, evaluate in
 ;;; listener with (macroexpand-1 '(make-tests ... )).
 
-(make-tests exponential-integrals
+(save-test exponential-integrals
   (expint-E1 0.0d0)
   (expint-E1 1.0d0)
   (expint-Ei 2.0d0)
@@ -101,7 +100,6 @@
   (si 1.25d0)
   (ci 1.25d0)
   (atanint 1.25d0))
-|#
 
 (LISP-UNIT:DEFINE-TEST EXPONENTIAL-INTEGRALS
   (LISP-UNIT:ASSERT-ERROR 'GSL-CONDITION (EXPINT-E1 0.0d0))
diff --git a/special-functions/fermi-dirac.lisp b/special-functions/fermi-dirac.lisp
index f58d0cfa2daa444beacadca7f72c9d9d60cba908..9e2e32dadff181bf07c3d334530631e201dd76a4 100644
--- a/special-functions/fermi-dirac.lisp
+++ b/special-functions/fermi-dirac.lisp
@@ -1,6 +1,6 @@
 ;; Fermi-Dirac function.
 ;; Liam Healy, Sat Apr 22 2006 - 16:12
-;; Time-stamp: <2008-02-16 21:37:25EST fermi-dirac.lisp>
+;; Time-stamp: <2008-10-23 22:58:29EDT fermi-dirac.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -68,8 +68,7 @@
 ;;;; Examples and unit test
 ;;;;****************************************************************************
 
-#|
-(make-tests fermi-dirac
+(save-test fermi-dirac
   (fermi-dirac-m1 0.5d0)
   (fermi-dirac-0 0.75d0)
   (fermi-dirac-1 -0.75d0)
@@ -79,33 +78,3 @@
   (fermi-dirac-1/2 2.0d0)
   (fermi-dirac-3/2 2.0d0)
   (fermi-dirac-inc-0 2.0d0 0.5d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST FERMI-DIRAC
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.6224593312018546d0 4.040305821324309d-16)
-   (MULTIPLE-VALUE-LIST (FERMI-DIRAC-M1 0.5d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.1368710061148999d0 1.6653345369377348d-16)
-   (MULTIPLE-VALUE-LIST (FERMI-DIRAC-0 0.75d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.42589430612383183d0 5.594591187346375d-16)
-   (MULTIPLE-VALUE-LIST (FERMI-DIRAC-1 -0.75d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.1301630162645293d0 6.04246936785309d-16)
-   (MULTIPLE-VALUE-LIST (FERMI-DIRAC-2 0.25d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 6668.827087650077d0 2.1696654306572242d-10)
-   (MULTIPLE-VALUE-LIST (FERMI-DIRAC-INTEGRAL 5 12.35d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.4642945890876293d0 4.053118505064653d-15)
-   (MULTIPLE-VALUE-LIST (FERMI-DIRAC-M1/2 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 2.8237212774015843d0 2.909989668869937d-15)
-   (MULTIPLE-VALUE-LIST (FERMI-DIRAC-1/2 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 4.165414459868321d0 3.666976569654393d-15)
-   (MULTIPLE-VALUE-LIST (FERMI-DIRAC-3/2 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.7014132779827524d0 8.881784197001252d-16)
-   (MULTIPLE-VALUE-LIST (FERMI-DIRAC-INC-0 2.0d0 0.5d0))))
diff --git a/special-functions/gamma.lisp b/special-functions/gamma.lisp
index 53bd73931a72e19603e0aebc52e16baef035d137..ce2ba1c7ab1a637da1c401544e4af594acaed9b4 100644
--- a/special-functions/gamma.lisp
+++ b/special-functions/gamma.lisp
@@ -1,6 +1,6 @@
 ;; Gamma functions
 ;; Liam Healy, Thu Apr 27 2006 - 22:06
-;; Time-stamp: <2008-07-12 13:44:42EDT gamma.lisp>
+;; Time-stamp: <2008-10-23 23:02:09EDT gamma.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -187,8 +187,7 @@
 ;;;; Examples and unit test
 ;;;;****************************************************************************
 
-#|
-(make-tests gamma
+(save-test gamma
   (gamma -1.0d0)
   (gamma 6.0d0)
   (log-gamma -100.0d0)
@@ -215,85 +214,3 @@
   (beta 5.50d0 1.0d0)
   (log-beta 5.5d0 1.0d0)
   (incomplete-beta 1.0d0 1.50d0 0.50d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST GAMMA
-  (LISP-UNIT:ASSERT-ERROR 'GSL-CONDITION (GAMMA -1.0d0))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 120.0d0 2.6645352591003757d-14)
-   (MULTIPLE-VALUE-LIST (GAMMA 6.0d0)))
-  (LISP-UNIT:ASSERT-ERROR 'GSL-CONDITION (LOG-GAMMA -100.0d0))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 359.13420536957534d0 2.4544868717695813d-13)
-   (MULTIPLE-VALUE-LIST (LOG-GAMMA 100.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 359.13420536957534d0 1.0d0
-	 2.4544868717695813d-13)
-   (MULTIPLE-VALUE-LIST (LOG-GAMMA-SIGN 100.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.0034780558311105d0 4.456337769159149d-16)
-   (MULTIPLE-VALUE-LIST (GAMMA* 24.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.984126984126984d-4 1.3216940769347103d-19)
-   (MULTIPLE-VALUE-LIST (1/GAMMA 8.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 8.236131750448724d0 -1.1840378149363078d0
-	 7.315154482555574d-15 2.1796539969587586d-14)
-   (MULTIPLE-VALUE-LIST
-    (LOG-GAMMA-COMPLEX #C(10.0d0 10.0d0))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.0011094764610389606d0 2.956239149580215d-18)
-   (MULTIPLE-VALUE-LIST (TAYLOR-COEFFICIENT 12 3.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 4.790016d8 0.0d0)
-   (MULTIPLE-VALUE-LIST (FACTORIAL 12)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 46080.0d0 0.0d0)
-   (MULTIPLE-VALUE-LIST (DOUBLE-FACTORIAL 12)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 857.9336698258575d0 5.777158772429952d-13)
-   (MULTIPLE-VALUE-LIST (LOG-FACTORIAL 199)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 430.17789358084747d0 1.9103736085528287d-13)
-   (MULTIPLE-VALUE-LIST (LOG-DOUBLE-FACTORIAL 199)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 56.0d0 7.460698725481052d-14)
-   (MULTIPLE-VALUE-LIST (CHOOSE 8 3)))
-  (LISP-UNIT:ASSERT-ERROR 'GSL-CONDITION (CHOOSE 3 8))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 29.422274169864693d0 1.9338924605168215d-13)
-   (MULTIPLE-VALUE-LIST (LOG-CHOOSE 67 12)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 12.0d0 6.927791673660977d-14)
-   (MULTIPLE-VALUE-LIST (POCHAMMER 3.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 863.2319871924054d0 9.645972767118375d-13)
-   (MULTIPLE-VALUE-LIST (LOG-POCHAMMER 2.0d0 199.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 863.2319871924054d0 1.0d0 9.645972767118375d-13)
-   (MULTIPLE-VALUE-LIST
-    (LOG-POCHAMMER-SIGN 2.0d0 199.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 403199.88888888917d0 3.5998302729212807d-9)
-   (MULTIPLE-VALUE-LIST (RELATIVE-POCHAMMER 2.0d0 9.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.40600584970983766d0 9.568405127077496d-16)
-   (MULTIPLE-VALUE-LIST (INCOMPLETE-GAMMA 2.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.5939941502901611d0 3.510166705531295d-15)
-   (MULTIPLE-VALUE-LIST
-    (COMPLEMENTARY-INCOMPLETE-GAMMA 2.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.40600584970983766d0 1.2272947381959672d-15)
-   (MULTIPLE-VALUE-LIST
-    (NONNORMALIZED-INCOMPLETE-GAMMA 2.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.1818181818181818d0 1.0189782228738177d-15)
-   (MULTIPLE-VALUE-LIST (BETA 5.5d0 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST -1.7047480922384253d0 3.81791013808375d-15)
-   (MULTIPLE-VALUE-LIST (LOG-BETA 5.5d0 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.6464466094067263d0 1.0178662453689468d-14)
-   (MULTIPLE-VALUE-LIST
-    (INCOMPLETE-BETA 1.0d0 1.5d0 0.5d0))))
diff --git a/special-functions/gegenbauer.lisp b/special-functions/gegenbauer.lisp
index dcb1a454b394f111bd60c6d8356a1be9e17cfa22..ee65117c6b19ba66e327c3987d9785aac25abe4b 100644
--- a/special-functions/gegenbauer.lisp
+++ b/special-functions/gegenbauer.lisp
@@ -1,6 +1,6 @@
 ;; Gegenbauer polynomials
 ;; Liam Healy, Fri Apr 28 2006 - 20:40
-;; Time-stamp: <2008-09-14 21:38:13EDT gegenbauer.lisp>
+;; Time-stamp: <2008-10-23 23:09:12EDT gegenbauer.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -43,31 +43,10 @@
 ;;;; Examples and unit test
 ;;;;****************************************************************************
 
-#|
-(make-tests gegenbauer
+(save-test gegenbauer
   (gegenbauer-1 1.0d0 3.0d0)
   (gegenbauer-2 1.0d0 3.0d0)
   (gegenbauer-3 1.0d0 3.0d0)
   (gegenbauer 4 1.0d0 3.0d0)
   (letm ((arr (vector-double-float 4)))
       (gegenbauer-array 1.0d0 3.0d0 arr) (cl-array arr)))
-|#
-
-(LISP-UNIT:DEFINE-TEST GEGENBAUER
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 6.0d0 5.329070518200751d-15)
-   (MULTIPLE-VALUE-LIST (GEGENBAUER-1 1.0d0 3.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 35.0d0 1.5765166949677223d-14)
-   (MULTIPLE-VALUE-LIST (GEGENBAUER-2 1.0d0 3.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 204.0d0 9.126033262418787d-14)
-   (MULTIPLE-VALUE-LIST (GEGENBAUER-3 1.0d0 3.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1189.0d0 1.056044141023449d-12)
-   (MULTIPLE-VALUE-LIST (GEGENBAUER 4 1.0d0 3.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #(1.0d0 6.0d0 35.0d0 204.0d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((ARR (VECTOR-DOUBLE-FLOAT 4)))
-      (GEGENBAUER-ARRAY 1.0d0 3.0d0 ARR) (CL-ARRAY ARR)))))
diff --git a/special-functions/hypergeometric.lisp b/special-functions/hypergeometric.lisp
index ed4a75b2dcdb02f6f54f7205aba228cdb718134e..bda87c05a42c0480693f9e7f2e6fe39a3964cf69 100644
--- a/special-functions/hypergeometric.lisp
+++ b/special-functions/hypergeometric.lisp
@@ -1,6 +1,6 @@
 ;; Hypergeometric function
 ;; Liam Healy, Fri Apr 28 2006 - 23:00
-;; Time-stamp: <2008-07-10 21:40:45EDT hypergeometric.lisp>
+;; Time-stamp: <2008-10-23 23:11:41EDT hypergeometric.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -115,8 +115,7 @@
 ;;;; Examples and unit test
 ;;;;****************************************************************************
 
-#|
-(make-tests hypergeometric
+(save-test hypergeometric
   (hypergeometric-0f1 0.5d0 1.0d0)
   (hypergeometric-1F1 2 1 1.0d0)
   (hypergeometric-1F1 2.0d0 1.0d0 1.0d0)
@@ -129,52 +128,4 @@
   (hypergeometric-2F1-conj-renorm #C(1.0d0 0.5d0) 0.5d0 0.6d0)
   (hypergeometric-2F1-renorm 1.0d0 1.2d0 1.0d0 0.5d0)
   (hypergeometric-2F0 1.0d0 2.0d0 -20.0d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST HYPERGEOMETRIC
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 3.7621956910836287d0 9.207469176703522d-14)
-   (MULTIPLE-VALUE-LIST (HYPERGEOMETRIC-0F1 0.5d0 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 5.43656365691809d0 6.0357981467508045d-15)
-   (MULTIPLE-VALUE-LIST (HYPERGEOMETRIC-1F1 2 1 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 5.43656365691809d0 6.0357981467508045d-15)
-   (MULTIPLE-VALUE-LIST
-    (HYPERGEOMETRIC-1F1 2.0d0 1.0d0 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.19269472464638984d0 2.5468520714552053d-12)
-   (MULTIPLE-VALUE-LIST
-    (HYPERGEOMETRIC-U 2.0d0 1.0d0 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.19269472464638984d0 2.5468520714552053d-12)
-   (MULTIPLE-VALUE-LIST (HYPERGEOMETRIC-U 2 1 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.19269472464638984d0 0 2.5468520714552053d-12)
-   (MULTIPLE-VALUE-LIST
-    (HYPERGEOMETRIC-U-E10 2.0d0 1.0d0 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.19269472464638984d0 0 2.5468520714552053d-12)
-   (MULTIPLE-VALUE-LIST (HYPERGEOMETRIC-U-E10 2 1 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 2.29739670999407d0 2.0404981793068d-15)
-   (MULTIPLE-VALUE-LIST
-    (HYPERGEOMETRIC-2F1 1.0d0 1.2d0 1.0d0 0.5d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 6.629594934547447d0 5.761143589129193d-14)
-   (MULTIPLE-VALUE-LIST
-    (HYPERGEOMETRIC-2F1-CONJ #C(1.0d0 0.5d0) 0.5d0
-			     0.6d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 3.7403484052126372d0 5.884558632199498d-14)
-   (MULTIPLE-VALUE-LIST
-    (HYPERGEOMETRIC-2F1-CONJ-RENORM #C(1.0d0 0.5d0) 0.5d0
-				    0.6d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 2.29739670999407d0 3.0607472689602005d-15)
-   (MULTIPLE-VALUE-LIST
-    (HYPERGEOMETRIC-2F1-RENORM 1.0d0 1.2d0 1.0d0 0.5d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.043513924125598485d0 3.81571654717325d-15)
-   (MULTIPLE-VALUE-LIST
-    (HYPERGEOMETRIC-2F0 1.0d0 2.0d0 -20.0d0))))
+
diff --git a/special-functions/laguerre.lisp b/special-functions/laguerre.lisp
index efe97faa306f71a05dcb47fe9ead084a34a51f6f..14e6d6a21584b184cfe67ae48b0c8acb134dde42 100644
--- a/special-functions/laguerre.lisp
+++ b/special-functions/laguerre.lisp
@@ -1,6 +1,6 @@
 ;; Laguerre polynomials
 ;; Liam Healy, Fri Apr 28 2006 - 20:40
-;; Time-stamp: <2008-02-16 22:16:49EST laguerre.lisp>
+;; Time-stamp: <2008-10-25 10:56:55EDT laguerre.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -32,27 +32,12 @@
 ;;;; Examples and unit test
 ;;;;****************************************************************************
 
-#|
 ;;; Don't slime-macroexpand-1, the last one will produce an error that
 ;;; shouldn't be there.
 
-(make-tests laguerre
+(save-test laguerre
   (laguerre-1 1.0d0 3.0d0)
   (laguerre-2 1.0d0 3.0d0)
   (laguerre-3 1.0d0 3.0d0)
   (laguerre 4 1.0d0 3.0d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST LAGUERRE
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST -1.0d0 2.220446049250313d-15)
-   (MULTIPLE-VALUE-LIST (LAGUERRE-1 1.0d0 3.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST -1.5d0 1.7985612998927536d-14)
-   (MULTIPLE-VALUE-LIST (LAGUERRE-2 1.0d0 3.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST -0.5d0 6.59472476627343d-14)
-   (MULTIPLE-VALUE-LIST (LAGUERRE-3 1.0d0 3.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.875d0 6.793349802129357d-14)
-   (MULTIPLE-VALUE-LIST (LAGUERRE 4 1.0d0 3.0d0))))
+
diff --git a/special-functions/lambert.lisp b/special-functions/lambert.lisp
index 63c0de9fc6698e9ff7f5c2207418dfdc932c4ff8..bbb2cc2a76e963f837b46d13e7a9207816a438d8 100644
--- a/special-functions/lambert.lisp
+++ b/special-functions/lambert.lisp
@@ -1,6 +1,6 @@
 ;; Lambert's W functions
 ;; Liam Healy, Fri Apr 28 2006 - 20:40
-;; Time-stamp: <2008-02-16 22:19:40EST lambert.lisp>
+;; Time-stamp: <2008-10-25 10:59:17EDT lambert.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -30,16 +30,7 @@
 ;;;; Examples and unit test
 ;;;;****************************************************************************
 
-#|
-(make-tests lambert
+(save-test lambert
   (lambert-W0 1.0d0)
   (lambert-Wm1 1.0d0))
-|#
 
-(LISP-UNIT:DEFINE-TEST LAMBERT
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.5671432904097838d0 2.518622157098455d-16)
-   (MULTIPLE-VALUE-LIST (LAMBERT-W0 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.5671432904097838d0 2.518622157098455d-16)
-   (MULTIPLE-VALUE-LIST (LAMBERT-WM1 1.0d0))))
diff --git a/special-functions/legendre.lisp b/special-functions/legendre.lisp
index ae3cd8d77d83086e6b4e8d5fc89d70ecc7fc8d85..ed2f3d5c616b58ea673cab4154fb7523b22aac76 100644
--- a/special-functions/legendre.lisp
+++ b/special-functions/legendre.lisp
@@ -1,6 +1,6 @@
 ;; Legendre functions
 ;; Liam Healy, Sat Apr 29 2006 - 19:16
-;; Time-stamp: <2008-09-14 21:38:13EDT legendre.lisp>
+;; Time-stamp: <2008-10-25 11:02:54EDT legendre.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -251,8 +251,7 @@
 ;;;; Examples and unit test
 ;;;;****************************************************************************
 
-#|
-(make-tests legendre
+(save-test legendre
   (legendre-P1 0.3d0)
   (legendre-P2 0.3d0)
   (legendre-P3 0.3d0)
@@ -293,115 +292,4 @@
   (letm ((arr (vector-double-float 4)))
       (legendre-h3d-array 1.0d0 0.5d0 arr)
       (cl-array arr)))
-|#
-
-(LISP-UNIT:DEFINE-TEST LEGENDRE
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL (LIST 0.3d0 0.0d0)
-				     (MULTIPLE-VALUE-LIST
-				      (LEGENDRE-P1
-				       0.3d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST -0.365d0 2.8199664825478977d-16)
-   (MULTIPLE-VALUE-LIST (LEGENDRE-P2 0.3d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST -0.38249999999999995d0 1.9984014443252816d-16)
-   (MULTIPLE-VALUE-LIST (LEGENDRE-P3 0.3d0)))
-  (LISP-UNIT:ASSERT-ERROR 'GSL-CONDITION
-			  (LEGENDRE-PL -4 0.3d0))
-  (LISP-UNIT:ASSERT-ERROR 'GSL-CONDITION
-			  (LEGENDRE-PL 4 3.0d0))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.07293749999999999d0 5.668382430101814d-17)
-   (MULTIPLE-VALUE-LIST (LEGENDRE-PL 4 0.3d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #(1.0d0 0.5d0 -0.125d0 -0.4375d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((ARR (VECTOR-DOUBLE-FLOAT 4)))
-      (LEGENDRE-PL-ARRAY 0.5d0 ARR) (CL-ARRAY ARR))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.3128529498822064d0 1.3893461931245028d-16)
-   (MULTIPLE-VALUE-LIST (LEGENDRE-Q0 3.3d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.03241473461128108d0 1.4395033881023292d-17)
-   (MULTIPLE-VALUE-LIST (LEGENDRE-Q1 3.3d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.004026461384737812d0 1.788108054840004d-18)
-   (MULTIPLE-VALUE-LIST (LEGENDRE-QL 2 3.3d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST -34.099750274012266d0 3.0286662310541114d-14)
-   (MULTIPLE-VALUE-LIST (LEGENDRE-PLM 4 3 0.5d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #(2.25d0 5.625d0 4.21875d0 -4.921875d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((ARR (VECTOR-DOUBLE-FLOAT 4)))
-      (LEGENDRE-PLM-ARRAY 2 0.5d0 ARR) (CL-ARRAY ARR))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #(-3.0d0 3.75d0 33.75d0 55.78125d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM
-	((VAL (VECTOR-DOUBLE-FLOAT 4)) (DERIV (VECTOR-DOUBLE-FLOAT 4)))
-      (LEGENDRE-PLM-DERIV-ARRAY 2 0.5d0 VAL DERIV)
-      (CL-ARRAY DERIV))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.30366280894310793d0 3.438761110552081d-15)
-   (MULTIPLE-VALUE-LIST
-    (LEGENDRE-SPHPLM 1200 1100 0.3d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    #(0.24892463950030283d0 0.4127948151484927d0
-      0.35120655562190445d0 0.051599351893561574d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((ARR (VECTOR-DOUBLE-FLOAT 4)))
-      (LEGENDRE-SPHPLM-ARRAY 4 0.5d0 ARR)
-      (CL-ARRAY ARR))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    #(-0.6637990386674741d0 -0.2751965434323283d0
-      1.2710332489173686d0 2.648766730536161d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM
-	((VAL (VECTOR-DOUBLE-FLOAT 4)) (DERIV (VECTOR-DOUBLE-FLOAT 4)))
-      (LEGENDRE-SPHPLM-DERIV-ARRAY 4 0.5d0 VAL DERIV)
-      (CL-ARRAY DERIV))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST -0.1255299048878925d0 1.3395992025650077d-15)
-   (MULTIPLE-VALUE-LIST
-    (LEGENDRE-CONICALP-HALF 3.5d0 10.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST -0.06274336292793128d0 2.504525777730328d-16)
-   (MULTIPLE-VALUE-LIST
-    (LEGENDRE-CONICALP-MHALF 3.5d0 10.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST -0.1316366189368757d0 3.0865532615549887d-15)
-   (MULTIPLE-VALUE-LIST
-    (LEGENDRE-CONICALP-0 3.5d0 10.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.17407195560076358d0 4.024312727070929d-15)
-   (MULTIPLE-VALUE-LIST
-    (LEGENDRE-CONICALP-1 3.5d0 10.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 8.980797952969897d-4 7.157154480497032d-17)
-   (MULTIPLE-VALUE-LIST
-    (LEGENDRE-REGULAR-SPHERICAL-CONICAL 3 3.5d0 10.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.0023060250619859907d0 2.7345630541297237d-16)
-   (MULTIPLE-VALUE-LIST
-    (LEGENDRE-REGULAR-CYLINDRICAL-CONICAL 3 3.5d0
-					  10.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.9200342692589382d0 1.7018240558144874d-15)
-   (MULTIPLE-VALUE-LIST (LEGENDRE-H3D-0 1.0d0 0.5d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.2169402645039212d0 1.418962379417407d-15)
-   (MULTIPLE-VALUE-LIST (LEGENDRE-H3D-1 1.0d0 0.5d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.002400616238997978d0 4.3381136468045d-17)
-   (MULTIPLE-VALUE-LIST (LEGENDRE-H3D 4 1.0d0 0.5d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    #(0.9200342692589379d0 0.21694026450392115d0
-      0.04795066048830776d0 0.010663769096144337d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((ARR (VECTOR-DOUBLE-FLOAT 4)))
-      (LEGENDRE-H3D-ARRAY 1.0d0 0.5d0 ARR)
-      (CL-ARRAY ARR)))))
+
diff --git a/special-functions/logarithm.lisp b/special-functions/logarithm.lisp
index db38e78ab2c9f1645c915e0a301d9c088a07beb3..f1c6197198c792cee66a7d86fe14006434d3e35c 100644
--- a/special-functions/logarithm.lisp
+++ b/special-functions/logarithm.lisp
@@ -1,6 +1,6 @@
 ;; Logarithm
 ;; Liam Healy, Sun Apr 30 2006 - 22:08
-;; Time-stamp: <2008-07-10 21:41:27EDT logarithm.lisp>
+;; Time-stamp: <2008-10-25 11:24:30EDT logarithm.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -43,29 +43,10 @@
 
 ;;; Examples and unit test
 
-#|
-(make-tests logarithm
+(save-test logarithm
   (gsl-log 2.0d0)
   (gsl-log #C(1.0d0 1.0d0))
   (log-abs -2.0d0)
   (log-1+x 1.d-4)
   (log-1+x-m1 1.d-4))
-|#
 
-(LISP-UNIT:DEFINE-TEST LOGARITHM
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.6931471805599453d0 3.078191837246648d-16)
-   (MULTIPLE-VALUE-LIST (GSL-LOG 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #C(0.34657359027997264d0 0.7853981633974483d0)
-	 #C(1.539095918623324d-16 7.69547959311662d-17))
-   (MULTIPLE-VALUE-LIST (GSL-LOG #C(1.0d0 1.0d0))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.6931471805599453d0 3.078191837246648d-16)
-   (MULTIPLE-VALUE-LIST (LOG-ABS -2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 9.999500033330834d-5 2.2203350343487824d-20)
-   (MULTIPLE-VALUE-LIST (LOG-1+X 1.d-4)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST -4.999666691664667d-9 1.1101490153075193d-24)
-   (MULTIPLE-VALUE-LIST (LOG-1+X-M1 1.d-4))))
diff --git a/special-functions/power.lisp b/special-functions/power.lisp
index 91cf14c49f14ce651e3c2ae17b6606d05ad5d37b..05253c2376bc2e5721a3ee51f4927080b3555b99 100644
--- a/special-functions/power.lisp
+++ b/special-functions/power.lisp
@@ -1,6 +1,6 @@
 ;; Integer powers
 ;; Liam Healy, Sun Apr 30 2006 - 22:46
-;; Time-stamp: <2008-02-16 22:39:17EST power.lisp>
+;; Time-stamp: <2008-10-25 11:25:23EDT power.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -14,10 +14,8 @@
   multiplications.  For reasons of efficiency, these functions do not
   check for overflow or underflow conditions.")
 
-#|
-(make-tests power
+(save-test power
   (pow 3.5d0 5))
-|#
 
 (LISP-UNIT:DEFINE-TEST POWER
   (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
diff --git a/special-functions/psi.lisp b/special-functions/psi.lisp
index c33bc7b4717fa08a672e334913d7d75bedc4f0b2..caf95ddbde55505767f58daf18a2193edac5e4d7 100644
--- a/special-functions/psi.lisp
+++ b/special-functions/psi.lisp
@@ -1,6 +1,6 @@
 ;; Psi (digamma) functions
 ;; Liam Healy, Mon May  1 2006 - 22:11
-;; Time-stamp: <2008-07-10 21:42:08EDT psi.lisp>
+;; Time-stamp: <2008-10-25 11:27:13EDT psi.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -65,32 +65,11 @@
 ;;;; Examples and unit test
 ;;;;****************************************************************************
 
-#|
-(make-tests psi
+(save-test psi
   (psi 4)
   (psi 4.0d0)
   (psi-1+iy 2.0d0)
   (psi-1 4)
   (psi-1 4.0d0)
   (psi-n 2 4.0d0))
-|#
 
-(LISP-UNIT:DEFINE-TEST PSI
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.2561176684318005d0 2.789141514262906d-16)
-   (MULTIPLE-VALUE-LIST (PSI 4)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.2561176684318005d0 2.846229783626858d-16)
-   (MULTIPLE-VALUE-LIST (PSI 4.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.7145915153739806d0 1.925418559790263d-14)
-   (MULTIPLE-VALUE-LIST (PSI-1+IY 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.2838229557371153d0 6.302135607530242d-17)
-   (MULTIPLE-VALUE-LIST (PSI-1 4)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.28382295573711525d0 1.764597970108467d-15)
-   (MULTIPLE-VALUE-LIST (PSI-1 4.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST -0.0800397322451145d0 5.222647053360405d-16)
-   (MULTIPLE-VALUE-LIST (PSI-N 2 4.0d0))))
diff --git a/special-functions/synchrotron.lisp b/special-functions/synchrotron.lisp
index fdb8dd58a3385cc8bc44baf14d5e0e57e7c878a8..09c0a07983a89b0a74c337f89020d1dbd46aa443 100644
--- a/special-functions/synchrotron.lisp
+++ b/special-functions/synchrotron.lisp
@@ -1,6 +1,6 @@
 ;; Synchrotron functions
 ;; Liam Healy, Mon May  1 2006 - 22:29
-;; Time-stamp: <2008-02-16 22:48:24EST synchrotron.lisp>
+;; Time-stamp: <2008-10-25 11:30:06EDT synchrotron.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -19,16 +19,7 @@
 ;;;; Examples and unit test
 ;;;;****************************************************************************
 
-#|
-(make-tests synchrotron
+(save-test synchrotron
   (synchrotron-1 4.0d0)
   (synchrotron-2 4.0d0))
-|#
 
-(LISP-UNIT:DEFINE-TEST SYNCHROTRON
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.052827396697912476d0 4.825849878208132d-14)
-   (MULTIPLE-VALUE-LIST (SYNCHROTRON-1 4.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.04692320582614684d0 6.854449168174663d-14)
-   (MULTIPLE-VALUE-LIST (SYNCHROTRON-2 4.0d0))))
diff --git a/special-functions/transport.lisp b/special-functions/transport.lisp
index 7094687d3b4c90eae8101e804539ac92ec61d306..3e131a641c4da7ec8020b96980b19f41096e4ff2 100644
--- a/special-functions/transport.lisp
+++ b/special-functions/transport.lisp
@@ -1,6 +1,6 @@
 ;; Transport functions
 ;; Liam Healy, Mon May  1 2006 - 22:29
-;; Time-stamp: <2008-02-16 22:50:39EST transport.lisp>
+;; Time-stamp: <2008-10-25 11:30:06EDT transport.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -34,24 +34,9 @@
 ;;;; Examples and unit test
 ;;;;****************************************************************************
 
-#|
-(make-tests transport
+(save-test transport
   (transport-2 4.0d0)
   (transport-3 4.0d0)
   (transport-4 4.0d0)
   (transport-5 4.0d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST TRANSPORT
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 2.806666404563118d0 2.2867923780257255d-15)
-   (MULTIPLE-VALUE-LIST (TRANSPORT-2 4.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 4.579217437229157d0 3.242324689309112d-15)
-   (MULTIPLE-VALUE-LIST (TRANSPORT-3 4.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 10.731932392998623d0 1.0925209116254758d-14)
-   (MULTIPLE-VALUE-LIST (TRANSPORT-4 4.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 29.488339015245842d0 3.204450601879883d-14)
-   (MULTIPLE-VALUE-LIST (TRANSPORT-5 4.0d0))))
+
diff --git a/special-functions/trigonometry.lisp b/special-functions/trigonometry.lisp
index 78024fed8064bb5dd416e8dce30d44f90923d9c7..62cd33916665705f4954216ba799c730c8f06748 100644
--- a/special-functions/trigonometry.lisp
+++ b/special-functions/trigonometry.lisp
@@ -1,6 +1,6 @@
 ;; Trigonometry
 ;; Liam Healy, Thu May  4 2006 - 22:58
-;; Time-stamp: <2008-07-12 13:41:22EDT trigonometry.lisp>
+;; Time-stamp: <2008-10-25 11:30:07EDT trigonometry.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -136,8 +136,7 @@
 ;;;; Examples and unit test
 ;;;;****************************************************************************
 
-#|
-(make-tests trigonometry
+(save-test trigonometry
   (gsl-sin 1.0d0)
   (gsl-sin #C(1.0d0 1.0d0))
   (gsl-cos 1.0d0)
@@ -153,58 +152,4 @@
   (restrict-positive -1.0d0)
   (sin-err 0.5d0 0.01d0)
   (cos-err 0.5d0 0.01d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST TRIGONOMETRY
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.8414709848078965d0 3.736881847550928d-16)
-   (MULTIPLE-VALUE-LIST (GSL-SIN 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #C(1.2984575814159773d0 0.6349639147847361d0)
-	 #C(5.766310013548447d-16 2.8198062320005596d-16))
-   (MULTIPLE-VALUE-LIST (GSL-SIN #C(1.0d0 1.0d0))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.5403023058681398d0 2.3994242409314904d-16)
-   (MULTIPLE-VALUE-LIST (GSL-COS 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #C(0.8337300251311491d0 -0.9888977057628651d0)
-	 #C(3.7025050808876487d-16 4.3915880077477046d-16))
-   (MULTIPLE-VALUE-LIST (GSL-COS #C(1.0d0 1.0d0))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 2.23606797749979d0 9.930136612989092d-16)
-   (MULTIPLE-VALUE-LIST (HYPOTENUSE 1.0d0 2.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.6366197723675814d0 3.0072729231305663d-16)
-   (MULTIPLE-VALUE-LIST (SINC 0.5d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST #C(0.3683837314249251d0 0.4548202333099499d0)
-	 #C(1.6359524021011266d-16 8.179762010505633d-17))
-   (MULTIPLE-VALUE-LIST (LOG-SIN #C(1.0d0 1.0d0))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST -0.6518223259470272d0 2.8946726169244526d-16)
-   (MULTIPLE-VALUE-LIST (LOG-SINH 0.5d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.12011450695827751d0 4.401938023864669d-17)
-   (MULTIPLE-VALUE-LIST (LOG-COSH 0.5d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.0806046117362795d0 1.682941969615793d0
-	 8.535730329413909d-16 9.873187936033346d-16)
-   (MULTIPLE-VALUE-LIST
-    (POLAR-TO-RECTANGULAR 2.0d0 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 2.23606797749979d0 0.4636476090008061d0
-	 9.930136612989092d-16 2.0590090033003876d-16)
-   (MULTIPLE-VALUE-LIST
-    (RECTANGULAR-TO-POLAR 2.0d0 1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST -1.2831853071795862d0)
-   (MULTIPLE-VALUE-LIST (RESTRICT-SYMMETRIC 5.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 5.283185307179586d0)
-   (MULTIPLE-VALUE-LIST (RESTRICT-POSITIVE -1.0d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.479425538604203d0 0.008775825618904047d0)
-   (MULTIPLE-VALUE-LIST (SIN-ERR 0.5d0 0.01d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.8775825618903728d0 0.004794255386042614d0)
-   (MULTIPLE-VALUE-LIST (COS-ERR 0.5d0 0.01d0))))
+
diff --git a/special-functions/zeta.lisp b/special-functions/zeta.lisp
index 7857876ed1d665c77f7121dfda75736a4e1d230b..f4a81ea923d629a99724592cd560a531d1f61305 100644
--- a/special-functions/zeta.lisp
+++ b/special-functions/zeta.lisp
@@ -1,6 +1,6 @@
 ;; Zeta functions
 ;; Liam Healy, Sat May 13 2006 - 23:27
-;; Time-stamp: <2008-07-12 13:40:50EDT zeta.lisp>
+;; Time-stamp: <2008-10-25 11:31:03EDT zeta.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -72,32 +72,11 @@
 ;;;; Examples and unit test
 ;;;;****************************************************************************
 
-#|
-(make-tests zeta
+(save-test zeta
   (zeta 2)
   (zeta 1.5d0)
   (zeta-1 2)
   (zeta-1 1.5d0)
   (hurwitz-zeta 1.5d0 2.5d0)
   (eta 1.5d0))
-|#
-
-(LISP-UNIT:DEFINE-TEST ZETA
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.6449340668482264d0 7.304974700020789d-16)
-   (MULTIPLE-VALUE-LIST (ZETA 2)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 2.612375348685493d0 1.419471177334903d-14)
-   (MULTIPLE-VALUE-LIST (ZETA 1.5d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.6449340668482264d0 2.8640826015201633d-16)
-   (MULTIPLE-VALUE-LIST (ZETA-1 2)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.612375348685493d0 1.419471177334903d-14)
-   (MULTIPLE-VALUE-LIST (ZETA-1 1.5d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.4037797688568256d0 8.104244828616706d-15)
-   (MULTIPLE-VALUE-LIST (HURWITZ-ZETA 1.5d0 2.5d0)))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 0.7651470246254092d0 1.0661276646941275d-14)
-   (MULTIPLE-VALUE-LIST (ETA 1.5d0))))
+
diff --git a/statistics/absolute-deviation.lisp b/statistics/absolute-deviation.lisp
index 671a358e79a120423e45b8447d29b0bfcce95cd1..a9d35a28f558c46b8076f57168de9e9eeb0e19de 100644
--- a/statistics/absolute-deviation.lisp
+++ b/statistics/absolute-deviation.lisp
@@ -1,6 +1,6 @@
 ;; Absolute deviation
 ;; Liam Healy, Sun Dec 31 2006 - 13:19
-;; Time-stamp: <2008-09-21 15:54:24EDT absolute-deviation.lisp>
+;; Time-stamp: <2008-10-25 18:46:33EDT absolute-deviation.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -48,8 +48,7 @@
 
 ;;; Examples and unit test
 
-#|
-(make-tests absolute-deviation
+(save-test absolute-deviation
   (letm ((vec (vector-double-float (a -3.21d0 1.0d0 12.8d0)))
 	 (weights (vector-double-float (a 3.0d0 1.0d0 2.0d0))))
       (let ((mean (mean vec)))
@@ -57,15 +56,3 @@
 	 (absolute-deviation vec)
 	 (weighted-absolute-deviation vec weights)
 	 (absolute-deviation vec mean)))))
-|#
-
-(LISP-UNIT:DEFINE-TEST ABSOLUTE-DEVIATION
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST (LIST 6.18d0 6.647777777777779d0 6.18d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((VEC (VECTOR-DOUBLE-FLOAT (A -3.21d0 1.0d0 12.8d0)))
-	   (WEIGHTS (VECTOR-DOUBLE-FLOAT (A 3.0d0 1.0d0 2.0d0))))
-      (LET ((MEAN (MEAN VEC)))
-	(LIST (ABSOLUTE-DEVIATION VEC)
-	      (WEIGHTED-ABSOLUTE-DEVIATION VEC WEIGHTS)
-	      (ABSOLUTE-DEVIATION VEC MEAN)))))))
diff --git a/statistics/autocorrelation.lisp b/statistics/autocorrelation.lisp
index 698cf827f459b6ab91a36d21861c511230b4616a..5e8d8ac113f16ab72df5dae103e8b45f748542a6 100644
--- a/statistics/autocorrelation.lisp
+++ b/statistics/autocorrelation.lisp
@@ -1,6 +1,6 @@
 ;; Autocorrelation
 ;; Liam Healy, Sun Dec 31 2006 - 13:19
-;; Time-stamp: <2008-09-21 15:56:14EDT autocorrelation.lisp>
+;; Time-stamp: <2008-10-25 18:47:48EDT autocorrelation.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -25,22 +25,9 @@
 
 ;;; Examples and unit test
 
-#|
-(make-tests autocorrelation
+(save-test autocorrelation
   (letm ((vec (vector-double-float (a -3.21d0 1.0d0 12.8d0))))
       (let ((mean (mean vec)))
 	(list
 	 (autocorrelation vec)
 	 (autocorrelation vec mean)))))
-|#
-
-(LISP-UNIT:DEFINE-TEST AUTOCORRELATION
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST -0.04646366834251103d0 -0.04646366834251103d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((VEC (VECTOR-DOUBLE-FLOAT (A -3.21d0 1.0d0 12.8d0))))
-      (LET ((MEAN (MEAN VEC)))
-	(LIST (AUTOCORRELATION VEC)
-	      (AUTOCORRELATION VEC MEAN)))))))
-
diff --git a/statistics/covariance.lisp b/statistics/covariance.lisp
index 5bb28f3804bcfeb861fd09a2bf8d9a4ebae79dd0..98719f995bc082523f62881ea0685e7e37a1eeb3 100644
--- a/statistics/covariance.lisp
+++ b/statistics/covariance.lisp
@@ -1,6 +1,6 @@
 ;; Covariance
 ;; Liam Healy, Sun Dec 31 2006 - 13:19
-;; Time-stamp: <2008-09-21 15:57:06EDT covariance.lisp>
+;; Time-stamp: <2008-10-25 18:50:08EDT covariance.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -28,8 +28,7 @@
 
 ;;; Examples and unit test
 
-#|
-(make-tests covariance
+(save-test covariance
   (letm ((vec1 (vector-double-float (a -3.21d0 1.0d0 12.8d0)))
 	   (vec2 (vector-double-float (a 1.15d0 -1.0d0 0.5d0))))
       (let ((mean1 (mean vec1))
@@ -37,16 +36,3 @@
 	(list
 	 (covariance vec1 vec2)
 	 (covariance vec1 vec2 mean1 mean2)))))
-|#
-
-(LISP-UNIT:DEFINE-TEST COVARIANCE
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST -0.2929999999999998d0 -0.2929999999999998d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM
-	((VEC1 (VECTOR-DOUBLE-FLOAT (a -3.21d0 1.0d0 12.8d0)))
-	 (VEC2 (VECTOR-DOUBLE-FLOAT (a 1.15d0 -1.0d0 0.5d0))))
-      (LET ((MEAN1 (MEAN VEC1)) (MEAN2 (MEAN VEC2)))
-	(LIST (COVARIANCE VEC1 VEC2)
-	      (COVARIANCE VEC1 VEC2 MEAN1 MEAN2)))))))
diff --git a/statistics/higher-moments.lisp b/statistics/higher-moments.lisp
index e3ea0da96459bc22e67eeea780a6656dc49e3a77..def1e3f05afea8345b44ddd4c5c22e2a663ed1f1 100644
--- a/statistics/higher-moments.lisp
+++ b/statistics/higher-moments.lisp
@@ -1,6 +1,6 @@
 ;; Skewness and kurtosis.
 ;; Liam Healy, Sun Dec 31 2006 - 14:20
-;; Time-stamp: <2008-09-21 15:55:21EDT higher-moments.lisp>
+;; Time-stamp: <2008-10-25 18:46:34EDT higher-moments.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -80,8 +80,7 @@
 
 ;;; Examples and unit test
 
-#|
-(make-tests higher-moments
+(save-test higher-moments
   (letm ((vec (vector-double-float (a -3.21d0 1.0d0 12.8d0))))
       (let* ((mean (mean vec))
 	     (sd (standard-deviation vec mean)))
@@ -90,17 +89,3 @@
 	 (skewness vec mean sd)
 	 (kurtosis vec)
 	 (kurtosis vec mean sd)))))
-|#
-
-(LISP-UNIT:DEFINE-TEST HIGHER-MOMENTS
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 0.2765118983985497d0 0.2765118983985497d0
-	  -2.333333333333333d0 -2.333333333333333d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((VEC (VECTOR-DOUBLE-FLOAT (A -3.21d0 1.0d0 12.8d0))))
-      (LET* ((MEAN (MEAN VEC))
-	     (SD (STANDARD-DEVIATION VEC MEAN)))
-	(LIST (SKEWNESS VEC) (SKEWNESS VEC MEAN SD)
-	      (KURTOSIS VEC)
-	      (KURTOSIS VEC MEAN SD)))))))
diff --git a/statistics/mean-variance.lisp b/statistics/mean-variance.lisp
index 55f07f481efdd76d12226588ae4a3832ce5673fb..ac95dd87f2ecfefb2390c0f76964c50dd50ed758 100644
--- a/statistics/mean-variance.lisp
+++ b/statistics/mean-variance.lisp
@@ -1,6 +1,6 @@
 ;; Mean, standard deviation, and variance    
 ;; Liam Healy, Sat Dec  2 2006 - 22:15
-;; Time-stamp: <2008-09-21 15:52:16EDT mean-variance.lisp>
+;; Time-stamp: <2008-10-25 18:44:21EDT mean-variance.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -186,8 +186,7 @@
 ;;;; Examples and unit test
 ;;;;****************************************************************************
 
-#|
-(make-tests mean-variance
+(save-test mean-variance
  (letm ((vec (vector-double-float (a -3.21d0 1.0d0 12.8d0)))
 	(weights (vector-double-float (a 3.0d0 1.0d0 2.0d0))))
    (let ((mean (mean vec))
@@ -212,42 +211,3 @@
       (standard-deviation vec mean)
       (variance-with-fixed-mean vec 4.0d0)
       (standard-deviation-with-fixed-mean vec 4.0d0)))))
-|#
-
-(LISP-UNIT:DEFINE-TEST MEAN-VARIANCE
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 3.5300000000000002d0 2.8283333333333336d0
-	  68.88069999999999d0 68.88069999999999d0
-	  84.98058636363639d0 84.98058636363639d0
-	  8.29943974012704d0 8.29943974012704d0
-	  46.14136666666667d0 6.792743677385941d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM
-	((VEC (VECTOR-DOUBLE-FLOAT (A -3.21d0 1.0d0 12.8d0)))
-	 (WEIGHTS (VECTOR-DOUBLE-FLOAT (A 3.0d0 1.0d0 2.0d0))))
-      (LET ((MEAN (MEAN VEC))
-	    (WMEAN (WEIGHTED-MEAN VEC WEIGHTS)))
-	(LIST MEAN WMEAN (VARIANCE VEC) (VARIANCE VEC MEAN)
-	      (WEIGHTED-VARIANCE VEC WEIGHTS)
-	      (WEIGHTED-VARIANCE VEC WEIGHTS WMEAN)
-	      (STANDARD-DEVIATION VEC)
-	      (STANDARD-DEVIATION VEC MEAN)
-	      (VARIANCE-WITH-FIXED-MEAN VEC 4.0d0)
-	      (STANDARD-DEVIATION-WITH-FIXED-MEAN VEC
-						  4.0d0))))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST
-    (LIST 3.3333333333333335d0 25.333333333333336d0
-	  25.333333333333336d0 5.033222956847167d0
-	  5.033222956847167d0 17.333333333333332d0
-	  4.163331998932265d0))
-   (MULTIPLE-VALUE-LIST
-    (LETM ((VEC (VECTOR-SIGNED-BYTE-32 (A 8 4 -2))))
-      (LET ((MEAN (MEAN VEC)))
-	(LIST MEAN (VARIANCE VEC) (VARIANCE VEC MEAN)
-	      (STANDARD-DEVIATION VEC)
-	      (STANDARD-DEVIATION VEC MEAN)
-	      (VARIANCE-WITH-FIXED-MEAN VEC 4.0d0)
-	      (STANDARD-DEVIATION-WITH-FIXED-MEAN VEC
-						  4.0d0)))))))
diff --git a/statistics/median-percentile.lisp b/statistics/median-percentile.lisp
index d48bcb7b52965350beb06423fef28f51acd3cc74..c279f21be3a877260807a3a56ae827a3dd2afcc5 100644
--- a/statistics/median-percentile.lisp
+++ b/statistics/median-percentile.lisp
@@ -1,6 +1,6 @@
 ;; Median and percentile
 ;; Liam Healy, Sun Dec 31 2006 - 13:19
-;; Time-stamp: <2008-09-21 15:58:10EDT median-percentile.lisp>
+;; Time-stamp: <2008-10-25 18:50:07EDT median-percentile.lisp>
 ;; $Id$
 
 (in-package :gsl)
@@ -52,24 +52,9 @@
 
 ;;; Examples and unit test
 
-#|
-(make-tests median-percentile
+(save-test median-percentile
   (letm ((vec (vector-double-float (a -3.21d0 1.0d0 12.8d0))))
      (median vec))
   (letm ((vec (vector-double-float
 	       (a -18.0d0 -12.0d0 -3.21d0 0.5d0 1.0d0 2.7d0 12.8d0))))
      (quantile vec 0.75d0)))
-|#
-
-(LISP-UNIT:DEFINE-TEST MEDIAN-PERCENTILE
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.0d0)
-   (MULTIPLE-VALUE-LIST
-    (LETM ((VEC (VECTOR-DOUBLE-FLOAT (A -3.21d0 1.0d0 12.8d0))))
-      (MEDIAN VEC))))
-  (LISP-UNIT::ASSERT-NUMERICAL-EQUAL
-   (LIST 1.85d0)
-   (MULTIPLE-VALUE-LIST
-    (LETM ((VEC (VECTOR-DOUBLE-FLOAT
-		 (A -18.0d0 -12.0d0 -3.21d0 0.5d0 1.0d0 2.7d0 12.8d0))))
-      (QUANTILE VEC 0.75d0)))))