summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2006-08-21 18:27:07 (GMT)
committerGuido van Rossum <guido@python.org>2006-08-21 18:27:07 (GMT)
commit18a67ba0bd6d23da454e975f814dad50d7e09cdb (patch)
tree7e4e5bbf150af0df14030e184c9a6f4a5548b0f7
parent4886cc331ff158f8ede74878a436adfad205bd2d (diff)
downloadcpython-18a67ba0bd6d23da454e975f814dad50d7e09cdb.zip
cpython-18a67ba0bd6d23da454e975f814dad50d7e09cdb.tar.gz
cpython-18a67ba0bd6d23da454e975f814dad50d7e09cdb.tar.bz2
Fix comparing complex to non-complex numbers.
-rw-r--r--BROKEN28
-rw-r--r--Objects/complexobject.c14
2 files changed, 4 insertions, 38 deletions
diff --git a/BROKEN b/BROKEN
index 3468e43..6d1b4fe 100644
--- a/BROKEN
+++ b/BROKEN
@@ -110,31 +110,3 @@ Traceback (most recent call last):
File "../Lib/test/test_set.py", line 291, in test_remove
self.assert_(self.thetype(self.word) in s)
AssertionError
-
-////////////////////////////////////////////////////////////////////////
-test_compare
-////////////////////////////////////////////////////////////////////////
-test test_compare failed -- Traceback (most recent call last):
- File "/Users/nnorwitz/build/python/py3k.2/Lib/test/test_compare.py", line 28, in test_comparisons
- self.assertEqual(a, b)
-AssertionError: 2 != (2+0j)
-
-////////////////////////////////////////////////////////////////////////
-test_complex
-////////////////////////////////////////////////////////////////////////
-======================================================================
-FAIL: test_pow (test.test_complex.ComplexTest)
-----------------------------------------------------------------------
-Traceback (most recent call last):
- File "/Users/nnorwitz/build/python/py3k.2/Lib/test/test_complex.py", line 130, in test_pow
- self.assertEqual(a ** 0j, 1)
-AssertionError: (1+0j) != 1
-
-======================================================================
-FAIL: test_richcompare (test.test_complex.ComplexTest)
-----------------------------------------------------------------------
-Traceback (most recent call last):
- File "/Users/nnorwitz/build/python/py3k.2/Lib/test/test_complex.py", line 96, in test_richcompare
- self.assertRaises(OverflowError, complex.__eq__, 1+1j, 1L<<10000)
-AssertionError: OverflowError not raised
-
diff --git a/Objects/complexobject.c b/Objects/complexobject.c
index e081256..2713e3e 100644
--- a/Objects/complexobject.c
+++ b/Objects/complexobject.c
@@ -576,19 +576,13 @@ complex_nonzero(PyComplexObject *v)
static PyObject *
complex_richcompare(PyObject *v, PyObject *w, int op)
{
- Py_complex i, j;
PyObject *res;
-
- /* Make sure both arguments are complex. */
- if (!(PyComplex_Check(v) && PyComplex_Check(w))) {
- Py_INCREF(Py_NotImplemented);
- return Py_NotImplemented;
- }
-
- i = ((PyComplexObject *)v)->cval;
- j = ((PyComplexObject *)w)->cval;
+ Py_complex i, j;
+ TO_COMPLEX(v, i);
+ TO_COMPLEX(w, j);
if (op != Py_EQ && op != Py_NE) {
+ /* XXX Should eventually return NotImplemented */
PyErr_SetString(PyExc_TypeError,
"no ordering relation is defined for complex numbers");
return NULL;