ó ˇ+xQc@s ddlZddlZddlZyddlZWnek rMdZnXdZerfd„Zn d„Zddlm Z ddl Z ddl Z ddl Te ƒZeZeZe ZeZeZd„Zd „Zd „Zed „Zd „Zd „Zd„Zd„Zd„Z d„Z!d„Z"fddd„Z#defd„ƒYZ$d„Z%dd>d„Z&d„Z'd„Z(d„Z)d„Z*d„Z+d„Z,d fd!„ƒYZ-d"fd#„ƒYZ.ed$„Z/d%„Z0d&„Z1e-ƒZ2e3d'kr e1ƒndS((i˙˙˙˙NiicCs"tttjj|||gƒƒS(N(tmaptinttnumpytrandomtrandom_integers(tlowthightlength((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pytrandom_integers_listscCs)gt|ƒD]}tj||ƒ^q S(N(trangeRtrandint(RRRti((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyRs(tclock(t*cCsdS(N((tatb((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyt absorption!scCsdS(N((RRtc((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyt associative%scCsdS(N((RR((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyt commutative)scCs|dkrndS(N(tNone(RRR((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pytdeMorgan-s cCsdS(N((R((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyt idempotence5scCsdS(N((RR((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyt inclusion9scCsdS(N((RRR((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyt distributive@scCs˜x‘|D]‰}t|ƒxv|D]n}t||ƒt||ƒt||ƒx>|D]6}t|||ƒt|||ƒt|||ƒqRWqWqWdS(N(RRRRRRR(tas_tbstcsRRR((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest_set_operationsFs       cCs‚d„}xr|D]j}xa|D]Y}|t|ƒt|ƒk||kƒ|||k||koj||k ƒ|||k||ko¨||ksž||ko¨||k ƒ|||k||koç||koç||k oç||k ƒ|||k||k o||k ƒ|||k||ko4||k ƒ|||k||kor||ksh||kor||k ƒqWqWdS(NcSsdS(N((RR((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pytimpSs(tlen(RRRRR((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyt test_set_subRs   %&>?'&cCs&x|D]}x|D]}qWqWdS(N((RRRR((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyt test_set_len`s  cCs&x|D]}x|D]}qWqWdS(N((RRRR((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest_set_convertos  c Cs]t|ƒ}tƒ}x|D]}||Œ}qWtƒ}||} |rU| |fS| SdS(N(R R ( tftargstNtretxtrt starttimeR txtendtimetelapsed((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyteltimezs      tIdSetcBs#eZd„Zd„Zd„ZRS(cCstj|t|ƒdƒdS(Ni (tbitsmuttappendtid(tselfR(((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyR.‰scCstj|t|ƒdƒdS(Ni (R-tremoveR/(R0R(((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyR1ŒscCstj|t|ƒdƒS(Ni (R-t __contains__R/(R0R(((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyR2s(t__name__t __module__R.R1R2(((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyR,ˆs  cCs9|}x,|r4||A||@d>}}|G|GHq W|S(Ni((RRR((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pytadd•s   licCsttj| |ƒƒS(N(tlongRt randrange(tlim((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyR scCs\tƒ}tƒ}tƒd@}tƒ}tƒ}tƒd@}|||>|||>}|S(Nl˙(R (RRtashRtdtbshR&((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pytrandlong s      cCs4i}x'|D]}||kr d||tks((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pytdslist˛s   cCsai}g}xNtdƒD]@}x7tdƒ}||kr"|j|ƒd|| list of n unique random ints in [-amp,amp]i'iPĂi(R R R.(tntampR>trngR R((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pytrandlistšs     cCs(|j}x|D]}||ƒqWdS(N(R.(RRtaptbit((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pytt_appendÉs  cCs2|j}x"|D]}|t|ƒdƒqWdS(Ni (R.R/(RRRIRJ((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyt t_append_idÎs  tTestcBsUeZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z dd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z!d „Z"d!„Z#d"„Z$d#„Z%d$„Z&RS(%icCsdS(N((R0((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest0Ůsc Cs*ddl}|jƒ}tdddgƒgBtdddgƒg@tdddgƒdgBtdddgƒtdƒBtdddgƒtdddƒBtƒtgƒtdƒtdƒtdƒttƒƒf}||IJx|D]}qíWtdƒtdƒ|td ƒIJ|tdƒIJ|td ƒIJ|tdgƒtdƒBIJ|ttdgƒƒIJ|ttdgƒƒIJtdƒjƒ}|}|dO}|t|ƒIJ|d O}|t|ƒIJ|ddgO}|t|ƒIJ|dO}|t|ƒIJ|tdgƒO}|t|ƒI|IJ|tdgƒO}t|ƒ}||IJ||M}||IJ|dM}||IJ||O}|d M}|t|ƒIJ||O}|ddgM}|t|ƒIJ||O}|dM}|t|ƒIJ||O}|tdgƒM}||IJ||O}|tdgƒM}||IdI|tdgƒ@IJ|dN}||IJ|d N}|t|ƒIJ|ddgN}|t|ƒIJ|d N}|t|ƒIJ|tdgƒN}||IJ|dM}||O}||O}||IdI||BI||BItgƒ|BIJt|ƒ}|dO}||I|dBIt|ƒIt|ƒIJ||N}||IJ||M}||It|ƒIt|ƒIJ|dO}||It|ƒIJ|dM}||It|ƒIJ|dN}||It|ƒIJ|dO}||It|ƒIJ|dM}||It|ƒIJ|dN}||It|ƒIJ|tdƒO}||It|ƒIJ|tdƒM}||It|ƒIJ|tdƒIJ|tdgƒIJ|tdgƒtdgƒBIJtjdkr&ndS(!Ni˙˙˙˙iiiiidillii i€l@iiii%sts&.tmtiţ˙˙˙iü˙˙˙l˙˙˙˙l˙˙˙˙l˙˙˙˙i(ll(i(ii(ii(ii( tStringIOtbitsetR R6Rtmutcopytlisttsyst hexversion( R0RPR"temptiesR?tmstmsattstxs((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest1ÜsČ  #                         $        8  ,   "       c CséxâgtdƒD]}tƒ^qD]ž}xľgtdƒD]}tƒ^q9D]‘}g}x4|t|ƒt|ƒfD]}x|t|ƒt|ƒfD]ń}g}|j||Bƒ|j||@ƒ|j||Aƒ|j||Bƒ|j||@ƒ|j||Aƒ|j||Bƒ|j||@ƒ|j||Aƒ|j||Bƒ|j||@ƒ|j||Aƒ|j|ƒq–WqtWtjdkr¤qLnx6|dD]*}x!t||dƒD] \} } qÉWqŻWqLWq#WdS(Ni iii(R R<RQR-R.RTRUtzip( R0R RtjRRYttattbttrR&R(((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest2ˆs0))"" c Csőtƒ}tƒ}tƒ}tƒ}g}xx|t|ƒt|ƒfD][}xR|t|ƒt|ƒfD]5}|d@r…||O}n.|d@rœ||M}n|d@rł||N}nxç|t|ƒt|ƒfD]Ę}g} ||O}| jt|ƒƒ||M}| jt|ƒƒ||N}| jt|ƒƒ||O}| jt|ƒƒ||M}| jt|ƒƒ||N}| jt|ƒƒ|j| ƒqĎWqhWqFWtjdkr¸dSx6|dD]*} x!t| |dƒD] \} } qÝWqĂWdS(Niiiii( R<R RQR-R.R6RTRUR\( R0tptopRRRYttpR^R_R`R&R(((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest3¨sB    ""      "       cCsd„}d}xětdd d d|jdƒD]É}d |>}|Gt|d ||fƒGt|d t|ƒ|fƒGt|d t|ƒt|ƒfƒGt|d t|ƒ|fƒGt|d t|ƒt|ƒfƒGt|d t|ƒt|ƒfƒGHq1WdS( NcSsSxL|dkrN||O}||O}||O}||O}||O}|d8}qWdS(Nii((RER(ty((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pytf1Ňs     liii iiiliči€i(R tfasterR+RQR-(R0RgR(texpRf((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest4Đs ( ""c Csi}x{tdƒD]m}tƒ}d||O}qWdS(Nl((RRRJ((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyR"˘s (R+(RGtloR"(Ry(sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttlo s cs%tƒ}d„}tˆ||fƒS(NcSs%x|D]}|t|ƒO}qWdS(N(Rx(RRRJ((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyR"Šs (RQR+(RGR€R"(Ry(sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttbs§s  csg}tˆ||fƒS(N(R+(RGtls(R"(sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttlsŽscsi}tˆ||fƒS(N(R+(RGR>(Rw(sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttds˛scsi|dkrt|ƒ}ntg|| D]}|df^q)ƒ}tˆ||fddƒ\}}|S(NiR%(RRRkR+(RGRER(R>R}Ru(Rv(sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttdsluśs  )!ii'i †iPĂi@œid( RPR-R.tpopR1RRhR RH( R0RPRR|R~RRR‚R„R…R†tstepRG((R"RvRwRysB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest7PsN                   !+, cCsAt}x–|ƒ|gƒ|dgƒfD]s}dgif}x|D]}|j|ƒqDWx|D]}qbWx|D]}|j|ƒqsWx|D]}q‘Wq(Wyddlm}Wntk rËdGHnrXtdƒ}x1g|ƒ|ƒfD]}tt||fƒGHqîWx.gt gƒfD]}tt ||fƒGHqWdS(Nii˙˙˙˙(tListLikeDictSets:can not import snidioms, skipping a performance comparisoni'(( R,R.R1tsnidiomsRŠt ImportErrorR R+RKR-RL(R0tBSRtostoRŠRGRu((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest8Ďs((       cCsdx]dD]U}t|ƒ}t|ƒ}t| ||ƒ}t|ƒ}t|ƒ}t|ƒ}qWdS(Niči'i †(iči'i †(R R-RRDRQ(R0R R&tmtlatlasR((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest9és      cCsbd„}tdƒ}dGH||ƒ|jƒdGH||ƒtdddƒ}dGH||ƒdS(NcSs3x,dD]$}d|GHtt|| fƒGHqWdS(Niči'i †i€seltime(bitset, (la[:%d],))(iči'i †i€(R+RQ(R’R ((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttestsűs  i€sla = range(400000)s la.reverse()i€ĺů˙s/la=random_integers_list(-400000,400000,400000))(R treverseR(R0R•R’((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest10÷s     cCsitdddƒ}xP|dkrdtgƒ}d|_||O}dG|G|jG|jGH|d8}qWdS(Ni€ĺů˙i€iidttest11i(RR-t_splitting_sizet _indisizet_num_seg(R0RER’RW((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyR˜ s   c CsxdD]}tƒ}t|ƒ}||O}x<dD]4}x!t|ƒD]}|j|ƒqFW||O}q3W|j}x˜dD]}x‡td |d |ƒD]o}g}x*t|ƒD]}|j|j|ƒƒqąW|d krę|jƒnt|||ƒ}||O}q˜Wq{WqWdS(Ni i@i€iii!i?iAi˙ii˙˙˙˙ii ( i i@i€iii!i?iAi˙i(i˙˙˙˙i(i˙˙˙˙i(R-R R‡RšR.R–( R0R$RWRGtpopixR]tindisizeR tpops((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest12s&          cCsźtƒ}|dN}|jdƒy|jdƒWntk rDnXd‚|jdƒy|jdƒWntk r|nXd‚|jdƒy|jƒWntk rąnXd‚dS(Nisexpected ValueError for removesexpected ValueError for appendsexpected ValueError for popi˙˙˙˙(R-R1t ValueErrorR.R‡(R0RW((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest133s(        cCsOd}xB|D]:}x1|D])}x dD]}t|||ƒ}q'WqWq WdS(Niü˙˙iœ˙˙˙iß˙˙˙iŕ˙˙˙iá˙˙˙iö˙˙˙i˙˙˙˙iii ii i!idičiiiiii(iü˙˙iœ˙˙˙iß˙˙˙iŕ˙˙˙iá˙˙˙iö˙˙˙i˙˙˙˙iii ii i!idič( iiiiiiiii i!(R (R0RZR€thiRˆR&((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest14Vs    cCs‘xŠtddƒD]y}xpt|d|dƒD]W}t||ƒ}t||ƒ}t|ƒ}d}x|r„||}d|}qgWq.WqWdS(Niß˙˙˙i"ii#ii˙˙˙˙(R tbitrangeR-(R0RRRGRRWR R(((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest15as   c Csx+tdƒD]}xtdƒD]}q Wq Wtj}| d}tdgƒ}x|| |fD]}qbWd„}|t|gƒdƒ|t|gƒdƒ|t| gƒd>dƒx?dddfD].\}}xdD]}xdD]}qěWqßWqĚWdS(Ni@iicSs*y ||>Wntk rnXd‚dS(Nsexpected OverflowError(t OverflowError(Rtsh((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttsv„s   i˙˙˙˙i i'iü˙˙iči˙ţ˙˙i˙˙˙i˙˙˙i˙iiii(ii (ii'(iü˙˙ič( i˙ţ˙˙i˙˙˙i˙˙˙i˙˙˙˙iii˙ii(iii(R RTtmaxintRQ( R0R§tvRŠtminintRR¨RRˆ((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest16vs      c Csx dddtdƒtdƒtdƒtƒfD]Ú}xŃdddtdƒtdƒtdƒtƒfD]Ÿ}x–t|ƒt|ƒt|ƒtt|ƒƒfD]b}xY||t|ƒt|ƒt|ƒtt|ƒƒfD]}||k}||k}qáWqĄWqhWq1WdS(Niiiii i!(R R<RQR-(R0RRRRRz((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest17•s779@  cCsĹtttƒƒƒtƒ>tttƒƒƒtƒ>tttƒƒƒtƒ>tttƒƒƒtƒ>Btttƒƒƒtƒ>tttƒƒƒtƒ>Bg}tttdgƒttƒƒttƒƒgg|D]}|tƒA^qŇ}|g|D]}t|ƒ^qö}xŻ|D]§}t|ƒx”|D]Œ}t||ƒt ||ƒt ||ƒt ||ƒx.|D]&}t |||ƒt |||ƒqnWx|D]}t |||ƒqŸWq-WqWdS(Ni(RQtabsR<R RnRoR-RRRRRRR(R0tanyRRR((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest18§s*39 0#         cCsqd}dgtd|dƒBjƒ}x9td|ddƒD]!}|td|||ƒM}q<Wt|ƒ}|S(Ni ii(R¤RRRS(R0R$tprimesR ((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest19ăs  c$CsĂtj}| d}x’dddddddd dd!dfdd"dfdd$dfdd%dfdd&d fdd'd fdd(d f|d|f|d|df|d|d f|d|d f|d|df|d|f|d|df|d|d f|d|d f|d|dfd||fd||fd||f|||f|||df|||df|||d f|||d ff!D]}t|Œ}q“Wyt||dƒWntk rĐnXd‚|jsčdGHnxĎtdddd|jƒD]°}dG|Gtjjƒx’tdddd|jƒD]s}xjtdddd|jƒD]K}xB|||||f|||||ffD]}t|Œ}q˜WqcWq?WqWdGHdS()Nii ii!i ii?ii@iiiiii@i˙˙˙˙sexpected OverflowErrors>bitrange testing many combinations, this may take some time...i"iRiči tdone(i (i(i!(i (ii!(ii!i(ii?i(ii@i iQi`i`iai€i€i@i`(RTRŠR¤RŚRhR tstdouttflush(R0RŠRŤRtbrR=tsttarg((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest20÷sn                  $ $$ cCsDi}tdƒ}tdƒ}|}|}d|||ƒq>q>WdS(Nstest%dsTest #%d(R.tgetattrRzR(tnumbersR+tenufuncsRER"((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyt test_numsćs $  cCsddl}tdƒ}|jdƒtƒ}d}xDt||jƒ|jƒdrm|dkrm|ƒn|d7}q7WdS(Ni˙˙˙˙i$i"iii(RęR R1RR/R+Rë(RętnumsRWR t dump_alset((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyt test_leakđs      cCsttdƒƒdS(Ni$(R/R (((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyt test_mainst__main__(4RęRRTt numpy.randomRRŒt has_numpyRttimeR R˝Rźt guppy.setst immbitsetRnRot mutbitsetR-RQt immbitrangeR¤timmbitRxRRRRRRRRRRR R!R+R,R5R R<R@RDRHRKRLRMRR/R2R3RzR3(((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pytsh$                        ˙˙˙˙˙Ý8