# General Decimal Arithmetic Specification
return +s # Convert result to normal context
- """
- # The string below can't be included in the docstring until Python 2.6
- # as the doctest module doesn't understand __future__ statements
- """
- >>> from __future__ import with_statement
+ >>> setcontext(DefaultContext)
>>> print getcontext().prec
28
>>> with localcontext():
def init():
global ORIGINAL_CONTEXT
ORIGINAL_CONTEXT = getcontext().copy()
- DefaultContext.prec = 9
- DefaultContext.rounding = ROUND_HALF_EVEN
- DefaultContext.traps = dict.fromkeys(Signals, 0)
- setcontext(DefaultContext)
+ DefaultTestContext = Context(
+ prec = 9,
+ rounding = ROUND_HALF_EVEN,
+ traps = dict.fromkeys(Signals, 0)
+ )
+ setcontext(DefaultTestContext)
TESTDATADIR = 'decimaltestdata'
if __name__ == '__main__':
"""
def setUp(self):
self.context = Context()
- for key in DefaultContext.traps.keys():
- DefaultContext.traps[key] = 1
self.ignore_list = ['#']
# Basically, a # means return NaN InvalidOperation.
# Different from a sNaN in trim
'minexponent' : self.change_min_exponent,
'clamp' : self.change_clamp}
- def tearDown(self):
- """Cleaning up enviroment."""
- # leaving context in original state
- for key in DefaultContext.traps.keys():
- DefaultContext.traps[key] = 0
- return
-
def eval_file(self, file):
global skip_expected
if skip_expected:
test2 = d1/d3
cls.finish1.set()
- cls.assertEqual(test1, Decimal('0.333333333'))
- cls.assertEqual(test2, Decimal('0.333333333'))
+ cls.assertEqual(test1, Decimal('0.3333333333333333333333333333'))
+ cls.assertEqual(test2, Decimal('0.3333333333333333333333333333'))
return
def thfunc2(cls):
cls.synchro.set()
cls.finish2.set()
- cls.assertEqual(test1, Decimal('0.333333333'))
+ cls.assertEqual(test1, Decimal('0.3333333333333333333333333333'))
cls.assertEqual(test2, Decimal('0.333333333333333333'))
return