kWc@sdZddlZddlZddlZddlZddlZddlZddlZddlTddl Z ddl m Z m Z m Z mZmZmZddlZyddlZWnek reZnXeejjZeeeeeee e!fZ"dZ#ej$e%j&dj'ddZ(d Z)e*d krYej+d Z,ne-Z,ej.j/e,pwej0Z1e1ej2e)ej2Z3ej.j4e3 a5e6d d ddddddddddddddddddd d!d"d#gZ7e8Z9i ed$6e!d%6e d&6e!d'6e!d(6ed)6e!d*6e!d+6ed,6ed-6ed.6ed/6Z:d0Z;ie<d16e=d26e>d36e?d46e@d56eAd66eBd76eCd86ZDi%d9d:6d;d<6d=d>6d?d@6dAdB6dCdD6dEdF6dGdH6dIdJ6dKdL6dMdN6dOdP6dQdR6dSdT6dUdV6dWdX6dYdZ6d[d\6d]d^6d_d`6dadb6dcdd6dedf6dgdh6didj6dkdl6dmdn6dodp6dqdr6dsdt6dudv6dwdx6dydz6d{d|6d}d~6dd6dd6ZEdQdSdUdWdYd[d]d_dadcduf ZFdejGfdYZHdejGfdYZIdejGfdYZJdejGfdYZKdejGfdYZLdZMdZNej$eddejGfdYZOdejGfdYZPdejGfdYZQdejGfdYZRdejGfdYZSdejGfdYZTeeeedZUe*d krddlVZVeVjWdZXeXjYddddddeXjYddddddeXjZ\Z[Z\e[j]reUde8de^n>e\reUde^de^de\de[j_neUde^de^ndS(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. iN(t*(t run_unittestt run_doctesttrequires_unicodetutis_resource_enabledtcheck_py3k_warningsc CsDtjatdddtdtjtd}t|dS(Ntpreci troundingttrapsi( t getcontexttcopytORIGINAL_CONTEXTtContexttROUND_HALF_EVENtdicttfromkeystSignalst setcontext(tDefaultTestContext((s'/usr/lib/python2.7/test/test_decimal.pytinit5s tdoubletIEEEstest requires IEEE 754 doublestdecimaltestdatat__main__itscbx164tscbx165texpx901texpx902texpx903texpx905tlnx901tlnx902tlnx903tlnx905tlogx901tlogx902tlogx903tlogx905tpowx1183tpowx1184tpowx4001tpowx4002tpowx4003tpowx4005tpowx4008tpowx4010tpowx4012tpowx4014tclampedtconversion_syntaxtdivision_by_zerotdivision_impossibletdivision_undefinedtinexacttinvalid_contexttinvalid_operationtoverflowtroundedt subnormalt underflowcGsdS(sDoesn't do anything.N(tNone(targs((s'/usr/lib/python2.7/test/test_decimal.pyt Nonfunctionstceilingtdowntfloort half_downt half_eventhalf_uptupt05upt logical_andtandt_applytapplyt number_classtclasstcompare_signalt comparesigt compare_totalt comparetotaltcompare_total_magt comparetotmagt copy_decimalR tcopy_abstcopyabst copy_negatet copynegatet copy_signtcopysignt divide_intt divideinttlogical_inverttinvertt is_canonicalt iscanonicalt is_finitetisfinitet is_infinitet isinfinitetis_nantisnant is_normaltisnormaltis_qnantisqnant is_signedtissignedtis_snantissnant is_subnormalt issubnormaltis_zerotiszerotmax_magtmaxmagtmin_magtminmagt next_minust nextminust next_plustnextplust next_towardt nexttowardt logical_ortort normalizetreducetremainder_neart remainderneart same_quantumt samequantumtsqrtt squareroott to_eng_stringttoengtto_integral_valuet tointegraltto_integral_exactt tointegralxt to_sci_stringttoscit logical_xortxort DecimalTestcBsqeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z RS( s[Class which tests the Decimal class against the test cases. Changed for unittest. cCsWt|_dg|_i|jd6|jd6|jd6|jd6|jd6|_dS(Nt#t precisionRt maxexponentt minexponenttclamp( R tcontextt ignore_listtchange_precisiontchange_rounding_methodtchange_max_exponenttchange_min_exponentt change_clampt ChangeDict(tself((s'/usr/lib/python2.7/test/test_decimal.pytsetUps      c Cstrtjnt|~}xt|D]l}|jddjdd}y|j|}Wq(tk r}|jd|jj d|q(Xq(WWdQXdS(Ns ts s Exception "s" raised on line ( t skip_expectedtunittesttSkipTesttopentreplacet eval_linetDecimalExceptiontfailt __class__t__name__(Rtfiletftlinettt exception((s'/usr/lib/python2.7/test/test_decimal.pyt eval_files  cCs|jddkrs|d dkrs|jd rs|jddd|jddjddj}n|jddj}x*|jD]}|j|dkrdSqW|sdSd|kr|j|S|j|SdS( Ns -> iis--s --s->it:(tfindt startswithtsplittstripRteval_directivet eval_equation(Rtstignore((s'/usr/lib/python2.7/test/test_decimal.pyRs5*  cCstd|jd\}}|dkr:t|}n$yt|}Wntk r]nX|jj|t}||dS(NcSs|jjS(N(Rtlower(tx((s'/usr/lib/python2.7/test/test_decimal.pytsRR(tmapRt RoundingDicttintt ValueErrorRtgetR?(RRtfuncttvalue((s'/usr/lib/python2.7/test/test_decimal.pyRs!   cCskt rtjdkrdSy|jd}|djj}|d}tr`dG|Gn|dj}|d}|djj}|d}|d}Wn tttfk rt nXd} |t krdSt j ||} | dkrdSt |j| }g} d } d} g|D]}t|j^q.}xtD]}d|jj|isTest iicSs^|jddjdd}|jddjdd}|jddjdd}|S(Ns''t SingleQuotes""t DoubleQuotet'Rt"(R(tval((s'/usr/lib/python2.7/test/test_decimal.pyt FixQuotes strescaleRRt RRs Raised %s in %s when %s disabledsDid not raise %s in %ssRaised %s in %s; expected %ss--sRaised %s in %ssERROR:sIncorrect answer for s -- got sIncorrect flags set in (s to_sci_strings to_eng_string(s to_sci_strings to_eng_string(#tTEST_ALLtrandomRRtDEBUGRt TypeErrortAttributeErrort IndexErrortInvalidOperationtskipped_test_idst nameAdapterRtgetattrRt ErrorNamesRR t enumeratetcounttEXTENDEDERRORTESTtcreate_decimalRtDecimaltappendtOrderedSignalsttypetstrtLOGICAL_FUNCTIONSRtevalt getexceptionst clear_flagst assertEqualtassertItemsEqual(RRtSidestLtidRtvalstemptanst exceptionsRtfnametvalst conglomeratetquoteRttheirexceptionsRtiRtvterrortetordered_errorstresultt myexceptions((s'/usr/lib/python2.7/test/test_decimal.pyR s        #             %          cCs'gtD]}|jj|r|^qS(N(RRtflags(RR((s'/usr/lib/python2.7/test/test_decimal.pyRscCs||j_dS(N(RR(RR((s'/usr/lib/python2.7/test/test_decimal.pyRscCs||j_dS(N(RR(RR((s'/usr/lib/python2.7/test/test_decimal.pyRscCs||j_dS(N(RtEmin(Rtexp((s'/usr/lib/python2.7/test/test_decimal.pyRscCs||j_dS(N(RtEmax(RR((s'/usr/lib/python2.7/test/test_decimal.pyRscCs||j_dS(N(Rt_clamp(RR((s'/usr/lib/python2.7/test/test_decimal.pyRs(Rt __module__t__doc__RRRRRRRRRRR(((s'/usr/lib/python2.7/test/test_decimal.pyRs   }     tDecimalExplicitConstructionTestcBsteZdZdZdZdZdZdZdZdZ e dZ d Z e d ZRS( s6Unit tests for Explicit Construction cases of Decimal.cCs|jttddS(Nt0(RR(R((s'/usr/lib/python2.7/test/test_decimal.pyttest_explicit_emptyscCs|jttddS(N(t assertRaisesRRR=(R((s'/usr/lib/python2.7/test/test_decimal.pyttest_explicit_from_NonescCstd}|jt|dtd}|jt|dtd}|jt|dtd}|jt|ddS( Ni-t45i{et 500000123is-45iR(RRR(Rtd((s'/usr/lib/python2.7/test/test_decimal.pyttest_explicit_from_ints    cCs8|jttdd|jttdd|jttdd|jttdd|jttdd|jttdd |jttd d |jttd d |jttdd|jttdd|jttdddS(NRtNaNRs45.34t45e2s4.5E+3tuglys1.3E4 s1.3E+4s -7.89s-7.89u0E-017s0E-17u45u-Infs -InfinityuNaN123tNaN123(RRR(R((s'/usr/lib/python2.7/test/test_decimal.pyttest_explicit_from_stringsc Cstdddf}|jt|dtdddf}|jt|dtdddf}|jt|d tddd f}|jt|d |jttddf|jttd ddf|jttdddf|jtttdddf|jttdddf|jttdddf|jttdddf|jttdd df|jttdd!df|jttdd"df|jttdd#dfdS($NiRiiis-45iis45.34i is-4.34913534E-17iigswrong!t1ii ta(i(ii(iiii( iiii iiiii(iiii i(iiii i(iiii i(iiii i(iiii i(iiii i(iiii i(iiiNi(iiii i(ii ii i(iiiRi(RRRRRR=(RR((s'/usr/lib/python2.7/test/test_decimal.pyttest_explicit_from_tupless&"cCst|jttdt|jttdt|jtttd|jtttddS(Nii(tassertIstboolRtFalsetTrueR(R((s'/usr/lib/python2.7/test/test_decimal.pyttest_explicit_from_boolscCs,td}t|}|jt|d|jt|t|td}t|}|jt|d|jt|t|td}t|}|jt|d|jt|t|td}t|}|jt|d|jt|t|dS( Ni-Ri{eRis-45iR(RRRtassertNotEqualR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_explicit_from_Decimals         cCstd}|jt|t|jt|d|jttdj|jttdj|jttdj|jtttdttd|jtttdttd|jtttdttd|jtttd ttd xQtd D]C}t j d t j d d}|j|tt|qZWdS(Ng?s90.1000000000000000055511151231257827021181583404541015625tnantinfs-infR tInfinitys -Infinitys-0.0s-0ig{Gz?g@g?( RRRRt assertTruetfloatRiRctrangeRt expovariate(RtrRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_explicit_from_floats$ !c Cstjt}d|_t}|jt|d|j}|jt|d|jt|jd|jd}|j |t|j|jd|jdtd}|jt|d|jd}|jt|d|jt|jdd td ddf}|jt|d|jd ddf}|jt|dtd}t|}|jt|d|j|}|jt|ddS(NiRiins457E+2t456789s4.57E+5s3.14 R iii iis-4.34913534E-17s -4.35E-17i{eRs5.00E+8( iiii iiiii( iiii iiiii( R R RRRRRRRR=tassertIsInstance(RtncRtprevdec((s'/usr/lib/python2.7/test/test_decimal.pyt$test_explicit_context_create_decimal+s2      cCsjidtd6dtd6dtd6}x6|jD](\}}|jtt||q:WdS(NRs\uff11s 0.0000372s'\u0660.\u0660\u0663\u0667\u0662e-\u0663s-NaN2400s-nan\u0c68\u0c6a\u0c66\u0c66(RtitemsRRR(Rt test_valuestinputtexpected((s'/usr/lib/python2.7/test/test_decimal.pyttest_unicode_digitsVs   (RRRRRRR RRRtrequires_IEEE_754R R%RR*(((s'/usr/lib/python2.7/test/test_decimal.pyRs     %   +tDecimalImplicitConstructionTestcBsDeZdZdZdZdZdZdZdZRS(s6Unit tests for Implicit Construction cases of Decimal.cCs|jttdtdS(NsDecimal(5) + None(RRRtglobals(R((s'/usr/lib/python2.7/test/test_decimal.pyttest_implicit_from_NonedscCsD|jttddd|jtddtddS(Nii-t50l2}r(RRR(R((s'/usr/lib/python2.7/test/test_decimal.pyttest_implicit_from_intgs cCs|jttdtdS(NsDecimal(5) + "3"(RRRR-(R((s'/usr/lib/python2.7/test/test_decimal.pyttest_implicit_from_stringmscCs|jttdtdS(NsDecimal(5) + 2.2(RRRR-(R((s'/usr/lib/python2.7/test/test_decimal.pyttest_implicit_from_floatpscCs*|jtdtdtddS(Nii-i2(RR(R((s'/usr/lib/python2.7/test/test_decimal.pyttest_implicit_from_Decimalsscsdd2dY}|jt|tdd|jttd|d|jtdd|jtdd |jtd d |jtd d |jtdd|jtddd3d4d5d6d7d8g}t2d$d%d&kr|jd9n |jd:WdQXx|D]\}t|fd,t|fd-|jtd.|d/d0d1|jtd/|d.d1d0q7WdS(;NtEcBsPeZdZdZdZdZdZdZdZdZ RS(cSsdt|S(Nsdivmod (R(Rtother((s'/usr/lib/python2.7/test/test_decimal.pyt __divmod__yscSst|dS(Ns rdivmod(R(RR5((s'/usr/lib/python2.7/test/test_decimal.pyt __rdivmod__{scSsdt|S(Nslt (R(RR5((s'/usr/lib/python2.7/test/test_decimal.pyt__lt__}scSsdt|S(Nsgt (R(RR5((s'/usr/lib/python2.7/test/test_decimal.pyt__gt__scSsdt|S(Nsle (R(RR5((s'/usr/lib/python2.7/test/test_decimal.pyt__le__scSsdt|S(Nsge (R(RR5((s'/usr/lib/python2.7/test/test_decimal.pyt__ge__scSsdt|S(Nseq (R(RR5((s'/usr/lib/python2.7/test/test_decimal.pyt__eq__scSsdt|S(Nsne (R(RR5((s'/usr/lib/python2.7/test/test_decimal.pyt__ne__s( RRR6R7R8R9R:R;R<R=(((s'/usr/lib/python2.7/test/test_decimal.pyR4xs       i s divmod 10s 10 rdivmodsDecimal(10) < E()sgt 10sDecimal(10) > E()slt 10sDecimal(10) <= E()sge 10sDecimal(10) >= E()sle 10sDecimal(10) == E()seq 10sDecimal(10) != E()sne 10t+t__add__t__radd__t-t__sub__t__rsub__Rt__mul__t__rmul__t%t__mod__t__rmod__s//t __floordiv__t __rfloordiv__s**t__pow__t__rpow__iiit/t__div__t__rdiv__t __truediv__t __rtruediv__csdt|S(NR(R(RR5(tlop(s'/usr/lib/python2.7/test/test_decimal.pyRscst|dS(NR(R(RR5(trop(s'/usr/lib/python2.7/test/test_decimal.pyRssE()s Decimal(10)Rt10((R>s__add__s__radd__(RAs__sub__s__rsub__(Rs__mul__s__rmul__(RFs__mod__s__rmod__(s//s __floordiv__s __rfloordiv__(s**s__pow__s__rpow__(RMs__div__s__rdiv__(RMs __truediv__s __rtruediv__(RtdivmodRRRRtsetattr(RR4toplisttsym((RRRSs'/usr/lib/python2.7/test/test_decimal.pyttest_ropvs4""  ( RRRR.R0R1R2R3RY(((s'/usr/lib/python2.7/test/test_decimal.pyR,as     tDecimalFormatTestcBs eZdZdZdZRS(s#Unit tests for the format function.cCsdddddddddddddddddddddddddddddddddddddddddddddddddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVg}x6|D].\}}}|jtt|||qWdS(WNRs0E-15s0e-15s2.3E-15s2.3e-15s2.30E+2s2.30e+2s 2.30000E-15s 2.30000e-15s1.23456789123456789e40s1.23456789123456789e+40s1.5s1.5e+0s0.15s1.5e-1s0.015s1.5e-2s0.0000000000015s1.5e-12s15.0s1.50e+1s-15s-1.5e+1Rs0e+0t0E1s0e+1s0.0s0e-1s0.00s0e-2s.6es 0.000000e-9s 0.000000e+6s9.999999s 9.999999e+0s 9.9999999s 1.000000e+1s-1.23e5s -1.230000e+5s 1.23456789e-3s 1.234568e-3Rs0E-2s0.00E-8s 0.0000000000s3.2E1t32s3.2E2t320s3.20E2s3.200E2s320.0s3.2E-6s 0.0000032s.6fs0.000000s.0fs 3.14159265t3s.1fs3.1s.4fs3.1416s3.141593s.7fs 3.1415926s.8fs.9fs 3.141592650tgtGs0E+1s0E-5s0.00000s0E-6s0E-7s0e-7s-0E2s-0e+2s.0gs.1gs.2gs.5gs.7gs.8gs.9gs.10gRFs0%t0E0s0E-1s0E-3s0.0%s0E-4s0.00%s.3%s0.000%t0E10s0E-10s2.34s234.000%s1.234567s123.457%s.0%s1.23s123%R s-NaN123s+gtNaN456s+NaN456s.3etInfRs.16fs-Infs -Infinitys-sNaNRs1.00t6t123s 123s<6s123 s>6s^6s 123 s=+6s+ 123s#<10s NaN#######s-4.3s -4.3######s#<+10s0.0130s +0.0130###s#< 10s 0.0130###s@>10s @-Infinitys#>5s?^5s?123?s%^6s%123%%s ^6s-45.6s-45.6 s/=10s -/////45.6s/=+10s45.6s +/////45.6s/= 10s /////45.6t,t1234567s 1,234,567t123456s123,456t12345s12,345t1234s1,234t12Rs-1234567s -1,234,567s-123456s-123,456s7,s8,s 123,456s08,s 0,123,456s+08,s+123,456s 08,s+09,s +0,123,456s07,s1234.56s1,234.56s09,s 01,234.56s010,s 001,234.56s011,s 0,001,234.56s012,s08,.1fs1234.5s01,234.5s 1.23456789s,%s 123.456789s 12,345.6789%s,es 1.23456e+5s,Es 1.23456E+5sa=-7.0s0.12345saaaa0.1s <^+15.20%Rs<<+Infinity%<<,%t sNaN1234567s sNaN1234567%s=10.10%R s NaN123%(Rs0E-15s0e-15(Rs2.3E-15s2.3e-15(Rs2.30E+2s2.30e+2(Rs 2.30000E-15s 2.30000e-15(Rs1.23456789123456789e40s1.23456789123456789e+40(Rs1.5s1.5e+0(Rs0.15s1.5e-1(Rs0.015s1.5e-2(Rs0.0000000000015s1.5e-12(Rs15.0s1.50e+1(Rs-15s-1.5e+1(RRs0e+0(RR[s0e+1(Rs0.0s0e-1(Rs0.00s0e-2(s.6es0E-15s 0.000000e-9(s.6eRs 0.000000e+6(s.6es9.999999s 9.999999e+0(s.6es 9.9999999s 1.000000e+1(s.6es-1.23e5s -1.230000e+5(s.6es 1.23456789e-3s 1.234568e-3(RRR(Rs0.0s0.0(Rs0E-2s0.00(Rs0.00E-8s 0.0000000000(RR[R(Rs3.2E1R\(Rs3.2E2R](Rs3.20E2R](Rs3.200E2s320.0(Rs3.2E-6s 0.0000032(s.6fs0E-15s0.000000(s.6fR[s0.000000(s.6fRs0.000000(s.0fRR(s.0fs0e-2R(s.0fs 3.14159265R^(s.1fs 3.14159265s3.1(s.4fs 3.14159265s3.1416(s.6fs 3.14159265s3.141593(s.7fs 3.14159265s 3.1415926(s.8fs 3.14159265s 3.14159265(s.9fs 3.14159265s 3.141592650(R_RR(R_s0.0s0.0(R_R[s0e+1(R`R[s0E+1(R_s0E-5s0.00000(R_s0E-6s0.000000(R_s0E-7s0e-7(R_s-0E2s-0e+2(s.0gs 3.14159265R^(s.1gs 3.14159265R^(s.2gs 3.14159265s3.1(s.5gs 3.14159265s3.1416(s.7gs 3.14159265s3.141593(s.8gs 3.14159265s 3.1415926(s.9gs 3.14159265s 3.14159265(s.10gs 3.14159265s 3.14159265(RFR[s0%(RFRas0%(RFs0E-1s0%(RFs0E-2s0%(RFs0E-3s0.0%(RFs0E-4s0.00%(s.3%Rs0.000%(s.3%Rbs0.000%(s.3%s0E-10s0.000%(s.3%s2.34s234.000%(s.3%s1.234567s123.457%(s.0%s1.23s123%(RsNaNsNaN(Rs-NaN123s-NaN123(s+gRcs+NaN456(s.3eRdsInfinity(s.16fs-Infs -Infinity(s.0gs-sNaNs-sNaN(Rs1.00s1.00(ReRfs 123(s<6Rfs123 (s>6Rfs 123(s^6Rfs 123 (s=+6Rfs+ 123(s#<10sNaNs NaN#######(s#<10s-4.3s -4.3######(s#<+10s0.0130s +0.0130###(s#< 10s0.0130s 0.0130###(s@>10s-Infs @-Infinity(s#>5s-Infs -Infinity(s?^5Rfs?123?(s%^6Rfs%123%%(s ^6s-45.6s-45.6 (s/=10s-45.6s -/////45.6(s/=+10s45.6s +/////45.6(s/= 10s45.6s /////45.6(RgRhs 1,234,567(RgRis123,456(RgRjs12,345(RgRks1,234(RgRfRf(RgRlRl(RgRR(RgRR(Rgs-1234567s -1,234,567(Rgs-123456s-123,456(s7,Ris123,456(s8,Ris 123,456(s08,Ris 0,123,456(s+08,Ris+123,456(s 08,Ris 123,456(s08,s-123456s-123,456(s+09,Ris +0,123,456(s07,s1234.56s1,234.56(s08,s1234.56s1,234.56(s09,s1234.56s 01,234.56(s010,s1234.56s 001,234.56(s011,s1234.56s 0,001,234.56(s012,s1234.56s 0,001,234.56(s08,.1fs1234.5s01,234.5(Rgs 1.23456789s 1.23456789(s,%s 123.456789s 12,345.6789%(s,eRis 1.23456e+5(s,ERis 1.23456E+5(sa=-7.0s0.12345saaaa0.1(s <^+15.20%sinfs<<+Infinity%<<<(s>,%Rms sNaN1234567%(s=10.10%sNaN123s NaN123%(RtformatR(RR'tfmtRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_formattings cCsyddlm}Wntk r4|jdnXidd6dddgd6d d 6}id d6|gd6d d 6}id d6dddgd6d d 6}id d6ddd|gd6dd 6}dd}|j|td|d|j|td|d|j|td|d|j|td|d|j|d|d|j|d|d|j|d|d|j|d|d|j|d|dd|j|d|dd|j|d|dd|j|d|dd |j|d!|d"d#|j|d!|d$d#|j|d!|d%d&|j|d!|d'd(|j|d)|d%d*|j|d)|d'd*|j|d)|d+d,|j|d)|d-d.|j|d)|d/d.|j|d)|d0d1|j|d2|d'd3|j|d2|d+d3|j|d2|d-d3|j|d2|d/d4|j|d2|d0d5|j|d2|d6d5|j|d2|d7d8|j|d2|d9d:dS(;Ni(tCHAR_MAXslocale.CHAR_MAX not availablet.t decimal_pointiitgroupingRgt thousands_sepRRt&iiiRAtncSstjt||d|S(Nt _localeconv(Rt __format__(RtlocaleRo((s'/usr/lib/python2.7/test/test_decimal.pytget_fmtdss12.7s12,7s1-2&7i[s 123,456,789t 123456789s 123 456 789lc}s123456-78-9012-3s.6ns 1.23457e+8s 1,23457e+8s 1&23457e+8it03nRkt04nt05nt01234t06nt001234i90s12,345t07ns012,345t08ns 0,012,345t09nt010ns 00,012,345i@s1-2345-6s 01-2345-6s 0-01-2345-6t011nt012ns 00-01-2345-6t013ns 000-01-2345-6(RzRqt ImportErrortskipTestRR(RRqten_UStfr_FRtru_RUtcrazyR{((s'/usr/lib/python2.7/test/test_decimal.pyt test_n_formatDsf       (RRRRpR(((s'/usr/lib/python2.7/test/test_decimal.pyRZs tDecimalArithmeticOperatorsTestcBsqeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z RS( s:Unit tests for all arithmetic operators, binary and unary.cCstd}td}|j||td|j||td|d}|j|td|jt|t|d|}|j|td|jt|t|||7}|j|td|d7}|j|tddS(Ns-11.1s22.2s11.1is-6.1s16.1(RRR(Rtd1td2tc((s'/usr/lib/python2.7/test/test_decimal.pyt test_additions      cCstd}td}|j||td|j||td|d}|j|td|jt|t|d|}|j|td|jt|t|||8}|j|td|d8}|j|tddS( Ns-11.1s22.2s-33.3s33.3is-16.1s16.1s-38.3(RRR(RRRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_subtractions      cCstd}td}|j||td|j||td|d}|j|td|jt|t|d|}|j|td|jt|t|||9}|j|td|d9}|j|tddS(Ns-5R^s-15is-25s-75(RRR(RRRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_multiplications      cCstd}td}|j||td|j||td|d}|j|td|jt|t|d|}|j|td|jt|t|||:}|j|td|d:}|j|tddS( Ns-5t2s-2.5s-0.4is-1.25s-0.8s-0.625(RRR(RRRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_divisions      cCstd}td}|j||td|j||td|d}|j|td|jt|t|d|}|j|td|jt|t|||}|j|td|d}|j|tddS(Nt5RRiRii(RRR(RRRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_floor_divisions      cCstd}td}|j||td|j||td|d}|j|td|jt|t|d|}|j|td|jt|t|||C}|j|td|dC}|j|td dS( NRRt25R\it625it16807t390625(RRR(RRRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_powerings      cCstd}td}|j||td|j||td|d}|j|td|jt|t|d|}|j|td|jt|t|||;}|j|td|d;}|j|tddS(NRRRii(RRR(RRRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_module2s      cCstd}td}t||\}}|j|td|j|td|jt|t||jt|t|t|d\}}|j|td|j|td|jt|t||jt|t|td|\}}|j|td|j|td|jt|t||jt|t|dS(NRRRii(RRURR(RRRtptq((s'/usr/lib/python2.7/test/test_decimal.pyttest_floor_div_moduleMs"  cCsg|jtd td |jtd td|jttdttddS(Ni-i(RRtabs(R((s'/usr/lib/python2.7/test/test_decimal.pyttest_unary_operatorsgscCstd}td}td}td}||f||f||f||f||ff}||f||f||f||f||f||f||ff}tjtjtjtjf}tjtjf}x||D]v\} } xg||D][} | | | } | tjkr$tnt } |j | | dj | | j | | | qWqWt -}d|jt    3E !    ! ! cCsZtdjtd}|jtdjd||jttdjddS(Niis-2(RRYRRR(RR((s'/usr/lib/python2.7/test/test_decimal.pyttest_copy_signs(RRRRRRRRRRRRRR(((s'/usr/lib/python2.7/test/test_decimal.pyRs          4cCsvtd}td}||}|jj||}|jj|j|td|j|tddS(Niis0.3333333333333333333333333333(Rtsynchrotwaittfinish1tsetR(tclsRtd3ttest1ttest2((s'/usr/lib/python2.7/test/test_decimal.pytthfunc1s      cCstd}td}||}t}d|_||}|jj|jj|j|td|j|tddS(Niiis0.3333333333333333333333333333s0.333333333333333333(RR RRRtfinish2R(RRRRt thiscontextR((s'/usr/lib/python2.7/test/test_decimal.pytthfunc2s        sthreading requiredtDecimalUseOfContextTestcBseZdZdZRS(s/Unit tests for Use of Context cases in Decimal.cCstj|_tj|_tj|_tjdtd|f}tjdtd|f}|j|j|jj |jj dS(NttargetR>( t threadingtEventRRRtThreadRRtstartR(Rtth1tth2((s'/usr/lib/python2.7/test/test_decimal.pyttest_threadings   (RRRR(((s'/usr/lib/python2.7/test/test_decimal.pyRstDecimalUsabilityTestcBseZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZRS(s*Unit tests for Usability cases of Decimal.cCs6td}td}td}|j|||j|||j|||j|||j|||j|||j|||j|||jt||d|jt||d|jt||d|j|d|jd||j|d|jt|dd|jtd|d|jt|dd|j|d|j|d |j|t|j|tt tt d }|}t j ||j |j||t7|jtddk|jtddkWdQXdS( Ns23.42Riiiii-R gY@@id(Rt assertGreatertassertGreaterEqualt assertLesstassertLessEqualRRtcmptobjectRtxrangeRtshuffletsortRt assertFalseR=R(RtdatdbtdcRtb((s'/usr/lib/python2.7/test/test_decimal.pyttest_comparison_operatorss@      cCstd}td}|j|d|j|d|j|d|j|d|j|d|j|d|jd||jd||jd||jd||jd||jd||jdtddS(Ns0.25s3.0g@g?g?g?s0.1(RRRRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_decimal_float_comparison s  cCsftd}tj|}|jt|t|tj|}|jt|t|dS(Ns43.24(RR RRtdeepcopy(RRRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_copy_and_deepcopy_methodss  cCsttdttdttdttdttdgdddd d d d d ddddddgD]G}tddD]1}ddgD]}t|d||^qqq}|jtdtdtdtdtdtdtdtd td!td3d4dtd"td#td$td%td&gx0|D](}|jt|tt|qqW|jttdtd|jtttd'|jttd(|jttd)d*d)d+d,d-d.d/d0g}xB|D]:}t |}t|} |jt|t| q/Wt } | j } td1} d2| _ t| } d| _ t| }d | _ t| }|j| ||j| || | _ dS(5NiRs -Infinitytnan123s-NaNiiiiiiii i!i>i?i@iAiBii iiis-0s0.00s-0.000Rbs-0E12s10.0s -23.00000t1230E100s -4.5678E50s 1.634E100s 90.697E100s 188.83E100s 1652.9E100t 56531E100RRds-InfRs0.0s-.0e1s34.0s2.5s 112390.625s -0.515625s 123456789.1ill( thashRRtextendRRRRRRR R(RtmRwtsignR'Rt test_stringsRRRRt old_precisionRth1th2th3((s'/usr/lib/python2.7/test/test_decimal.pyttest_hash_method!sd4              &"              cCstd}td}d}d}|jt||||jt||||jt||||jt||||jt||||jt||||jt||||jt|||dS(Ns15.32s28.5ii(RRtmintmax(RRRtl1tl2((s'/usr/lib/python2.7/test/test_decimal.pyttest_min_and_max_methodshs  cCs*|jtd|jtddS(Nis0.372(RRR(R((s'/usr/lib/python2.7/test/test_decimal.pyttest_as_nonzero{scCstd}|jt|d|jt|dddddddd g}xn|D]f}t|}|jtt|t|jtt|t|jt|jtqZWdS( Ns15.32sDecimal('15.32')u123.4u0.5E2uInfinityusNaNu-0.0E100u-NaN001u-Inf(RRRtreprRR(RRtunicode_inputsR((s'/usr/lib/python2.7/test/test_decimal.pyttest_tostring_methodss    cCstd}td}|jt|d|jt|d|jt|d|jt|d|jt|d|jt|ddS(Nt66s15.32iBigp= ף.@(RRRtlongR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_tonum_methodss  cCs=x6dD].}tt|}|jtj|qWdS(NRtnan1234s-nans-nan2468(snanRs-nans-nan2468(RRRtmathRf(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_nan_to_floats cCs4x-dD]%}t|}|jtt|qWdS(Ntsnans-snantsnan1357s -snan1234(Rs-snanRs -snan1234(RRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_snan_to_floats  c Cstdd df}|j|tt|tdd df}|j|tt|tdd df}|j|tt|tdd df}|j|tt|dS( Niiiiiii i(i(ii(iiii( iiii iiiii(RRRR(RR((s'/usr/lib/python2.7/test/test_decimal.pyttest_eval_round_tripsc CsPtd}|j|jdddftd}|j|jdddftd}|j|jddd ftd }|j|jddd ftddd f}|j|jddd ftddd f}|j|jddd ftddd f}|j|jddd ftdddf}|j|jdddftdddf}|j|jdddftdd df}|j|jdd!dftdd"d f}|j|jdd#d ftdd$d f}|j|jdd%d fdS(&Niiiiis-4.34913534E-17ii iRtFii%RwtNii(i(ii( iiii iiiii(i(iiiiiii(iiiii(iii(i((i(iiiiiii(iiiii(iii((((iiii(i(iiii(i(RRtas_tuple(RR((s'/usr/lib/python2.7/test/test_decimal.pyt test_as_tuples0    cstdtdtdtdtfd}tjjjjjjjjj|d|dt|dt|dt|dt|d t|d t|d t|d t|d t|d|dt|d|d|d|d|dt|dt|d|d|d|dt|dt|dt|dt|d|dt|dt|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/|d0|d1dS(2Ns-25e55s33e+33cs|rtd|djjjjjjjjjjjjjjjjjjnTtd|djjjjjjjjjdS(Nsd1.s(d2)s()(RRt_signt_intt_exp(t operationtuseOther(tb1tb2RRR(s'/usr/lib/python2.7/test/test_decimal.pyt checkSameDecst__abs__R?RNR6R<R=R:R8R;R9t __float__RIt__hash__t__int__t __trunc__t__long__RGRDt__neg__t __nonzero__t__pos__RKR@ROR7t__repr__RJRHRERLRCt__str__RBRPtadjustedRtcompareRRRtquantizeRRRRt to_integral(RRRRRRR(RR ((R R RRRs'/usr/lib/python2.7/test/test_decimal.pyttest_immutability_operationssn                                                  cCswdtfdY}|d}|d}||}|jt|t|j|}|jt|tdS(Nt MyDecimalcBseZRS((RR(((s'/usr/lib/python2.7/test/test_decimal.pyR8sii(RRRR(RRRRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_subclassing5s   cCsDt}|jttdjt|jtddS(Ni(R RRRR(RR((s'/usr/lib/python2.7/test/test_decimal.pyttest_implicit_contextCs cCsx|jtdjdtdjtd|jtdjdtdjtd|jtdjdtdjtd|jtdjdtdjtd|jtdjdtdjtd|jtdjdtdjtd|jtdjdtdjtd|jtdj dtdj td|jtdj dtdj td|jtdj dtdj td|jtdj dtdj td|jtdj dtdj td|jtdjdtdjtd|jtd jdtd jtd|jtdjd tdjtd |jtdjd tdjtd |jtd jd td jtd |jtdjdtdjtd|jtdjtddtdjtdtd|jtdjddtdjtdtd|jtdjdtdtdjtdtddS(Niiiu'ii7i{iidiiis9.123iiiii-iC(RRRRNRPRRRHR}RRRsRRuR{RRtrotateRtscalebtshifttfma(R((s'/usr/lib/python2.7/test/test_decimal.pyttest_conversions_from_intIsT!%%!(RRRRRRRRRRRRRRRRRR R%(((s'/usr/lib/python2.7/test/test_decimal.pyRs" -   G        ( K  tDecimalPythonAPItestscBs>eZdZdZdZdZdZdZRS(cCsh|jtttj|jtttj|jtdtj|jtdtjdS(Ni( Rt issubclassRtnumberstNumberRtRealR"tassertNotIsInstance(R((s'/usr/lib/python2.7/test/test_decimal.pyttest_abc{scCs>td}tj|}tj|}|j||dS(Ns -3.141590000(RtpickletdumpstloadsR(RRRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_pickles cCsSxtddD]s}d|d}|jtt|tt|t|}|jt}|jtt||qW|jtttd|jtttd|jt ttd|jt ttd|jtt td|jtt td|jt t td|jt t tddS( Niis%0.2fgY@s-nanRRs-inf( RRRRRRt ROUND_DOWNRRt OverflowErrorR(RRRRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_ints(  cCsxtddD]v}d|d}|jtt|tt|t|}|jt}|jttj||qWdS(Niis%0.2fgY@( RRRRRRR1Rttrunc(RRRRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_truncs ( cCsdtfdY}|jd}|jt|||jt|dd}|j|j||||j|jtdj|j|jtdj|j|jtdj|jt|jtdttd |jt|jtdttd |jt|jtdttd |j t |jd xTt d D]F}t j dt j dd}|j|t|j|qWdS(NRcBseZRS((RR(((s'/usr/lib/python2.7/test/test_decimal.pyRsg?s90.1000000000000000055511151231257827021181583404541015625ls\&5$3| RRs-infR Rs -Infinitytabcig{Gz?g@g?(Rt from_floatRRRRRRiRcRRRRR(RRRtbigintRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_from_floats("""!cCstdddt}|j|jtjtdtdddt}|j|jtjtdtdddtg}|j t|jtj|jt |jdd|jt |jd d |jt |jd d dS( NRiRs3.1415s3.1416R gs Decimal('-0')g?s Decimal('1')i s Decimal('10')( R R1Rtcreate_decimal_from_floatRtpiRtROUND_UPtInexactRR(RR((s'/usr/lib/python2.7/test/test_decimal.pyttest_create_decimal_from_floats&   (RRR,R0R3R5R9R>(((s'/usr/lib/python2.7/test/test_decimal.pyR&ys     tContextAPItestscBs$eZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!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.d-Z/d.Z0d/Z1d0Z2d1Z3d2Z4d3Z5d4Z6d5Z7d6Z8d7Z9d8Z:d9Z;d:Z<d;Z=RS(<cCslt}tjtj|}xDt|D]6}t||}t||}|j||q.WdS(N(R R-R/R.tvarsR(RRRtktv1tv2((s'/usr/lib/python2.7/test/test_decimal.pyR0s  cCsQ|jtdddtddig|jtddddigdS(Ni Rg?ii(ii(ii(tassertInRt assertNotIn(R((s'/usr/lib/python2.7/test/test_decimal.pyttest_equality_with_other_typess+cCsyt}|j}|jt|t||jt|jt|j|jt|jt|jdS(N(R R RRRR (RRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_copys   "cCsQt}|jtd}|j|jd||jt|jddS(Nis-1(R RRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_abss cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiR(R taddRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_adds ""cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiR(R RRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_compares ""cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiR(R RNRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_compare_signals ""cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiR(R RPRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_compare_total s ""cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiR(R RRRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_compare_total_mags ""cCsQt}|jtd}|j|jd||jt|jddS(Nis-1(R RURRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_copy_abss cCsQt}|jtd}|j|jd||jt|jddS(Nis-1(R RTRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_copy_decimal%s cCsQt}|jtd}|j|jd||jt|jddS(Nis-1(R RWRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_copy_negate+s cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiiRs-2(R RYRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyR1s ""cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiiRR(R tdivideRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_divide:s ""cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiiRR(R R[RRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_divide_intCs ""cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiiRR(R RURRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_divmodLs ""cCsQt}|jtd}|j|jd||jt|jddS(Ni RT(R RRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_expUs cCsAt}|jtdtdtd}|j|jddd||j|jtddd||j|jdtdd||j|jddtd||j|jtdtdd||jt|jddd|jt|jddd|jt|jddddS(NiiiRR^t4(R R$RRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_fma[s '%%%+cCsQt}|jtd}|j|jd||jt|jddS(Ni RT(R RaRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_is_finitegs cCsQt}|jtd}|j|jd||jt|jddS(Ni RT(R RcRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_is_infinitems cCsQt}|jtd}|j|jd||jt|jddS(Ni RT(R ReRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_is_nanss cCsQt}|jtd}|j|jd||jt|jddS(Ni RT(R RgRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_is_normalys cCsQt}|jtd}|j|jd||jt|jddS(Ni RT(R RiRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_is_qnans cCsQt}|jtd}|j|jd||jt|jddS(Ni RT(R RkRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_is_signeds cCsQt}|jtd}|j|jd||jt|jddS(Ni RT(R RmRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_is_snans cCsQt}|jtd}|j|jd||jt|jddS(Ni RT(R RoRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_is_subnormals cCsQt}|jtd}|j|jd||jt|jddS(Ni RT(R RqRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_is_zeros cCsQt}|jtd}|j|jd||jt|jddS(Ni RT(R tlnRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_lns cCsQt}|jtd}|j|jd||jt|jddS(Ni RT(R tlog10RRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_log10s cCsQt}|jtd}|j|jd||jt|jddS(Ni RT(R tlogbRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_logbs cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiR(R RHRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_logical_ands ""cCsQt}|jtd}|j|jd||jt|jddS(Nit1000(R R]RRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_logical_inverts cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiR(R R}RRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_logical_ors ""cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiR(R RRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_logical_xors ""cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiiRR(R RRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_maxs ""cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiiRR(R RsRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_max_mags ""cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiiRR(R RRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_mins ""cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiiRR(R RuRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_min_mags ""cCsQt}|jtd}|j|jd||jt|jddS(Ni RT(R tminusRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_minuss cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiiRR(R tmultiplyRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_multiplys ""cCsQt}|jtd}|j|jd||jt|jddS(Ni RT(R RwRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_next_minuss cCsQt}|jtd}|j|jd||jt|jddS(Ni RT(R RyRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_next_plus s cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiiRR(R R{RRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_next_towards ""cCsQt}|jtd}|j|jd||jt|jddS(Ni RT(R RRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_normalizes cCst}|j|jd|jtd|j|jd|jtd|j|jd|jtddS(Ni{ii(R RRLR(RR((s'/usr/lib/python2.7/test/test_decimal.pyttest_number_classs ((cCsAt}|jtdtdtd}|j|jddd||j|jtddd||j|jdtdd||j|jddtd||j|jtdtdd||jt|jddd|jt|jddd|jt|jddddS(NiiiRRWR(R tpowerRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_power$s '%%%+cCsQt}|jtd}|j|jd||jt|jddS(Ni RT(R tplusRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_plus0s cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiiRR(R RRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_quantize6s ""cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiiRR(R t remainderRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_remainder?s ""cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiiRR(R RRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_remainder_nearHs ""cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiiRR(R R!RRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_rotateQs ""cCsQt}|jtd}|j|jd||jt|jddS(Ni RT(R RRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_sqrtZs cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiiRR(R RRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_same_quantum`s ""cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiiRR(R R"RRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_scalebis ""cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiiRR(R R#RRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_shiftrs ""cCst}|jtdtd}|j|jdd||j|jtdd||j|jdtd||jt|jdd|jt|jdddS(NiiRR(R tsubtractRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyt test_subtract{s ""cCsQt}|jtd}|j|jd||jt|jddS(Ni RT(R RRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_to_eng_strings cCsQt}|jtd}|j|jd||jt|jddS(Ni RT(R RRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_to_sci_strings cCsQt}|jtd}|j|jd||jt|jddS(Ni RT(R RRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_to_integral_exacts cCsQt}|jtd}|j|jd||jt|jddS(Ni RT(R RRRRR(RRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_to_integral_values (>RRR0RFRGRHRJRKRLRMRNRORPRQRRSRTRURVRXRYRZR[R\R]R^R_R`RaRcReRgRhRjRkRlRmRnRoRpRrRtRuRvRwRxRyR{R}R~RRRRRRRRRRRR(((s'/usr/lib/python2.7/test/test_decimal.pyR?sx                               tWithStatementTestcBseZdZdZRS(cCsjt}t}t}WdQXt}|j||d|j||d|j||ddS(Ns!did not restore context correctlysdid not copy the contexts __enter__ returned wrong context(R RRt assertIsNot(Rtorig_ctxt enter_ctxtset_ctxt final_ctx((s'/usr/lib/python2.7/test/test_decimal.pyttest_localcontexts   cCst}tdd}t|}t}WdQXt}|j||d|j|j|jd|j||d|j||ddS(NRi*s!did not restore context correctlysdid not set correct contextsdid not copy the contexts __enter__ returned wrong context(R R RRRRR(RRtnew_ctxRRR((s'/usr/lib/python2.7/test/test_decimal.pyttest_localcontextargs  (RRRR(((s'/usr/lib/python2.7/test/test_decimal.pyRs t ContextFlagscBseZdZRS(c Cs:tdddddddtdgd g}|jtd gf|jtd gf|jtd td gf|jtd td gf|jtd td gfg}tgt gt gt gt gtt t t t gg}xF|D]>\}}|j ||}g|jjD]\}}|r&|^q&} x|D]} |j x| D]} |j| qbW||} t| } x*| D]"} | | kr| j| qqWg|jjD]\}}|r|^q}|j|| dd|| f|j|| dd| |fqKWqWdS(NRi Ri6eRiɚ;RR Rs100E-1000000009is 1.23456789s 9.87654321s=operation produces different answers depending on flags set: sexpected %s, got %s.s9operation raises different flags depending on flags set: sexpected %s, got %s(R RRJRRRIRsRR=tRoundedt UnderflowtClampedt SubnormalRRR&t _raise_errortlistRRR(RRt operationstflagsetstfnR>RRARRt extra_flagstflagtnew_anstexpected_flagst new_flags((s'/usr/lib/python2.7/test/test_decimal.pyttest_flags_irrelevants:$  .       .  (RRR(((s'/usr/lib/python2.7/test/test_decimal.pyRsc CsLt|dk r|n tda|a|dkrattttt t t t t ttg }n t g}xtjtD]}d|ksz|jdrqzn|jd\}}|dk r||krqzn|d}tt d||~~~~qzWz6t||dkr9ddl} t| |nWdttXdS(s Execute the tests. Runs all arithmetic tests if arith is True or if the "decimal" resource is enabled in regrtest.py tdecimals.decTestRrcSs|jt|S(N(Rt directory(RR((s'/usr/lib/python2.7/test/test_decimal.pyR sttest_iN(RR=RRRRR,RRZRRR&R?RRRtostlistdirRRRRVRRRRR ( tarithtverboset todo_teststdebugt test_classestfilenametheadttailttestert DecimalModule((s'/usr/lib/python2.7/test/test_decimal.pyt test_mains>       s:test_decimal.py [--debug] [{--skip | test1 [test2 [...]]}]s--debugs-dtactiont store_truethelps2shows the test number and context before each tests--skips-ss%skip over 90% of the arithmetic testsRRRR(`RRRtsysRR-R RRR(ttest.test_supportRRRRRRRRRR=ttupleR RtkeysRRRR=RRtOverflowtDivisionByZeroRRRt skipUnlessRt __getformat__RR+t TESTDATADIRRtargvRt__file__tpathtdirnametcurdirttestdirtsepRtisdirRRRRRRR?t ROUND_CEILINGR1t ROUND_FLOORtROUND_HALF_DOWNRt ROUND_HALF_UPR<t ROUND_05UPRRRtTestCaseRRR,RZRRRRRR&R?RRRtoptparset OptionParserRt add_optiont parse_argstoptR>tskipRR(((s'/usr/lib/python2.7/test/test_decimal.pyts.     .                 L ]23   %