aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/gleam/iterator_test.gleam35
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