From 292014d961eca156afec7f97954c117916518aa3 Mon Sep 17 00:00:00 2001
From: Daniel Llorens <daniel.llorens@bluewin.ch>
Date: Wed, 3 Apr 2013 22:31:47 +0200
Subject: [PATCH 1/3] Tests for array-copy!

* test-suite/tests/arrays.test: tests for arguments of rank 0, 1 and 2.
---
 test-suite/tests/arrays.test | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/test-suite/tests/arrays.test b/test-suite/tests/arrays.test
index d88a1cb..7f1bbde 100644
--- a/test-suite/tests/arrays.test
+++ b/test-suite/tests/arrays.test
@@ -294,6 +294,46 @@
       (pass-if "5/8"    (array-fill! a 5/8)    #t))))
 
 ;;;
+;;; array-copy!
+;;;
+
+(with-test-prefix "array-copy!"
+
+  (with-test-prefix "rank 2"
+    (pass-if (let ((a #2((1 2) (3 4)))
+                   (b (make-array 0 2 2))
+                   (c (make-array 0 2 2))
+                   (d (make-array 0 2 2))
+                   (e (make-array 0 2 2)))
+               (array-copy! a b)
+               (array-copy! a (transpose-array c 1 0))
+               (array-copy! (transpose-array a 1 0) d)
+               (array-copy! (transpose-array a 1 0) (transpose-array e 1 0))
+               (and (equal? a #2((1 2) (3 4)))
+                    (equal? b #2((1 2) (3 4)))
+                    (equal? c #2((1 3) (2 4)))
+                    (equal? d #2((1 3) (2 4)))
+                    (equal? e #2((1 2) (3 4)))))))
+
+  (with-test-prefix "rank 1"
+    (pass-if (let* ((a #2((1 2) (3 4)))
+                    (b (make-shared-array a (lambda (j) (list 1 j)) 2))
+                    (c (make-shared-array a (lambda (i) (list (- 1 i) 1)) 2))
+                    (d (make-array 0 2))
+                    (e (make-array 0 2)))
+               (array-copy! b d)
+               (array-copy! c e)
+               (and (equal? d #(3 4))
+                    (equal? e #(4 2))))))
+
+  (with-test-prefix "rank 0"
+    (pass-if (let ((a #0(99))
+                   (b (make-array 0)))
+               (array-copy! a b)
+               (equal? b #0(99))))))
+
+
+;;;
 ;;; array-in-bounds?
 ;;;
 
-- 
1.8.2

