mirror of
https://github.com/python/cpython.git
synced 2025-07-29 06:05:00 +00:00
Remove unused to-be-magic methods from Rational per issue 1968. Do not port
this patch to py3k.
This commit is contained in:
parent
b23dea6adb
commit
38db364076
2 changed files with 0 additions and 49 deletions
|
@ -410,40 +410,6 @@ class Rational(RationalAbc):
|
|||
|
||||
__int__ = __trunc__
|
||||
|
||||
def __floor__(a):
|
||||
"""Will be math.floor(a) in 3.0."""
|
||||
return a.numerator // a.denominator
|
||||
|
||||
def __ceil__(a):
|
||||
"""Will be math.ceil(a) in 3.0."""
|
||||
# The negations cleverly convince floordiv to return the ceiling.
|
||||
return -(-a.numerator // a.denominator)
|
||||
|
||||
def __round__(self, ndigits=None):
|
||||
"""Will be round(self, ndigits) in 3.0.
|
||||
|
||||
Rounds half toward even.
|
||||
"""
|
||||
if ndigits is None:
|
||||
floor, remainder = divmod(self.numerator, self.denominator)
|
||||
if remainder * 2 < self.denominator:
|
||||
return floor
|
||||
elif remainder * 2 > self.denominator:
|
||||
return floor + 1
|
||||
# Deal with the half case:
|
||||
elif floor % 2 == 0:
|
||||
return floor
|
||||
else:
|
||||
return floor + 1
|
||||
shift = 10**abs(ndigits)
|
||||
# See _operator_fallbacks.forward to check that the results of
|
||||
# these operations will always be Rational and therefore have
|
||||
# __round__().
|
||||
if ndigits > 0:
|
||||
return Rational((self * shift).__round__(), shift)
|
||||
else:
|
||||
return Rational((self / shift).__round__() * shift)
|
||||
|
||||
def __hash__(self):
|
||||
"""hash(self)
|
||||
|
||||
|
|
|
@ -197,14 +197,6 @@ class RationalTest(unittest.TestCase):
|
|||
def testConversions(self):
|
||||
self.assertTypedEquals(-1, trunc(R(-11, 10)))
|
||||
self.assertTypedEquals(-1, int(R(-11, 10)))
|
||||
self.assertTypedEquals(-2, R(-11, 10).__floor__())
|
||||
self.assertTypedEquals(-1, R(-11, 10).__ceil__())
|
||||
self.assertTypedEquals(-1, R(-10, 10).__ceil__())
|
||||
|
||||
self.assertTypedEquals(0, R(-1, 10).__round__())
|
||||
self.assertTypedEquals(0, R(-5, 10).__round__())
|
||||
self.assertTypedEquals(-2, R(-15, 10).__round__())
|
||||
self.assertTypedEquals(-1, R(-7, 10).__round__())
|
||||
|
||||
self.assertEquals(False, bool(R(0, 1)))
|
||||
self.assertEquals(True, bool(R(3, 2)))
|
||||
|
@ -218,13 +210,6 @@ class RationalTest(unittest.TestCase):
|
|||
|
||||
self.assertTypedEquals(0.1+0j, complex(R(1,10)))
|
||||
|
||||
def testRound(self):
|
||||
self.assertTypedEquals(R(-200), R(-150).__round__(-2))
|
||||
self.assertTypedEquals(R(-200), R(-250).__round__(-2))
|
||||
self.assertTypedEquals(R(30), R(26).__round__(-1))
|
||||
self.assertTypedEquals(R(-2, 10), R(-15, 100).__round__(1))
|
||||
self.assertTypedEquals(R(-2, 10), R(-25, 100).__round__(1))
|
||||
|
||||
|
||||
def testArithmetic(self):
|
||||
self.assertEquals(R(1, 2), R(1, 10) + R(2, 5))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue