diff options
author | Guido van Rossum <guido@python.org> | 2006-08-21 18:27:07 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2006-08-21 18:27:07 (GMT) |
commit | 18a67ba0bd6d23da454e975f814dad50d7e09cdb (patch) | |
tree | 7e4e5bbf150af0df14030e184c9a6f4a5548b0f7 | |
parent | 4886cc331ff158f8ede74878a436adfad205bd2d (diff) | |
download | cpython-18a67ba0bd6d23da454e975f814dad50d7e09cdb.zip cpython-18a67ba0bd6d23da454e975f814dad50d7e09cdb.tar.gz cpython-18a67ba0bd6d23da454e975f814dad50d7e09cdb.tar.bz2 |
Fix comparing complex to non-complex numbers.
-rw-r--r-- | BROKEN | 28 | ||||
-rw-r--r-- | Objects/complexobject.c | 14 |
2 files changed, 4 insertions, 38 deletions
@@ -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; |