Merge pull request #3228 from chrismoradi/fix-complex-repr-tests

Fix repr for complex numbers involving NaN
This commit is contained in:
Jeong YunWon authored and GitHub committed 2021-10-07 23:37:56 +09:00
commit cb87fa3562
3 files changed
+5 -6

No files matched your search

-2
View File
@@ -156,8 +156,6 @@ class CMathTests(unittest.TestCase):
self.assertAlmostEqual(cmath.e, e_expected, places=9,
msg="cmath.e is {}; should be {}".format(cmath.e, e_expected))
# TODO: RUSTPYTHON
@unittest.expectedFailure
def test_infinity_and_nan_constants(self):
self.assertEqual(cmath.inf.real, math.inf)
self.assertEqual(cmath.inf.imag, 0.0)
-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
@@ -335,10 +335,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()
}
}