aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHudson C. Dalpra <dalpra.hcd@gmail.com>2024-07-13 10:07:36 +1200
committerLouis Pilfold <louis@lpil.uk>2024-07-17 12:40:28 +0100
commit21172427f86c5c69008773cc77f05fdc633072a0 (patch)
tree17f78a9f35dd5a75d8d130ada6394ba9f1a65ae6
parent2f985435953706a8a9e0d816cd00dcd02925876b (diff)
downloadgleam_stdlib-21172427f86c5c69008773cc77f05fdc633072a0.tar.gz
gleam_stdlib-21172427f86c5c69008773cc77f05fdc633072a0.zip
Fix float_test with float.loosely_equals
-rw-r--r--src/gleam/float.gleam31
-rw-r--r--test/gleam/float_test.gleam60
2 files changed, 26 insertions, 65 deletions
diff --git a/src/gleam/float.gleam b/src/gleam/float.gleam
index 9a922c1..fed2fac 100644
--- a/src/gleam/float.gleam
+++ b/src/gleam/float.gleam
@@ -436,38 +436,23 @@ pub fn random() -> Float
/// ## Examples
///
/// ```gleam
-/// modulo(3.0, 2.0)
-/// // -> Ok(1.0)
+/// modulo(13.3, by: 3.3)
+/// // -> Ok(0.1)
/// ```
///
/// ```gleam
-/// modulo(1.0, 0.0)
-/// // -> Error(Nil)
-/// ```
-///
-/// ```gleam
-/// modulo(10.0, -1.0)
-/// // -> Ok(0.0)
-/// ```
-///
-/// ```gleam
-/// modulo(13.0, by: 3.0)
-/// // -> Ok(1.0)
-/// ```
-///
-/// ```gleam
-/// modulo(-13.0, by: 3.0)
-/// // -> Ok(2.0)
+/// modulo(-13.3, by: 3.3)
+/// // -> Ok(3.2)
/// ```
///
/// ```gleam
-/// modulo(13.0, by: -3.0)
-/// // -> Ok(-2.0)
+/// modulo(13.3, by: -3.3)
+/// // -> Ok(-3.2)
/// ```
///
/// ```gleam
-/// modulo(-13.0, by: -3.0)
-/// // -> Ok(-1.0)
+/// modulo(-13.3, by: -3.3)
+/// // -> Ok(-0.1)
/// ```
///
pub fn modulo(dividend: Float, by divisor: Float) -> Result(Float, Nil) {
diff --git a/test/gleam/float_test.gleam b/test/gleam/float_test.gleam
index 6fb894f..4c49f69 100644
--- a/test/gleam/float_test.gleam
+++ b/test/gleam/float_test.gleam
@@ -3,6 +3,7 @@ import gleam/int
import gleam/iterator
import gleam/list
import gleam/order
+import gleam/result
import gleam/should
pub fn parse_test() {
@@ -385,53 +386,28 @@ pub fn random_test() {
}
pub fn modulo_test() {
- float.modulo(3.0, by: 2.0)
- |> should.equal(Ok(1.0))
-
- float.modulo(1.0, by: 0.0)
+ float.modulo(13.3, by: 0.0)
|> should.equal(Error(Nil))
- float.modulo(10.0, by: -1.0)
- |> should.equal(Ok(0.0))
-
- float.modulo(13.0, by: 3.0)
- |> should.equal(Ok(1.0))
-
- float.modulo(-13.0, by: 3.0)
- |> should.equal(Ok(2.0))
-
- float.modulo(13.0, by: -3.0)
- |> should.equal(Ok(-2.0))
-
- float.modulo(-13.0, by: -3.0)
- |> should.equal(Ok(-1.0))
-
- float.modulo(3.3, 2.3)
- |> should.equal(Ok(1.0))
-
- float.modulo(13.3, by: 3.0)
- |> should.equal(Ok(1.3))
-
- float.modulo(13.0, by: 3.3)
- |> should.equal(Ok(3.1))
-
- float.modulo(-13.3, by: 3.0)
- |> should.equal(Ok(1.3))
-
- float.modulo(-13.0, by: 3.3)
- |> should.equal(Ok(3.1))
-
- float.modulo(13.3, by: -3.0)
- |> should.equal(Ok(-1.3))
+ float.modulo(13.3, by: 3.3)
+ |> result.unwrap(or: 0.0)
+ |> float.loosely_equals(with: 0.1, tolerating: 0.001)
+ |> should.be_true
- float.modulo(13.0, by: -3.3)
- |> should.equal(Ok(-3.1))
+ float.modulo(-13.3, by: 3.3)
+ |> result.unwrap(or: 0.0)
+ |> float.loosely_equals(with: 3.2, tolerating: 0.001)
+ |> should.be_true
- float.modulo(-13.3, by: -3.0)
- |> should.equal(Ok(1.3))
+ float.modulo(13.3, by: -3.3)
+ |> result.unwrap(or: 0.0)
+ |> float.loosely_equals(with: -3.2, tolerating: 0.001)
+ |> should.be_true
- float.modulo(-13.0, by: -3.3)
- |> should.equal(Ok(3.1))
+ float.modulo(-13.3, by: -3.3)
+ |> result.unwrap(or: 0.0)
+ |> float.loosely_equals(with: -0.1, tolerating: 0.001)
+ |> should.be_true
}
pub fn divide_test() {