mò %U²Ic@s÷dklZlZlZlZdklZdklZlZdZ de Z e dZ dZ dZ eeddde e d?gƒZeidƒeid ƒd Zx3ede ƒD]!Zeiedƒed>Zq¸W[eed „eƒed „eƒZd „Zd„Zd„Zd„Ze d„Zd„Zd„Zd„Zd„Ze d„Zd„Zd„Z e d„Z!e d„Z"d„Z#d„Z$d„Z%d„Z&eƒeƒeƒe!ƒe"ƒe#ƒe$ƒe%ƒe&ƒdS( (sverifysverboses TestFailedsfcmp(sjoin(srandomsrandintiiiiFilUUª*UUª*lª*UUª*UU lcCs|S(N(tx(R((t+/data/zmath/lib/python2.4/test/test_long.pytscCs| S(N(R(R((RRscGs*|ptttt|ƒdƒ‚ndS(Nt (tokt TestFailedtjointmaptstrtargs(RR ((Rtcheck"scCs2t|djƒ|t}|td}d}d}ttƒtdƒdB}x ||jo’|d?d}t |||ƒ}td|jo tjnƒ||}||>}|d@o|d|>dB}nttƒtdƒ}qRWt||jo |jnƒtƒdjo | }n|S(Niilif0.5( tverifytndigitstSHIFTtnbits_hitnbits_lotanswertnbitstinttrandomtrtbitstmin(R RRRRRR((Rtgetran,s(  !   ! cCsSd}x+t|ƒD]}|t>tdtƒB}qWtƒdjo | }n|S(Nlif0.5(RtrangeR tiR trandinttMASKR(R RR((Rtgetran2Ds  cCst||ƒ\}}||||}}||||}}t ||jd||ƒt ||jd||ƒt ||jd||ƒt ||||jd||ƒ|djo.t d|jo |jnd||ƒn+t ||jo djnd||ƒdS(Ns#multiplication does not commute fors,divmod returns different quotient than / fors'divmod returns different mod than % forsx != q*y + r after divmod onisbad mod from divmod on( tdivmodRtytqRtq2tr2tpabtpbaR (RRR R!RR"RR#((Rttest_division_2Ns! .cCs—to dGHntd|dƒtttdƒ}|itdƒxK|D]C}t|ƒ}x.|D]&}t|ƒpd}t ||ƒqeWqLWdS(Nslong / * % divmodiiil( tverboseRt maxdigitstKARATSUBA_CUTOFFtdigitstappendtlenxRRtlenyRR$(R&R(RRR+R*((Rt test_division[s  c Csto dGHntddƒtttdƒ}|itdtdgƒg}|D]}||tqV~} x| D]•}d|>d}x~| D]v}||joq’nd|>d}||}d||>d|>d|>d}t||jd|d|||ƒq’WqwWdS( Nt Karatsubaiii idlsbad result fort*(R%RR'R(textendt_[1]tdigitR RtabitstatbbitstbRRR ( R(R3R1R5R4R2R0RRR((Rttest_karatsubahs   %  "cCs[t|d@djd|ƒt|dB|jd|ƒt|dA|jd|ƒt|d@|jd|ƒt|dBdjd|ƒt|dA|jd|ƒt||jd |ƒt||@|jd |ƒt||B|jd |ƒt||Adjd |ƒt||@djd |ƒt||Bdjd|ƒt||Adjd|ƒt| d|jo|djnd|ƒxÎtdtƒD]¼}d|}t||>|?|jd||ƒt||||?jd|||ƒt||||>jd|||ƒt|| @||?|>jo||d@jnd|||ƒq—WdS(Nisx & 0 != 0 forsx | 0 != x forsx ^ 0 != x foriÿÿÿÿsx & -1 != x forsx | -1 != -1 forsx ^ -1 != ~x fors x != ~~x forsx & x != x forsx | x != x forsx ^ x != 0 forsx & ~x != 0 forsx | ~x != -1 forsx ^ ~x != -1 forisnot -x == 1 + ~x == ~(x-1) forilsx << n >> n != x forsx // p2 != x >> n for x n p2sx * p2 != x << n for x n p2s6not x & -p2 == x >> n << n == x & ~(p2 - 1) for x n p2(R RRR tntp2(RR8R7((Rttest_bitop_identities_1‚s.2 !$$3cCsPt||@||@jd||ƒt||B||Bjd||ƒt||A||Ajd||ƒt||A|A|jd||ƒt||@||Bjd||ƒt||B||@jd||ƒt||A||B||@@jd||ƒt||A||@||@Bjd||ƒt||A||B||B@jd ||ƒdS( Nsx & y != y & x forsx | y != y | x forsx ^ y != y ^ x forsx ^ y ^ x != y forsx & y != ~(~x | ~y) forsx | y != ~(~x & ~y) forsx ^ y != (x | y) & ~(x & y) fors x ^ y == (x & ~y) | (~x & y) fors x ^ y == (x | y) & (~x | ~y) for(R RR(RR((Rttest_bitop_identities_2šs!!!!$$  cCsèt||@|@|||@@jd|||ƒt||B|B|||BBjd|||ƒt||A|A|||AAjd|||ƒt|||B@||@||@Bjd|||ƒt|||@B||B||B@jd|||ƒdS(Ns(x & y) & z != x & (y & z) fors(x | y) | z != x | (y | z) fors(x ^ y) ^ z != x ^ (y ^ z) fors$x & (y | z) != (x & y) | (x & z) fors$x | (y & z) != (x | y) & (x | z) for(R RRtz(RRR;((Rttest_bitop_identities_3¨s  cCs±to dGHnxtD]}t|ƒqWtd|dƒ}xl|D]d}t|ƒ}t|ƒxE|D]=}t|ƒ}t ||ƒt ||t||dƒƒqhWqEWdS(Nslong bit-operation identitiesii( R%tspecialRR9RR&R(R*RR+RR:R<(R&R(RRR+R*((Rttest_bitop_identities´s     cCsß||fd jodSng}d}|djod| }}nx4|o,t||ƒ\}}|it|ƒƒqIW|iƒ|pdg}d| hdd<dd<d d <|t t d „|ƒdƒd S(Niit0Lit-t0i tit0xcCsd|S(Nt0123456789ABCDEF(R(R((RRÓstL(ii( RtbaseR(tsignRRR)RtreverseRR(RRFR(RGR((Rt slow_formatÄs  c Csðdkl}x•dtfdtfdtffD]r\}}||ƒ}t ||ƒ}t ||j|i d|d|d|ƒt ||dƒ|jd ||ƒq/Wt |ƒ}t |dƒd }t ||j|i d|d|d|ƒdS( N(satolii itreturneds but expectedtforisatol("%s", 0) !=iÿÿÿÿ(tstringtatoltocttreprthexRFtmapperRtgotRItexpectedR t__name__R(RRQRFRMRRRS((Rt test_format_1Ös "  ' cCszto dGHnxtD]}t|ƒqWxHtdƒD]:}x1td|dƒD]}t|ƒ}t|ƒqRWq8WdS(Nslong str/hex/oct/atoli i( R%R=RRURRR&R*R(R&RRR*((Rt test_formatås   c Cs:to dGHndk}|i}| d}t|ƒ}t|ƒ}t||jdƒt||jdƒt |ƒ}yt||jdƒWnt j ot d‚nXt |t ƒpt dƒ‚nt |ƒ}yt||jdƒWnt j ot d ‚nXt |t ƒpt d ƒ‚n|d}yt |ƒ}Wnt j ot d ‚nXt |tƒpt d ƒ‚n|d}yt |ƒ}Wnt j ot d ‚nXt |tƒpt dƒ‚ndtfd„ƒY}|dd>ƒ}t |ƒ}t|ƒtj ot dƒ‚ndS(Nslong miscellaneous operationsislong(sys.maxint) != sys.maxints$long(-sys.maxint-1) != -sys.maxint-1s3converting sys.maxint to long and back to int failss!int(long(sys.maxint)) overflowed!s.int(long(sys.maxint)) should have returned ints6converting -sys.maxint-1 to long and back to int failss$int(long(-sys.maxint-1)) overflowed!s1int(long(-sys.maxint-1)) should have returned ints*int(long(sys.maxint) + 1) mustn't overflows3int(long(sys.maxint) + 1) should have returned longs-int(long(-sys.maxint-1) - 1) mustn't overflows6int(long(-sys.maxint-1) - 1) should have returned longtlong2cBstZRS(N(RTt __module__(((RRW"slids<overflowing int conversion must return long not long subtype(R%tsystmaxintthugeposthugenegtlongthugepos_aslongthugeneg_aslongR RRt OverflowErrorRt isinstanceRRWttype( R&R[R^RWRYR\R_RR((Rt test_miscñsZ                c sdk}dk}to dGHndddd|id|i|idg}t|i|iƒƒ}|i|d||dgƒ|ig} |D]} | | q•~ ƒ‡‡d†}xZ|D]R} t | ƒ}| ‰| ‰|d| ƒx"|D]} t | ƒ}||‰| | ‰|| d| ƒ||‰| | ‰|| d| ƒ||‰| | ‰|| d | ƒ| oz||‰| | ‰|| d | ƒ||‰| | ‰|| d | ƒt||ƒ‰t||ƒ‰|| d | ƒnt| ƒd jo| djo | dj oí||‰| | ‰|| d| ƒxÆ|D]º} | djo§| djoDt||t | ƒƒ‰t| | | ƒ‰|d| | d| ƒq yt||t | ƒƒWntj oq Xtd||t | ƒffƒ‚qOqOWq÷q÷WqÃWdS(Ns"auto-convert int->long on overflowiiiics$tˆˆjd|ˆˆfƒdS(Nsfor %r expected %r got %r(R RRRSR (R (RSRR(Rtcheckit5sR@t+R.t/s//Ris**tpowt%s"pow%r should have raised TypeError(tmathRYR%RZR=RtsqrtR/R0RRdRR]tlongxRSRRRtlongyRtabsR;Rgt TypeErrorR(RlRkR=RjRSRiRdRRRYRR0RRR;((RSRRRttest_auto_overflow*sh ,)             .    c&Csrdk}to dGHnx*d7D]"}ttt|ƒƒ|jƒq Wdd}d d >}| }hd |<d |<d |<d|<}xàdddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4g&D]f}yt ||ƒWnt j onXt d5|ƒ‚t|ƒt|ƒjot d6ƒ‚qqWdS(8Nslong->float overflowf-2.0f-1.0f0.0f1.0f2.0t12345ixli0uthugetmhugetshugeRis float(huge)s float(mhuge)s complex(huge)scomplex(mhuge)scomplex(huge, 1)scomplex(mhuge, 1)scomplex(1, huge)scomplex(1, mhuge)s 1. + huges huge + 1.s 1. + mhuges mhuge + 1.s 1. - huges huge - 1.s 1. - mhuges mhuge - 1.s 1. * huges huge * 1.s 1. * mhuges mhuge * 1.s 1. // huges huge // 1.s 1. // mhuges mhuge // 1.s 1. / huges huge / 1.s 1. / mhuges mhuge / 1.s 1. ** huges huge ** 1.s 1. ** mhuges mhuge ** 1.smath.sin(huge)smath.sin(mhuge)smath.sqrt(huge)smath.sqrt(mhuge)smath.floor(huge)smath.floor(mhuge)sexpected OverflowError from %ss(float(shuge) should not equal int(shuge)(f-2.0f-1.0f0.0f1.0f2.0(RiR%RR tfloatR]RsRqRrt namespacettesttevalR`RR(RqRuRrRvRRiRs((Rttest_float_overflowss&     *ycCs<dk}to dGHn|i|iƒ}x…tdƒdddgD]j}d|}|i|ƒ}tt ||ƒdjƒ||}|i |ƒ}tt ||ƒdjƒqEWx‚dd> dd fD]l}y|i |ƒt d ƒ‚Wntj onXy|i|ƒt d ƒ‚WqÈtj oqÈXqÈWdS( Ns log and log10i idièi'illÿÿÿÿls"expected ValueError from log(<= 0)s$expected ValueError from log10(<= 0)(RiR%tlog10tetLOG10ERtexptvalueR tfcmpRStlogtbadRt ValueError(R{R€R}R|RSRyRiR((Rt test_logsœs0      c s#dk‰dk}to dGHndf‡‡d†ƒY‰dddddd d g} xrd d d d d dfD]U}| i|d|d||d|dt|dƒt|ƒt|dƒgƒqrW| iddd|it |iƒgƒtd ƒ}| iddddd>|d||dgƒ| ig}| D]} || q>~ƒxÆ| D]¾} ˆ| ƒ}x©| D]¡}ˆ|ƒ}t||ƒ}t| |ƒ}||jo td| |||fƒ‚n| |j|djjotd| ||fƒ‚n| |j|djjotd| ||fƒ‚n| |j|djjotd| ||fƒ‚n| |j|djjotd| ||fƒ‚n| |j|djjotd| ||fƒ‚n| |j|djjotd| ||fƒ‚qvqvWq]WdS(Nsmixed comparisonstRatcs tZ‡d†Z‡d†ZRS(Nc s&t|ttfƒo||_d|_n÷t|tƒoÖˆi t |ƒƒ\}}d}d}xL|oDˆi||ƒ}t|ƒ}||>|B}||8}||8}qfW|djo||>}d}n|}d| >}|djo | }n||_||_ntdtƒ‚dS(Niiiscan't deal with %r(RaR}RR]tselfR7tdRtRitfrexpRmtfRztCHUNKttoptldexpR1Rntval( R„R}R1RzR…R‡R7R‰Rˆ(Ri(Rt__init__Ës8            csAt|ˆƒpˆ|ƒ}nt|i|i|i|iƒS(N(RatotherRƒtcmpR„R7R…(R„R(Rƒ(Rt__cmp__õs(RTRXRŒR((RƒRi(RRƒÊs *if0.001f0.98999999999999999f1.0f1.5f1e+20f9.9999999999999997e+199f2.0i0i2i5f0.29999999999999999iillli Ns %r %r %d %ds %r == %r %ds %r != %r %ds %r < %r %ds %r <= %r %ds %r > %r %ds %r >= %r %d(RiRYR%RƒtcasesttR/R]RZRtR0RtRxRtRyRŽtRcmptxycmpR( R0R”R’R“R•RYRƒR‘RRRRi((RƒRiRttest_mixed_compares¾sF   0S( .)    N('ttest.test_supportR R%RR~RLRRRR tBASERR't MAXDIGITSRR]R=R)R8RRR RRR$R,R6R9R:R<R>RIRURVRcRoRxR‚R–(!RVR%R:R RR6R–R$RxR R=R9RoRR R<RRR>R™R,RR˜R'RRIR8RRR‚R~RcRU((Rt?sX   "  &        9 I ) " _