Author: Brian Kearns <[email protected]>
Branch:
Changeset: r67939:9ed2dd8cdfe8
Date: 2013-11-10 20:44 -0500
http://bitbucket.org/pypy/pypy/changeset/9ed2dd8cdfe8/
Log: fix a complex scalar str_format case
diff --git a/pypy/module/micronumpy/test/test_scalar.py
b/pypy/module/micronumpy/test/test_scalar.py
--- a/pypy/module/micronumpy/test/test_scalar.py
+++ b/pypy/module/micronumpy/test/test_scalar.py
@@ -92,10 +92,15 @@
def test_complex_str_format(self):
import numpy as np
- assert str(np.complex128(complex(1, float('nan')))) == '(1+nan*j)'
- assert str(np.complex128(complex(1, float('-nan')))) == '(1+nan*j)'
- assert str(np.complex128(complex(1, float('inf')))) == '(1+inf*j)'
- assert str(np.complex128(complex(1, float('-inf')))) == '(1-inf*j)'
+ for t in [np.complex64, np.complex128]:
+ assert str(t(complex(1, float('nan')))) == '(1+nan*j)'
+ assert str(t(complex(1, float('-nan')))) == '(1+nan*j)'
+ assert str(t(complex(1, float('inf')))) == '(1+inf*j)'
+ assert str(t(complex(1, float('-inf')))) == '(1-inf*j)'
+ for x in [0, 1, -1]:
+ assert str(t(complex(x))) == str(complex(x))
+ assert str(t(x*1j)) == str(complex(x*1j))
+ assert str(t(x + x*1j)) == str(complex(x + x*1j))
def test_complex_zero_division(self):
import numpy as np
diff --git a/pypy/module/micronumpy/types.py b/pypy/module/micronumpy/types.py
--- a/pypy/module/micronumpy/types.py
+++ b/pypy/module/micronumpy/types.py
@@ -1030,7 +1030,7 @@
imag_str += 'j'
# (0+2j) => 2j
- if real == 0:
+ if real == 0 and math.copysign(1, real) == 1:
return imag_str
real_str = str_format(real)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit