diff options
author | Louis Pilfold <louis@lpil.uk> | 2019-05-10 14:31:53 +0100 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2019-05-10 14:31:53 +0100 |
commit | 8fb5ad85ab623f93cfc0670bc11ec12856a9b4cd (patch) | |
tree | 6fa6a7acf4652ec546385f9e433488b2821a7698 | |
parent | dd4c4d9e0e45a487f89cf98bfc24855990e4a8a5 (diff) | |
download | gleam_stdlib-8fb5ad85ab623f93cfc0670bc11ec12856a9b4cd.tar.gz gleam_stdlib-8fb5ad85ab623f93cfc0670bc11ec12856a9b4cd.zip |
bool:compare
-rw-r--r-- | gen/src/bool.erl | 17 | ||||
-rw-r--r-- | gen/test/bool_test.erl | 8 | ||||
-rw-r--r-- | src/bool.gleam | 18 | ||||
-rw-r--r-- | test/bool_test.gleam | 46 |
4 files changed, 55 insertions, 34 deletions
diff --git a/gen/src/bool.erl b/gen/src/bool.erl index e4e1108..47fba5d 100644 --- a/gen/src/bool.erl +++ b/gen/src/bool.erl @@ -1,7 +1,7 @@ -module(bool). -compile(no_auto_import). --export([negate/1, max/2, min/2, to_int/1]). +-export([negate/1, compare/2, max/2, min/2, to_int/1]). negate(Bool) -> case Bool of @@ -12,6 +12,21 @@ negate(Bool) -> true end. +compare(A, B) -> + case {A, B} of + {true, true} -> + eq; + + {true, false} -> + gt; + + {false, false} -> + eq; + + {false, true} -> + lt + end. + max(A, B) -> case A of true -> diff --git a/gen/test/bool_test.erl b/gen/test/bool_test.erl index c38f780..d2f0322 100644 --- a/gen/test/bool_test.erl +++ b/gen/test/bool_test.erl @@ -1,12 +1,18 @@ -module(bool_test). -compile(no_auto_import). --export([negate_test/0, max_test/0, min_test/0, to_int_test/0]). +-export([negate_test/0, compare_test/0, max_test/0, min_test/0, to_int_test/0]). negate_test() -> expect:false(bool:negate(true)), expect:true(bool:negate(false)). +compare_test() -> + expect:equal(bool:compare(true, true), eq), + expect:equal(bool:compare(true, false), gt), + expect:equal(bool:compare(false, false), eq), + expect:equal(bool:compare(false, true), lt). + max_test() -> expect:equal(bool:max(true, true), true), expect:equal(bool:max(true, false), true), diff --git a/src/bool.gleam b/src/bool.gleam index 46cca60..f954897 100644 --- a/src/bool.gleam +++ b/src/bool.gleam @@ -1,4 +1,4 @@ -// import order +import order pub fn negate(bool) { case bool { @@ -7,14 +7,14 @@ pub fn negate(bool) { } } -// pub fn compare(a, b) { -// case {a, b} { -// | {True, True} -> order:Eq -// | {True, False} -> order:Gt -// | {False, False} -> order:Eq -// | {False, True} -> order:Lt -// } -// } +pub fn compare(a, b) { + case {a, b} { + | {True, True} -> order:Eq + | {True, False} -> order:Gt + | {False, False} -> order:Eq + | {False, True} -> order:Lt + } +} pub fn max(a, b) { case a { diff --git a/test/bool_test.gleam b/test/bool_test.gleam index 78c711b..412989f 100644 --- a/test/bool_test.gleam +++ b/test/bool_test.gleam @@ -1,61 +1,61 @@ import bool -// import order +import order import expect pub fn negate_test() { bool:negate(True) - |> expect:false + |> expect:false bool:negate(False) - |> expect:true + |> expect:true } -// pub fn compare_test() { -// bool:compare(True, True) -// |> expect:equal(_, order:Eq) +pub fn compare_test() { + bool:compare(True, True) + |> expect:equal(_, order:Eq) -// bool:compare(True, False) -// |> expect:equal(_, order:Gt) + bool:compare(True, False) + |> expect:equal(_, order:Gt) -// bool:compare(False, False) -// |> expect:equal(_, order:Lt) + bool:compare(False, False) + |> expect:equal(_, order:Eq) -// bool:compare(False, True) -// |> expect:equal(_, order:Gt) -// } + bool:compare(False, True) + |> expect:equal(_, order:Lt) +} pub fn max_test() { bool:max(True, True) - |> expect:equal(_, True) + |> expect:equal(_, True) bool:max(True, False) - |> expect:equal(_, True) + |> expect:equal(_, True) bool:max(False, False) - |> expect:equal(_, False) + |> expect:equal(_, False) bool:max(False, True) - |> expect:equal(_, True) + |> expect:equal(_, True) } pub fn min_test() { bool:min(True, True) - |> expect:equal(_, True) + |> expect:equal(_, True) bool:min(True, False) - |> expect:equal(_, False) + |> expect:equal(_, False) bool:min(False, False) - |> expect:equal(_, False) + |> expect:equal(_, False) bool:min(False, True) - |> expect:equal(_, False) + |> expect:equal(_, False) } pub fn to_int_test() { bool:to_int(True) - |> expect:equal(_, 1) + |> expect:equal(_, 1) bool:to_int(False) - |> expect:equal(_, 0) + |> expect:equal(_, 0) } |