preparation for modularization, correction of copyright date coverage.
[CommonLispStat.git] / external / clem / test / test-defmatrix.cl
blobc70fe22ce793bceca5ab2d4d64cdfe1e1e7dfb31
2 (in-package :clem-test)
4 (defun matrix-test-1 ()
5 (let ((m (array->matrix #2A((1 2 3)(4 1 6)(7 1 9)))))
6 (print-matrix (invert-matrix m)))
7 t)
9 (defun matrix-test-2 ()
10 (let ((m (array->matrix #2A((1 2 3)(4 5 6)(7 8 9)))))
11 (print-matrix m)
12 (swap-rows m 0 2)
13 (swap-cols m 0 2)
14 (print-matrix m)
15 (let ((q (val m 0 0)))
16 (map-row m 0 #'(lambda (x) (/ x q)))
17 (scalar-mult-col m 0 4)
18 (scalar-divide-col m 0 3)
20 (print-matrix m)
24 (defun matrix-test-3 ()
25 (let ((m1 (array->matrix #2A((1 2 3)(4 5 6)(7 8 9) (10 11 12)))))
26 (print-matrix m1)
27 (print (dim m1))
29 (let ((t1 (transpose m1)))
30 (print-matrix t1)
31 (print (dim t1)))
33 (let ((m2 (array->matrix #2A((1 2 3 4 5 6 7 8 9)))))
34 (print m2)
35 (print-matrix m2)
36 (print (dim m2))
40 (defun matrix-test-4 ()
41 (let ((m3 (array->matrix #2A((1) (2) (3) (4) (5) (6) (7) (8) (9)))))
42 (print-matrix m3)
43 (print (dim m3)))
46 (defun matrix-test-5 ()
47 (let ((m (array->matrix #2A((1 2 3)(4 5 6)(7 8 9)))))
48 (print-matrix (mat-mult m m))
49 (let ((inv (invert-matrix m)))
50 (if inv (print-matrix (invert-matrix m)))
54 (defun matrix-test-6 ()
55 (let ((m (array->matrix #2A((1 2 3)(4 5 6)(7 8 9)))))
56 (print-matrix (mat-mult m m))
57 (let ((inv (invert-matrix m)))
58 (if inv (print-matrix (invert-matrix m)))
62 (defun run-tests-1 ()
63 (let ((run (ch-util:make-test-run)))
64 (ch-util:run-test #'matrix-test-1 "matrix-test-1" run)
65 (ch-util:run-test #'matrix-test-2 "matrix-test-2" run)
66 (ch-util:run-test #'matrix-test-3 "matrix-test-3" run)
67 (ch-util:run-test #'matrix-test-4 "matrix-test-4" run)
68 (ch-util:run-test #'matrix-test-5 "matrix-test-5" run)
69 (format t "~&~A of ~A tests passed" (ch-util:test-run-passed run) (ch-util:test-run-tests run))
72 (defun run-defmatrix-tests ()
73 ;; (pprint (macroexpand '(defmatrixtype ape-matrix () :element-type (unsigned-byte 8))))
74 (defmatrixtype ape-matrix ()
75 :element-type (unsigned-byte 8)
76 :accumulator-type (unsigned-byte 32)
77 :minval 23 :maxval 95)
78 (let ((q (make-instance 'ape-matrix :rows 4 :cols 4)))
79 (describe q)
80 (print (class-of q))
81 (print-matrix q)
82 (describe (clem::matrix-vals q))
83 (map-matrix-fit #'(lambda (a i j)
84 (* i i j j 2)
87 (print-matrix q)
90 (let ((q (make-instance 'sb8-matrix :rows 4 :cols 4)))
91 (map-matrix-fit #'(lambda (a i j)
92 (if (oddp (+ i j)) -255 255)
95 (print-matrix q)
97 (let ((q (make-instance 't-matrix :rows 4 :cols 4)))
98 (describe (clem::matrix-vals q))
100 (let ((q (make-instance 'bit-matrix :rows 4 :cols 4)))
101 (describe (clem::matrix-vals q))