diff options
author | Juraj Petráš <jurkopetras@gmail.com> | 2024-06-14 00:53:41 +0200 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2024-06-15 13:52:21 +0100 |
commit | ba10a3baa597786009aec0f672b18187cec39217 (patch) | |
tree | f78a0352317fcdf5d26560db33869497c1346d93 /test | |
parent | 78d1a06c9d8d5923960424fc0dfdb26cdfedfa77 (diff) | |
download | gleam_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.gleam | 15 |
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]) +} |