diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/gleam/result_test.gleam | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/test/gleam/result_test.gleam b/test/gleam/result_test.gleam index 6ff35ee..b35034b 100644 --- a/test/gleam/result_test.gleam +++ b/test/gleam/result_test.gleam @@ -1,3 +1,4 @@ +import gleam/list import gleam/result import gleam/should @@ -195,6 +196,41 @@ pub fn all_test() { |> should.equal(Error("a")) } +pub fn partition_test() { + [] + |> result.partition + |> should.equal(Ok([])) + + [Ok(1), Ok(2), Ok(3)] + |> result.partition + |> should.equal(Ok([1, 2, 3])) + + [Error("a"), Error("b"), Error("c")] + |> result.partition + |> should.equal(Error(["a", "b", "c"])) + + [Error("a"), Ok(1), Ok(2)] + |> result.partition + |> should.equal(Error(["a"])) + + [Ok(1), Ok(2), Error("a")] + |> result.partition + |> should.equal(Error(["a"])) + + [Ok(1), Error("a"), Ok(2), Error("b"), Error("c")] + |> result.partition + |> should.equal(Error(["a", "b", "c"])) + + // TCO test + list.repeat(Ok(1), 1_000_000) + |> result.partition + |> should.be_ok + + list.repeat(Error("a"), 1_000_000) + |> result.partition + |> should.be_error +} + pub fn replace_error_test() { Error(Nil) |> result.replace_error("Invalid") |