[cl-gsl-cvs] CVS update: cl-gsl/test/test-vector.lisp

cl-gsl-cvs at common-lisp.net cl-gsl-cvs at common-lisp.net
Thu Apr 7 02:37:55 UTC 2005


Update of /project/cl-gsl/cvsroot/cl-gsl/test
In directory common-lisp.net:/tmp/cvs-serv2190

Modified Files:
	test-vector.lisp 
Log Message:
Added several new unit tests.

Date: Thu Apr  7 04:37:55 2005
Author: edenny

Index: cl-gsl/test/test-vector.lisp
diff -u cl-gsl/test/test-vector.lisp:1.1 cl-gsl/test/test-vector.lisp:1.2
--- cl-gsl/test/test-vector.lisp:1.1	Tue Mar 15 04:21:49 2005
+++ cl-gsl/test/test-vector.lisp	Thu Apr  7 04:37:55 2005
@@ -25,41 +25,51 @@
          :test-fn
          #'(lambda ()
              (let ((v (gsl-vector:make-vector 5 :element-type 'double-float)))
-               (and (= (gsl-vector:gsl-vec-size v) 5)
-                    (eq (gsl-vector:gsl-vec-element-type v) 'double-float)))))
+               (prog1
+                   (and (= (gsl-vector:gsl-vec-size v) 5)
+                        (eq (gsl-vector:gsl-vec-element-type v) 'double-float))
+                 (gsl-vector:free v)))))
 
 
 (deftest "make-vector-single-float" :category +vector+
          :test-fn
          #'(lambda ()
              (let ((v (gsl-vector:make-vector 5 :element-type 'single-float)))
-               (and (= (gsl-vector:gsl-vec-size v) 5)
-                    (eq (gsl-vector:gsl-vec-element-type v) 'single-float)))))
+               (prog1
+                   (and (= (gsl-vector:gsl-vec-size v) 5)
+                        (eq (gsl-vector:gsl-vec-element-type v) 'single-float))
+                 (gsl-vector:free v)))))
 
 (deftest "make-vector-integer" :category +vector+
          :test-fn
          #'(lambda ()
              (let ((v (gsl-vector:make-vector 5 :element-type 'integer)))
-               (and (= (gsl-vector:gsl-vec-size v) 5)
-                    (eq (gsl-vector:gsl-vec-element-type v) 'integer)))))
+               (prog1
+                   (and (= (gsl-vector:gsl-vec-size v) 5)
+                        (eq (gsl-vector:gsl-vec-element-type v) 'integer))
+                 (gsl-vector:free v)))))
 
 (deftest "make-vector-complex-double-float" :category +vector+
          :test-fn
          #'(lambda ()
              (let ((v (gsl-vector:make-vector 5 :element-type
                                               '(complex (double-float)))))
-               (and (= (gsl-vector:gsl-vec-size v) 5)
-                    (equal (gsl-vector:gsl-vec-element-type v)
-                           '(complex (double-float)))))))
+               (prog1
+                   (and (= (gsl-vector:gsl-vec-size v) 5)
+                        (equal (gsl-vector:gsl-vec-element-type v)
+                               '(complex (double-float))))
+                 (gsl-vector:free v)))))
 
 (deftest "make-vector-complex-single-float" :category +vector+
          :test-fn
          #'(lambda ()
              (let ((v (gsl-vector:make-vector 5 :element-type
                                               '(complex (single-float)))))
-               (and (= (gsl-vector:gsl-vec-size v) 5)
-                    (equal (gsl-vector:gsl-vec-element-type v)
-                           '(complex (single-float)))))))
+               (prog1
+                   (and (= (gsl-vector:gsl-vec-size v) 5)
+                        (equal (gsl-vector:gsl-vec-element-type v)
+                               '(complex (single-float))))
+                 (gsl-vector:free v)))))
 
 ;; ----------------------------------------------------------------------
 
@@ -72,7 +82,9 @@
                    (ret t))
                (dotimes (i 5 ret)
                  (unless (= (gsl-vector:get-element v i) 1.0d0)
-                   (setq ret nil))))))
+                   (setq ret nil)))
+               (gsl-vector:free v)
+               ret)))
 
 
 (deftest "make-vector-single-float-initial-element" :category +vector+
@@ -84,7 +96,9 @@
                    (ret t))
                (dotimes (i 5 ret)
                  (unless (= (gsl-vector:get-element v i) 1.0)
-                   (setq ret nil))))))
+                   (setq ret nil)))
+               (gsl-vector:free v)
+               ret)))
 
 
 (deftest "make-vector-integer-initial-element" :category +vector+
@@ -96,7 +110,9 @@
                    (ret t))
                (dotimes (i 5 ret)
                  (unless (= (gsl-vector:get-element v i) 1)
-                   (setq ret nil))))))
+                   (setq ret nil)))
+               (gsl-vector:free v)
+               ret)))
 
 (deftest "make-vector-complex-double-float-initial-element" :category +vector+
          :test-fn
@@ -109,7 +125,9 @@
                    (ret t))
                (dotimes (i 5 ret)
                  (unless (= (gsl-vector:get-element v i) (complex 1.0d0 1.0d0))
-                   (setq ret nil))))))
+                   (setq ret nil)))
+               (gsl-vector:free v)
+               ret)))
 
 (deftest "make-vector-complex-single-float-initial-element" :category +vector+
          :test-fn
@@ -121,4 +139,628 @@
                    (ret t))
                (dotimes (i 5 ret)
                  (unless (= (gsl-vector:get-element v i) (complex 1.0 1.0))
-                   (setq ret nil))))))
+                   (setq ret nil)))
+               (gsl-vector:free v)
+               ret)))
+
+;; ----------------------------------------------------------------------
+
+(deftest "make-vector-double-float-initial-contents" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (let ((v (gsl-vector:make-vector
+                       5
+                       :element-type 'double-float
+                       :initial-contents (list 1.0d0 2.0d0 3.0d0 4.0d0 5.0d0)))
+                   (ret t)
+                   (val 0.0d0))
+               (dotimes (i 5 ret)
+                 (unless (= (gsl-vector:get-element v i) (incf val 1.0d0))
+                   (setq ret nil)))
+               (gsl-vector:free v)
+               ret)))
+
+
+(deftest "make-vector-single-float-initial-contents" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (let ((v (gsl-vector:make-vector
+                       5
+                       :element-type 'single-float
+                       :initial-contents (vector -1.0 -2.0 -3.0 -4.0 -5.0)))
+                   (ret t)
+                   (val 0.0))
+               (dotimes (i 5 ret)
+                 (unless (= (gsl-vector:get-element v i) (decf val 1.0))
+                   (setq ret nil)))
+               (gsl-vector:free v)
+               ret)))
+
+
+(deftest "make-vector-integer-initial-contents" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (let ((v (gsl-vector:make-vector
+                       5
+                       :element-type 'integer
+                       :initial-contents (list 1 2 3 4 5)))
+                   (ret t)
+                   (val 0))
+               (dotimes (i 5 ret)
+                 (unless (= (gsl-vector:get-element v i) (incf val))
+                   (setq ret nil)))
+               (gsl-vector:free v)
+               ret)))
+
+(deftest "make-vector-complex-double-float-initial-contents" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (let ((v (gsl-vector:make-vector
+                       5
+                       :element-type '(complex (double-float))
+                       :initial-contents
+                       (vector (complex 1.0d0 1.0d0) (complex 2.0d0 2.0d0)
+                               (complex 3.0d0 3.0d0) (complex 4.0d0 4.0d0)
+                               (complex 5.0d0 5.0d0))))
+                   (ret t)
+                   (val (complex 0.0d0 0.0d0)))
+               (dotimes (i 5 ret)
+                 (unless (= (gsl-vector:get-element v i)
+                            (incf val (complex 1.0d0 1.0d0)))
+                   (setq ret nil)))
+               (gsl-vector:free v)
+               ret)))
+
+(deftest "make-vector-complex-single-float-initial-contents" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (let ((v (gsl-vector:make-vector
+                       5
+                       :element-type '(complex (single-float))
+                       :initial-contents
+                       (list (complex -1.0 -1.0) (complex -2.0 -2.0)
+                             (complex -3.0 -3.0) (complex -4.0 -4.0)
+                             (complex -5.0 -5.0))))
+                   (ret t)
+                   (val (complex 0.0 0.0)))
+               (dotimes (i 5 ret)
+                 (unless (= (gsl-vector:get-element v i)
+                            (decf val (complex 1.0 1.0)))
+                   (setq ret nil)))
+               (gsl-vector:free v)
+               ret)))
+
+;; ----------------------------------------------------------------------
+
+(deftest "set-all-double-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (gsl-vector:with-vector (v 5 :element-type 'double-float)
+               (gsl-vector:set-all v 5.0d0)
+               (let ((ret t))
+                 (dotimes (i 5 ret)
+                   (unless (= (gsl-vector:get-element v i) 5.0d0)
+                     (setq ret nil)))))))
+
+
+(deftest "set-all-single-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (gsl-vector:with-vector (v 5 :element-type 'single-float)
+               (gsl-vector:set-all v 5.0)
+               (let ((ret t))
+                 (dotimes (i 5 ret)
+                   (unless (= (gsl-vector:get-element v i) 5.0)
+                     (setq ret nil)))))))
+
+(deftest "set-all-integer" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (gsl-vector:with-vector (v 5 :element-type 'integer)
+               (gsl-vector:set-all v 5)
+               (let ((ret t))
+                 (dotimes (i 5 ret)
+                   (unless (= (gsl-vector:get-element v i) 5)
+                     (setq ret nil)))))))
+
+(deftest "set-all-complex-double-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (gsl-vector:with-vector
+                 (v 5 :element-type '(complex (double-float)))
+               (gsl-vector:set-all v (complex 5.0d0 4.0d0))
+               (let ((ret t))
+                 (dotimes (i 5 ret)
+                   (unless (= (gsl-vector:get-element v i)
+                              (complex 5.0d0 4.0d0))
+                     (setq ret nil)))))))
+
+(deftest "set-all-complex-single-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (gsl-vector:with-vector
+                 (v 5 :element-type '(complex (single-float)))
+               (gsl-vector:set-all v (complex 5.0 4.0))
+               (let ((ret t))
+                 (dotimes (i 5 ret)
+                   (unless (= (gsl-vector:get-element v i) (complex 5.0 4.0))
+                     (setq ret nil)))))))
+
+;; ----------------------------------------------------------------------
+
+(deftest "set-zero-double-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (gsl-vector:with-vector (v 5 :element-type 'double-float)
+               (gsl-vector:set-all v 5.0d0)
+               (gsl-vector:set-zero v)
+               (let ((ret t))
+                 (dotimes (i 5 ret)
+                   (unless (= (gsl-vector:get-element v i) 0.0d0)
+                     (setq ret nil)))))))
+
+
+(deftest "set-zero-single-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (gsl-vector:with-vector (v 5 :element-type 'single-float)
+               (gsl-vector:set-all v 5.0)
+               (gsl-vector:set-zero v)
+               (let ((ret t))
+                 (dotimes (i 5 ret)
+                   (unless (= (gsl-vector:get-element v i) 0.0)
+                     (setq ret nil)))))))
+
+(deftest "set-zero-integer" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (gsl-vector:with-vector (v 5 :element-type 'integer)
+               (gsl-vector:set-all v 5)
+               (gsl-vector:set-zero v)
+               (let ((ret t))
+                 (dotimes (i 5 ret)
+                   (unless (= (gsl-vector:get-element v i) 0)
+                     (setq ret nil)))))))
+
+(deftest "set-zero-complex-double-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (gsl-vector:with-vector
+                 (v 5 :element-type '(complex (double-float)))
+               (gsl-vector:set-all v (complex 5.0d0 4.0d0))
+               (gsl-vector:set-zero v)
+               (let ((ret t))
+                 (dotimes (i 5 ret)
+                   (unless (= (gsl-vector:get-element v i)
+                              (complex 0.0d0 0.0d0))
+                     (setq ret nil)))))))
+
+(deftest "set-zero-complex-single-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (gsl-vector:with-vector
+                 (v 5 :element-type '(complex (single-float)))
+               (gsl-vector:set-all v (complex 5.0 4.0))
+               (gsl-vector:set-zero v)
+               (let ((ret t))
+                 (dotimes (i 5 ret)
+                   (unless (= (gsl-vector:get-element v i) (complex 0.0 0.0))
+                     (setq ret nil)))))))
+
+;; ----------------------------------------------------------------------
+
+(deftest "set-basis-double-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (gsl-vector:with-vector (v 5 :element-type 'double-float)
+               (gsl-vector:set-basis v 3)
+               (let ((ret t))
+                 (dotimes (i 5 ret)
+                   (if (= i 3)
+                       (unless (= (gsl-vector:get-element v i) 1.0d0)
+                         (setq ret nil))
+                       (unless (= (gsl-vector:get-element v i) 0.0d0)
+                         (setq ret nil))))))))
+
+(deftest "set-basis-single-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (gsl-vector:with-vector (v 5 :element-type 'single-float)
+               (gsl-vector:set-basis v 2)
+               (let ((ret t))
+                 (dotimes (i 5 ret)
+                   (if (= i 2)
+                       (unless (= (gsl-vector:get-element v i) 1.0)
+                         (setq ret nil))
+                       (unless (= (gsl-vector:get-element v i) 0.0)
+                         (setq ret nil))))))))
+
+(deftest "set-basis-integer" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (gsl-vector:with-vector (v 5 :element-type 'integer)
+               (gsl-vector:set-basis v 1)
+               (let ((ret t))
+                 (dotimes (i 5 ret)
+                   (if (= i 1)
+                       (unless (= (gsl-vector:get-element v i) 1)
+                         (setq ret nil))
+                       (unless (= (gsl-vector:get-element v i) 0)
+                         (setq ret nil))))))))
+
+(deftest "set-basis-complex-double-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (gsl-vector:with-vector
+                 (v 5 :element-type '(complex (double-float)))
+               (gsl-vector:set-basis v 4)
+               (let ((ret t))
+                 (dotimes (i 5 ret)
+                   (if (= i 4)
+                       (unless (= (gsl-vector:get-element v i)
+                                  (complex 1.0d0 0.0d0))
+                         (setq ret nil))
+                       (unless (= (gsl-vector:get-element v i)
+                                  (complex 0.0d0 0.0d0))
+                         (setq ret nil))))))))
+
+(deftest "set-basis-complex-single-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (gsl-vector:with-vector
+                 (v 5 :element-type '(complex (single-float)))
+               (gsl-vector:set-basis v 0)
+               (let ((ret t))
+                 (dotimes (i 5 ret)
+                   (if (= i 0)
+                       (unless (= (gsl-vector:get-element v i)
+                                  (complex 1.0 0.0))
+                         (setq ret nil))
+                       (unless (= (gsl-vector:get-element v i)
+                                  (complex 0.0 0.0))
+                         (setq ret nil))))))))
+
+
+;; ----------------------------------------------------------------------
+
+(deftest "set-element-double-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (gsl-vector:with-vector (v 5 :element-type 'double-float)
+               (gsl-vector:set-zero v)
+               (gsl-vector:set-element v 3 6.0d0)
+               (let ((ret t))
+                 (dotimes (i 5 ret)
+                   (if (= i 3)
+                       (unless (= (gsl-vector:get-element v i) 6.0d0)
+                         (setq ret nil))
+                       (unless (= (gsl-vector:get-element v i) 0.0d0)
+                         (setq ret nil))))))))
+
+
+(deftest "set-element-single-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (gsl-vector:with-vector (v 5 :element-type 'single-float)
+               (gsl-vector:set-zero v)
+               (gsl-vector:set-element v 2 6.0)
+               (let ((ret t))
+                 (dotimes (i 5 ret)
+                   (if (= i 2)
+                       (unless (= (gsl-vector:get-element v i) 6.0)
+                         (setq ret nil))
+                       (unless (= (gsl-vector:get-element v i) 0.0)
+                         (setq ret nil))))))))
+
+(deftest "set-element-integer" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (gsl-vector:with-vector (v 5 :element-type 'integer)
+               (gsl-vector:set-zero v)
+               (gsl-vector:set-element v 1 6)
+               (let ((ret t))
+                 (dotimes (i 5 ret)
+                   (if (= i 1)
+                       (unless (= (gsl-vector:get-element v i) 6)
+                         (setq ret nil))
+                       (unless (= (gsl-vector:get-element v i) 0)
+                         (setq ret nil))))))))
+
+(deftest "set-element-complex-double-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (gsl-vector:with-vector
+                 (v 5 :element-type '(complex (double-float)))
+               (gsl-vector:set-zero v)
+               (gsl-vector:set-element v 4 (complex 6.0d0 7.0d0))
+               (let ((ret t))
+                 (dotimes (i 5 ret)
+                   (if (= i 4)
+                       (unless (= (gsl-vector:get-element v i)
+                                  (complex 6.0d0 7.0d0))
+                         (setq ret nil))
+                       (unless (= (gsl-vector:get-element v i)
+                                  (complex 0.0d0 0.0d0))
+                         (setq ret nil))))))))
+
+(deftest "set-element-complex-single-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (gsl-vector:with-vector
+                 (v 5 :element-type '(complex (single-float)))
+               (gsl-vector:set-zero v)
+               (gsl-vector:set-element v 0 (complex 6.0 7.0))
+               (let ((ret t))
+                 (dotimes (i 5 ret)
+                   (if (= i 0)
+                       (unless (= (gsl-vector:get-element v i)
+                                  (complex 6.0 7.0))
+                         (setq ret nil))
+                       (unless (= (gsl-vector:get-element v i)
+                                  (complex 0.0 0.0))
+                         (setq ret nil))))))))
+
+;; ----------------------------------------------------------------------
+
+(deftest "isnull-double-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (gsl-vector:with-vector (v 5 :element-type 'double-float)
+               (gsl-vector:set-zero v)
+               (gsl-vector:isnull v))))
+
+
+(deftest "isnull-single-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (gsl-vector:with-vector (v 5 :element-type 'single-float)
+               (gsl-vector:set-basis v 0)
+               (not (gsl-vector:isnull v)))))
+
+
+(deftest "isnull-integer" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (gsl-vector:with-vector (v 5 :element-type 'integer)
+               (gsl-vector:set-zero v)
+               (gsl-vector:isnull v))))
+
+(deftest "isnull-complex-double-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (gsl-vector:with-vector
+                 (v 5 :element-type '(complex (double-float)))
+               (gsl-vector:set-basis v 1)
+               (not (gsl-vector:isnull v)))))
+
+(deftest "isnull-complex-single-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (gsl-vector:with-vector
+                 (v 5 :element-type '(complex (single-float)))
+               (gsl-vector:set-zero v)
+               (gsl-vector:isnull v))))
+
+;; ----------------------------------------------------------------------
+
+(deftest "reverse-double-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (let ((vec (vector 1.0d0 2.0d0 3.0d0 4.0d0 5.0d0)))
+               (gsl-vector:with-vector
+                   (v 5 :element-type 'double-float :initial-contents vec)
+                 (equalp (reverse vec)
+                         (gsl-vector:gsl-vector->lisp-vector
+                          (gsl-vector:reverse-vector v)))))))
+
+(deftest "reverse-single-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (let ((vec (vector 1.0 2.0 3.0 4.0 5.0)))
+               (gsl-vector:with-vector
+                   (v 5 :element-type 'single-float :initial-contents vec)
+                 (equalp (reverse vec)
+                         (gsl-vector:gsl-vector->lisp-vector
+                          (gsl-vector:reverse-vector v)))))))
+
+(deftest "reverse-integer" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (let ((vec (vector 1 2 3 4 5)))
+               (gsl-vector:with-vector
+                   (v 5 :element-type 'integer :initial-contents vec)
+                 (equalp (reverse vec)
+                         (gsl-vector:gsl-vector->lisp-vector
+                          (gsl-vector:reverse-vector v)))))))
+
+
+(deftest "reverse-complex-double-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (let ((vec (vector (complex 1.0d0 1.0d0) (complex 2.0d0 2.0d0)
+                                (complex 3.0d0 3.0d0) (complex 4.0d0 4.0d0)
+                                (complex 5.0d0 5.0d0))))
+               (gsl-vector:with-vector
+                   (v 5 :element-type '(complex (double-float))
+                      :initial-contents vec)
+                 (equalp (reverse vec)
+                         (gsl-vector:gsl-vector->lisp-vector
+                          (gsl-vector:reverse-vector v)))))))
+
+
+(deftest "reverse-complex-single-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (let ((vec (vector (complex -1.0 -1.0) (complex -2.0 -2.0)
+                                (complex -3.0 -3.0) (complex -4.0 -4.0)
+                                (complex -5.0 -5.0))))
+               (gsl-vector:with-vector
+                   (v 5 :element-type '(complex (single-float))
+                      :initial-contents vec)
+                 (equalp (reverse vec)
+                         (gsl-vector:gsl-vector->lisp-vector
+                          (gsl-vector:reverse-vector v)))))))
+
+;; ----------------------------------------------------------------------
+
+(deftest "read-write-double-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (let ((vec (vector 1.0d0 2.0d0 3.0d0 4.0d0 5.0d0)))
+               (gsl-vector:with-vector
+                   (v1 5 :element-type 'double-float :initial-contents vec)
+                 (gsl-vector:write-to-file "/tmp/test.txt" v1)
+                 (gsl-vector:with-vector
+                     (v2 5 :element-type 'double-float
+                         :from-file "/tmp/test.txt")
+                   (and (equalp vec
+                                (gsl-vector:gsl-vector->lisp-vector v1))
+                        (equalp vec
+                                (gsl-vector:gsl-vector->lisp-vector v2))))))))
+
+(deftest "read-write-single-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (let ((vec (vector 1.0 2.0 3.0 4.0 5.0)))
+               (gsl-vector:with-vector
+                   (v1 5 :element-type 'single-float :initial-contents vec)
+                 (gsl-vector:write-to-file "/tmp/test.txt" v1)
+                 (gsl-vector:with-vector
+                     (v2 5 :element-type 'single-float
+                         :from-file "/tmp/test.txt")
+                   (and (equalp vec
+                                (gsl-vector:gsl-vector->lisp-vector v1))
+                        (equalp vec
+                                (gsl-vector:gsl-vector->lisp-vector v2))))))))
+
+(deftest "read-write-integer" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (let ((vec (vector 1 2 3 4 5)))
+               (gsl-vector:with-vector
+                   (v1 5 :element-type 'integer :initial-contents vec)
+                 (gsl-vector:write-to-file "/tmp/test.txt" v1)
+                 (gsl-vector:with-vector
+                     (v2 5 :element-type 'integer :from-file "/tmp/test.txt")
+                   (and (equalp vec
+                                (gsl-vector:gsl-vector->lisp-vector v1))
+                        (equalp vec
+                                (gsl-vector:gsl-vector->lisp-vector v2))))))))
+
+(deftest "read-write-complex-double-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (let ((vec (vector (complex 1.0d0 1.0d0) (complex 2.0d0 2.0d0)
+                                (complex 3.0d0 3.0d0) (complex 4.0d0 4.0d0)
+                                (complex 5.0d0 5.0d0))))
+               (gsl-vector:with-vector
+                   (v1 5 :element-type '(complex (double-float))
+                       :initial-contents vec)
+                 (gsl-vector:write-to-file "/tmp/test.txt" v1)
+                 (gsl-vector:with-vector
+                     (v2 5 :element-type '(complex (double-float))
+                         :from-file "/tmp/test.txt")
+                   (and (equalp vec
+                                (gsl-vector:gsl-vector->lisp-vector v1))
+                        (equalp vec
+                                (gsl-vector:gsl-vector->lisp-vector v2))))))))
+
+(deftest "read-write-complex-single-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (let ((vec (vector (complex 1.0 1.0) (complex 2.0 2.0)
+                                (complex 3.0 3.0) (complex 4.0 4.0)
+                                (complex 5.0 5.0))))
+               (gsl-vector:with-vector
+                   (v1 5 :element-type '(complex (single-float))
+                       :initial-contents vec)
+                 (gsl-vector:write-to-file "/tmp/test.txt" v1)
+                 (gsl-vector:with-vector
+                     (v2 5 :element-type '(complex (single-float))
+                         :from-file "/tmp/test.txt")
+                   (and (equalp vec
+                                (gsl-vector:gsl-vector->lisp-vector v1))
+                        (equalp vec
+                                (gsl-vector:gsl-vector->lisp-vector v2))))))))
+
+
+;; ----------------------------------------------------------------------
+
+(deftest "read-write-binary-double-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (let ((vec (vector 1.0000000000001d0 2.0d0 3.0d0 4.0d0 5.0d0)))
+               (gsl-vector:with-vector
+                   (v1 5 :element-type 'double-float :initial-contents vec)
+                 (gsl-vector:write-to-binary-file "/tmp/test.bin" v1)
+                 (gsl-vector:with-vector (v2 5 :element-type 'double-float
+                                             :from-binary-file "/tmp/test.bin")
+                   (and (equalp vec
+                                (gsl-vector:gsl-vector->lisp-vector v1))
+                        (equalp vec
+                                (gsl-vector:gsl-vector->lisp-vector v2))))))))
+
+(deftest "read-write-binary-single-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (let ((vec (vector 1.0 2.0 3.0 4.0 5.0)))
+               (gsl-vector:with-vector
+                   (v1 5 :element-type 'single-float :initial-contents vec)
+                 (gsl-vector:write-to-binary-file "/tmp/test.bin" v1)
+                 (gsl-vector:with-vector (v2 5 :element-type 'single-float
+                                             :from-binary-file "/tmp/test.bin")
+                   (and (equalp vec
+                                (gsl-vector:gsl-vector->lisp-vector v1))
+                        (equalp vec
+                                (gsl-vector:gsl-vector->lisp-vector v2))))))))
+
+
+(deftest "read-write-binary-integer" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (let ((vec (vector 1 2 3 4 5)))
+               (gsl-vector:with-vector
+                   (v1 5 :element-type 'integer :initial-contents vec)
+                 (gsl-vector:write-to-binary-file "/tmp/test.bin" v1)
+                 (gsl-vector:with-vector (v2 5 :element-type 'integer
+                                             :from-binary-file "/tmp/test.bin")
+                   (and (equalp vec
+                                (gsl-vector:gsl-vector->lisp-vector v1))
+                        (equalp vec
+                                (gsl-vector:gsl-vector->lisp-vector v2))))))))
+
+(deftest "read-write-binary-complex-double-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (let ((vec (vector (complex 1.0d0 1.0d0) (complex 2.0d0 2.0d0)
+                                (complex 3.0d0 3.0d0) (complex 4.0d0 4.0d0)
+                                (complex 5.0d0 5.0d0))))
+               (gsl-vector:with-vector
+                   (v1 5 :element-type '(complex (double-float))
+                       :initial-contents vec)
+                 (gsl-vector:write-to-binary-file "/tmp/test.bin" v1)
+                 (gsl-vector:with-vector
+                     (v2 5 :element-type '(complex (double-float))
+                         :from-binary-file "/tmp/test.bin")
+                   (and (equalp vec
+                                (gsl-vector:gsl-vector->lisp-vector v1))
+                        (equalp vec
+                                (gsl-vector:gsl-vector->lisp-vector v2))))))))
+
+(deftest "read-write-binary-complex-single-float" :category +vector+
+         :test-fn
+         #'(lambda ()
+             (let ((vec (vector (complex 1.0 1.0) (complex 2.0 2.0)
+                                (complex 3.0 3.0) (complex 4.0 4.0)
+                                (complex 5.0 5.0))))
+               (gsl-vector:with-vector
+                   (v1 5 :element-type '(complex (single-float))
+                       :initial-contents vec)
+                 (gsl-vector:write-to-binary-file "/tmp/test.bin" v1)
+                 (gsl-vector:with-vector
+                     (v2 5 :element-type '(complex (single-float))
+                         :from-binary-file "/tmp/test.bin")
+                   (and (equalp vec
+                                (gsl-vector:gsl-vector->lisp-vector v1))
+                        (equalp vec
+                                (gsl-vector:gsl-vector->lisp-vector v2))))))))




More information about the Cl-gsl-cvs mailing list