From fae7b0e8ed19178ea89bf1eb85328fba8a0d9bb2 Mon Sep 17 00:00:00 2001 From: Padraic Fanning Date: Sun, 14 Feb 2021 18:12:52 -0500 Subject: [PATCH] Implement __ceil__ for float type Co-authored-by: Tetramad --- Lib/test/test_float.py | 2 -- vm/src/builtins/float.rs | 5 +++++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_float.py b/Lib/test/test_float.py index 72c77e735..1812ce0c8 100644 --- a/Lib/test/test_float.py +++ b/Lib/test/test_float.py @@ -340,8 +340,6 @@ class GeneralFloatCases(unittest.TestCase): self.assertRaises(OverflowError, float("inf").__floor__) self.assertRaises(OverflowError, float("-inf").__floor__) - # TODO: RUSTPYTHON - @unittest.expectedFailure def test_float_ceil(self): self.assertIsInstance(float(0.5).__ceil__(), int) self.assertEqual(float(0.5).__ceil__(), 1) diff --git a/vm/src/builtins/float.rs b/vm/src/builtins/float.rs index 964d8364b..b4e16ec23 100644 --- a/vm/src/builtins/float.rs +++ b/vm/src/builtins/float.rs @@ -389,6 +389,11 @@ impl PyFloat { try_bigint(self.value, vm) } + #[pymethod(magic)] + fn ceil(&self, vm: &VirtualMachine) -> PyResult { + try_bigint(self.value.ceil(), vm) + } + #[pymethod(name = "__round__")] fn round(&self, ndigits: OptionalOption, vm: &VirtualMachine) -> PyResult { let ndigits = ndigits.flatten();