mò
­fIc           @   sH  d  Z  d k Z d k Z d k Z d k Z d k Z d k Z d k Td k l	 Z	 l
 Z
 l Z l Z d k Z y d k Z Wn e j
 o d Z n Xe ƒ  i i ƒ  Z d e _ e e _ e i e d ƒ e _ e e ƒ d Z e d j o e i d Z  n e! Z  e i" i# e  ƒ p e i$ Z% e% e i& e e i& Z' e i" i( e' ƒ a) e* Z+ h  d e, <d	 e- <d
 e. <d e- <d e- <d e/ <d e- <d e- <d e0 <d e1 <d e2 <d e3 <Z4 d „  Z5 h  d e6 <d e7 <d e8 <d e9 <d e <d e: <d e; <Z< h  d d <d d <d  d! <d" d# <d$ d% <d& d' <d( d) <d* d+ <Z= d, e i> f d- „  ƒ  YZ? xl e i@ e' ƒ D][ ZA d. eA j o q…n eA iB d/ ƒ \ ZC ZD eA d0 „ ZE eF e? d1 eC eE ƒ [A [C [D [E q…Wd2 e i> f d3 „  ƒ  YZG d4 e i> f d5 „  ƒ  YZH d6 e i> f d7 „  ƒ  YZI d8 „  ZJ d9 „  ZK d: e i> f d; „  ƒ  YZL d< e i> f d= „  ƒ  YZM d> e i> f d? „  ƒ  YZN d@ e i> f dA „  ƒ  YZO e* d dB „ ZP e d j oƒ eQ e i ƒ dC j o eP dD eR dE eR ƒ qDeQ e i ƒ dF j o0 e i dC iS ƒ  dG j ZT eP dD eT dE eR ƒ qDeU dH ƒ ‚ n d S(I   se  
These are the test cases for the Decimal module.

There are two groups of tests, Arithmetic and Behaviour. The former test
the Decimal arithmetic using the tests provided by Mike Cowlishaw. The latter
test the pythonic behaviour according to PEP 327.

Cowlishaw's tests can be downloaded from:

   www2.hursley.ibm.com/decimal/dectest.zip

This test module can be called from command line with one parameter (Arithmetic
or Behaviour) to test each part, or without parameter to test both parts. If
you're working through IDLE, you can import this test module and call test_main()
with the corresponding argument.
N(   t   *(   s   TestSkippeds   run_unittests   run_doctests   is_resource_enabledi	   i    t   decimaltestdatat   __main__t   clampedt   conversion_syntaxt   division_by_zerot   division_impossiblet   division_undefinedt   inexactt   invalid_contextt   invalid_operationt   overflowt   roundedt	   subnormalt	   underflowc          G   s   d S(   s   Doesn't do anything.N(   t   None(   t   args(    (    t.   /mit/python/lib/python2.4/test/test_decimal.pyt   NonfunctionP   s     t   ceilingt   downt   floort	   half_downt	   half_event   half_upt   upt   toengt   to_eng_stringt   toscit   to_sci_stringt   samequantumt   same_quantumt
   tointegralt   to_integralt   remainderneart   remainder_neart	   divideintt
   divide_intt
   squareroott   sqrtt   applyt   _applyt   DecimalTestc           B   sz   t  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z RS(   s[   Class which tests the Decimal class against the test cases.

    Changed for unittest.
    c         C   sˆ   t  ƒ  |  _ x$ t i i ƒ  D] } d t i | <q Wd g |  _ h  d |  i <d |  i	 <d |  i
 <d |  i <d |  i <|  _ d  S(   Ni   t   #t	   precisiont   roundingt   maxexponentt   minexponentt   clamp(   t   Contextt   selft   contextt   DefaultContextt   trapst   keyst   keyt   ignore_listt   change_precisiont   change_rounding_methodt   change_max_exponentt   change_min_exponentt   change_clampt
   ChangeDict(   R2   R7   (    (    R   t   setUpm   s     c         C   s+   x$ t  i i ƒ  D] } d t  i | <q Wd S(   s   Cleaning up enviroment.i    N(   R4   R5   R6   R7   (   R2   R7   (    (    R   t   tearDown{   s
      c         C   s½   t  o t ‚ d  Sn x¡ t | ƒ i ƒ  D] } | i d d ƒ i d d ƒ } y |  i | ƒ } Wq( t
 j
 o d GH| GHq( q( t j
 o( } |  i d | i i d | ƒ q( Xq( Wd  S(   Ns   
t    s   
s   Error in test cases:s   Exception "s   " raised on line (   t   skip_expectedt   TestSkippedt   opent   filet
   xreadlinest   linet   replaceR2   t	   eval_linet   tt   InvalidOperationt   DecimalExceptiont	   exceptiont   failt	   __class__t   __name__(   R2   RE   RM   RG   RJ   (    (    R   t	   eval_file‚   s       (c         C   s   | i d ƒ d j oa | d  d j oP | i d ƒ o? | i d ƒ d d | i d ƒ d i d ƒ d i ƒ  } n | i d ƒ d i ƒ  } x/ |  i D]$ } | i | ƒ d j o d  Sqš qš W| p d  Sn, d | j o |  i | ƒ Sn |  i	 | ƒ Sd  S(	   Ns    -> i    i   s   --s     --s   ->i   t   :(
   t   st   findt
   startswitht   splitt   stripR2   R8   t   ignoret   eval_directivet   eval_equation(   R2   RS   RX   (    (    R   RI   –   s    8?
 c         C   s…   t  d „  | i d ƒ ƒ \ } } | d j o t | } n' y t | ƒ } Wn t j
 o n X|  i	 i
 | t ƒ } | | ƒ d  S(   Nc         C   s   |  i ƒ  i ƒ  S(   N(   t   xRW   t   lower(   R[   (    (    R   t   <lambda>©   s    RR   R-   (   t   mapRS   RV   t   functt   valuet   RoundingDictt   intt
   ValueErrorR2   R>   t   getR   (   R2   RS   R_   R`   (    (    R   RY   ¨   s    !c         C   s  t  o t i ƒ  d j  o d  Sn yw | i d ƒ }	 |	 d i ƒ  i ƒ  } | d } | d i ƒ  } | d } |	 d i ƒ  i ƒ  } | d } | d } Wn" t t t f j
 o t ‚ n Xd „  } t i | | ƒ } | d j o d  Sn t |  i | ƒ } g  } d } d }
 g  } | D] } | t | i ƒ  q~ } x t D] } d |  i i! | <qEWx | D] } d |  i i! | <qfWxgt" | ƒ D]Y\ } } | i% d	 ƒ d d j o d |
 }
 n |
 o | d
 | } qn | | } d } | | ƒ } | d j oÇ t' oª x§ | D]› } d |  i i! | <y | |  i i) | ƒ ƒ WnA | j
 o nG t j
 o# } |  i+ d | | | f ƒ n X|  i+ d | | f ƒ d |  i i! | <qWn |  i i) | ƒ } n t, | ƒ } | i- | ƒ qW| | ƒ } t' o« | d j ož x› | D] } d |  i i! | <y | | Œ  WnA | j
 o nG t j
 o# } |  i+ d | | | f ƒ n X|  i+ d | | f ƒ d |  i i! | <qWn y? t. | | Œ  ƒ } | d j o t. t0 t1 | ƒ ƒ ƒ } n Wn> t j
 o  } |  i+ d | | f ƒ n d G| GH‚  n X|  i2 ƒ  } |  i i4 ƒ  | i5 ƒ  | i5 ƒ  |  i6 | | d | d | ƒ |  i6 | | d | d t. | ƒ ƒ d  S(   Nf0.90000000000000002s   ->i    i   i   c         C   s^   |  i d d ƒ i d d ƒ }  |  i d d ƒ i d d ƒ }  |  i d d ƒ i d d ƒ }  |  S(   Ns   ''t   SingleQuotes   ""t   DoubleQuotet   'RA   t   "(   t   valRH   (   Ri   (    (    R   t	   FixQuotesÈ   s    t   rescaleRA   Rg   t    R   R   s    Raised %s in %s when %s disableds   Did not raise %s in %sR   s   Raised %s in %ss   ERROR:s   Incorrect answer for s    -- got s   Incorrect flags set in (   R   R   (   R   R   (7   t   TEST_ALLt   randomRS   RV   t   SidesRW   t   Lt   idR\   R_   t   valstempt   anst
   exceptionst	   TypeErrort   AttributeErrort
   IndexErrorRK   Rj   t   nameAdapterRd   t   fnamet   getattrR2   R3   t   valst   conglomeratet   quotet   _[1]R[   t
   ErrorNamest   theirexceptionst   SignalsRM   R5   t	   enumeratet   iRi   t   countt   vt   EXTENDEDERRORTESTt   errort   create_decimalt   eRN   t   Decimalt   appendt   strt   resultRb   t   evalt   getexceptionst   myexceptionst   clear_flagst   sortt   assertEqual(   R2   RS   R_   R   Rs   Rq   Ri   Rj   Ry   Ro   R}   R‡   Rp   R|   R{   R‰   Rr   R€   RM   Rƒ   R   R~   R…   Rt   R[   (    (    R   RZ   µ   sª    


	+   
   	

c         C   s4   g  } t D]" } |  i i | o | | q q ~ S(   N(   R~   R   R‰   R2   R3   t   flags(   R2   R~   R‰   (    (    R   R     s    c         C   s   | |  i _  d  S(   N(   t   precR2   R3   (   R2   R•   (    (    R   R9      s    c         C   s   | |  i _  d  S(   N(   R-   R2   R3   (   R2   R-   (    (    R   R:   "  s    c         C   s   | |  i _ d  S(   N(   t   expR2   R3   t   Emin(   R2   R–   (    (    R   R<   $  s    c         C   s   | |  i _ d  S(   N(   R–   R2   R3   t   Emax(   R2   R–   (    (    R   R;   &  s    c         C   s   | |  i _ d  S(   N(   R0   R2   R3   t   _clamp(   R2   R0   (    (    R   R=   (  s    (   RP   t
   __module__t   __doc__R?   R@   RQ   RI   RY   RZ   R   R9   R:   R<   R;   R=   (    (    (    R   R*   h   s    						h					s   .decTestt   .c         C   s   |  i t | ƒ S(   N(   R2   RQ   t	   directoryt   f(   R2   Rž   (    (    R   R]   2  s    t   test_t   DecimalExplicitConstructionTestc           B   sM   t  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   s6   Unit tests for Explicit Construction cases of Decimal.c         C   s   |  i t ƒ  t d ƒ ƒ d  S(   Nt   0(   R2   R“   RŠ   (   R2   (    (    R   t   test_explicit_empty=  s    c         C   s   |  i t t d  ƒ d  S(   N(   R2   t   assertRaisesRu   RŠ   R   (   R2   (    (    R   t   test_explicit_from_None@  s    c         C   sŒ   t  d ƒ } |  i t | ƒ d ƒ t  d ƒ } |  i t | ƒ d ƒ t  d ƒ } |  i t | ƒ d ƒ t  d ƒ } |  i t | ƒ d ƒ d  S(	   Ni-   t   45i{eÍt	   500000123iÓÿÿÿs   -45i    R¡   (   RŠ   t   dR2   R“   RŒ   (   R2   R§   (    (    R   t   test_explicit_from_intC  s    c         C   s   |  i t t d ƒ ƒ d ƒ |  i t t d ƒ ƒ d ƒ |  i t t d ƒ ƒ d ƒ |  i t t d ƒ ƒ d ƒ |  i t t d ƒ ƒ d ƒ d  S(   NRA   t   NaNR¥   s   45.34t   45e2s   4.5E+3t   ugly(   R2   R“   RŒ   RŠ   (   R2   (    (    R   t   test_explicit_from_stringU  s
    c         C   s9  t  d d d f ƒ } |  i t | ƒ d ƒ t  d d d f ƒ } |  i t | ƒ d ƒ t  d d d f ƒ } |  i t | ƒ d	 ƒ t  d d d f ƒ } |  i t | ƒ d ƒ |  i t t  d d f ƒ |  i t t  d d d f ƒ |  i t t  d d d f ƒ |  i t t  d d d f ƒ |  i t t  d d d f ƒ d  S(   Ni    R¡   i   i   i   s   -45i   iþÿÿÿs   45.34i	   içÿÿÿs   -4.34913534E-17i   i   s   wrong!iýÿÿÿ(   i    (   i   i   (   i   i   i   i   (	   i   i   i   i	   i   i   i   i   i   (   i   i   i   i	   i   (   i   i   i   i	   i   (   i   i   i   i	   i   (   i   i   i   Ni   (   i   iýÿÿÿi   i	   i   (   RŠ   R§   R2   R“   RŒ   R£   Rc   R   (   R2   R§   (    (    R   t   test_explicit_from_tuplesf  s    c         C   s,  t  d ƒ } t  | ƒ } |  i t | ƒ d ƒ |  i t | ƒ t | ƒ ƒ t  d ƒ } t  | ƒ } |  i t | ƒ d ƒ |  i t | ƒ t | ƒ ƒ t  d ƒ } t  | ƒ } |  i t | ƒ d ƒ |  i t | ƒ t | ƒ ƒ t  d ƒ } t  | ƒ } |  i t | ƒ d ƒ |  i t | ƒ t | ƒ ƒ d  S(	   Ni-   R¥   i{eÍR¦   iÓÿÿÿs   -45i    R¡   (   RŠ   R§   R‰   R2   R“   RŒ   t   assertNotEqualRq   (   R2   R‰   R§   (    (    R   t   test_explicit_from_Decimal…  s     c         C   s°  t  i  t ƒ  ƒ } d | _ t ƒ  } |  i t | ƒ d ƒ | i	 ƒ  } |  i t | ƒ d ƒ |  i
 t | i	 d  ƒ | i	 d ƒ } |  i t | t ƒ ƒ |  i | i	 d ƒ | i	 d ƒ ƒ t d ƒ } |  i t | ƒ d ƒ | i	 d ƒ } |  i t | ƒ d ƒ t d d d f ƒ } |  i t | ƒ d ƒ | i	 d d d f ƒ } |  i t | ƒ d ƒ t d ƒ } t | ƒ } |  i t | ƒ d ƒ | i	 | ƒ } |  i t | ƒ d ƒ d  S(   Ni   R¡   iÈ  in²  s   457E+2t   456789s   4.57E+5i   i   i	   i   içÿÿÿs   -4.34913534E-17s	   -4.35E-17i{eÍR¦   s   5.00E+8(	   i   i   i   i	   i   i   i   i   i   (	   i   i   i   i	   i   i   i   i   i   (   t   copyt
   getcontextt   ncR•   RŠ   R§   R2   R“   RŒ   Rˆ   R£   Ru   R   t
   failUnlesst
   isinstancet   prevdec(   R2   R§   R³   R¶   (    (    R   t$   test_explicit_context_create_decimalŸ  s0    		(
   RP   Rš   R›   R¢   R¤   R¨   R¬   R­   R¯   R·   (    (    (    R   R    :  s    						t   DecimalImplicitConstructionTestc           B   sD   t  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   s6   Unit tests for Implicit Construction cases of Decimal.c         C   s   |  i t t d t ƒ  ƒ d  S(   Ns   Decimal(5) + None(   R2   R£   Ru   RŽ   t   globals(   R2   (    (    R   t   test_implicit_from_NoneÊ  s    c         C   sD   |  i t t d ƒ d ƒ d ƒ |  i t d ƒ d t d ƒ ƒ d  S(   Ni   i-   t   50l   2}r (   R2   R“   RŒ   RŠ   (   R2   (    (    R   t   test_implicit_from_intÍ  s     c         C   s   |  i t t d t ƒ  ƒ d  S(   Ns   Decimal(5) + "3"(   R2   R£   Ru   RŽ   R¹   (   R2   (    (    R   t   test_implicit_from_stringÓ  s    c         C   s   |  i t t d t ƒ  ƒ d  S(   Ns   Decimal(5) + 2.2(   R2   R£   Ru   RŽ   R¹   (   R2   (    (    R   t   test_implicit_from_floatÖ  s    c         C   s*   |  i t d ƒ t d ƒ t d ƒ ƒ d  S(   Ni   i-   i2   (   R2   R“   RŠ   (   R2   (    (    R   t   test_implicit_from_DecimalÙ  s    c      	      s†  d f  d „  ƒ  Y} |  i t | ƒ  t d ƒ ƒ d ƒ |  i t t d ƒ | ƒ  ƒ d ƒ |  i t d ƒ d ƒ |  i t d ƒ d	 ƒ |  i t d
 ƒ d ƒ |  i t d ƒ d ƒ |  i t d ƒ d ƒ |  i t d ƒ d ƒ x¤ d- d. d/ d0 d1 d2 d3 f D]‡ \ } ‰  ‰ t	 | ˆ  ‡  d' †  ƒ t	 | ˆ ‡ d( †  ƒ |  i t d) | d* ƒ d+ ˆ  d, ƒ |  i t d* | d) ƒ d, ˆ d+ ƒ q÷ Wd  S(4   Nt   Ec           B   sP   t  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(	   Nc         C   s   d t  | ƒ S(   Ns   divmod (   RŒ   t   other(   R2   RÁ   (    (    R   t
   __divmod__ß  s    c         C   s   t  | ƒ d S(   Ns    rdivmod(   RŒ   RÁ   (   R2   RÁ   (    (    R   t   __rdivmod__á  s    c         C   s   d t  | ƒ S(   Ns   lt (   RŒ   RÁ   (   R2   RÁ   (    (    R   t   __lt__ã  s    c         C   s   d t  | ƒ S(   Ns   gt (   RŒ   RÁ   (   R2   RÁ   (    (    R   t   __gt__å  s    c         C   s   d t  | ƒ S(   Ns   le (   RŒ   RÁ   (   R2   RÁ   (    (    R   t   __le__ç  s    c         C   s   d t  | ƒ S(   Ns   ge (   RŒ   RÁ   (   R2   RÁ   (    (    R   t   __ge__é  s    c         C   s   d t  | ƒ S(   Ns   eq (   RŒ   RÁ   (   R2   RÁ   (    (    R   t   __eq__ë  s    c         C   s   d t  | ƒ S(   Ns   ne (   RŒ   RÁ   (   R2   RÁ   (    (    R   t   __ne__í  s    (
   RP   Rš   RÂ   RÃ   RÄ   RÅ   RÆ   RÇ   RÈ   RÉ   (    (    (    R   RÀ   Þ  s   							i
   s	   divmod 10s
   10 rdivmods   Decimal(10) < E()s   gt 10s   Decimal(10) > E()s   lt 10s   Decimal(10) <= E()s   ge 10s   Decimal(10) >= E()s   le 10s   Decimal(10) == E()s   eq 10s   Decimal(10) != E()s   ne 10t   +t   __add__t   __radd__t   -t   __sub__t   __rsub__R    t   __mul__t   __rmul__t   /t   __div__t   __rdiv__t   %t   __mod__t   __rmod__s   //t   __floordiv__t   __rfloordiv__s   **t   __pow__t   __rpow__c            s   d ˆ  t | ƒ S(   NRŒ   (   t   lopRŒ   RÁ   (   R2   RÁ   (   RÜ   (    R   R]     s    c            s   t  | ƒ ˆ  d S(   NRŒ   (   RŒ   RÁ   t   rop(   R2   RÁ   (   RÝ   (    R   R]     s    s   E()s   Decimal(10)RŒ   t   10(   RÊ   s   __add__s   __radd__(   RÍ   s   __sub__s   __rsub__(   R    s   __mul__s   __rmul__(   RÒ   s   __div__s   __rdiv__(   RÕ   s   __mod__s   __rmod__(   s   //s   __floordiv__s   __rfloordiv__(   s   **s   __pow__s   __rpow__(
   RÀ   R2   R“   t   divmodRŠ   RŽ   t   symRÜ   RÝ   t   setattr(   R2   RÀ   Rà   RÜ   RÝ   (    (   RÜ   RÝ   R   t   test_ropÜ  s"    "" 
(	   RP   Rš   R›   Rº   R¼   R½   R¾   R¿   Râ   (    (    (    R   R¸   Ç  s    					t   DecimalArithmeticOperatorsTestc           B   s_   t  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z RS(
   s:   Unit tests for all arithmetic operators, binary and unary.c         C   s  t  d ƒ } t  d ƒ } |  i | | t  d ƒ ƒ |  i | | t  d ƒ ƒ | d } |  i | t  d ƒ ƒ |  i t | ƒ t | ƒ ƒ d | } |  i | t  d ƒ ƒ |  i t | ƒ t | ƒ ƒ | | 7} |  i | t  d ƒ ƒ | d 7} |  i | t  d ƒ ƒ d  S(   Ns   -11.1s   22.2s   11.1i   s   -6.1s   16.1(   RŠ   t   d1t   d2R2   R“   t   ct   type(   R2   Ræ   Rå   Rä   (    (    R   t   test_addition  s    



c         C   s  t  d ƒ } t  d ƒ } |  i | | t  d ƒ ƒ |  i | | t  d ƒ ƒ | d } |  i | t  d ƒ ƒ |  i t | ƒ t | ƒ ƒ d | } |  i | t  d ƒ ƒ |  i t | ƒ t | ƒ ƒ | | 8} |  i | t  d ƒ ƒ | d 8} |  i | t  d ƒ ƒ d  S(	   Ns   -11.1s   22.2s   -33.3s   33.3i   s   -16.1s   16.1s   -38.3(   RŠ   Rä   Rå   R2   R“   Ræ   Rç   (   R2   Ræ   Rå   Rä   (    (    R   t   test_subtraction)  s    



c         C   s  t  d ƒ } t  d ƒ } |  i | | t  d ƒ ƒ |  i | | t  d ƒ ƒ | d } |  i | t  d ƒ ƒ |  i t | ƒ t | ƒ ƒ d | } |  i | t  d ƒ ƒ |  i t | ƒ t | ƒ ƒ | | 9} |  i | t  d ƒ ƒ | d 9} |  i | t  d ƒ ƒ d  S(   Ns   -5t   3s   -15i   s   -25s   -75(   RŠ   Rä   Rå   R2   R“   Ræ   Rç   (   R2   Ræ   Rå   Rä   (    (    R   t   test_multiplicationD  s    



c         C   s  t  d ƒ } t  d ƒ } |  i | | t  d ƒ ƒ |  i | | t  d ƒ ƒ | d } |  i | t  d ƒ ƒ |  i t | ƒ t | ƒ ƒ d | } |  i | t  d ƒ ƒ |  i t | ƒ t | ƒ ƒ | | :} |  i | t  d ƒ ƒ | d :} |  i | t  d ƒ ƒ d  S(	   Ns   -5t   2s   -2.5s   -0.4i   s   -1.25s   -0.8s   -0.625(   RŠ   Rä   Rå   R2   R“   Ræ   Rç   (   R2   Ræ   Rå   Rä   (    (    R   t   test_division_  s    



c         C   s  t  d ƒ } t  d ƒ } |  i | | t  d ƒ ƒ |  i | | t  d ƒ ƒ | d } |  i | t  d ƒ ƒ |  i t | ƒ t | ƒ ƒ d | } |  i | t  d ƒ ƒ |  i t | ƒ t | ƒ ƒ | | } |  i | t  d ƒ ƒ | d } |  i | t  d ƒ ƒ d  S(   Nt   5Rì   R¡   i   t   1i   i   (   RŠ   Rä   Rå   R2   R“   Ræ   Rç   (   R2   Ræ   Rå   Rä   (    (    R   t   test_floor_divisionz  s    



c         C   s  t  d ƒ } t  d ƒ } |  i | | t  d ƒ ƒ |  i | | t  d ƒ ƒ | d } |  i | t  d ƒ ƒ |  i t | ƒ t | ƒ ƒ d | } |  i | t  d ƒ ƒ |  i t | ƒ t | ƒ ƒ | | C} |  i | t  d ƒ ƒ | d C} |  i | t  d	 ƒ ƒ d  S(
   NRî   Rì   t   25t   32i   t   625i   t   16807t   390625(   RŠ   Rä   Rå   R2   R“   Ræ   Rç   (   R2   Ræ   Rå   Rä   (    (    R   t   test_powering•  s    



c         C   s  t  d ƒ } t  d ƒ } |  i | | t  d ƒ ƒ |  i | | t  d ƒ ƒ | d } |  i | t  d ƒ ƒ |  i t | ƒ t | ƒ ƒ d | } |  i | t  d ƒ ƒ |  i t | ƒ t | ƒ ƒ | | ;} |  i | t  d ƒ ƒ | d ;} |  i | t  d ƒ ƒ d  S(   NRî   Rì   Rï   i   i   (   RŠ   Rä   Rå   R2   R“   Ræ   Rç   (   R2   Ræ   Rå   Rä   (    (    R   t   test_module°  s    



c         C   s‡  t  d ƒ } t  d ƒ } t | | ƒ \ } } |  i | t  d ƒ ƒ |  i | t  d ƒ ƒ |  i t | ƒ t | ƒ ƒ |  i t | ƒ t | ƒ ƒ t | d ƒ \ } } |  i | t  d ƒ ƒ |  i | t  d ƒ ƒ |  i t | ƒ t | ƒ ƒ |  i t | ƒ t | ƒ ƒ t d | ƒ \ } } |  i | t  d ƒ ƒ |  i | t  d ƒ ƒ |  i t | ƒ t | ƒ ƒ |  i t | ƒ t | ƒ ƒ d  S(   NRî   Rì   Rï   i   i   (	   RŠ   Rä   Rå   Rß   t   pt   qR2   R“   Rç   (   R2   Rù   Rø   Rå   Rä   (    (    R   t   test_floor_div_moduleË  s"    c         C   sf   |  i t d ƒ 
t d ƒ ƒ |  i t d ƒ t d ƒ ƒ |  i t t d ƒ ƒ t t d ƒ ƒ ƒ d  S(   Ni-   iÓÿÿÿ(   R2   R“   RŠ   t   abs(   R2   (    (    R   t   test_unary_operatorså  s    (   RP   Rš   R›   Rè   Ré   Rë   Rí   Rð   Rö   R÷   Rú   Rü   (    (    (    R   Rã     s    								c         C   sj   t  d ƒ } t  d ƒ } |  i | | t  d ƒ ƒ |  i i ƒ  |  i | | t  d ƒ ƒ |  i i ƒ  d  S(   Ni   i   s   0.333333333(	   RŠ   Rä   t   d3t   clsR“   t   synchrot   waitt   finish1t   set(   Rþ   Rä   Rý   (    (    R   t   thfunc1í  s    c         C   s|   t  d ƒ } t  d ƒ } |  i | | t  d ƒ ƒ t ƒ  } d | _ |  i | | t  d ƒ ƒ |  i i	 ƒ  |  i
 i	 ƒ  d  S(   Ni   i   s   0.333333333i   s   0.333333333333333333(   RŠ   Rä   Rý   Rþ   R“   R²   t   thiscontextR•   Rÿ   R  t   finish2(   Rþ   R  Rý   Rä   (    (    R   t   thfunc2ö  s    		t   DecimalUseOfContextTestc           B   sT   t  Z d  Z y d k Z Wn e j
 o d Z n Xd „  Z e d j o [ n RS(   s/   Unit tests for Use of Context cases in Decimal.Nc         C   s•   t  i ƒ  |  _ t  i ƒ  |  _ t  i ƒ  |  _ t  i d t d |  f ƒ } t  i d t	 d |  f ƒ } | i ƒ  | i ƒ  |  i i ƒ  |  i i ƒ  d  S(   Nt   targetR   (   t	   threadingt   EventR2   Rÿ   R  R  t   ThreadR  t   th1R  t   th2t   startR   (   R2   R  R  (    (    R   t   test_threading  s    

(   RP   Rš   R›   R	  t   ImportErrorR   R  (    (    (    R   R    s    	t   DecimalUsabilityTestc           B   sh   t  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z RS(   s*   Unit tests for Usability cases of Decimal.c         C   s  t  d ƒ } t  d ƒ } t  d ƒ } |  i | | j ƒ |  i | | j ƒ |  i | | j  ƒ |  i | | j ƒ |  i | | j ƒ |  i | | j ƒ |  i | | j ƒ |  i | | j ƒ |  i t | | ƒ d ƒ |  i t | | ƒ d ƒ |  i t | | ƒ d ƒ |  i | d j ƒ |  i d | j  ƒ |  i | d j ƒ |  i t | d ƒ d ƒ |  i t d | ƒ d ƒ |  i t | d ƒ d ƒ |  i | d ƒ |  i | d	 ƒ |  i | t	 ƒ  ƒ |  i | t	 ƒ t
 t  t d
 ƒ ƒ } | } t i | ƒ | i ƒ  |  i | | ƒ d  S(   Ns   23.42R¥   i   iÿÿÿÿi    i   i-   R«   f32.700000000000003id   (   RŠ   t   dat   dbt   dcR2   R´   R“   t   cmpR®   t   objectR^   t   xranget   at   bRn   t   shuffleR’   (   R2   R  R  R  R  R  (    (    R   t   test_comparison_operators%  s:    
c         C   sf   t  d ƒ } t i | ƒ } |  i t | ƒ t | ƒ ƒ t i | ƒ } |  i t | ƒ t | ƒ ƒ d  S(   Ns   43.24(	   RŠ   R§   R±   Ræ   R2   R“   Rq   t   deepcopyR  (   R2   Ræ   R§   R  (    (    R   t   test_copy_and_deepcopy_methodsM  s
    c         C   s   t  t d ƒ ƒ |  i t  t d ƒ ƒ t  d ƒ ƒ |  i t t  t d ƒ ƒ |  i t  t d ƒ ƒ ƒ |  i t  t d ƒ ƒ ƒ d  S(   Ni   R©   t   Infs   -Inf(   t   hashRŠ   R2   R“   R£   Ru   t   assert_(   R2   (    (    R   t   test_hash_methodT  s
    "c         C   s  t  d ƒ } t  d ƒ } d } d } |  i t | | ƒ | j ƒ |  i t | | ƒ | j ƒ |  i t | | ƒ | j ƒ |  i t | | ƒ | j ƒ |  i t | | ƒ | j ƒ |  i t | | ƒ | j ƒ |  i t | | ƒ | j ƒ |  i t | | ƒ | j ƒ d  S(   Ns   15.32s   28.5i   i   (	   RŠ   Rä   Rå   t   l1t   l2R2   R´   t   mint   max(   R2   R#  R"  Rå   Rä   (    (    R   t   test_min_and_max_methods]  s    c         C   s*   |  i t d ƒ ƒ |  i t d ƒ ƒ d  S(   Ni    s   0.372(   R2   t   failIfRŠ   R´   (   R2   (    (    R   t   test_as_nonzerop  s    c         C   s<   t  d ƒ } |  i t | ƒ d ƒ |  i t | ƒ d ƒ d  S(   Ns   15.32s   Decimal("15.32")(   RŠ   R§   R2   R“   RŒ   t   repr(   R2   R§   (    (    R   t   test_tostring_methodsv  s    c         C   s    t  d ƒ } t  d ƒ } |  i t | ƒ d ƒ |  i t | ƒ d ƒ |  i t | ƒ d ƒ |  i t | ƒ d ƒ |  i t | ƒ d ƒ |  i t | ƒ d ƒ d  S(   Nt   66s   15.32iB   i   f15.32(   RŠ   Rä   Rå   R2   R“   Rb   t   longt   float(   R2   Rå   Rä   (    (    R   t   test_tonum_methods}  s    c         C   sÈ   t  d d	 d f ƒ } |  i | t t | ƒ ƒ ƒ t  d d
 d f ƒ } |  i | t t | ƒ ƒ ƒ t  d d d f ƒ } |  i | t t | ƒ ƒ ƒ t  d d d f ƒ } |  i | t t | ƒ ƒ ƒ d  S(   Ni    i   i   i   i   iþÿÿÿi	   içÿÿÿ(   i    (   i   i   (   i   i   i   i   (	   i   i   i   i	   i   i   i   i   i   (   RŠ   R§   R2   R“   RŽ   R)  (   R2   R§   (    (    R   t   test_eval_round_trip  s    c         C   s°   t  d ƒ } |  i | i ƒ  d d d f ƒ t  d ƒ } |  i | i ƒ  d d d f ƒ t  d ƒ } |  i | i ƒ  d d d	 f ƒ t  d
 ƒ } |  i | i ƒ  d d d f ƒ d  S(   Ni    iÓÿÿÿi   i   i   s   -4.34913534E-17i   i	   içÿÿÿt   Infinityt   F(   i    (   i   i   (	   i   i   i   i	   i   i   i   i   i   (   i    (   RŠ   R§   R2   R“   t   as_tuple(   R2   R§   (    (    R   t   test_as_tuple¡  s    c            ss  t  d ƒ ‰ t  d ƒ ‰ t  d ƒ ‰ t  d ƒ ‰ t ‡ ‡  ‡ ‡ ‡ d † } t  ˆ ƒ ˆ  i ˆ i	 ˆ i	 ƒ ˆ  i ˆ i
 ˆ i
 ƒ ˆ  i ˆ i ˆ i ƒ | d ƒ | d t ƒ | d t ƒ | d t ƒ | d t ƒ | d	 ƒ | d
 t ƒ | d ƒ | d ƒ | d ƒ | d t ƒ | d t ƒ | d ƒ | d ƒ | d ƒ | d t ƒ | d t ƒ | d t ƒ | d t ƒ | d ƒ | d t ƒ | d t ƒ | d t ƒ | d t ƒ | d t ƒ | d ƒ | d t ƒ | d t ƒ | d  ƒ | d! ƒ | d" t ƒ | d# t ƒ | d$ t ƒ | d% ƒ | d& t ƒ | d' t ƒ | d( t ƒ | d) ƒ | d* ƒ | d+ ƒ d  S(,   Ns   -25e55s   33e-33c            sù   | oš t d |  d ƒ ˆ i ˆ i ˆ i ƒ ˆ i ˆ i ˆ i ƒ ˆ i ˆ i	 ˆ i	 ƒ ˆ i ˆ i ˆ  i ƒ ˆ i ˆ i ˆ  i ƒ ˆ i ˆ i	 ˆ  i	 ƒ nU t d |  d ƒ ˆ i ˆ i ˆ i ƒ ˆ i ˆ i ˆ i ƒ ˆ i ˆ i	 ˆ i	 ƒ d  S(   Ns   d1.s   (d2)s   ()(   t   useOtherRŽ   t	   operationR2   R“   Rä   t   _signt   b1t   _intt   _expRå   t   b2(   R5  R4  (   R:  R2   R7  Rå   Rä   (    R   t   checkSameDec»  s    t   __abs__RË   RÓ   RÂ   t   __cmp__t	   __float__RØ   t   __hash__t   __int__t   __long__RÖ   RÐ   t   __neg__t   __nonzero__t   __pos__RÚ   RÌ   RÔ   RÃ   t   __repr__RÙ   R×   RÑ   RÛ   RÏ   t   __str__RÎ   t   __truediv__t   adjustedR2  t   compareR%  R$  t	   normalizet   quantizeR#   R   R'   R   R!   (   RŠ   Rä   R7  Rå   R:  t   FalseR;  R2   R“   R6  R8  R9  t   True(   R2   R;  R7  R:  Rå   Rä   (    (   R2   Rå   R7  R:  Rä   R   t   test_immutability_operations³  sb    















(   RP   Rš   R›   R  R  R!  R&  R(  R*  R.  R/  R3  RN  (    (    (    R   R  "  s    	(									t   DecimalPythonAPItestsc           B   s   t  Z d „  Z d „  Z RS(   Nc         C   s>   t  d ƒ } t i | ƒ } t i | ƒ } |  i | | ƒ d  S(   Ns   -3.141590000(	   RŠ   R§   t   picklet   dumpsRø   t   loadsR‰   R2   R“   (   R2   R‰   R§   Rø   (    (    R   t   test_pickleû  s    c         C   s‹   x„ t  d d ƒ D]s } d | d } |  i t t | ƒ ƒ t t | ƒ ƒ ƒ t | ƒ } | i	 t
 ƒ } |  i t t | ƒ ƒ | ƒ q Wd  S(   Niÿÿÿiú   s   %0.2ff100.0(   t   rangeR[   RS   R2   R“   Rb   RŠ   R-  R§   R!   t
   ROUND_DOWNt   r(   R2   R§   RS   RV  R[   (    (    R   t   test_int  s     ((   RP   Rš   RS  RW  (    (    (    R   RO  ù  s   	t   ContextAPItestsc           B   s#   t  Z d „  Z d „  Z d „  Z RS(   Nc         C   sl   t  ƒ  } t i t i | ƒ ƒ } xD t | ƒ D]6 } t | ƒ | } t | ƒ | } |  i | | ƒ q. Wd  S(   N(   R1   Ræ   RP  RR  RQ  R‰   t   varst   kt   v1t   v2R2   R“   (   R2   Ræ   R‰   R[  R\  RZ  (    (    R   RS    s    	 c         C   sW   |  i t d ƒ d d t d ƒ d h  g j ƒ |  i t d ƒ d d d h  g j ƒ d  S(   Ni
   R  f1.0i   i   (   i   i   (   i   i   (   R2   R   RŠ   (   R2   (    (    R   t   test_equality_with_other_types  s    .c         C   sy   t  ƒ  } | i ƒ  } |  i t | ƒ t | ƒ ƒ |  i t | i ƒ t | i ƒ ƒ |  i t | i ƒ t | i ƒ ƒ d  S(   N(	   R1   Ræ   R±   R§   R2   R®   Rq   R”   R5   (   R2   Ræ   R§   (    (    R   t	   test_copy  s
    	"(   RP   Rš   RS  R]  R^  (    (    (    R   RX    s   		c         C   sU   |  p
 t d ƒ a t t t t t t t	 t
 g } t | Œ  d k } t | | ƒ d S(   sƒ    Execute the tests.

    Runs all arithmetic tests if arith is True or if the "decimal" resource
    is enabled in regrtest.py
    t   decimalN(   t   aritht   is_resource_enabledRm   R    R¸   Rã   R  R  RO  RX  R*   t   test_classest   run_unittestR_  t   DecimalModulet   run_doctestt   verbose(   R`  Rf  Rb  Rd  (    (    R   t	   test_main!  s      
	i   R`  Rf  i   t   skips9   test called with wrong arguments, use test_Decimal [Skip](V   R›   t   unittestt   globt   ost   sysRP  R±   R_  t   test.test_supportRC   Rc  Re  Ra  Rn   R	  R  R   R²   R”   R6   R   R4   R•   t   ROUND_HALF_EVENR-   t   dictt   fromkeysR5   t
   setcontextt   TESTDATADIRRP   t   argvRE   t   __file__t   patht   dirnamet   curdirt   testdirt   sepR   t   isdirRB   RL  R†   t   ClampedRK   t   DivisionByZerot   Inexactt   Overflowt   Roundedt	   Subnormalt	   UnderflowR   R   t   ROUND_CEILINGRU  t   ROUND_FLOORt   ROUND_HALF_DOWNt   ROUND_HALF_UPt   ROUND_UPRa   Rx   t   TestCaseR*   t   listdirt   filenameRV   t   headt   tailt   testerRá   R    R¸   Rã   R  R  R  R  RO  RX  Rg  t   lenRM  R\   R`  Rc   (&   R  Ri  Rn   R¸   RŠ  R    R   R`  RE   Re  Ra  R‰  Ra   R   Rx   RX  RO  R*   R   R  R‹  Rg  R†   Rc  RC   RŒ  Rj  Rl  Rr  R±   RP  Rã   R  R	  R   R  Rk  Rx  (    (    R   t   ?   sl   					
r	E
N
Æ Dâ			 ×