Commit 7334afed authored by Nick Coghlan's avatar Nick Coghlan

Add explicit test for a misbehaving math.floor

parent baef2cc2
...@@ -92,6 +92,10 @@ class MathTests(unittest.TestCase): ...@@ -92,6 +92,10 @@ class MathTests(unittest.TestCase):
self.ftest('floor(-0.5)', math.floor(-0.5), -1) self.ftest('floor(-0.5)', math.floor(-0.5), -1)
self.ftest('floor(-1.0)', math.floor(-1.0), -1) self.ftest('floor(-1.0)', math.floor(-1.0), -1)
self.ftest('floor(-1.5)', math.floor(-1.5), -2) self.ftest('floor(-1.5)', math.floor(-1.5), -2)
# pow() relies on floor() to check for integers
# This fails on some platforms - so check it here
self.ftest('floor(1.23e167)', math.floor(1.23e167), 1.23e167)
self.ftest('floor(-1.23e167)', math.floor(-1.23e167), -1.23e167)
def testFmod(self): def testFmod(self):
self.assertRaises(TypeError, math.fmod) self.assertRaises(TypeError, math.fmod)
......
...@@ -106,12 +106,9 @@ class PowTest(unittest.TestCase): ...@@ -106,12 +106,9 @@ class PowTest(unittest.TestCase):
# platform pow() was buggy, and Python didn't worm around it. # platform pow() was buggy, and Python didn't worm around it.
eq = self.assertEquals eq = self.assertEquals
a = -1.0 a = -1.0
# XXX Temporary diagnostic for failure on alpha Debian buildbot # The next two tests can still fail if the platform floor()
from sys import __stdout__ # function doesn't treat all large inputs as integers
from math import floor # test_math should also fail if that is happening
print >> __stdout__, "*** Number: %r" % 1.23e167
print >> __stdout__, "*** Floor: %r" % floor(1.23e167)
# XXX End diagnostic message
eq(pow(a, 1.23e167), 1.0) eq(pow(a, 1.23e167), 1.0)
eq(pow(a, -1.23e167), 1.0) eq(pow(a, -1.23e167), 1.0)
for b in range(-10, 11): for b in range(-10, 11):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment