aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorlrosa007 <lrosa008@gmail.com>2020-11-02 18:06:24 -0500
committerLouis Pilfold <louis@lpil.uk>2020-11-03 14:02:42 +0000
commit5c4a9750a27876f648b85d9bd7ba4f0e18b66990 (patch)
treee364bb1ff5e1c661211645f2cc2a3aaa57b1503d /test
parente1dce822e1ff14664a30b429b5e2e2cbf3748221 (diff)
downloadgleam_stdlib-5c4a9750a27876f648b85d9bd7ba4f0e18b66990.tar.gz
gleam_stdlib-5c4a9750a27876f648b85d9bd7ba4f0e18b66990.zip
feat(iterator): add find function
Diffstat (limited to 'test')
-rw-r--r--test/gleam/iterator_test.gleam25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/gleam/iterator_test.gleam b/test/gleam/iterator_test.gleam
index 426c9f7..0f836c6 100644
--- a/test/gleam/iterator_test.gleam
+++ b/test/gleam/iterator_test.gleam
@@ -225,3 +225,28 @@ pub fn drop_test() {
|> iterator.to_list
|> should.equal([5, 6, 7, 8, 9])
}
+
+type Cat {
+ Cat(id: Int)
+}
+
+pub fn find_test() {
+ iterator.range(0, 10)
+ |> iterator.find(fn(e) { e == 5 })
+ |> should.equal(Ok(5))
+
+ iterator.range(0, 10)
+ |> iterator.find(fn(e) { e > 10 })
+ |> should.equal(Error(Nil))
+
+ iterator.from_list([])
+ |> iterator.find(fn(_x) { True })
+ |> should.equal(Error(Nil))
+
+ iterator.unfold(
+ Cat(id: 1),
+ fn(cat: Cat) { iterator.Next(cat, Cat(id: cat.id + 1)) },
+ )
+ |> iterator.find(fn(cat: Cat) { cat.id == 10 })
+ |> should.equal(Ok(Cat(id: 10)))
+}