Issue #9920: Skip tests for cmath.atan and cmath.atanh applied to

complex zeros on systems where the log1p function fails to respect
the sign of zero.  This fixes a test failure on AIX.
This commit is contained in:
Mark Dickinson 2010-11-20 11:08:27 +00:00
parent 6646cd45be
commit 4ccc137aff
3 changed files with 32 additions and 8 deletions

View file

@ -733,10 +733,11 @@ asinh1036 asinh -inf inf -> -inf 0.78539816339744828
---------------------------
-- zeros
atan0000 atan 0.0 0.0 -> 0.0 0.0
atan0001 atan 0.0 -0.0 -> 0.0 -0.0
atan0002 atan -0.0 0.0 -> -0.0 0.0
atan0003 atan -0.0 -0.0 -> -0.0 -0.0
-- These are tested in testAtanSign in test_cmath.py
-- atan0000 atan 0.0 0.0 -> 0.0 0.0
-- atan0001 atan 0.0 -0.0 -> 0.0 -0.0
-- atan0002 atan -0.0 0.0 -> -0.0 0.0
-- atan0003 atan -0.0 -0.0 -> -0.0 -0.0
-- values along both sides of imaginary axis
atan0010 atan 0.0 -9.8813129168249309e-324 -> 0.0 -9.8813129168249309e-324
@ -896,10 +897,11 @@ atan1040 atan -inf -inf -> -1.5707963267948966 -0.0
---------------------------------------
-- zeros
atanh0000 atanh 0.0 0.0 -> 0.0 0.0
atanh0001 atanh 0.0 -0.0 -> 0.0 -0.0
atanh0002 atanh -0.0 0.0 -> -0.0 0.0
atanh0003 atanh -0.0 -0.0 -> -0.0 -0.0
-- These are tested in testAtanhSign in test_cmath.py
-- atanh0000 atanh 0.0 0.0 -> 0.0 0.0
-- atanh0001 atanh 0.0 -0.0 -> 0.0 -0.0
-- atanh0002 atanh -0.0 0.0 -> -0.0 0.0
-- atanh0003 atanh -0.0 -0.0 -> -0.0 -0.0
-- values along both sides of real axis
atanh0010 atanh -9.8813129168249309e-324 0.0 -> -9.8813129168249309e-324 0.0

View file

@ -514,6 +514,24 @@ def testTanhSign(self):
for z in complex_zeros:
self.assertComplexIdentical(cmath.tanh(z), z)
# The algorithm used for atan and atanh makes use of the system
# log1p function; If that system function doesn't respect the sign
# of zero, then atan and atanh will also have difficulties with
# the sign of complex zeros.
@requires_IEEE_754
@unittest.skipIf(sysconfig.get_config_var('LOG1P_DROPS_ZERO_SIGN'),
"system log1p() function doesn't preserve the sign")
def testAtanSign(self):
for z in complex_zeros:
self.assertComplexIdentical(cmath.atan(z), z)
@requires_IEEE_754
@unittest.skipIf(sysconfig.get_config_var('LOG1P_DROPS_ZERO_SIGN'),
"system log1p() function doesn't preserve the sign")
def testAtanhSign(self):
for z in complex_zeros:
self.assertComplexIdentical(cmath.atanh(z), z)
def test_main():
run_unittest(CMathTests)

View file

@ -21,6 +21,10 @@ Core and Builtins
Library
-------
- Issue #9920: Skip tests for cmath.atan and cmath.atanh applied to
complex zeros on systems where the log1p function fails to respect
the sign of zero. This fixes a test failure on AIX.
- Issue #10446: Module documentation generated by pydoc now links to a
version-specific online reference manual.