Commit 450652c8 authored by Raymond Hettinger's avatar Raymond Hettinger

Add support for trunc().

parent 27b36693
......@@ -1433,6 +1433,8 @@ class Decimal(object):
else:
return s*int(self._int[:self._exp] or '0')
__trunc__ = __int__
def __long__(self):
"""Converts to a long.
......
......@@ -1151,6 +1151,7 @@ class DecimalUsabilityTest(unittest.TestCase):
checkSameDec("__floordiv__", True)
checkSameDec("__hash__")
checkSameDec("__int__")
checkSameDec("__trunc__")
checkSameDec("__long__")
checkSameDec("__mod__", True)
checkSameDec("__mul__", True)
......@@ -1216,6 +1217,16 @@ class DecimalPythonAPItests(unittest.TestCase):
r = d.to_integral(ROUND_DOWN)
self.assertEqual(Decimal(int(d)), r)
def test_trunc(self):
for x in range(-250, 250):
s = '%0.2f' % (x / 100.0)
# should work the same as for floats
self.assertEqual(int(Decimal(s)), int(float(s)))
# should work the same as to_integral in the ROUND_DOWN mode
d = Decimal(s)
r = d.to_integral(ROUND_DOWN)
self.assertEqual(Decimal(trunc(d)), r)
class ContextAPItests(unittest.TestCase):
def test_pickle(self):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment