diff --git a/Lib/test/test_complex.py b/Lib/test/test_complex.py index b72bd711b..e0ed859c5 100644 --- a/Lib/test/test_complex.py +++ b/Lib/test/test_complex.py @@ -460,8 +460,6 @@ class ComplexTest(unittest.TestCase): for num in nums: self.assertAlmostEqual((num.real**2 + num.imag**2) ** 0.5, abs(num)) - # TODO: RUSTPYTHON - @unittest.expectedFailure def test_repr_str(self): def test(v, expected, test_fn=self.assertEqual): test_fn(repr(v), expected) diff --git a/vm/src/builtins/complex.rs b/vm/src/builtins/complex.rs index dc87963d3..faf20c11f 100644 --- a/vm/src/builtins/complex.rs +++ b/vm/src/builtins/complex.rs @@ -305,10 +305,13 @@ impl PyComplex { #[pymethod(magic)] fn repr(&self) -> String { let Complex64 { re, im } = self.value; + // converting to lowercase to format "NaN" as "nan" if re == 0.0 { - format!("{}j", im) + format!("{}j", im).to_lowercase() + } else if im.is_nan() { + format!("({}+{:+}j)", re, im).to_lowercase() } else { - format!("({}{:+}j)", re, im) + format!("({}{:+}j)", re, im).to_lowercase() } }