diff options
author | Louis Pilfold <louis@lpil.uk> | 2019-04-14 13:03:24 +0000 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2019-04-14 13:03:32 +0000 |
commit | 8cfa606f3834cf7d05f5011bc68295a9d84263dc (patch) | |
tree | fa7edc8ea53426b072f35d3d61e0ab821c8d5feb /test/result_test.gleam | |
parent | ae5597c1b27982aabe74eb16d5b0c890802730d9 (diff) | |
download | gleam_stdlib-8cfa606f3834cf7d05f5011bc68295a9d84263dc.tar.gz gleam_stdlib-8cfa606f3834cf7d05f5011bc68295a9d84263dc.zip |
stdlib: Split out tests
Diffstat (limited to 'test/result_test.gleam')
-rw-r--r-- | test/result_test.gleam | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/test/result_test.gleam b/test/result_test.gleam new file mode 100644 index 0000000..36d208e --- /dev/null +++ b/test/result_test.gleam @@ -0,0 +1,85 @@ +import expect +import result + +pub fn is_ok_test() { + result:is_ok(Ok(1)) |> expect:true + result:is_ok(Error(1)) |> expect:false +} + +pub fn is_error_test() { + result:is_error(Ok(1)) + |> expect:false + + result:is_error(Error(1)) + |> expect:true +} + +pub fn map_test() { + Ok(1) + |> result:map(_, fn(x) { x + 1 }) + |> expect:equal(_, Ok(2)) + + Ok(1) + |> result:map(_, fn(_) { "2" }) + |> expect:equal(_, Ok("2")) + + Error(1) + |> result:map(_, fn(x) { x + 1 }) + |> expect:equal(_, Error(1)) +} + +pub fn map_error_test() { + Ok(1) + |> result:map_error(_, fn(x) { x + 1 }) + |> expect:equal(_, Ok(1)) + + Error(1) + |> result:map_error(_, fn(x) { x + 1 }) + |> expect:equal(_, Error(2)) +} + +pub fn flatten_test() { + Ok(Ok(1)) + |> result:flatten + |> expect:equal(_, Ok(1)) + + Ok(Error(1)) + |> result:flatten + |> expect:equal(_, Error(1)) + + Error(1) + |> result:flatten + |> expect:equal(_, Error(1)) + + Error(Error(1)) + |> result:flatten + |> expect:equal(_, Error(Error(1))) +} + +pub fn then_test() { + Error(1) + |> result:then(_, fn(x) { Ok(x + 1) }) + |> expect:equal(_, Error(1)) + + Ok(1) + |> result:then(_, fn(x) { Ok(x + 1) }) + |> expect:equal(_, Ok(2)) + + Ok(1) + |> result:then(_, fn(_) { Ok("type change") }) + |> expect:equal(_, Ok("type change")) + + Ok(1) + |> result:then(_, fn(_) { Error(1) }) + |> expect:equal(_, Error(1)) +} + +pub fn unwrap_test() { + Ok(1) + |> result:unwrap(_, 50) + |> expect:equal(_, 1) + + Error("nope") + |> result:unwrap(_, 50) + |> expect:equal(_, 50) +} |