From b1aa10d03efab1a0ee5335bbb0098b7875243a73 Mon Sep 17 00:00:00 2001 From: Dong-hee Na Date: Sat, 29 Jun 2019 15:38:46 +0900 Subject: [PATCH] Fix complex representation for negative imaginary number case. --- tests/snippets/builtin_complex.py | 6 ++++++ vm/src/obj/objcomplex.rs | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/snippets/builtin_complex.py b/tests/snippets/builtin_complex.py index 06d46a980..87e25b9b3 100644 --- a/tests/snippets/builtin_complex.py +++ b/tests/snippets/builtin_complex.py @@ -135,3 +135,9 @@ msg = 'int too large to convert to float' assert_raises(OverflowError, lambda: complex(10 ** 1000, 0), msg) assert_raises(OverflowError, lambda: complex(0, 10 ** 1000), msg) assert_raises(OverflowError, lambda: 0j + 10 ** 1000, msg) + +# str/repr +assert '(1+1j)' == str(1+1j) +assert '(1-1j)' == str(1-1j) +assert '(1+1j)' == repr(1+1j) +assert '(1-1j)' == repr(1-1j) diff --git a/vm/src/obj/objcomplex.rs b/vm/src/obj/objcomplex.rs index 7a6df8705..436634e9c 100644 --- a/vm/src/obj/objcomplex.rs +++ b/vm/src/obj/objcomplex.rs @@ -204,7 +204,7 @@ impl PyComplex { if re == 0.0 { format!("{}j", im) } else { - format!("({}+{}j)", re, im) + format!("({}{:+}j)", re, im) } }