aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConnor Schembor <connor.schembor@rutgers.edu>2020-08-25 18:09:20 -0400
committerLouis Pilfold <louis@lpil.uk>2020-08-27 13:55:55 +0100
commite9817a0f6dd9b77c048b0a702e6b897dd95bebf8 (patch)
treea453b62e9e71eae8bf95afadc6dc17cdfeeb4dde
parent06a4f0116ae0dfef79c398bbde08d3924e7d4091 (diff)
downloadgleam_stdlib-e9817a0f6dd9b77c048b0a702e6b897dd95bebf8.tar.gz
gleam_stdlib-e9817a0f6dd9b77c048b0a702e6b897dd95bebf8.zip
Add absolute_value function for floats
-rw-r--r--src/gleam/float.gleam13
-rw-r--r--test/gleam/float_test.gleam17
2 files changed, 30 insertions, 0 deletions
diff --git a/src/gleam/float.gleam b/src/gleam/float.gleam
index f810161..c85903f 100644
--- a/src/gleam/float.gleam
+++ b/src/gleam/float.gleam
@@ -115,3 +115,16 @@ pub external fn round(Float) -> Int =
///
pub external fn truncate(Float) -> Int =
"erlang" "trunc"
+
+/// Returns the absolute value of the input as a float.
+///
+/// ## Examples
+///
+/// > absolute_value(-12.5)
+/// 12.5
+///
+/// > absolute_value(10.2)
+/// 10.2
+///
+pub external fn absolute_value(Float) -> Float =
+ "erlang" "abs"
diff --git a/test/gleam/float_test.gleam b/test/gleam/float_test.gleam
index d8ed02e..5508a76 100644
--- a/test/gleam/float_test.gleam
+++ b/test/gleam/float_test.gleam
@@ -183,3 +183,20 @@ pub fn max_test() {
float.max(-1.1, -1.)
|> should.equal(-1.)
}
+
+pub fn absolute_value_test() {
+ float.absolute_value(-1.0)
+ |> should.equal(1.0)
+
+ float.absolute_value(-20.6)
+ |> should.equal(20.6)
+
+ float.absolute_value(0.0)
+ |> should.equal(0.0)
+
+ float.absolute_value(1.0)
+ |> should.equal(1.0)
+
+ float.absolute_value(25.2)
+ |> should.equal(25.2)
+}