mirror of
https://github.com/python/cpython.git
synced 2025-12-15 21:44:50 +00:00
Fixed complex.__getnewargs__() to not emit another complex object.
This commit is contained in:
parent
d5bb9215c9
commit
80af6da748
2 changed files with 10 additions and 1 deletions
|
|
@ -373,6 +373,14 @@ class ComplexTest(unittest.TestCase):
|
||||||
except (OSError, IOError):
|
except (OSError, IOError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def test_getnewargs(self):
|
||||||
|
self.assertEqual((1+2j).__getnewargs__(), (1.0, 2.0))
|
||||||
|
self.assertEqual((1-2j).__getnewargs__(), (1.0, -2.0))
|
||||||
|
self.assertEqual((2j).__getnewargs__(), (0.0, 2.0))
|
||||||
|
self.assertEqual((-0j).__getnewargs__(), (0.0, -0.0))
|
||||||
|
self.assertEqual(complex(0, INF).__getnewargs__(), (0.0, INF))
|
||||||
|
self.assertEqual(complex(INF, 0).__getnewargs__(), (INF, 0.0))
|
||||||
|
|
||||||
if float.__getformat__("double").startswith("IEEE"):
|
if float.__getformat__("double").startswith("IEEE"):
|
||||||
def test_plus_minus_0j(self):
|
def test_plus_minus_0j(self):
|
||||||
# test that -0j and 0j literals are not identified
|
# test that -0j and 0j literals are not identified
|
||||||
|
|
|
||||||
|
|
@ -822,7 +822,8 @@ PyDoc_STRVAR(complex_conjugate_doc,
|
||||||
static PyObject *
|
static PyObject *
|
||||||
complex_getnewargs(PyComplexObject *v)
|
complex_getnewargs(PyComplexObject *v)
|
||||||
{
|
{
|
||||||
return Py_BuildValue("(D)", &v->cval);
|
Py_complex c = v->cval;
|
||||||
|
return Py_BuildValue("(dd)", c.real, c.imag);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue