From 0348fb6d1955ca1ebeabf5db053a4781b41d16d6 Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Wed, 26 Mar 2008 12:55:56 +0000 Subject: Merged revisions 61892,61900 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r61892 | mark.dickinson | 2008-03-25 15:33:23 +0100 (Tue, 25 Mar 2008) | 3 lines Issue #2478: Decimal(sqrt(0)) failed when the decimal context was not explicitly supplied. ........ r61900 | georg.brandl | 2008-03-25 18:36:43 +0100 (Tue, 25 Mar 2008) | 2 lines Add Benjamin. ........ --- Lib/decimal.py | 6 +++--- Lib/test/test_decimal.py | 6 ++++++ Misc/developers.txt | 3 +++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Lib/decimal.py b/Lib/decimal.py index 75a1d5e..a2e7fa4 100644 --- a/Lib/decimal.py +++ b/Lib/decimal.py @@ -2454,6 +2454,9 @@ class Decimal(_numbers.Real): def sqrt(self, context=None): """Return the square root of self.""" + if context is None: + context = getcontext() + if self._is_special: ans = self._check_nans(context=context) if ans: @@ -2467,9 +2470,6 @@ class Decimal(_numbers.Real): ans = _dec_from_triple(self._sign, '0', self._exp // 2) return ans._fix(context) - if context is None: - context = getcontext() - if self._sign == 1: return context._raise_error(InvalidOperation, 'sqrt(-x), x > 0') diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py index 7c607f9..a76b505 100644 --- a/Lib/test/test_decimal.py +++ b/Lib/test/test_decimal.py @@ -1303,6 +1303,12 @@ class DecimalUsabilityTest(unittest.TestCase): d = d1.max(d2) self.assertTrue(type(d) is Decimal) + def test_implicit_context(self): + # Check results when context given implicitly. (Issue 2478) + c = getcontext() + self.assertEqual(str(Decimal(0).sqrt()), + str(c.sqrt(Decimal(0)))) + class DecimalPythonAPItests(unittest.TestCase): diff --git a/Misc/developers.txt b/Misc/developers.txt index 089e122..afb031f 100644 --- a/Misc/developers.txt +++ b/Misc/developers.txt @@ -17,6 +17,9 @@ the format to accommodate documentation needs as they arise. Permissions History ------------------- +- Benjamin Peterson was given SVN access on 25 March 2008 by Georg + Brandl, for bug triage work. + - Jerry Seutter was given SVN access on 20 March 2008 by BAC, for general contributions to Python. -- cgit v0.12