aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/test/test_fractions.py
diff options
context:
space:
mode:
authorMark Dickinson <dickinsm@gmail.com>2016-08-22 10:50:53 +0100
committerMark Dickinson <dickinsm@gmail.com>2016-08-22 10:50:53 +0100
commit844796530a21f2a8689f2b9e01035d4a64a95275 (patch)
tree1866b84a3126cf68b121447bdcd5cb118c4f7896 /Lib/test/test_fractions.py
parent6afe85827c209b9d1e76a65ffdb7420b5f46ad3d (diff)
downloadcpython-844796530a21f2a8689f2b9e01035d4a64a95275.tar.gz
cpython-844796530a21f2a8689f2b9e01035d4a64a95275.zip
Issue #27539: Fix unnormalised Fraction.__pow__ result for negative exponent and base. Thanks Vedran Čačić.
Diffstat (limited to 'Lib/test/test_fractions.py')
-rw-r--r--Lib/test/test_fractions.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/Lib/test/test_fractions.py b/Lib/test/test_fractions.py
index 16998522160..9df4a54fcbd 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)