[pypy-svn] pypy default: (peterd) Patch for complexobject
fijal
commits-noreply at bitbucket.org
Sat Jan 29 09:23:54 CET 2011
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch:
Changeset: r41440:facac5b3910a
Date: 2011-01-29 10:23 +0200
http://bitbucket.org/pypy/pypy/changeset/facac5b3910a/
Log: (peterd) Patch for complexobject
diff --git a/pypy/objspace/std/complexobject.py b/pypy/objspace/std/complexobject.py
--- a/pypy/objspace/std/complexobject.py
+++ b/pypy/objspace/std/complexobject.py
@@ -271,14 +271,16 @@
def repr__Complex(space, w_complex):
if w_complex.realval == 0 and copysign(1., w_complex.realval) == 1.:
return space.wrap(repr_format(w_complex.imagval) + 'j')
- sign = (copysign(1., w_complex.imagval) == 1.) and '+' or ''
+ sign = (copysign(1., w_complex.imagval) == 1. or
+ isnan(w_complex.imagval)) and '+' or ''
return space.wrap('(' + repr_format(w_complex.realval)
+ sign + repr_format(w_complex.imagval) + 'j)')
def str__Complex(space, w_complex):
if w_complex.realval == 0 and copysign(1., w_complex.realval) == 1.:
return space.wrap(str_format(w_complex.imagval) + 'j')
- sign = (copysign(1., w_complex.imagval) == 1.) and '+' or ''
+ sign = (copysign(1., w_complex.imagval) == 1. or
+ isnan(w_complex.imagval)) and '+' or ''
return space.wrap('(' + str_format(w_complex.realval)
+ sign + str_format(w_complex.imagval) + 'j)')
diff --git a/pypy/objspace/std/test/test_complexobject.py b/pypy/objspace/std/test/test_complexobject.py
--- a/pypy/objspace/std/test/test_complexobject.py
+++ b/pypy/objspace/std/test/test_complexobject.py
@@ -382,6 +382,7 @@
assert repr(complex(-0.0, -0.0)) == '(-0-0j)'
assert repr(complex(1e45)) == "(" + repr(1e45) + "+0j)"
assert repr(complex(1e200*1e200)) == '(inf+0j)'
+ assert repr(complex(1,-float("nan"))) == '(1+nanj)'
def test_neg(self):
h = self.helper
More information about the Pypy-commit
mailing list