Author: Ronan Lamy <ronan.l...@gmail.com>
Branch: py3.5
Changeset: r91640:f2b370578863
Date: 2017-06-23 18:49 +0100
http://bitbucket.org/pypy/pypy/changeset/f2b370578863/

Log:    Use correct implementation for Decimal.compare_total{,_mag}(). Fixes
        #2586 and #2587

diff --git a/extra_tests/test_decimal.py b/extra_tests/test_decimal.py
--- a/extra_tests/test_decimal.py
+++ b/extra_tests/test_decimal.py
@@ -1,3 +1,5 @@
+import pytest
+
 import pickle
 import sys
 
@@ -8,6 +10,11 @@
 # import _decimal as C
 # import _pydecimal as P
 
+@pytest.yield_fixture(params=[C, P], ids=['_decimal', '_pydecimal'])
+def module(request):
+    yield request.param
+
+
 def test_C():
     sys.modules["decimal"] = C
     import decimal
@@ -54,3 +61,10 @@
         r = pickle.loads(p)
         assert isinstance(r, P.DecimalTuple)
         assert r == pdt
+
+def test_compare_total(module):
+    assert module.Decimal('12').compare_total(module.Decimal('12.0')) == 1
+    assert module.Decimal('4367').compare_total(module.Decimal('NaN')) == -1
+
+def test_compare_total_mag(module):
+    assert module.Decimal(1).compare_total_mag(-2) == -1
diff --git a/lib_pypy/_decimal.py b/lib_pypy/_decimal.py
--- a/lib_pypy/_decimal.py
+++ b/lib_pypy/_decimal.py
@@ -719,8 +719,8 @@
 
     compare = _make_binary_operation('compare')
     compare_signal = _make_binary_operation('compare_signal')
-    compare_total = _make_binary_operation('compare')
-    compare_total_mag = _make_binary_operation('compare')
+    compare_total = _make_binary_operation('compare_total')
+    compare_total_mag = _make_binary_operation('compare_total_mag')
     logical_and = _make_binary_operation('logical_and')
     logical_or = _make_binary_operation('logical_or')
     logical_xor = _make_binary_operation('logical_xor')
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to