diff options
author | Daniel Llorens <daniel.llorens@bluewin.ch> | 2013-04-18 15:10:29 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2014-02-06 10:44:02 +0100 |
commit | 7e7e3b7f06e01022f29dc4549e955641f7052016 (patch) | |
tree | 1f33df8f0cd311f623cd0f0c92bb7e604d9e7956 | |
parent | b914b236c3d6a6772597278e97b80bdb34129291 (diff) | |
download | guile-7e7e3b7f06e01022f29dc4549e955641f7052016.tar.gz |
Tests for array-copy!, empty case
* test-suite/tests/ramap.test: test array-copy! with empty destination.
Fix uses of constant array as destination.
-rw-r--r-- | test-suite/tests/ramap.test | 56 |
1 files changed, 34 insertions, 22 deletions
diff --git a/test-suite/tests/ramap.test b/test-suite/tests/ramap.test index 7c3142dbd..00de626a4 100644 --- a/test-suite/tests/ramap.test +++ b/test-suite/tests/ramap.test @@ -34,10 +34,22 @@ (with-test-prefix "array-index-map!" (pass-if (let ((nlst '())) - (array-index-map! (make-array #f '(1 1)) - (lambda (n) - (set! nlst (cons n nlst)))) - (equal? nlst '(1))))) + (array-index-map! (make-array #f '(1 1)) + (lambda (n) + (set! nlst (cons n nlst)))) + (equal? nlst '(1))))) + +;;; +;;; array-copy! +;;; + +(with-test-prefix "array-copy!" + + (pass-if "empty arrays" + (let* ((b (make-array 0 2 2)) + (c (make-shared-array b (lambda (i j) (list i j)) 0 2))) + (array-copy! #2:0:2() c) + (array-equal? #2:0:2() c)))) ;;; ;;; array-map! @@ -94,7 +106,7 @@ (pass-if-exception "closure 0" exception:wrong-num-args (array-map! (make-array #f 5) (lambda () #f) - (make-array #f 5))) + (make-array #f 5))) (pass-if "closure 1" (let ((a (make-array #f 5))) @@ -103,16 +115,16 @@ (pass-if-exception "closure 2" exception:wrong-num-args (array-map! (make-array #f 5) (lambda (x y) #f) - (make-array #f 5))) + (make-array #f 5))) (pass-if "subr_1" (let ((a (make-array #f 5))) - (array-map! a length (make-array '(x y z) 5)) - (equal? a (make-array 3 5)))) + (array-map! a length (make-array '(x y z) 5)) + (equal? a (make-array 3 5)))) (pass-if-exception "subr_2" exception:wrong-num-args (array-map! (make-array #f 5) logtest - (make-array 999 5))) + (make-array 999 5))) (pass-if "subr_2o" (let ((a (make-array #f 5))) @@ -144,17 +156,17 @@ (pass-if-exception "closure 0" exception:wrong-num-args (array-map! (make-array #f 5) (lambda () #f) - (make-array #f 5) (make-array #f 5))) + (make-array #f 5) (make-array #f 5))) (pass-if-exception "closure 1" exception:wrong-num-args (array-map! (make-array #f 5) (lambda (x) #f) - (make-array #f 5) (make-array #f 5))) + (make-array #f 5) (make-array #f 5))) (pass-if "closure 2" (let ((a (make-array #f 5))) - (array-map! a (lambda (x y) 'foo) - (make-array #f 5) (make-array #f 5)) - (equal? a (make-array 'foo 5)))) + (array-map! a (lambda (x y) 'foo) + (make-array #f 5) (make-array #f 5)) + (equal? a (make-array 'foo 5)))) (pass-if-exception "subr_1" exception:wrong-num-args (array-map! (make-array #f 5) length @@ -192,31 +204,31 @@ (let ((a (make-array #f 4))) (array-map! a + #(1 2 3 4) #(5 6 7 8)) (equal? a #(6 8 10 12)))) - + (pass-if "noncompact arrays 1" (let ((a #2((0 1) (2 3))) - (c #(0 0))) + (c (make-array 0 2))) (begin (array-map! c + (array-row a 1) (array-row a 1)) (array-equal? c #(4 6))))) - + (pass-if "noncompact arrays 2" (let ((a #2((0 1) (2 3))) - (c #(0 0))) + (c (make-array 0 2))) (begin (array-map! c + (array-col a 1) (array-col a 1)) (array-equal? c #(2 6))))) - + (pass-if "noncompact arrays 3" (let ((a #2((0 1) (2 3))) - (c #(0 0))) + (c (make-array 0 2))) (begin (array-map! c + (array-col a 1) (array-row a 1)) (array-equal? c #(3 6))))) - + (pass-if "noncompact arrays 4" (let ((a #2((0 1) (2 3))) - (c #(0 0))) + (c (make-array 0 2))) (begin (array-map! c + (array-col a 1) (array-row a 1)) (array-equal? c #(3 6))))))) |