Fix repr for negative imaginary part. Fixes #1013908.
This commit is contained in:
parent
f82a9ded39
commit
70aa1f2095
|
@ -286,6 +286,7 @@ class ComplexTest(unittest.TestCase):
|
||||||
|
|
||||||
def test_repr(self):
|
def test_repr(self):
|
||||||
self.assertEqual(repr(1+6j), '(1+6j)')
|
self.assertEqual(repr(1+6j), '(1+6j)')
|
||||||
|
self.assertEqual(repr(1-6j), '(1-6j)')
|
||||||
|
|
||||||
def test_neg(self):
|
def test_neg(self):
|
||||||
self.assertEqual(-(1+6j), -1-6j)
|
self.assertEqual(-(1+6j), -1-6j)
|
||||||
|
|
|
@ -279,11 +279,15 @@ complex_to_buf(char *buf, int bufsz, PyComplexObject *v, int precision)
|
||||||
strncat(buf, "j", bufsz);
|
strncat(buf, "j", bufsz);
|
||||||
} else {
|
} else {
|
||||||
char re[64], im[64];
|
char re[64], im[64];
|
||||||
|
char *fmt;
|
||||||
PyOS_snprintf(format, 32, "%%.%ig", precision);
|
PyOS_snprintf(format, 32, "%%.%ig", precision);
|
||||||
PyOS_ascii_formatd(re, 64, format, v->cval.real);
|
PyOS_ascii_formatd(re, 64, format, v->cval.real);
|
||||||
PyOS_ascii_formatd(im, 64, format, v->cval.imag);
|
PyOS_ascii_formatd(im, 64, format, v->cval.imag);
|
||||||
PyOS_snprintf(buf, bufsz, "(%s+%sj)", re, im);
|
if (v->cval.imag < 0.)
|
||||||
|
fmt = "(%s%sj)";
|
||||||
|
else
|
||||||
|
fmt = "(%s+%sj)";
|
||||||
|
PyOS_snprintf(buf, bufsz, fmt, re, im);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue