diff options
author | Mark Dickinson <dickinsm@gmail.com> | 2010-11-20 11:08:27 (GMT) |
---|---|---|
committer | Mark Dickinson <dickinsm@gmail.com> | 2010-11-20 11:08:27 (GMT) |
commit | 4ccc137affe960741c3f6758ce00277d15409665 (patch) | |
tree | 9f3eb0388baf48bca4d17a96779c371c16b308af /Lib/test | |
parent | 6646cd45be26c532a1152cea6a6e0ba27838c645 (diff) | |
download | cpython-4ccc137affe960741c3f6758ce00277d15409665.zip cpython-4ccc137affe960741c3f6758ce00277d15409665.tar.gz cpython-4ccc137affe960741c3f6758ce00277d15409665.tar.bz2 |
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.
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/cmath_testcases.txt | 18 | ||||
-rw-r--r-- | Lib/test/test_cmath.py | 18 |
2 files changed, 28 insertions, 8 deletions
diff --git a/Lib/test/cmath_testcases.txt b/Lib/test/cmath_testcases.txt index ce03232..9b08653 100644 --- a/Lib/test/cmath_testcases.txt +++ b/Lib/test/cmath_testcases.txt @@ -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 diff --git a/Lib/test/test_cmath.py b/Lib/test/test_cmath.py index 0d12635..168b513 100644 --- a/Lib/test/test_cmath.py +++ b/Lib/test/test_cmath.py @@ -514,6 +514,24 @@ class CMathTests(unittest.TestCase): 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) |