Issue #27539: Fix unnormalised Fraction.__pow__ result for negative exponent and base. Thanks Vedran Čačić.

This commit is contained in:
Mark Dickinson 2016-08-22 10:50:53 +01:00
parent 6afe85827c
commit 844796530a
4 changed files with 22 additions and 1 deletions

View file

@ -484,10 +484,14 @@ class Fraction(numbers.Rational):
return Fraction(a._numerator ** power,
a._denominator ** power,
_normalize=False)
else:
elif a._numerator >= 0:
return Fraction(a._denominator ** -power,
a._numerator ** -power,
_normalize=False)
else:
return Fraction((-a._denominator) ** -power,
(-a._numerator) ** -power,
_normalize=False)
else:
# A fractional power will generally produce an
# irrational number.