cpython: 902e82f71880 (original) (raw)
Mercurial > cpython
changeset 102834:902e82f71880
Issue #27539: Merge from 3.5. [#27539]
Mark Dickinson dickinsm@gmail.com | |
---|---|
date | Mon, 22 Aug 2016 10:56:06 +0100 |
parents | 485d7c341386(current diff)7eea5b87f5fa(diff) |
children | 7dd85b19c873 |
files | Lib/fractions.py Lib/test/test_fractions.py Misc/ACKS Misc/NEWS |
diffstat | 4 files changed, 22 insertions(+), 1 deletions(-)[+] [-] Lib/fractions.py 6 Lib/test/test_fractions.py 13 Misc/ACKS 1 Misc/NEWS 3 |
line wrap: on
line diff
--- a/Lib/fractions.py +++ b/Lib/fractions.py @@ -460,10 +460,14 @@ class Fraction(numbers.Rational): return Fraction(a._numerator ** power, a._denominator ** power, _normalize=False)
else:[](#l1.7)
elif a._numerator >= 0:[](#l1.8) return Fraction(a._denominator ** -power,[](#l1.9) a._numerator ** -power,[](#l1.10) _normalize=False)[](#l1.11)
else:[](#l1.12)
return Fraction((-a._denominator) ** -power,[](#l1.13)
(-a._numerator) ** -power,[](#l1.14)
_normalize=False)[](#l1.15) else:[](#l1.16) # A fractional power will generally produce an[](#l1.17) # irrational number.[](#l1.18)
--- 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.[](#l2.7)
p = F(-1, 2) ** 0[](#l2.8)
self.assertEqual(p, F(1, 1))[](#l2.9)
self.assertEqual(p.numerator, 1)[](#l2.10)
self.assertEqual(p.denominator, 1)[](#l2.11)
p = F(-1, 2) ** -1[](#l2.12)
self.assertEqual(p, F(-2, 1))[](#l2.13)
self.assertEqual(p.numerator, -2)[](#l2.14)
self.assertEqual(p.denominator, 1)[](#l2.15)
p = F(-1, 2) ** -2[](#l2.16)
self.assertEqual(p, F(4, 1))[](#l2.17)
self.assertEqual(p.numerator, 4)[](#l2.18)
self.assertEqual(p.denominator, 1)[](#l2.19)
def testMixedArithmetic(self): self.assertTypedEquals(F(11, 10), F(1, 10) + 1)
--- a/Misc/ACKS +++ b/Misc/ACKS @@ -218,6 +218,7 @@ Katherine Busch Ralph Butler Laurent De Buyst Zach Byrne +Vedran Čačić Nicolas Cadou Jp Calderone Arnaud Calmettes
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -38,6 +38,9 @@ Core and Builtins
Library
-------
+- Issue #27539: Fix unnormalised Fraction.__pow__
result in the case