diff options
author | drew <drew@drewolson.org> | 2020-11-03 07:22:37 -0600 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2020-11-03 13:25:01 +0000 |
commit | e1dce822e1ff14664a30b429b5e2e2cbf3748221 (patch) | |
tree | 0c940f1d641fac784d7dd120414de29e4b80b2f9 /test | |
parent | cbac55e668d7fc7df601b604e741b1baa64c7db8 (diff) | |
download | gleam_stdlib-e1dce822e1ff14664a30b429b5e2e2cbf3748221.tar.gz gleam_stdlib-e1dce822e1ff14664a30b429b5e2e2cbf3748221.zip |
Add `step` eliminator for iterators
The `step` function allows eager access to the first item in the
iterator, but does not force the rest of the iterator.
Diffstat (limited to 'test')
-rw-r--r-- | test/gleam/iterator_test.gleam | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/test/gleam/iterator_test.gleam b/test/gleam/iterator_test.gleam index acaac81..426c9f7 100644 --- a/test/gleam/iterator_test.gleam +++ b/test/gleam/iterator_test.gleam @@ -1,5 +1,5 @@ import gleam/should -import gleam/iterator +import gleam/iterator.{Done, Next} import gleam/list // a |> from_list |> to_list == a @@ -17,6 +17,30 @@ pub fn to_from_list_test() { test([1, 2, 4, 8]) } +pub fn step_test() { + let test = fn(subject) { + let step = + subject + |> iterator.from_list + |> iterator.step + + case subject { + [] -> + step + |> should.equal(Done) + + [h, ..t] -> + step + |> should.equal(Next(h, iterator.from_list(t))) + } + } + + test([]) + test([1]) + test([1, 2]) + test([1, 2, 3]) +} + // a |> from_list |> take(n) == a |> list.take(_, n) pub fn take_test() { let test = fn(n, subject) { |