aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/gleam/result_test.gleam36
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")