From: Nikodemus S. <de...@us...> - 2007-03-03 17:22:10
|
Update of /cvsroot/sbcl/sbcl/tests In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv27703/tests Modified Files: seq.impure.lisp Log Message: 1.0.3.20: better SEARCH transform * Better type declarations for index variables -- fixes the performance regression in BENCH-STRINGS from the NaN-comparison changes. * Extend the transform to work with general vectors, arbitrary :TEST and :KEY, and constant but arbitrary :FROM-END. * Tests. Index: seq.impure.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/tests/seq.impure.lisp,v retrieving revision 1.32 retrieving revision 1.33 diff -u -d -r1.32 -r1.33 --- seq.impure.lisp 1 Nov 2006 11:48:39 -0000 1.32 +++ seq.impure.lisp 3 Mar 2007 17:21:59 -0000 1.33 @@ -162,7 +162,23 @@ (eql 3 (position-if #'plusp seq :from-end t :key '1- :start 2)) (null (position-if #'plusp seq :from-end t :key '1- :start 2 :end 2)) (null (find-if-not #'plusp seq)) - (eql 0 (position-if-not #'evenp seq)))) + (eql 0 (position-if-not #'evenp seq)) + (eql 0 (search #(1) seq)) + (eql 1 (search #(4 5) seq :key 'oddp)) + (eql 1 (search #(-2) seq :test (lambda (a b) (= (- a) b)))) + (eql 4 (search #(1) seq :start2 1)) + (null (search #(3) seq :start2 3)) + (eql 2 (search #(3) seq :start2 2)) + (eql 0 (search #(1 2) seq)) + (null (search #(2 1 3) seq)) + (eql 0 (search #(0 1 2 4) seq :start1 1 :end1 3)) + (eql 3 (search #(0 2 1 4) seq :start1 1 :end1 3)) + (eql 4 (search #(1) seq :from-end t)) + (eql 0 (search #(1 2) seq :from-end t)) + (null (search #(1 2) seq :from-end t :start2 1)) + (eql 0 (search #(0 1 2 4) seq :from-end t :start1 1 :end1 3)) + (eql 3 (search #(0 2 1 4) seq :from-end t :start1 1 :end1 3)) + (null (search #(2 1 3) seq :from-end t)))) (for-every-seq "string test" '((null (find 0 seq)) (null (find #\D seq :key #'char-upcase)) |