Commit Graph

102 Commits

Author SHA1 Message Date
Stefan Krah ff3eca0cc3 Allow printing a leading '-' and the maximum number of exponent digits
rather than raising RuntimeError (allocated space is sufficient for the
additional character).
2012-04-05 15:46:19 +02:00
Stefan Krah 0774e9b9f5 Raise InvalidOperation if exponents of zeros are clamped during exact
conversion in the Decimal constructor. Exact here refers to the
representation and not to the value (clamping does not change the value).
2012-04-05 15:21:58 +02:00
Stefan Krah 9d2801095f Testing the implicit initialization of the thread local context on first
access fails (expectedly) if other modules have already used decimal. The
only option is to remove the test.
2012-04-02 19:10:20 +02:00
Stefan Krah 38548ad006 Whitespace. 2012-04-02 15:10:36 +02:00
Stefan Krah 5100171d81 Clear the context flags if a context is initialized from the DefaultContext. 2012-04-02 15:02:21 +02:00
Stefan Krah fe17b2bc77 Raise MemoryError instead of InvalidOperation/MallocError for compatibility
with decimal.py. The standard specifies InsufficientStorage (MallocError) as
a sub-condition of InvalidOperation. This allows a calculation to continue
with NaN results when allocation fails.
2012-03-25 18:59:21 +02:00
Stefan Krah b6405efd1b Use the same exception hierarchy as decimal.py. FloatOperation now also
inherits from TypeError. Cleanup in module initialization to make repeated
import failures robust.
2012-03-23 14:46:48 +01:00
Stefan Krah 1919b7e72b Issue #7652: Integrate the decimal floating point libmpdec library to speed
up the decimal module. Performance gains of the new C implementation are
between 12x and 80x, depending on the application.
2012-03-21 18:25:23 +01:00
Mark Dickinson 39411f60a2 Issue #13248, issue #8540: Remove deprecated Context._clamp attribute from Decimal module. 2011-10-24 10:31:52 +01:00
Mark Dickinson b455e58b95 Issue #12079: Decimal(0).fma(Decimal('inf'), 'not a number') should give a TypeError, not a Decimal.InvalidOperation 2011-05-22 12:53:18 +01:00
Ezio Melotti 3b3499ba69 #11565: Merge with 3.1. 2011-03-16 11:35:38 +02:00
Ezio Melotti 13925008dc #11565: Fix several typos. Patch by Piotr Kasprzyk. 2011-03-16 11:05:33 +02:00
Eric Smith 3ab08cadae Issue #10624: Use support.requires_IEEE_754 in all appropriate tests. 2010-12-04 15:17:38 +00:00
Eric Smith 984bb58000 Issue #7094: Add alternate ('#') flag to __format__ methods for float, complex and Decimal. Allows greater control over when decimal points appear. Added to make transitioning from %-formatting easier. '#g' still has a problem with Decimal which I'll fix soon. 2010-11-25 16:08:06 +00:00
Raymond Hettinger d325c4b233 Revert r86517 2010-11-21 04:08:28 +00:00
Stefan Krah d8b661dd90 Issue #10356: hash(Decimal("sNaN")) now raises ValueError instead of TypeError. 2010-11-18 15:20:34 +00:00
Stefan Krah dc817b229c Issue #10356: Decimal(-1).__hash__() should equal hash(Decimal(-1)). 2010-11-17 11:16:34 +00:00
Antoine Pitrou ea5d827b72 Merged revisions 85503 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r85503 | antoine.pitrou | 2010-10-15 00:11:44 +0200 (ven., 15 oct. 2010) | 2 lines

  More proper closing of files
........
2010-10-14 22:14:36 +00:00
Antoine Pitrou 92f60ed82a More proper closing of files 2010-10-14 22:11:44 +00:00
Mark Dickinson 0390f504ac Merged revisions 82646,82649-82650 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r82646 | mark.dickinson | 2010-07-08 18:23:40 +0100 (Thu, 08 Jul 2010) | 1 line

  In test_decimal, convert heuristic for skipping tests into an explicit skiplist.
........
  r82649 | mark.dickinson | 2010-07-08 20:03:34 +0100 (Thu, 08 Jul 2010) | 1 line

  Fix a performance issue in Decimal.pow.  Thanks Stefan Krah for finding this.
........
  r82650 | mark.dickinson | 2010-07-08 20:09:16 +0100 (Thu, 08 Jul 2010) | 1 line

  Fix misplaced exactness check that was causing unnecessary work in Decimal.__pow__.
........
2010-07-08 19:21:59 +00:00
Mark Dickinson 247900ce47 In test_decimal, convert heuristic for skipping tests into an explicit skiplist. 2010-07-08 17:23:40 +00:00
Mark Dickinson b1d8e3229c #Issue 8540: Make Context._clamp attribute public in decimal module. 2010-05-22 18:35:36 +00:00
Mark Dickinson ece0697f32 Merged revisions 80755 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r80755 | mark.dickinson | 2010-05-04 15:35:33 +0100 (Tue, 04 May 2010) | 17 lines

  Merged revisions 80753 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r80753 | mark.dickinson | 2010-05-04 15:25:50 +0100 (Tue, 04 May 2010) | 10 lines

    Issue #8567: Fix incorrect precedence of signals in Decimal module.

    When a Decimal operation raises multiple signals and more than one of
    those signals is trapped, the specification determines the order in
    which the signals should be handled.  In many cases this order wasn't
    being followed, leading to the wrong Python exception being raised.
    This commit fixes those cases, and adds extra tests.  The tests are
    only enabled when EXTENDEDERRORTESTS is True, since they involve
    rerunning each Decimal testcase several times.
  ........
................
2010-05-04 14:37:14 +00:00
Mark Dickinson c69160e808 Merged revisions 80753 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r80753 | mark.dickinson | 2010-05-04 15:25:50 +0100 (Tue, 04 May 2010) | 10 lines

  Issue #8567: Fix incorrect precedence of signals in Decimal module.

  When a Decimal operation raises multiple signals and more than one of
  those signals is trapped, the specification determines the order in
  which the signals should be handled.  In many cases this order wasn't
  being followed, leading to the wrong Python exception being raised.
  This commit fixes those cases, and adds extra tests.  The tests are
  only enabled when EXTENDEDERRORTESTS is True, since they involve
  rerunning each Decimal testcase several times.
........
2010-05-04 14:35:33 +00:00
Ezio Melotti 6607d51160 Merged revisions 79678 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r79678 | ezio.melotti | 2010-04-03 17:51:00 +0300 (Sat, 03 Apr 2010) | 1 line

  Use more specific assert* methods in test_decimal.
........
2010-04-03 14:59:49 +00:00
Mark Dickinson ac256ab284 Merged revisions 79583,79588-79589 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r79583 | mark.dickinson | 2010-04-02 09:53:22 +0100 (Fri, 02 Apr 2010) | 7 lines

  Issue #2531: Make float-to-decimal comparisons return correct results.

  Float to decimal comparison operations now return a result based on
  the numeric values of the operands.  Decimal.__hash__ has also been
  fixed so that Decimal and float values that compare equal have equal
  hash value.
........
  r79588 | mark.dickinson | 2010-04-02 11:17:07 +0100 (Fri, 02 Apr 2010) | 2 lines

  Issue #7279:  Make comparisons involving a Decimal sNaN signal InvalidOperation.
........
  r79589 | mark.dickinson | 2010-04-02 11:35:12 +0100 (Fri, 02 Apr 2010) | 6 lines

  Issue #7279:  Make Decimal('nan') hashable.  Decimal('snan') remains unhashable.

  Also rewrite the Decimal __hash__ method so that it doesn't rely on
  float('inf') being valid: float('inf') could raise an exception on
  platforms not using IEEE 754 arithmetic.
........
2010-04-03 11:08:14 +00:00
Raymond Hettinger 9679859890 Issue 8257: Decimal constructor to accept float argument. 2010-04-02 16:58:27 +00:00
Antoine Pitrou 503ab33e54 Merged revisions 79502 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r79502 | antoine.pitrou | 2010-03-30 20:49:45 +0200 (mar., 30 mars 2010) | 4 lines

  Issue #8248: Add some tests for the bool type.  Patch by Gregory Nofi.
........
2010-03-30 18:56:19 +00:00
Georg Brandl 1b37e8728c Merged revisions 78093 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r78093 | georg.brandl | 2010-02-07 18:03:15 +0100 (So, 07 Feb 2010) | 1 line

  Remove unused imports in test modules.
........
2010-03-14 10:45:50 +00:00
Mark Dickinson 84230a1eb2 Merged revisions 78217-78218 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r78217 | mark.dickinson | 2010-02-18 14:27:02 +0000 (Thu, 18 Feb 2010) | 5 lines

  Issue #7633: Context method in the decimal module (with the exception
  of the 'canonical' and 'is_canonical' methods) now consistently accept
  integer arguments wherever a Decimal instance is accepted.  Thanks
  Juan José Conti for the patch.
........
  r78218 | mark.dickinson | 2010-02-18 14:45:33 +0000 (Thu, 18 Feb 2010) | 1 line

  Doctest fixes for decimal.py:  add an integer-argument doctest for logical_invert;  don't use integer literals with a leading zero.
........
2010-02-18 14:49:50 +00:00
Ezio Melotti e96159335f Merged revisions 77727 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r77727 | ezio.melotti | 2010-01-24 18:58:36 +0200 (Sun, 24 Jan 2010) | 1 line

  use assert[Not]IsInstance where appropriate
........
2010-01-24 19:26:24 +00:00
Benjamin Peterson 577473fe68 use assert[Not]In where appropriate
A patch from Dave Malcolm.
2010-01-19 00:09:57 +00:00
Mark Dickinson 5c2db37c20 Issue #7435: Remove duplicate int/long tests, and other
references to long in py3k.  Patch provided by flox.
2009-12-05 20:28:34 +00:00
Mark Dickinson 9050bb28f2 Merged revisions 75947 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r75947 | mark.dickinson | 2009-10-29 12:23:02 +0000 (Thu, 29 Oct 2009) | 20 lines

  Merged revisions 75943-75945 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r75943 | mark.dickinson | 2009-10-29 11:09:09 +0000 (Thu, 29 Oct 2009) | 1 line

    Fix duplicate test numbers in extra.decTest
  ........
    r75944 | mark.dickinson | 2009-10-29 12:04:00 +0000 (Thu, 29 Oct 2009) | 3 lines

    Issue #7233:  A number of two-argument Decimal methods were failing to
    accept ints and longs for the second argument.
  ........
    r75945 | mark.dickinson | 2009-10-29 12:11:18 +0000 (Thu, 29 Oct 2009) | 4 lines

    Issue #7233:  Fix Decimal.shift and Decimal.rotate methods for
    arguments with more digits than the current context precision.
    Bug reported by Stefan Krah.
  ........
................
2009-10-29 12:25:07 +00:00
Mark Dickinson a2d1fe0b84 Merged revisions 75943-75945 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r75943 | mark.dickinson | 2009-10-29 11:09:09 +0000 (Thu, 29 Oct 2009) | 1 line

  Fix duplicate test numbers in extra.decTest
........
  r75944 | mark.dickinson | 2009-10-29 12:04:00 +0000 (Thu, 29 Oct 2009) | 3 lines

  Issue #7233:  A number of two-argument Decimal methods were failing to
  accept ints and longs for the second argument.
........
  r75945 | mark.dickinson | 2009-10-29 12:11:18 +0000 (Thu, 29 Oct 2009) | 4 lines

  Issue #7233:  Fix Decimal.shift and Decimal.rotate methods for
  arguments with more digits than the current context precision.
  Bug reported by Stefan Krah.
........
2009-10-29 12:23:02 +00:00
Mark Dickinson d08fb83777 Merged revisions 75287 via svnmerge from
svn+ssh://pythondev@www.python.org/python/branches/py3k

................
  r75287 | mark.dickinson | 2009-10-08 17:30:38 +0100 (Thu, 08 Oct 2009) | 9 lines

  Merged revisions 75286 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r75286 | mark.dickinson | 2009-10-08 17:28:39 +0100 (Thu, 08 Oct 2009) | 2 lines

    Update decimal test data to the most recent set from Mike Cowlishaw.
  ........
................
2009-10-08 16:33:06 +00:00
Mark Dickinson 8a5465339e Merged revisions 75286 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r75286 | mark.dickinson | 2009-10-08 17:28:39 +0100 (Thu, 08 Oct 2009) | 2 lines

  Update decimal test data to the most recent set from Mike Cowlishaw.
........
2009-10-08 16:30:38 +00:00
Mark Dickinson 46ab5d0951 Merged revisions 74723 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r74723 | mark.dickinson | 2009-09-08 21:20:19 +0100 (Tue, 08 Sep 2009) | 3 lines

  Issue #6857: Fix Decimal formatting to be consistent with existing float
  formatting:  both are now right-aligned by default.
........
2009-09-08 20:22:46 +00:00
Mark Dickinson 8fde3da126 Merged revisions 74709 via svnmerge from
svn+ssh://pythondev@www.python.org/python/branches/py3k

................
  r74709 | mark.dickinson | 2009-09-07 19:08:12 +0100 (Mon, 07 Sep 2009) | 9 lines

  Merged revisions 74708 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r74708 | mark.dickinson | 2009-09-07 19:04:58 +0100 (Mon, 07 Sep 2009) | 2 lines

    #Issue 6795:  Fix infinite recursion in long(Decimal('nan'));  change int(Decimal('nan')) to raise ValueError instead of either returning NaN or raising InvalidContext.
  ........
................
2009-09-08 19:23:44 +00:00
Mark Dickinson 825fce34b1 Merged revisions 74708 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r74708 | mark.dickinson | 2009-09-07 19:04:58 +0100 (Mon, 07 Sep 2009) | 2 lines

  #Issue 6795:  Fix infinite recursion in long(Decimal('nan'));  change int(Decimal('nan')) to raise ValueError instead of either returning NaN or raising InvalidContext.
........
2009-09-07 18:08:12 +00:00
Mark Dickinson d496d300ea Merged revisions 74706 via svnmerge from
svn+ssh://pythondev@www.python.org/python/branches/py3k

................
  r74706 | mark.dickinson | 2009-09-07 17:21:56 +0100 (Mon, 07 Sep 2009) | 10 lines

  Merged revisions 74704 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r74704 | mark.dickinson | 2009-09-07 17:17:41 +0100 (Mon, 07 Sep 2009) | 3 lines

    Issue #6850: Fix bug in Decimal._parse_format_specifier for formats
    with no type specifier.
  ........
................
2009-09-07 16:23:26 +00:00
Mark Dickinson 7718d2bfb0 Merged revisions 74704 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r74704 | mark.dickinson | 2009-09-07 17:17:41 +0100 (Mon, 07 Sep 2009) | 3 lines

  Issue #6850: Fix bug in Decimal._parse_format_specifier for formats
  with no type specifier.
........
2009-09-07 16:21:56 +00:00
Georg Brandl ab91fdef1f Merged revisions 73715 via svnmerge from
svn+ssh://svn.python.org/python/branches/py3k

........
  r73715 | benjamin.peterson | 2009-07-01 01:06:06 +0200 (Mi, 01 Jul 2009) | 1 line

  convert old fail* assertions to assert*
........
2009-08-13 08:51:18 +00:00
Mark Dickinson 8d238293cd Merged revisions 74279 via svnmerge from
svn+ssh://pythondev@www.python.org/python/branches/py3k

........
  r74279 | mark.dickinson | 2009-08-02 11:14:23 +0100 (Sun, 02 Aug 2009) | 1 line

  Issue #6595: Allow Decimal constructor to accept non-European decimal digits, as recommended by the specification.
........
2009-08-02 10:16:33 +00:00
Mark Dickinson 345adc43a3 Issue #6595: Allow Decimal constructor to accept non-European decimal digits, as recommended by the specification. 2009-08-02 10:14:23 +00:00
Benjamin Peterson c9c0f201fe convert old fail* assertions to assert* 2009-06-30 23:06:06 +00:00
Benjamin Peterson e549ead826 Merged revisions 70554,70588-70589,70598,70605,70611-70621,70623-70624,70626-70627 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r70554 | benjamin.peterson | 2009-03-23 16:25:15 -0500 (Mon, 23 Mar 2009) | 1 line

  complain when there's no last exception
........
  r70588 | benjamin.peterson | 2009-03-24 17:56:32 -0500 (Tue, 24 Mar 2009) | 1 line

  fix newline issue in test summary
........
  r70589 | benjamin.peterson | 2009-03-24 18:07:07 -0500 (Tue, 24 Mar 2009) | 1 line

  another style nit
........
  r70598 | benjamin.peterson | 2009-03-25 16:24:04 -0500 (Wed, 25 Mar 2009) | 1 line

  add shorthands for expected failures and unexpected success
........
  r70605 | benjamin.peterson | 2009-03-26 11:32:23 -0500 (Thu, 26 Mar 2009) | 1 line

  remove uneeded function
........
  r70611 | benjamin.peterson | 2009-03-26 13:35:37 -0500 (Thu, 26 Mar 2009) | 1 line

  add much better tests for python version information parsing
........
  r70612 | benjamin.peterson | 2009-03-26 13:55:48 -0500 (Thu, 26 Mar 2009) | 1 line

  more and more implementations now support sys.subversion
........
  r70613 | benjamin.peterson | 2009-03-26 13:58:30 -0500 (Thu, 26 Mar 2009) | 1 line

  roll old test in with new one
........
  r70614 | benjamin.peterson | 2009-03-26 14:09:21 -0500 (Thu, 26 Mar 2009) | 1 line

  add support for PyPy
........
  r70615 | benjamin.peterson | 2009-03-26 14:58:18 -0500 (Thu, 26 Mar 2009) | 5 lines

  add some useful utilities for skipping tests with unittest's new skipping ability

  most significantly apply a modified portion of the patch from #4242 with
  patches for skipping implementation details
........
  r70616 | benjamin.peterson | 2009-03-26 15:05:50 -0500 (Thu, 26 Mar 2009) | 1 line

  rename TestCase.skip() to skipTest() because it causes annoying problems with trial #5571
........
  r70617 | benjamin.peterson | 2009-03-26 15:17:27 -0500 (Thu, 26 Mar 2009) | 1 line

  apply the second part of #4242's patch; classify all the implementation details in test_descr
........
  r70618 | benjamin.peterson | 2009-03-26 15:48:25 -0500 (Thu, 26 Mar 2009) | 1 line

  remove test_support.TestSkipped and just use unittest.SkipTest
........
  r70619 | benjamin.peterson | 2009-03-26 15:49:40 -0500 (Thu, 26 Mar 2009) | 1 line

  fix naming
........
  r70620 | benjamin.peterson | 2009-03-26 16:10:30 -0500 (Thu, 26 Mar 2009) | 1 line

  fix incorrect auto-translation of TestSkipped -> unittest.SkipTest
........
  r70621 | benjamin.peterson | 2009-03-26 16:11:16 -0500 (Thu, 26 Mar 2009) | 1 line

  must pass argument to get expected behavior ;)
........
  r70623 | benjamin.peterson | 2009-03-26 16:30:10 -0500 (Thu, 26 Mar 2009) | 1 line

  add missing import
........
  r70624 | benjamin.peterson | 2009-03-26 16:30:54 -0500 (Thu, 26 Mar 2009) | 1 line

  ** is required here
........
  r70626 | benjamin.peterson | 2009-03-26 16:40:29 -0500 (Thu, 26 Mar 2009) | 1 line

  update email tests to use SkipTest
........
  r70627 | benjamin.peterson | 2009-03-26 16:44:43 -0500 (Thu, 26 Mar 2009) | 1 line

  fix another name
........
2009-03-28 21:42:05 +00:00
Mark Dickinson 7303b594e6 Merged revisions 70444 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r70444 | mark.dickinson | 2009-03-18 08:22:51 +0000 (Wed, 18 Mar 2009) | 3 lines

  Fix bug in _insert_thousands_sep: too much zero padding could be
  added for 'n' formats with non-repeating thousands-separator.
........
2009-03-18 08:25:36 +00:00
Mark Dickinson 79f52039fe Merged revisions 70439 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r70439 | mark.dickinson | 2009-03-17 23:03:46 +0000 (Tue, 17 Mar 2009) | 3 lines

  Issue #2110:  Add support for thousands separator and 'n' format specifier
  to Decimal __format__ method.
........
2009-03-17 23:12:51 +00:00
Mark Dickinson ad41634313 Merged revisions 70430 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r70430 | mark.dickinson | 2009-03-17 18:01:03 +0000 (Tue, 17 Mar 2009) | 3 lines

  Fix bug in Decimal __format__ method that swapped left and right
  alignment.
........
2009-03-17 18:10:15 +00:00