mirror of
https://github.com/python/cpython.git
synced 2025-11-25 21:11:09 +00:00
Issue #22604: Fix assertion error in debug mode when dividing a complex number by (nan+0j).
This commit is contained in:
parent
a13dab47cb
commit
9086f9260f
3 changed files with 16 additions and 4 deletions
|
|
@ -27,7 +27,7 @@ class ComplexTest(unittest.TestCase):
|
|||
unittest.TestCase.assertAlmostEqual(self, a, b)
|
||||
|
||||
def assertCloseAbs(self, x, y, eps=1e-9):
|
||||
"""Return true iff floats x and y "are close\""""
|
||||
"""Return true iff floats x and y "are close"."""
|
||||
# put the one with larger magnitude second
|
||||
if abs(x) > abs(y):
|
||||
x, y = y, x
|
||||
|
|
@ -62,7 +62,7 @@ class ComplexTest(unittest.TestCase):
|
|||
self.fail(msg.format(x, y))
|
||||
|
||||
def assertClose(self, x, y, eps=1e-9):
|
||||
"""Return true iff complexes x and y "are close\""""
|
||||
"""Return true iff complexes x and y "are close"."""
|
||||
self.assertCloseAbs(x.real, y.real, eps)
|
||||
self.assertCloseAbs(x.imag, y.imag, eps)
|
||||
|
||||
|
|
@ -104,6 +104,11 @@ class ComplexTest(unittest.TestCase):
|
|||
self.assertAlmostEqual(complex.__truediv__(2+0j, 1+1j), 1-1j)
|
||||
self.assertRaises(ZeroDivisionError, complex.__truediv__, 1+1j, 0+0j)
|
||||
|
||||
for denom_real, denom_imag in [(0, NAN), (NAN, 0), (NAN, NAN)]:
|
||||
z = complex(0, 0) / complex(denom_real, denom_imag)
|
||||
self.assertTrue(isnan(z.real))
|
||||
self.assertTrue(isnan(z.imag))
|
||||
|
||||
def test_floordiv(self):
|
||||
self.assertRaises(TypeError, complex.__floordiv__, 3+0j, 1.5+0j)
|
||||
self.assertRaises(TypeError, complex.__floordiv__, 3+0j, 0+0j)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue