diff options
author | Daniel Llorens <lloda@sarc.name> | 2021-03-03 18:40:39 +0100 |
---|---|---|
committer | Daniel Llorens <lloda@sarc.name> | 2021-03-03 18:40:39 +0100 |
commit | 9516a10ab39d51c73b6355f7d8cd4188a2e461b4 (patch) | |
tree | 1f0b08b581785bca4b2e2d4d11c68dfe08aa1bca /test-suite | |
parent | 8edf1dc6231eb7b574cc63176e55ac25c0e71330 (diff) | |
download | guile-9516a10ab39d51c73b6355f7d8cd4188a2e461b4.tar.gz |
Fix bug in new array reader
* module/ice-9/read.scm (read-array): Return pair for dimension when len
is given; single number is lbnd for list->typed-array.
* test-suite/tests/arrays.test: More test cases for the reader.
Diffstat (limited to 'test-suite')
-rw-r--r-- | test-suite/tests/arrays.test | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/test-suite/tests/arrays.test b/test-suite/tests/arrays.test index c8eed39d3..c2716ed17 100644 --- a/test-suite/tests/arrays.test +++ b/test-suite/tests/arrays.test @@ -994,7 +994,7 @@ ;;; printing arrays ;;; -(with-test-prefix/c&e "printing and reading arrays" +(with-test-prefix/c&e "printing arrays" (pass-if-equal "writing 1D arrays that aren't vectors" "#1(b c)" (format #f "~a" (make-shared-array #(a b c) @@ -1057,3 +1057,37 @@ "#3@1@-1@1(((1)) ((1)) ((1)))" (format #f "~a" (make-array 1 '(1 3) '(-1 -1) '(1 1))))) +;;; +;;; reading arrays +;;; + +(with-test-prefix/c&e "reading arrays" + + (pass-if "empty 3-array with first nonempty dim I" + (array-equal? (make-array 1 1 0 0) + (call-with-input-string "#3(())" read))) + (pass-if "empty 3-array with first nonempty dim II" + (array-equal? (make-array 1 1 0 0) + #3(()))) + + (pass-if "empty 3-array with middle nonempty dim I" + (array-equal? (make-array 1 0 1 0) + (call-with-input-string "#3:0:1:0()" read))) + (pass-if "empty 3-array with middle nonempty dim II" + (array-equal? (make-array 1 0 1 0) + #3:0:1:0())) + + (pass-if "empty typed 3-array with middle nonempty dim I" + (array-equal? (make-typed-array 'f64 1 0 1 0) + (call-with-input-string "#3f64:0:1:0()" read))) + (pass-if "empty typed 3-array with middle nonempty dim II" + (array-equal? (make-typed-array 'f64 1 0 1 0) + #3f64:0:1:0())) + + (pass-if "array with specified size I" + (array-equal? #f64(1 2 3) + (call-with-input-string "#f64:3(1 2 3)" read))) + (pass-if "array with specified size II" + (array-equal? #f64(1 2 3) + #f64:3(1 2 3)))) + |