mirror of
https://github.com/python/cpython.git
synced 2025-08-31 05:58:33 +00:00
Issue #15882: Change _decimal to accept any coefficient tuple when
constructing infinities. This is done for backwards compatibility with decimal.py: Infinity coefficients are undefined in _decimal (in accordance with the specification).
This commit is contained in:
parent
f47d79fec1
commit
76e12179c5
3 changed files with 21 additions and 7 deletions
|
@ -1992,7 +1992,8 @@ class UsabilityTest(unittest.TestCase):
|
|||
d = Decimal("-4.34913534E-17")
|
||||
self.assertEqual(d.as_tuple(), (1, (4, 3, 4, 9, 1, 3, 5, 3, 4), -25) )
|
||||
|
||||
# XXX non-compliant infinity payload.
|
||||
# The '0' coefficient is implementation specific to decimal.py.
|
||||
# It has no meaning in the C-version and is ignored there.
|
||||
d = Decimal("Infinity")
|
||||
self.assertEqual(d.as_tuple(), (0, (0,), 'F') )
|
||||
|
||||
|
@ -2012,12 +2013,14 @@ class UsabilityTest(unittest.TestCase):
|
|||
d = Decimal( (1, (), 'n') )
|
||||
self.assertEqual(d.as_tuple(), (1, (), 'n') )
|
||||
|
||||
# XXX coefficient in infinity should raise an error
|
||||
if self.decimal == P:
|
||||
d = Decimal( (0, (4, 5, 3, 4), 'F') )
|
||||
self.assertEqual(d.as_tuple(), (0, (0,), 'F'))
|
||||
d = Decimal( (1, (0, 2, 7, 1), 'F') )
|
||||
self.assertEqual(d.as_tuple(), (1, (0,), 'F'))
|
||||
# For infinities, decimal.py has always silently accepted any
|
||||
# coefficient tuple.
|
||||
d = Decimal( (0, (0,), 'F') )
|
||||
self.assertEqual(d.as_tuple(), (0, (0,), 'F'))
|
||||
d = Decimal( (0, (4, 5, 3, 4), 'F') )
|
||||
self.assertEqual(d.as_tuple(), (0, (0,), 'F'))
|
||||
d = Decimal( (1, (0, 2, 7, 1), 'F') )
|
||||
self.assertEqual(d.as_tuple(), (1, (0,), 'F'))
|
||||
|
||||
def test_subclassing(self):
|
||||
# Different behaviours when subclassing Decimal
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue