Fix repr for complex numbers involving NaN

This commit is contained in:
Chris Moradi committed 2021-10-05 10:25:49 -07:00
1 parent b38af34e9e
commit 6af6bfdab7
2 files changed
+5 -4

No files matched your search

-2
View File
@@ -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)
+5 -2
View File
@@ -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()
}
}