aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md4
-rw-r--r--gen/src/gleam@float.erl11
-rw-r--r--gen/src/gleam@int.erl11
-rw-r--r--gen/test/gleam@float_test.erl11
-rw-r--r--gen/test/gleam@int_test.erl10
-rw-r--r--src/gleam/float.gleam7
-rw-r--r--src/gleam/int.gleam7
-rw-r--r--test/gleam/float_test.gleam23
-rw-r--r--test/gleam/int_test.gleam20
9 files changed, 98 insertions, 6 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8c8370c..f2375c6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,8 +4,8 @@
- The `pair` module gains the `map_first`, and `map_second` functions.
- The `string` module gains the `compare` function.
-- The `float` module gains the `min` function.
-- The `int` module gains the `min` function.
+- The `float` module gains the `max`, and `min` functions.
+- The `int` module gains the `max`, and `min` functions.
## v0.4.0 - 2019-09-19
diff --git a/gen/src/gleam@float.erl b/gen/src/gleam@float.erl
index 625ba56..7eb18cf 100644
--- a/gen/src/gleam@float.erl
+++ b/gen/src/gleam@float.erl
@@ -1,7 +1,7 @@
-module(gleam@float).
-compile(no_auto_import).
--export([parse/1, to_string/1, compare/2, min/2, ceiling/1, floor/1, round/1, truncate/1]).
+-export([parse/1, to_string/1, compare/2, min/2, max/2, ceiling/1, floor/1, round/1, truncate/1]).
parse(A) ->
gleam_stdlib:parse_float(A).
@@ -33,6 +33,15 @@ min(A, B) ->
B
end.
+max(A, B) ->
+ case A > B of
+ true ->
+ A;
+
+ false ->
+ B
+ end.
+
ceiling(A) ->
math:ceil(A).
diff --git a/gen/src/gleam@int.erl b/gen/src/gleam@int.erl
index de9ce8b..1449d09 100644
--- a/gen/src/gleam@int.erl
+++ b/gen/src/gleam@int.erl
@@ -1,7 +1,7 @@
-module(gleam@int).
-compile(no_auto_import).
--export([parse/1, to_string/1, to_base_string/2, compare/2, min/2]).
+-export([parse/1, to_string/1, to_base_string/2, compare/2, min/2, max/2]).
parse(A) ->
gleam_stdlib:parse_int(A).
@@ -35,3 +35,12 @@ min(A, B) ->
false ->
B
end.
+
+max(A, B) ->
+ case A > B of
+ true ->
+ A;
+
+ false ->
+ B
+ end.
diff --git a/gen/test/gleam@float_test.erl b/gen/test/gleam@float_test.erl
index d60997e..8926ce1 100644
--- a/gen/test/gleam@float_test.erl
+++ b/gen/test/gleam@float_test.erl
@@ -1,7 +1,7 @@
-module(gleam@float_test).
-compile(no_auto_import).
--export([parse_test/0, to_string_test/0, compare_test/0, ceiling_test/0, floor_test/0, round_test/0, truncate_test/0, min_test/0]).
+-export([parse_test/0, to_string_test/0, compare_test/0, ceiling_test/0, floor_test/0, round_test/0, truncate_test/0, min_test/0, max_test/0]).
parse_test() ->
gleam@expect:equal(gleam@float:parse(<<"1.23">>), {ok, 1.23}),
@@ -57,3 +57,12 @@ min_test() ->
gleam@expect:equal(gleam@float:min(-2.2, -2.2), -2.2),
gleam@expect:equal(gleam@float:min(-1.0, -1.0), -1.0),
gleam@expect:equal(gleam@float:min(-1.1, -1.0), -1.1).
+
+max_test() ->
+ gleam@expect:equal(gleam@float:max(0.0, 0.0), 0.0),
+ gleam@expect:equal(gleam@float:max(0.3, 1.5), 1.5),
+ gleam@expect:equal(gleam@float:max(1.0, 0.0), 1.0),
+ gleam@expect:equal(gleam@float:max(-1.7, 2.5), 2.5),
+ gleam@expect:equal(gleam@float:max(-2.2, -2.2), -2.2),
+ gleam@expect:equal(gleam@float:max(-1.0, -1.0), -1.0),
+ gleam@expect:equal(gleam@float:max(-1.1, -1.0), -1.0).
diff --git a/gen/test/gleam@int_test.erl b/gen/test/gleam@int_test.erl
index ce8936c..48eeba1 100644
--- a/gen/test/gleam@int_test.erl
+++ b/gen/test/gleam@int_test.erl
@@ -1,7 +1,7 @@
-module(gleam@int_test).
-compile(no_auto_import).
--export([to_string/0, parse/0, to_base_string/0, compare_test/0, min_test/0]).
+-export([to_string/0, parse/0, to_base_string/0, compare_test/0, min_test/0, max_test/0]).
to_string() ->
gleam@expect:equal(gleam@int:to_string(123), <<"123">>),
@@ -35,3 +35,11 @@ min_test() ->
gleam@expect:equal(gleam@int:min(-1, 2), -1),
gleam@expect:equal(gleam@int:min(2, -2), -2),
gleam@expect:equal(gleam@int:min(-1, -1), -1).
+
+max_test() ->
+ gleam@expect:equal(gleam@int:max(0, 0), 0),
+ gleam@expect:equal(gleam@int:max(0, 1), 1),
+ gleam@expect:equal(gleam@int:max(1, 0), 1),
+ gleam@expect:equal(gleam@int:max(-1, 2), 2),
+ gleam@expect:equal(gleam@int:max(2, -2), 2),
+ gleam@expect:equal(gleam@int:max(-1, -1), -1).
diff --git a/src/gleam/float.gleam b/src/gleam/float.gleam
index 3929218..d27587c 100644
--- a/src/gleam/float.gleam
+++ b/src/gleam/float.gleam
@@ -28,6 +28,13 @@ pub fn min(a, b) {
}
}
+pub fn max(a, b) {
+ case a >. b {
+ | True -> a
+ | False -> b
+ }
+}
+
pub external fn ceiling(Float) -> Float = "math" "ceil";
pub external fn floor(Float) -> Float = "math" "floor";
diff --git a/src/gleam/int.gleam b/src/gleam/int.gleam
index ddd0ac5..2171852 100644
--- a/src/gleam/int.gleam
+++ b/src/gleam/int.gleam
@@ -24,3 +24,10 @@ pub fn min(a, b) {
}
}
+pub fn max(a, b) {
+ case a > b {
+ | True -> a
+ | False -> b
+ }
+}
+
diff --git a/test/gleam/float_test.gleam b/test/gleam/float_test.gleam
index 88c9c64..f10565c 100644
--- a/test/gleam/float_test.gleam
+++ b/test/gleam/float_test.gleam
@@ -160,3 +160,26 @@ pub fn min_test() {
float.min(-1.1, -1.)
|> expect.equal(_, -1.1)
}
+
+pub fn max_test() {
+ float.max(0., 0.)
+ |> expect.equal(_, 0.)
+
+ float.max(0.3, 1.5)
+ |> expect.equal(_, 1.5)
+
+ float.max(1., 0.)
+ |> expect.equal(_, 1.)
+
+ float.max(-1.7, 2.5)
+ |> expect.equal(_, 2.5)
+
+ float.max(-2.2, -2.2)
+ |> expect.equal(_, -2.2)
+
+ float.max(-1., -1.)
+ |> expect.equal(_, -1.)
+
+ float.max(-1.1, -1.)
+ |> expect.equal(_, -1.)
+}
diff --git a/test/gleam/int_test.gleam b/test/gleam/int_test.gleam
index 5ef20a7..7a8320f 100644
--- a/test/gleam/int_test.gleam
+++ b/test/gleam/int_test.gleam
@@ -91,3 +91,23 @@ pub fn min_test() {
int.min(-1, -1)
|> expect.equal(_, -1)
}
+
+pub fn max_test() {
+ int.max(0, 0)
+ |> expect.equal(_, 0)
+
+ int.max(0, 1)
+ |> expect.equal(_, 1)
+
+ int.max(1, 0)
+ |> expect.equal(_, 1)
+
+ int.max(-1, 2)
+ |> expect.equal(_, 2)
+
+ int.max(2, -2)
+ |> expect.equal(_, 2)
+
+ int.max(-1, -1)
+ |> expect.equal(_, -1)
+}