summary refs log tree commit diff
path: root/implementation/tests.scm
diff options
context:
space:
mode:
authorAdam R. Nelson <adam@nels.onl>2021-03-11 22:42:57 -0500
committerArthur A. Gleckler <srfi@speechcode.com>2021-03-11 21:00:45 -0800
commit368abdee7869e99fa287ec2e6b099ee4584372e5 (patch)
treee32a0fad8d4d2dc4b4b8cf7ec53915e9aad87b19 /implementation/tests.scm
parent983ee1afbab1108c3608ba4228824f6944301d69 (diff)
downloadsrfi-214-368abdee7869e99fa287ec2e6b099ee4584372e5.tar.gz
srfi-214-368abdee7869e99fa287ec2e6b099ee4584372e5.tar.xz
srfi-214-368abdee7869e99fa287ec2e6b099ee4584372e5.zip
last-minute updates: clarify some documentation, add flexvector->generator
Diffstat (limited to 'implementation/tests.scm')
-rw-r--r--implementation/tests.scm18
1 files changed, 18 insertions, 0 deletions
diff --git a/implementation/tests.scm b/implementation/tests.scm
index 329a8d6..e41f19c 100644
--- a/implementation/tests.scm
+++ b/implementation/tests.scm
@@ -64,6 +64,24 @@
   (flexvector->vector (string->flexvector "abc")))
 (test-equal "flexvector->string" "abc" (flexvector->string (flexvector #\a #\b #\c)))
 
+(define genlist '(a b c))
+(define (mock-generator)
+  (if (pair? genlist)
+    (let ((value (car genlist)))
+      (set! genlist (cdr genlist))
+      value)
+    (eof-object)))
+
+(test-equal "generator->flexvector" #(a b c)
+  (flexvector->vector (generator->flexvector mock-generator)))
+(test-equal "flexvector->generator" '(a b c #t)
+  (let* ((gen (flexvector->generator (flexvector 'a 'b 'c)))
+         (one (gen))
+         (two (gen))
+         (three (gen))
+         (four (eof-object? (gen))))
+    (list one two three four)))
+
 ; Nondestructive operations on one vector
 (let ((fv (flexvector 10 20 30)))
   (test-equal "flexvector->vector" #(10 20 30) (flexvector->vector fv))