aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJuraj Petráš <jurkopetras@gmail.com>2024-06-14 00:53:41 +0200
committerLouis Pilfold <louis@lpil.uk>2024-06-15 13:52:21 +0100
commitba10a3baa597786009aec0f672b18187cec39217 (patch)
treef78a0352317fcdf5d26560db33869497c1346d93 /test
parent78d1a06c9d8d5923960424fc0dfdb26cdfedfa77 (diff)
downloadgleam_stdlib-ba10a3baa597786009aec0f672b18187cec39217.tar.gz
gleam_stdlib-ba10a3baa597786009aec0f672b18187cec39217.zip
Add test for lazy iterator.yield
Diffstat (limited to 'test')
-rw-r--r--test/gleam/iterator_test.gleam15
1 files changed, 15 insertions, 0 deletions
diff --git a/test/gleam/iterator_test.gleam b/test/gleam/iterator_test.gleam
index 186ea69..7c3498b 100644
--- a/test/gleam/iterator_test.gleam
+++ b/test/gleam/iterator_test.gleam
@@ -699,3 +699,18 @@ pub fn yield_test() {
|> iterator.to_list
|> should.equal([1, 2, 3])
}
+
+pub fn yield_computes_only_necessary_values_test() {
+ let items = {
+ use <- iterator.yield(1)
+ use <- iterator.yield(2)
+ use <- iterator.yield(3)
+ iterator.empty()
+ panic as "yield computed more values than necessary"
+ }
+
+ items
+ |> iterator.take(3)
+ |> iterator.to_list
+ |> should.equal([1, 2, 3])
+}