Update of /project/cl-gsl/cvsroot/cl-gsl/test In directory common-lisp.net:/tmp/cvs-serv27622
Modified Files: test-vector.lisp Log Message: Add several more test. Almost complete except for subvector and subvector-with-stride tests - which don't work yet.
Date: Sun Apr 10 04:32:24 2005 Author: edenny
Index: cl-gsl/test/test-vector.lisp diff -u cl-gsl/test/test-vector.lisp:1.2 cl-gsl/test/test-vector.lisp:1.3 --- cl-gsl/test/test-vector.lisp:1.2 Thu Apr 7 04:37:55 2005 +++ cl-gsl/test/test-vector.lisp Sun Apr 10 04:32:24 2005 @@ -49,7 +49,7 @@ (eq (gsl-vector:gsl-vec-element-type v) 'integer)) (gsl-vector:free v)))))
-(deftest "make-vector-complex-double-float" :category +vector+ +v(deftest "make-vector-complex-double-float" :category +vector+ :test-fn #'(lambda () (let ((v (gsl-vector:make-vector 5 :element-type @@ -550,7 +550,7 @@ (gsl-vector:with-vector (v 5 :element-type 'double-float :initial-contents vec) (equalp (reverse vec) - (gsl-vector:gsl-vector->lisp-vector + (gsl-vector:gsl->lisp-vector (gsl-vector:reverse-vector v)))))))
(deftest "reverse-single-float" :category +vector+ @@ -560,7 +560,7 @@ (gsl-vector:with-vector (v 5 :element-type 'single-float :initial-contents vec) (equalp (reverse vec) - (gsl-vector:gsl-vector->lisp-vector + (gsl-vector:gsl->lisp-vector (gsl-vector:reverse-vector v)))))))
(deftest "reverse-integer" :category +vector+ @@ -570,7 +570,7 @@ (gsl-vector:with-vector (v 5 :element-type 'integer :initial-contents vec) (equalp (reverse vec) - (gsl-vector:gsl-vector->lisp-vector + (gsl-vector:gsl->lisp-vector (gsl-vector:reverse-vector v)))))))
@@ -584,7 +584,7 @@ (v 5 :element-type '(complex (double-float)) :initial-contents vec) (equalp (reverse vec) - (gsl-vector:gsl-vector->lisp-vector + (gsl-vector:gsl->lisp-vector (gsl-vector:reverse-vector v)))))))
@@ -598,7 +598,7 @@ (v 5 :element-type '(complex (single-float)) :initial-contents vec) (equalp (reverse vec) - (gsl-vector:gsl-vector->lisp-vector + (gsl-vector:gsl->lisp-vector (gsl-vector:reverse-vector v)))))))
;; ---------------------------------------------------------------------- @@ -613,10 +613,8 @@ (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)))))))) + (and (equalp vec (gsl-vector:gsl->lisp-vector v1)) + (equalp vec (gsl-vector:gsl->lisp-vector v2))))))))
(deftest "read-write-single-float" :category +vector+ :test-fn @@ -628,10 +626,8 @@ (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)))))))) + (and (equalp vec (gsl-vector:gsl->lisp-vector v1)) + (equalp vec (gsl-vector:gsl->lisp-vector v2))))))))
(deftest "read-write-integer" :category +vector+ :test-fn @@ -642,10 +638,8 @@ (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)))))))) + (and (equalp vec (gsl-vector:gsl->lisp-vector v1)) + (equalp vec (gsl-vector:gsl->lisp-vector v2))))))))
(deftest "read-write-complex-double-float" :category +vector+ :test-fn @@ -660,10 +654,8 @@ (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)))))))) + (and (equalp vec (gsl-vector:gsl->lisp-vector v1)) + (equalp vec (gsl-vector:gsl->lisp-vector v2))))))))
(deftest "read-write-complex-single-float" :category +vector+ :test-fn @@ -678,10 +670,8 @@ (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)))))))) + (and (equalp vec (gsl-vector:gsl->lisp-vector v1)) + (equalp vec (gsl-vector:gsl->lisp-vector v2))))))))
;; ---------------------------------------------------------------------- @@ -695,10 +685,8 @@ (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)))))))) + (and (equalp vec (gsl-vector:gsl->lisp-vector v1)) + (equalp vec (gsl-vector:gsl->lisp-vector v2))))))))
(deftest "read-write-binary-single-float" :category +vector+ :test-fn @@ -709,10 +697,8 @@ (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)))))))) + (and (equalp vec (gsl-vector:gsl->lisp-vector v1)) + (equalp vec (gsl-vector:gsl->lisp-vector v2))))))))
(deftest "read-write-binary-integer" :category +vector+ @@ -724,10 +710,8 @@ (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)))))))) + (and (equalp vec (gsl-vector:gsl->lisp-vector v1)) + (equalp vec (gsl-vector:gsl->lisp-vector v2))))))))
(deftest "read-write-binary-complex-double-float" :category +vector+ :test-fn @@ -742,10 +726,8 @@ (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)))))))) + (and (equalp vec (gsl-vector:gsl->lisp-vector v1)) + (equalp vec (gsl-vector:gsl->lisp-vector v2))))))))
(deftest "read-write-binary-complex-single-float" :category +vector+ :test-fn @@ -760,7 +742,599 @@ (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)))))))) + (and (equalp vec (gsl-vector:gsl->lisp-vector v1)) + (equalp vec (gsl-vector:gsl->lisp-vector v2)))))))) + +;; ---------------------------------------------------------------------- + +(deftest "copy-double-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec (vector 1.0d0 2.0d0 3.0d0 4.0d0 5.0d0)) + (v2) + (res)) + (gsl-vector:with-vector + (v1 5 :element-type 'double-float :initial-contents vec) + (setq v2 (gsl-vector:copy v1)) + (setq res (equalp (gsl-vector:gsl->lisp-vector v1) + (gsl-vector:gsl->lisp-vector v2))) + (gsl-vector:free v2)) + res))) + +(deftest "copy-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:with-vector-copy (v2 v1) + (and (equalp vec (gsl-vector:gsl->lisp-vector v1)) + (equalp vec (gsl-vector:gsl->lisp-vector v2)))))))) + +(deftest "copy-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:with-vector-copy (v2 v1) + (and (equalp vec (gsl-vector:gsl->lisp-vector v1)) + (equalp vec (gsl-vector:gsl->lisp-vector v2)))))))) + +(deftest "copy-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:with-vector-copy (v2 v1) + (and (equalp vec (gsl-vector:gsl->lisp-vector v1)) + (equalp vec (gsl-vector:gsl->lisp-vector v2)))))))) + +(deftest "copy-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:with-vector-copy (v2 v1) + (and (equalp vec (gsl-vector:gsl->lisp-vector v1)) + (equalp vec (gsl-vector:gsl->lisp-vector v2)))))))) + + +;; ---------------------------------------------------------------------- + +(deftest "swap-double-float" :category +vector+ + :test-fn + #'(lambda () + (let* ((vec-1 (vector 1.0d0 2.0d0 3.0d0 4.0d0 5.0d0)) + (vec-2 (reverse vec-1))) + (gsl-vector:with-vector + (v1 5 :element-type 'double-float :initial-contents vec-1) + (gsl-vector:with-vector + (v2 5 :element-type 'double-float :initial-contents vec-2) + (gsl-vector:swap v1 v2) + (and (equalp vec-2 (gsl-vector:gsl->lisp-vector v1)) + (equalp vec-1 (gsl-vector:gsl->lisp-vector v2)))))))) + +(deftest "swap-single-float" :category +vector+ + :test-fn + #'(lambda () + (let* ((vec-1 (vector 1.0 2.0 3.0 4.0 5.0)) + (vec-2 (reverse vec-1))) + (gsl-vector:with-vector + (v1 5 :element-type 'single-float :initial-contents vec-1) + (gsl-vector:with-vector + (v2 5 :element-type 'single-float :initial-contents vec-2) + (gsl-vector:swap v1 v2) + (and (equalp vec-2 (gsl-vector:gsl->lisp-vector v1)) + (equalp vec-1 (gsl-vector:gsl->lisp-vector v2)))))))) + +(deftest "swap-integer" :category +vector+ + :test-fn + #'(lambda () + (let* ((vec-1 (vector 1 2 3 4 5)) + (vec-2 (reverse vec-1))) + (gsl-vector:with-vector + (v1 5 :element-type 'integer :initial-contents vec-1) + (gsl-vector:with-vector + (v2 5 :element-type 'integer :initial-contents vec-2) + (gsl-vector:swap v1 v2) + (and (equalp vec-2 (gsl-vector:gsl->lisp-vector v1)) + (equalp vec-1 (gsl-vector:gsl->lisp-vector v2)))))))) + +(deftest "swap-complex-double-float" :category +vector+ + :test-fn + #'(lambda () + (let* ((vec-1 (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))) + (vec-2 (reverse vec-1))) + (gsl-vector:with-vector + (v1 5 :element-type '(complex (double-float)) + :initial-contents vec-1) + (gsl-vector:with-vector + (v2 5 :element-type '(complex (double-float)) + :initial-contents vec-2) + (gsl-vector:swap v1 v2) + (and (equalp vec-2 (gsl-vector:gsl->lisp-vector v1)) + (equalp vec-1 (gsl-vector:gsl->lisp-vector v2)))))))) + +(deftest "swap-complex-single-float" :category +vector+ + :test-fn + #'(lambda () + (let* ((vec-1 (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))) + (vec-2 (reverse vec-1))) + (gsl-vector:with-vector + (v1 5 :element-type '(complex (single-float)) + :initial-contents vec-1) + (gsl-vector:with-vector + (v2 5 :element-type '(complex (single-float)) + :initial-contents vec-2) + (gsl-vector:swap v1 v2) + (and (equalp vec-2 (gsl-vector:gsl->lisp-vector v1)) + (equalp vec-1 (gsl-vector:gsl->lisp-vector v2)))))))) + +;; ---------------------------------------------------------------------- + +(deftest "swap-elements-double-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 1.0d0 2.0d0 3.0d0 4.0d0 5.0d0)) + (vec-2 (vector 1.0d0 2.0d0 4.0d0 3.0d0 5.0d0))) + (gsl-vector:with-vector + (v1 5 :element-type 'double-float :initial-contents vec-1) + (gsl-vector:swap-elements v1 2 3) + (equalp vec-2 (gsl-vector:gsl->lisp-vector v1)))))) + +(deftest "swap-elements-single-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 1.0 2.0 3.0 4.0 5.0)) + (vec-2 (vector 1.0 2.0 4.0 3.0 5.0))) + (gsl-vector:with-vector + (v1 5 :element-type 'single-float :initial-contents vec-1) + (gsl-vector:swap-elements v1 2 3) + (equalp vec-2 (gsl-vector:gsl->lisp-vector v1)))))) + +(deftest "swap-elements-integer" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 1 2 3 4 5)) + (vec-2 (vector 1 2 4 3 5))) + (gsl-vector:with-vector + (v1 5 :element-type 'integer :initial-contents vec-1) + (gsl-vector:swap-elements v1 2 3) + (equalp vec-2 (gsl-vector:gsl->lisp-vector v1)))))) + +(deftest "swap-elements-complex-double-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (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))) + (vec-2 (vector (complex 1.0d0 1.0d0) (complex 2.0d0 2.0d0) + (complex 4.0d0 4.0d0) (complex 3.0d0 3.0d0) + (complex 5.0d0 5.0d0)))) + (gsl-vector:with-vector + (v1 5 :element-type '(complex (double-float)) + :initial-contents vec-1) + (gsl-vector:swap-elements v1 2 3) + (equalp vec-2 (gsl-vector:gsl->lisp-vector v1)))))) + +(deftest "swap-elements-complex-single-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (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))) + (vec-2 (vector (complex 1.0 1.0) (complex 2.0 2.0) + (complex 4.0 4.0) (complex 3.0 3.0) + (complex 5.0 5.0)))) + (gsl-vector:with-vector + (v1 5 :element-type '(complex (single-float)) + :initial-contents vec-1) + (equalp vec-2 (gsl-vector:gsl->lisp-vector + (gsl-vector:swap-elements v1 2 3))))))) + +;; ---------------------------------------------------------------------- + +(deftest "add-double-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 1.0d0 2.0d0 3.0d0 4.0d0 5.0d0)) + (vec-2 (vector 2.0d0 4.0d0 6.0d0 8.0d0 10.0d0))) + (gsl-vector:with-vector + (v1 5 :element-type 'double-float :initial-contents vec-1) + (gsl-vector:with-vector + (v2 5 :element-type 'double-float :initial-contents vec-1) + (gsl-vector:add v1 v2) + (equalp vec-2 (gsl-vector:gsl->lisp-vector v1))))))) + +(deftest "add-single-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 1.0 2.0 3.0 4.0 5.0)) + (vec-2 (vector 2.0 4.0 6.0 8.0 10.0))) + (gsl-vector:with-vector + (v1 5 :element-type 'single-float :initial-contents vec-1) + (gsl-vector:with-vector + (v2 5 :element-type 'single-float :initial-contents vec-1) + (gsl-vector:add v1 v2) + (equalp vec-2 (gsl-vector:gsl->lisp-vector v1))))))) + +(deftest "add-integer" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 1 2 3 4 5)) + (vec-2 (vector 2 4 6 8 10))) + (gsl-vector:with-vector + (v1 5 :element-type 'integer :initial-contents vec-1) + (gsl-vector:with-vector + (v2 5 :element-type 'integer :initial-contents vec-1) + (gsl-vector:add v1 v2) + (equalp vec-2 (gsl-vector:gsl->lisp-vector v1))))))) + + +;; ---------------------------------------------------------------------- + +(deftest "sub-double-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 1.0d0 2.0d0 3.0d0 4.0d0 5.0d0)) + (vec-2 (vector 0.0d0 0.0d0 0.0d0 0.0d0 0.0d0))) + (gsl-vector:with-vector + (v1 5 :element-type 'double-float :initial-contents vec-1) + (gsl-vector:with-vector + (v2 5 :element-type 'double-float :initial-contents vec-1) + (gsl-vector:sub v1 v2) + (equalp vec-2 (gsl-vector:gsl->lisp-vector v1))))))) + +(deftest "sub-single-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 1.0 2.0 3.0 4.0 5.0)) + (vec-2 (vector 0.0 0.0 0.0 0.0 0.0))) + (gsl-vector:with-vector + (v1 5 :element-type 'single-float :initial-contents vec-1) + (gsl-vector:with-vector + (v2 5 :element-type 'single-float :initial-contents vec-1) + (gsl-vector:sub v1 v2) + (equalp vec-2 (gsl-vector:gsl->lisp-vector v1))))))) + +(deftest "sub-integer" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 1 2 3 4 5)) + (vec-2 (vector 0 0 0 0 0))) + (gsl-vector:with-vector + (v1 5 :element-type 'integer :initial-contents vec-1) + (gsl-vector:with-vector + (v2 5 :element-type 'integer :initial-contents vec-1) + (gsl-vector:sub v1 v2) + (equalp vec-2 (gsl-vector:gsl->lisp-vector v1))))))) + +;; ---------------------------------------------------------------------- + +(deftest "mul-double-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 1.0d0 2.0d0 3.0d0 4.0d0 5.0d0)) + (vec-2 (vector 1.0d0 4.0d0 9.0d0 16.0d0 25.0d0))) + (gsl-vector:with-vector + (v1 5 :element-type 'double-float :initial-contents vec-1) + (gsl-vector:with-vector + (v2 5 :element-type 'double-float :initial-contents vec-1) + (gsl-vector:mul v1 v2) + (equalp vec-2 (gsl-vector:gsl->lisp-vector v1))))))) + +(deftest "mul-single-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 1.0 2.0 3.0 4.0 5.0)) + (vec-2 (vector 1.0 4.0 9.0 16.0 25.0))) + (gsl-vector:with-vector + (v1 5 :element-type 'single-float :initial-contents vec-1) + (gsl-vector:with-vector + (v2 5 :element-type 'single-float :initial-contents vec-1) + (gsl-vector:mul v1 v2) + (equalp vec-2 (gsl-vector:gsl->lisp-vector v1))))))) + +(deftest "mul-integer" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 1 2 3 4 5)) + (vec-2 (vector 1 4 9 16 25))) + (gsl-vector:with-vector + (v1 5 :element-type 'integer :initial-contents vec-1) + (gsl-vector:with-vector + (v2 5 :element-type 'integer :initial-contents vec-1) + (gsl-vector:mul v1 v2) + (equalp vec-2 (gsl-vector:gsl->lisp-vector v1))))))) + +;; ---------------------------------------------------------------------- + +(deftest "div-double-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 1.0d0 2.0d0 3.0d0 4.0d0 5.0d0)) + (vec-2 (vector 1.0d0 1.0d0 1.0d0 1.0d0 1.0d0))) + (gsl-vector:with-vector + (v1 5 :element-type 'double-float :initial-contents vec-1) + (gsl-vector:with-vector + (v2 5 :element-type 'double-float :initial-contents vec-1) + (gsl-vector:div v1 v2) + (equalp vec-2 (gsl-vector:gsl->lisp-vector v1))))))) + +(deftest "div-single-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 1.0 2.0 3.0 4.0 5.0)) + (vec-2 (vector 1.0 1.0 1.0 1.0 1.0))) + (gsl-vector:with-vector + (v1 5 :element-type 'single-float :initial-contents vec-1) + (gsl-vector:with-vector + (v2 5 :element-type 'single-float :initial-contents vec-1) + (gsl-vector:div v1 v2) + (equalp vec-2 (gsl-vector:gsl->lisp-vector v1))))))) + +(deftest "div-integer" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 1 2 3 4 5)) + (vec-2 (vector 1 1 1 1 1))) + (gsl-vector:with-vector + (v1 5 :element-type 'integer :initial-contents vec-1) + (gsl-vector:with-vector + (v2 5 :element-type 'integer :initial-contents vec-1) + (gsl-vector:div v1 v2) + (equalp vec-2 (gsl-vector:gsl->lisp-vector v1))))))) + + +;; ---------------------------------------------------------------------- + +(deftest "scale-double-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 1.0d0 2.0d0 3.0d0 4.0d0 5.0d0)) + (vec-2 (vector 10.0d0 20.0d0 30.0d0 40.0d0 50.0d0))) + (gsl-vector:with-vector + (v1 5 :element-type 'double-float :initial-contents vec-1) + (gsl-vector:scale v1 10.0d0) + (equalp vec-2 (gsl-vector:gsl->lisp-vector v1)))))) + +(deftest "scale-single-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 1.0 2.0 3.0 4.0 5.0)) + (vec-2 (vector 10.0 20.0 30.0 40.0 50.0))) + (gsl-vector:with-vector + (v1 5 :element-type 'single-float :initial-contents vec-1) + (gsl-vector:scale v1 10.0) + (equalp vec-2 (gsl-vector:gsl->lisp-vector v1)))))) + +(deftest "scale-integer" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 1 2 3 4 5)) + (vec-2 (vector 10 20 30 40 50))) + (gsl-vector:with-vector + (v1 5 :element-type 'integer :initial-contents vec-1) + (gsl-vector:scale v1 10) + (equalp vec-2 (gsl-vector:gsl->lisp-vector v1)))))) + + +;; ---------------------------------------------------------------------- + +(deftest "add-constant-double-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 1.0d0 2.0d0 3.0d0 4.0d0 5.0d0)) + (vec-2 (vector 11.0d0 12.0d0 13.0d0 14.0d0 15.0d0))) + (gsl-vector:with-vector + (v1 5 :element-type 'double-float :initial-contents vec-1) + (gsl-vector:add-constant v1 10.0d0) + (equalp vec-2 (gsl-vector:gsl->lisp-vector v1)))))) + +(deftest "add-constant-single-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 1.0 2.0 3.0 4.0 5.0)) + (vec-2 (vector 11.0 12.0 13.0 14.0 15.0))) + (gsl-vector:with-vector + (v1 5 :element-type 'single-float :initial-contents vec-1) + (gsl-vector:add-constant v1 10.0) + (equalp vec-2 (gsl-vector:gsl->lisp-vector v1)))))) + +(deftest "add-constant-integer" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 1 2 3 4 5)) + (vec-2 (vector 11 12 13 14 15))) + (gsl-vector:with-vector + (v1 5 :element-type 'integer :initial-contents vec-1) + (gsl-vector:add-constant v1 10) + (equalp vec-2 (gsl-vector:gsl->lisp-vector v1)))))) + +;; ---------------------------------------------------------------------- + +(deftest "max-value-double-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 4.0d0 5.0d0 1.0d0 2.0d0 3.0d0)) + (max-val 5.0d0)) + (gsl-vector:with-vector + (v1 5 :element-type 'double-float :initial-contents vec-1) + (= max-val (gsl-vector:max-value v1)))))) + +(deftest "max-value-single-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 4.0 5.0 1.0 2.0 3.0)) + (max-val 5.0)) + (gsl-vector:with-vector + (v1 5 :element-type 'single-float :initial-contents vec-1) + (= max-val (gsl-vector:max-value v1)))))) + +(deftest "max-value-integer" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 4 5 1 2 3)) + (max-val 5)) + (gsl-vector:with-vector + (v1 5 :element-type 'integer :initial-contents vec-1) + (= max-val (gsl-vector:max-value v1)))))) + +;; ---------------------------------------------------------------------- + +(deftest "min-value-double-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 4.0d0 5.0d0 1.0d0 2.0d0 3.0d0)) + (min-val 1.0d0)) + (gsl-vector:with-vector + (v1 5 :element-type 'double-float :initial-contents vec-1) + (= min-val (gsl-vector:min-value v1)))))) + +(deftest "min-value-single-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 4.0 5.0 1.0 2.0 3.0)) + (min-val 1.0)) + (gsl-vector:with-vector + (v1 5 :element-type 'single-float :initial-contents vec-1) + (= min-val (gsl-vector:min-value v1)))))) + +(deftest "min-value-integer" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 4 5 1 2 3)) + (min-val 1)) + (gsl-vector:with-vector + (v1 5 :element-type 'integer :initial-contents vec-1) + (= min-val (gsl-vector:min-value v1)))))) + +;; ---------------------------------------------------------------------- + +(deftest "max-index-double-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 4.0d0 5.0d0 1.0d0 2.0d0 3.0d0)) + (max-idx 1)) + (gsl-vector:with-vector + (v1 5 :element-type 'double-float :initial-contents vec-1) + (= max-idx (gsl-vector:max-index v1)))))) + +(deftest "max-index-single-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 4.0 5.0 1.0 2.0 3.0)) + (max-idx 1)) + (gsl-vector:with-vector + (v1 5 :element-type 'single-float :initial-contents vec-1) + (= max-idx (gsl-vector:max-index v1)))))) + +(deftest "max-index-integer" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 4 5 1 2 3)) + (max-idx 1)) + (gsl-vector:with-vector + (v1 5 :element-type 'integer :initial-contents vec-1) + (= max-idx (gsl-vector:max-index v1)))))) + +;; ---------------------------------------------------------------------- + +(deftest "min-index-double-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 4.0d0 5.0d0 1.0d0 2.0d0 3.0d0)) + (min-idx 2)) + (gsl-vector:with-vector + (v1 5 :element-type 'double-float :initial-contents vec-1) + (= min-idx (gsl-vector:min-index v1)))))) + +(deftest "min-index-single-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 4.0 5.0 1.0 2.0 3.0)) + (min-idx 2)) + (gsl-vector:with-vector + (v1 5 :element-type 'single-float :initial-contents vec-1) + (= min-idx (gsl-vector:min-index v1)))))) + +(deftest "min-index-integer" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 4 5 1 2 3)) + (min-idx 2)) + (gsl-vector:with-vector + (v1 5 :element-type 'integer :initial-contents vec-1) + (= min-idx (gsl-vector:min-index v1)))))) + +;; ---------------------------------------------------------------------- + +(deftest "min-max-indicies-double-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 4.0d0 5.0d0 1.0d0 2.0d0 3.0d0)) + (min-max-idx '(2 1))) + (gsl-vector:with-vector + (v1 5 :element-type 'double-float :initial-contents vec-1) + (equal min-max-idx (gsl-vector:min-max-indicies v1)))))) + +(deftest "min-max-indicies-single-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 4.0 5.0 1.0 2.0 3.0)) + (min-max-idx '(2 1))) + (gsl-vector:with-vector + (v1 5 :element-type 'single-float :initial-contents vec-1) + (equal min-max-idx (gsl-vector:min-max-indicies v1)))))) + +(deftest "min-max-indicies-integer" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 4 5 1 2 3)) + (min-max-idx '(2 1))) + (gsl-vector:with-vector + (v1 5 :element-type 'integer :initial-contents vec-1) + (equal min-max-idx (gsl-vector:min-max-indicies v1)))))) + +;; ---------------------------------------------------------------------- + +(deftest "min-max-values-double-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 4.0d0 5.0d0 1.0d0 2.0d0 3.0d0)) + (min-max-val '(1.0d0 5.0d0))) + (gsl-vector:with-vector + (v1 5 :element-type 'double-float :initial-contents vec-1) + (equal min-max-val (gsl-vector:min-max-values v1)))))) + +(deftest "min-max-values-single-float" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 4.0 5.0 1.0 2.0 3.0)) + (min-max-val '(1.0 5.0))) + (gsl-vector:with-vector + (v1 5 :element-type 'single-float :initial-contents vec-1) + (equal min-max-val (gsl-vector:min-max-values v1)))))) + +(deftest "min-max-values-integer" :category +vector+ + :test-fn + #'(lambda () + (let ((vec-1 (vector 4 5 1 2 3)) + (min-max-val '(1 5))) + (gsl-vector:with-vector + (v1 5 :element-type 'integer :initial-contents vec-1) + (equal min-max-val (gsl-vector:min-max-values v1)))))) +