mirror of
https://github.com/python/cpython.git
synced 2025-07-29 06:05:00 +00:00
Yet more explicit special case handling to make
math.pow behave on alpha Tru64. All IEEE 754 special values are now handled directly; only the finite**finite case is handled by libm.
This commit is contained in:
parent
b2f7090239
commit
cec3f138d8
2 changed files with 67 additions and 47 deletions
|
@ -498,6 +498,18 @@ class MathTests(unittest.TestCase):
|
|||
self.assertEqual(math.pow(-1.1, INF), INF)
|
||||
self.assertEqual(math.pow(-1.9, INF), INF)
|
||||
|
||||
# pow(x, y) should work for x negative, y an integer
|
||||
self.ftest('(-2.)**3.', math.pow(-2.0, 3.0), -8.0)
|
||||
self.ftest('(-2.)**2.', math.pow(-2.0, 2.0), 4.0)
|
||||
self.ftest('(-2.)**1.', math.pow(-2.0, 1.0), -2.0)
|
||||
self.ftest('(-2.)**0.', math.pow(-2.0, 0.0), 1.0)
|
||||
self.ftest('(-2.)**-0.', math.pow(-2.0, -0.0), 1.0)
|
||||
self.ftest('(-2.)**-1.', math.pow(-2.0, -1.0), -0.5)
|
||||
self.ftest('(-2.)**-2.', math.pow(-2.0, -2.0), 0.25)
|
||||
self.ftest('(-2.)**-3.', math.pow(-2.0, -3.0), -0.125)
|
||||
self.assertRaises(ValueError, math.pow, -2.0, -0.5)
|
||||
self.assertRaises(ValueError, math.pow, -2.0, 0.5)
|
||||
|
||||
# the following tests have been commented out since they don't
|
||||
# really belong here: the implementation of ** for floats is
|
||||
# independent of the implemention of math.pow
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue