diff options
author | Hudson C. Dalpra <dalpra.hcd@gmail.com> | 2024-07-13 10:07:36 +1200 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2024-07-17 12:40:28 +0100 |
commit | 21172427f86c5c69008773cc77f05fdc633072a0 (patch) | |
tree | 17f78a9f35dd5a75d8d130ada6394ba9f1a65ae6 | |
parent | 2f985435953706a8a9e0d816cd00dcd02925876b (diff) | |
download | gleam_stdlib-21172427f86c5c69008773cc77f05fdc633072a0.tar.gz gleam_stdlib-21172427f86c5c69008773cc77f05fdc633072a0.zip |
Fix float_test with float.loosely_equals
-rw-r--r-- | src/gleam/float.gleam | 31 | ||||
-rw-r--r-- | test/gleam/float_test.gleam | 60 |
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() { |