diff options
| author | Mark Dickinson <dickinsm@gmail.com> | 2016-08-22 09:50:53 (GMT) |
|---|---|---|
| committer | Mark Dickinson <dickinsm@gmail.com> | 2016-08-22 09:50:53 (GMT) |
| commit | 844796530a21f2a8689f2b9e01035d4a64a95275 (patch) | |
| tree | 1866b84a3126cf68b121447bdcd5cb118c4f7896 /Lib/test | |
| parent | 6afe85827c209b9d1e76a65ffdb7420b5f46ad3d (diff) | |
| download | cpython-844796530a21f2a8689f2b9e01035d4a64a95275.zip cpython-844796530a21f2a8689f2b9e01035d4a64a95275.tar.gz cpython-844796530a21f2a8689f2b9e01035d4a64a95275.tar.bz2 | |
Issue #27539: Fix unnormalised Fraction.__pow__ result for negative exponent and base. Thanks Vedran Čačić.
Diffstat (limited to 'Lib/test')
| -rw-r--r-- | Lib/test/test_fractions.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/Lib/test/test_fractions.py b/Lib/test/test_fractions.py index 1699852..9df4a54 100644 --- a/Lib/test/test_fractions.py +++ b/Lib/test/test_fractions.py @@ -356,6 +356,19 @@ class FractionTest(unittest.TestCase): z = pow(F(-1), F(1, 2)) self.assertAlmostEqual(z.real, 0) self.assertEqual(z.imag, 1) + # Regression test for #27539. + p = F(-1, 2) ** 0 + self.assertEqual(p, F(1, 1)) + self.assertEqual(p.numerator, 1) + self.assertEqual(p.denominator, 1) + p = F(-1, 2) ** -1 + self.assertEqual(p, F(-2, 1)) + self.assertEqual(p.numerator, -2) + self.assertEqual(p.denominator, 1) + p = F(-1, 2) ** -2 + self.assertEqual(p, F(4, 1)) + self.assertEqual(p.numerator, 4) + self.assertEqual(p.denominator, 1) def testMixedArithmetic(self): self.assertTypedEquals(F(11, 10), F(1, 10) + 1) |
