diff options
-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]) +} |