/[gcl]/gcl/ansi-tests/reduce.lsp
ViewVC logotype

Diff of /gcl/ansi-tests/reduce.lsp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.11 by pfdietz, Tue Sep 21 13:07:11 2004 UTC revision 1.12 by pfdietz, Sat Sep 25 15:08:58 2004 UTC
# Line 165  Line 165 
165      (reduce #'+ a :end 3))      (reduce #'+ a :end 3))
166    6)    6)
167    
168    ;;; Specialized vectors
169    
170    (deftest reduce-array.20
171      (do-special-integer-vectors
172       (v #(1 0 0 1 1 0) nil)
173       (assert (eql (reduce #'+ v) 3)))
174      nil)
175    
176    (deftest reduce-array.21
177      (do-special-integer-vectors
178       (v #(1 0 0 1 1 0) nil)
179       (assert (equal (reduce #'cons v :from-end t :initial-value nil)
180                      '(1 0 0 1 1 0))))
181      nil)
182    
183    (deftest reduce-array.22
184      (do-special-integer-vectors
185       (v #(1 2 3 4 5 6 7) nil)
186       (assert (eql (reduce #'+ v) 28))
187       (assert (eql (reduce #'+ v :from-end t) 28))
188       (assert (eql (reduce #'+ v :start 1) 27))
189       (assert (eql (reduce #'+ v :initial-value 10) 38))
190       (assert (eql (reduce #'+ v :end 6) 21)))
191      nil)
192    
193    (deftest reduce-array.23
194      (let* ((len 10)
195             (expected (* 1/2 (1+ len) len)))
196        (loop for etype in '(short-float single-float double-float long-float)
197              for vals = (loop for i from 1 to len collect (coerce i etype))
198              for vec = (make-array len :initial-contents vals :element-type etype)
199              for result = (reduce #'+ vec)
200              unless (= result (coerce expected etype))
201              collect (list etype vals vec result)))
202      nil)
203    
204    (deftest reduce-array.24
205      (let* ((len 10)
206             (expected (* 1/2 (1+ len) len)))
207        (loop for cetype in '(short-float single-float double-float long-float)
208              for etype = `(complex ,cetype)
209              for vals = (loop for i from 1 to len collect (complex (coerce i cetype)
210                                                                    (coerce (- i) cetype)))
211              for vec = (make-array len :initial-contents vals :element-type etype)
212              for result = (reduce #'+ vec)
213              unless (= result (complex (coerce expected cetype) (coerce (- expected) cetype)))
214              collect (list etype vals vec result)))
215      nil)
216    
217    (deftest reduce-array.25
218      (do-special-integer-vectors
219       (v (vector 0 most-positive-fixnum 0 most-positive-fixnum 0) nil)
220       (assert (eql (reduce #'+ v) (* 2 most-positive-fixnum))))
221      nil)
222    
223  ;;;;;;;;  ;;;;;;;;
224    

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.12

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26