From 42daa4dd149d33e99dc92d0b701132eb92b48000 Mon Sep 17 00:00:00 2001 From: Robert Attard Date: Mon, 12 Jul 2021 09:51:14 -0400 Subject: iterator.fold_until --- test/gleam/iterator_test.gleam | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'test') diff --git a/test/gleam/iterator_test.gleam b/test/gleam/iterator_test.gleam index 0c0176f..c8e2c4d 100644 --- a/test/gleam/iterator_test.gleam +++ b/test/gleam/iterator_test.gleam @@ -421,3 +421,29 @@ if erlang { |> should.equal([1, 100, 2, 3, 4]) } } + +// a |> from_list |> fold_until(a, f) == a |> list.fold_until(_, a, f) +pub fn fold_until_test() { + let test = fn(subject, acc, f) { + subject + |> iterator.from_list() + |> iterator.fold_until(acc, f) + |> should.equal(list.fold_until(subject, acc, f)) + } + + let f = fn(e, acc) { + case e { + _ if e < 6 -> list.Continue([e, ..acc]) + _ -> list.Stop(acc) + } + } + test([], [], f) + test([1], [], f) + test([1, 2, 3], [], f) + test([1, 2, 3, 4, 5, 6, 7, 8], [], f) + + [1, 2, 3, 4, 5, 6, 7, 8] + |> iterator.from_list() + |> iterator.fold_until([], f) + |> should.equal([5, 4, 3, 2, 1]) +} -- cgit v1.2.3