diff options
author | lrosa007 <lrosa008@gmail.com> | 2020-11-02 18:06:24 -0500 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2020-11-03 14:02:42 +0000 |
commit | 5c4a9750a27876f648b85d9bd7ba4f0e18b66990 (patch) | |
tree | e364bb1ff5e1c661211645f2cc2a3aaa57b1503d /test | |
parent | e1dce822e1ff14664a30b429b5e2e2cbf3748221 (diff) | |
download | gleam_stdlib-5c4a9750a27876f648b85d9bd7ba4f0e18b66990.tar.gz gleam_stdlib-5c4a9750a27876f648b85d9bd7ba4f0e18b66990.zip |
feat(iterator): add find function
Diffstat (limited to 'test')
-rw-r--r-- | test/gleam/iterator_test.gleam | 25 |
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))) +} |