uffi/tests arrays.lisp,1.2,1.3
"Kevin M. Rosenberg" <[email protected]> Wed, 30 Apr 2003 07:48:36 -0600
| Newsgroups | gmane.lisp.uffi.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /pubcvs/uffi/tests In directory boa.b9.com:/tmp/cvs-serv29652/tests Modified Files: arrays.lisp Log Message: Index: arrays.lisp =================================================================== RCS file: /pubcvs/uffi/tests/arrays.lisp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** arrays.lisp 3 Dec 2002 06:58:39 -0000 1.2 --- arrays.lisp 30 Apr 2003 13:48:34 -0000 1.3 *************** *** 3,9 **** ;;;; FILE IDENTIFICATION ;;;; ! ;;;; Name: arrays.cl ! ;;;; Purpose: UFFI Example file to test arrays ! ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Mar 2002 ;;;; --- 3,9 ---- ;;;; FILE IDENTIFICATION ;;;; ! ;;;; Name: arrays.lisp ! ;;;; Purpose: UFFI test arrays ! ;;;; Author: Kevin M. Rosenberg ;;;; Date Started: Mar 2002 ;;;; *************** *** 17,21 **** ;;;; ************************************************************************* ! (in-package :cl-user) (uffi:def-constant +column-length+ 10) --- 17,21 ---- ;;;; ************************************************************************* ! (in-package :uffi-tests) (uffi:def-constant +column-length+ 10) *************** *** 24,66 **** (uffi:def-foreign-type long-ptr '(* :long)) ! (defun test-array-1d () ! "Tests vector" ! (let ((a (uffi:allocate-foreign-object :long +column-length+))) ! (dotimes (i +column-length+) ! (setf (uffi:deref-array a '(:array :long) i) (* i i))) ! (dotimes (i +column-length+) ! (format t "~&~D => ~D" i (uffi:deref-array a '(:array :long) i))) ! (uffi:free-foreign-object a)) ! (values)) ! ! (defun test-array-2d () ! "Tests 2d array" ! (let ((a (uffi:allocate-foreign-object 'long-ptr +row-length+))) ! (dotimes (r +row-length+) ! (declare (fixnum r)) ! (setf (uffi:deref-array a '(:array (* :long)) r) ! (uffi:allocate-foreign-object :long +column-length+)) ! (let ((col (uffi:deref-array a '(:array (* :long)) r))) ! (dotimes (c +column-length+) ! (declare (fixnum c)) ! (setf (uffi:deref-array col '(:array :long) c) (+ (* r +column-length+) c))))) ! ! (dotimes (r +row-length+) ! (declare (fixnum r)) ! (format t "~&Row ~D: " r) ! (let ((col (uffi:deref-array a '(:array (* :long)) r))) ! (dotimes (c +column-length+) ! (declare (fixnum c)) ! (let ((result (uffi:deref-array col '(:array :long) c))) ! (format t "~d " result))))) ! ! (uffi:free-foreign-object a)) ! (values)) - #+examples-uffi - (test-array-1d) ! #+examples-uffi ! (test-array-2d) --- 24,60 ---- (uffi:def-foreign-type long-ptr '(* :long)) ! (deftest array.1 ! (let ((a (uffi:allocate-foreign-object :long +column-length+)) ! (results nil)) ! (dotimes (i +column-length+) ! (setf (uffi:deref-array a '(:array :long) i) (* i i))) ! (dotimes (i +column-length+) ! (push (uffi:deref-array a '(:array :long) i) results)) ! (uffi:free-foreign-object a) ! results) ! (0 1 4 9 16 25 36 49 64 81)) ! (deftest array.2 ! (let ((a (uffi:allocate-foreign-object 'long-ptr +row-length+)) ! (results nil)) ! (dotimes (r +row-length+) ! (declare (fixnum r)) ! (setf (uffi:deref-array a '(:array (* :long)) r) ! (uffi:allocate-foreign-object :long +column-length+)) ! (let ((col (uffi:deref-array a '(:array (* :long)) r))) ! (dotimes (c +column-length+) ! (declare (fixnum c)) ! (setf (uffi:deref-array col '(:array :long) c) (+ (* r +column-length+) c))))) ! ! (dotimes (r +row-length+) ! (declare (fixnum r)) ! (let ((col (uffi:deref-array a '(:array (* :long)) r))) ! (dotimes (c +column-length+) ! (declare (fixnum c)) ! (push (uffi:deref-array col '(:array :long) c) results)))) ! (uffi:free-foreign-object a) ! results) ! (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99))