Commit graph

52 commits

Author SHA1 Message Date
Mark Dickinson
8ca7482cc9 Fix buggy accuracy test 2009-09-30 16:58:01 +00:00
Mark Dickinson
b93fff0a57 Issue #3366: Add gamma function to math module.
(lgamma, erf and erfc to follow).
2009-09-28 18:54:55 +00:00
Mark Dickinson
2985dbb526 Use skipUnless to skip math module tests on non-IEEE 754 platforms. 2009-09-18 21:01:50 +00:00
Benjamin Peterson
5c8da86f3a convert usage of fail* to assert* 2009-06-30 22:57:08 +00:00
Mark Dickinson
0badeef93e Remove unnecessary double negative 2009-04-24 16:37:22 +00:00
Mark Dickinson
6ab635a4f4 Issue #5593: Use more robust test for double-rounding in test_fsum.
While we're at it, use new unittest.skipUnless decorator to
implement skipping for that test.
2009-04-24 16:34:14 +00:00
Mark Dickinson
0f6414a0d6 Rename testSum to testFsum and move it to proper place in test_math.py 2008-07-31 14:48:32 +00:00
Mark Dickinson
fef6b13c32 Rename math.sum to math.fsum 2008-07-30 16:20:10 +00:00
Mark Dickinson
ff5f16e4e5 More modifications to tests for math.sum: replace the Python
version of msum by a version using a different algorithm, and
use the new float.fromhex method to specify test results exactly.
2008-07-29 18:45:38 +00:00
Mark Dickinson
3e9c60c5fe Remove math.sum tests related to overflow, special values, and behaviour
near the extremes of the floating-point range.  (The behaviour of math.sum
should be regarded as undefined in these cases.)
2008-07-27 07:15:29 +00:00
Raymond Hettinger
ecbdd2e9b0 Issue #2138: Add math.factorial(). 2008-06-09 06:54:45 +00:00
Mark Dickinson
8df4e22a28 Fix typo in testSum 2008-05-30 02:46:53 +00:00
Mark Dickinson
badd7da622 Skip math.sum tests on non IEEE 754 platforms, and on IEEE 754 platforms
that exhibit the problem described in issue #2937.
2008-05-23 12:07:36 +00:00
Mark Dickinson
d055835253 Better error reporting in test_math.py 2008-05-23 03:30:01 +00:00
Mark Dickinson
c11c3391b0 Add tests for math.sum (Issue #2819) 2008-05-23 02:36:48 +00:00
Mark Dickinson
f8476c1573 Issue #2487. math.ldexp(x, n) raised OverflowError when n was large and
negative; fix to return an (appropriately signed) zero instead.
2008-05-09 17:54:23 +00:00
Mark Dickinson
d6d5148b44 Add test for tanh(-0.) == -0. on IEEE 754 systems 2008-04-20 20:38:48 +00:00
Mark Dickinson
cec3f138d8 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.
2008-04-20 04:13:13 +00:00
Mark Dickinson
9f99d70513 Report additional diagnostic information in
test_math, to help track down debian-alpha
buildbot failure.
2008-04-20 01:22:30 +00:00
Mark Dickinson
e941d97d12 Additional tests for math.pow, and extra special-case
handling code in math.pow, in the hope of making all
tests pass on the alpha Tru64 buildbot.
2008-04-19 18:51:48 +00:00
Christian Heimes
6f34109384 I finally got the time to update and merge Mark's and my trunk-math branch. The patch is collaborated work of Mark Dickinson and me. It was mostly done a few months ago. The patch fixes a lot of loose ends and edge cases related to operations with NaN, INF, very small values and complex math.
The patch also adds acosh, asinh, atanh, log1p and copysign to all platforms. Finally it fixes differences between platforms like different results or exceptions for edge cases. Have fun :)
2008-04-18 23:13:07 +00:00
Jeffrey Yasskin
ca2b69f765 Move __builtins__.trunc() to math.trunc() per
http://mail.python.org/pipermail/python-dev/2008-January/076626.html and issue
1965.
2008-02-01 06:22:46 +00:00
Jeffrey Yasskin
9871d8fe22 Continue rolling back pep-3141 changes that changed behavior from 2.5. This
round included:
 * Revert round to its 2.6 behavior (half away from 0).
 * Because round, floor, and ceil always return float again, it's no
   longer necessary to have them delegate to __xxx___, so I've ripped
   that out of their implementations and the Real ABC. This also helps
   in implementing types that work in both 2.6 and 3.0: you return int
   from the __xxx__ methods, and let it get enabled by the version
   upgrade.
 * Make pow(-1, .5) raise a ValueError again.
2008-01-05 08:47:13 +00:00
Jeffrey Yasskin
737c73f96f Make math.{floor,ceil}({int,long}) return float again for backwards
compatibility after r59671 made them return integral types.
2008-01-04 08:01:23 +00:00
Christian Heimes
eebb79cc69 Added copysign(x, y) function to the math module 2008-01-03 22:32:26 +00:00
Christian Heimes
e2ca4245c9 Added math.isinf() and math.isnan() 2008-01-03 20:23:15 +00:00
Jeffrey Yasskin
2f3c16be73 Backport PEP 3141 from the py3k branch to the trunk. This includes r50877 (just
the complex_pow part), r56649, r56652, r56715, r57296, r57302, r57359, r57361,
r57372, r57738, r57739, r58017, r58039, r58040, and r59390, and new
documentation. The only significant difference is that round(x) returns a float
to preserve backward-compatibility. See http://bugs.python.org/issue1689.
2008-01-03 02:21:52 +00:00
Nick Coghlan
ec2ce9bbae Make test_math error messages more meaningful for small discrepancies in results 2007-07-27 10:36:30 +00:00
Nick Coghlan
00f2029cd5 Add explicit test for a misbehaving math.floor 2007-07-26 14:03:00 +00:00
Tim Peters
abd8a336a3 Whitespace normalization. 2006-11-03 02:32:46 +00:00
Walter Dörwald
92911bfc6a Add tests for basic argument errors. 2006-10-29 22:06:28 +00:00
Georg Brandl
2f03760a98 Convert test_math to unittest. 2006-10-28 13:51:49 +00:00
Walter Dörwald
70a6b49821 Replace backticks with repr() or "%r"
From SF patch #852334.
2004-02-12 17:35:32 +00:00
Raymond Hettinger
72a6ddb5ee Expand log() tests to include long integers. 2002-12-18 16:13:16 +00:00
Raymond Hettinger
866964c3a3 Apply SF patch 652930: Add optional base argument to math.log(x[, base]). 2002-12-14 19:51:34 +00:00
Barry Warsaw
408b6d34de Complete the absolute import patch for the test suite. All relative
imports of test modules now import from the test package.  Other
related oddities are also fixed (like DeprecationWarning filters that
weren't specifying the full import part, etc.).  Also did a general
code cleanup to remove all "from test.test_support import *"'s.  Other
from...import *'s weren't changed.
2002-07-30 23:27:12 +00:00
Barry Warsaw
04f357cffe Get rid of relative imports in all unittests. Now anything that
imports e.g. test_support must do so using an absolute package name
such as "import test.test_support" or "from test import test_support".

This also updates the README in Lib/test, and gets rid of the
duplicate data dirctory in Lib/test/data (replaced by
Lib/email/test/data).

Now Tim and Jack can have at it. :)
2002-07-23 19:04:11 +00:00
Tim Peters
8ac1495a6a Whitespace normalization. 2002-05-23 15:15:30 +00:00
Raymond Hettinger
64108afa60 Adds tests for degrees() and radians() functions added to mathmodule.
Closes patch 552452 and feature request 426539.
2002-05-13 03:55:01 +00:00
Tim Peters
a40c793d06 Rework the way we try to check for libm overflow, given that C99 no longer
requires that errno ever get set, and it looks like glibc is already
playing that game.  New rules:

+ Never use HUGE_VAL.  Use the new Py_HUGE_VAL instead.

+ Never believe errno.  If overflow is the only thing you're interested in,
  use the new Py_OVERFLOWED(x) macro.  If you're interested in any libm
  errors, use the new Py_SET_ERANGE_IF_OVERFLOW(x) macro, which attempts
  to set errno the way C89 said it worked.

Unfortunately, none of these are reliable, but they work on Windows and I
*expect* under glibc too.
2001-09-05 22:36:56 +00:00
Tim Peters
4642cb9ac9 Reverting the "unixware7" patch: atan2(0, 1) should be 0, regardless of
platform.  If it returns pi on the unixware7 platform, they have a bug in
their libm atan2.
2001-04-12 00:24:41 +00:00
Guido van Rossum
2242f2fbd0 Unixware 7 support by Billy G. Allie (SF patch 413011) 2001-04-11 20:58:20 +00:00
Fred Drake
132dce2246 Update the code to better reflect recommended style:
Use != instead of <> since <> is documented as "obsolescent".
Use "is" and "is not" when comparing with None or type objects.
2000-12-12 23:11:42 +00:00
Fred Drake
004d5e6880 Make reindent.py happy (convert everything to 4-space indents!). 2000-10-23 17:22:08 +00:00
Tim Peters
98c8184f2f Test for math.* exceptional behavior only in verbose mode, so that the
oddball platforms (where, e.g., math.exp(+huge) still fails to raise
OverflowError) don't fail the std test suite when run normally.
2000-10-16 17:35:13 +00:00
Tim Peters
cb5b5bac11 A Mystery: I somehow managed to delete the last two lines of my test_math.py
changes.  Here restoring them.
2000-10-12 07:15:55 +00:00
Tim Peters
1d120619d4 Stop raising OverflowError on underflows reported by libm (errno==ERANGE and
libm result is 0).  Cautiously add a few libm exception test cases:
1. That exp(-huge) returns 0 without exception.
2. That exp(+huge) triggers OverflowError.
3. That sqrt(-1) raises ValueError specifically (apparently under glibc linked
   with -lieee, it was raising OverflowError due to an accident of the way
   mathmodule.c's CHECK() macro happened to deal with Infs and NaNs under gcc).
2000-10-12 06:10:25 +00:00
Peter Schneider-Kamp
10e1bf2f64 remove all occurence of math.rint() from the sources
(and yes, "Currintly" also counts <0.5 wink>)
2000-08-10 04:23:30 +00:00
Fred Drake
8eded195aa Trent Mick <trentm@activestate.com>:
Fix test of the "math" module so it does not break on platforms that do
not offer rint(); just skip that portion of the test in that case.
2000-06-01 17:59:17 +00:00
Guido van Rossum
71260b846e Added math.rint() -- round according to current IEEE754 mode 2000-05-11 18:19:42 +00:00