diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2023-09-11 17:54:35 +0200 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2023-09-11 19:58:54 +0200 |
commit | 634502e7246f8850ad6c649b79ae9f072f45baf4 (patch) | |
tree | 56ee3154fbd08ea175ef141fbf8c22407ec5ca83 /tests/test | |
parent | Change how entry point is handled. (diff) | |
download | calp-634502e7246f8850ad6c649b79ae9f072f45baf4.tar.gz calp-634502e7246f8850ad6c649b79ae9f072f45baf4.tar.xz |
Introduce stream-split-by.
This procedure isn't currently used, but as noted is really useful for
grouping a character stream into a word stream, which is a later commit
will use for it for justifying posibly infinite streams of text.
Diffstat (limited to '')
-rw-r--r-- | tests/test/srfi-41-util.scm | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/test/srfi-41-util.scm b/tests/test/srfi-41-util.scm index ff0e3cce..9a753b03 100644 --- a/tests/test/srfi-41-util.scm +++ b/tests/test/srfi-41-util.scm @@ -8,6 +8,7 @@ :use-module (srfi srfi-88) :use-module (srfi srfi-41 util) :use-module (srfi srfi-41) + :use-module ((srfi srfi-1) :select (circular-list)) :use-module ((ice-9 sandbox) :select (call-with-time-limit))) (test-equal "Finite stream" @@ -86,3 +87,22 @@ (test-equal "time limited stream" '(1 2 3) (stream->list strm)))) + + +(test-group "stream-split-by" + (let ((hello-chars-stream (stream-unfold + car + (const #t) + cdr + (apply circular-list + (string->list "Hello "))))) + (test-equal "Check that test list looks as expected" + (string->list "Hello Hell") + (stream->list 10 hello-chars-stream)) + (test-equal "Check that it splits correctly" + '("Hello " "Hello " "Hello ") + (stream->list + 3 + (stream-map list->string + (stream-split-by (lambda (c) (char=? c #\space)) + hello-chars-stream)))))) |