Issue #11888: skip some log2 tests on Mac OS X Tiger

System log2() is not accurate for exact power of 2.
This commit is contained in:
Victor Stinner 2011-05-10 23:40:17 +02:00
parent 74b4885cc9
commit cd9dd37974
1 changed files with 11 additions and 4 deletions

View File

@ -5,6 +5,7 @@ from test.support import run_unittest, verbose, requires_IEEE_754
import unittest import unittest
import math import math
import os import os
import platform
import sys import sys
import struct import struct
import sysconfig import sysconfig
@ -652,10 +653,6 @@ class MathTests(unittest.TestCase):
@requires_IEEE_754 @requires_IEEE_754
def testLog2(self): def testLog2(self):
self.assertRaises(TypeError, math.log2) self.assertRaises(TypeError, math.log2)
# Check that we get exact equality for log2 of powers of 2.
actual = [math.log2(math.ldexp(1.0, n)) for n in range(-1074, 1024)]
expected = [float(n) for n in range(-1074, 1024)]
self.assertEqual(actual, expected)
# Check some integer values # Check some integer values
self.assertEqual(math.log2(1), 0.0) self.assertEqual(math.log2(1), 0.0)
@ -671,6 +668,16 @@ class MathTests(unittest.TestCase):
self.assertRaises(ValueError, math.log2, NINF) self.assertRaises(ValueError, math.log2, NINF)
self.assertTrue(math.isnan(math.log2(NAN))) self.assertTrue(math.isnan(math.log2(NAN)))
@requires_IEEE_754
@unittest.skipIf(sys.platform == 'darwin'
and platform.mac_ver()[0].startswith('10.4.'),
'Mac OS X Tiger log2() is not accurate enough')
def testLog2Exact(self):
# Check that we get exact equality for log2 of powers of 2.
actual = [math.log2(math.ldexp(1.0, n)) for n in range(-1074, 1024)]
expected = [float(n) for n in range(-1074, 1024)]
self.assertEqual(actual, expected)
def testLog10(self): def testLog10(self):
self.assertRaises(TypeError, math.log10) self.assertRaises(TypeError, math.log10)
self.ftest('log10(0.1)', math.log10(0.1), -1) self.ftest('log10(0.1)', math.log10(0.1), -1)