[Python-checkins] r63948 - in python/trunk: Lib/test/test_complex.py Objects/complexobject.c
alexandre.vassalotti
python-checkins at python.org
Wed Jun 4 22:41:44 CEST 2008
Author: alexandre.vassalotti
Date: Wed Jun 4 22:41:44 2008
New Revision: 63948
Log:
Fixed complex.__getnewargs__() to not emit another complex object.
Modified:
python/trunk/Lib/test/test_complex.py
python/trunk/Objects/complexobject.c
Modified: python/trunk/Lib/test/test_complex.py
==============================================================================
--- python/trunk/Lib/test/test_complex.py (original)
+++ python/trunk/Lib/test/test_complex.py Wed Jun 4 22:41:44 2008
@@ -373,6 +373,14 @@
except (OSError, IOError):
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"):
def test_plus_minus_0j(self):
# test that -0j and 0j literals are not identified
Modified: python/trunk/Objects/complexobject.c
==============================================================================
--- python/trunk/Objects/complexobject.c (original)
+++ python/trunk/Objects/complexobject.c Wed Jun 4 22:41:44 2008
@@ -822,7 +822,8 @@
static PyObject *
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
More information about the Python-checkins
mailing list