diff options
author | Vladislav Botvin <darkvlados@gmail.com> | 2024-05-01 13:36:23 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-01 11:36:23 +0100 |
commit | b92e284631cacf0711545445e87241e8d512ed8f (patch) | |
tree | f1db94f9ce698e745cf97bd50178f0bde5329215 /test | |
parent | bca305d766c9363ff6067be5c43ee94c8ae2e0e4 (diff) | |
download | gleam_stdlib-b92e284631cacf0711545445e87241e8d512ed8f.tar.gz gleam_stdlib-b92e284631cacf0711545445e87241e8d512ed8f.zip |
iterator.find_map (#573)
Diffstat (limited to 'test')
-rw-r--r-- | test/gleam/iterator_test.gleam | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/test/gleam/iterator_test.gleam b/test/gleam/iterator_test.gleam index cd58035..186ea69 100644 --- a/test/gleam/iterator_test.gleam +++ b/test/gleam/iterator_test.gleam @@ -376,6 +376,41 @@ pub fn find_test() { |> should.equal(Ok(Cat(id: 10))) } +pub fn find_map_test() { + iterator.range(0, 10) + |> iterator.find_map(fn(e) { + case e == 5 { + True -> Ok(e) + False -> Error(Nil) + } + }) + |> should.equal(Ok(5)) + + iterator.range(0, 10) + |> iterator.find_map(fn(e) { + case e > 10 { + True -> Ok(e) + False -> Error(Nil) + } + }) + |> should.equal(Error(Nil)) + + iterator.empty() + |> iterator.find_map(fn(_x) { Ok(True) }) + |> should.equal(Error(Nil)) + + iterator.unfold(Cat(id: 1), fn(cat: Cat) { + iterator.Next(cat, Cat(id: cat.id + 1)) + }) + |> iterator.find_map(fn(cat: Cat) { + case cat.id == 10 { + True -> Ok(cat) + False -> Error(Nil) + } + }) + |> should.equal(Ok(Cat(id: 10))) +} + pub fn index_test() { iterator.from_list(["a", "b", "c"]) |> iterator.index |