ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ +xQc@s ddlZddlZddlZyddlZWnek rMdZnXdZerfdZn dZddlm Z ddl Z ddl Z ddl Te ZeZeZe ZeZeZdZd Zd Zed Zd Zd ZdZdZdZ dZ!dZ"fdddZ#defdYZ$dZ%dd>dZ&dZ'dZ(dZ)dZ*dZ+dZ,d fd!YZ-d"fd#YZ.ed$Z/d%Z0d&Z1e-Z2e3d'kr e1ndS((iNiicCs"tttjj|||gS(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*cCs8|||B@|kst|||@B|ks4tdS(N(tAssertionError(tatb((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyt absorption!scCsH||@|@|||@@ks"t||B|B|||BBksDtdS(N(R(RRtc((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyt associative%s"cCs8||@||@kst||B||Bks4tdS(N(R(RR((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyt commutative)scCs|dkrI||@||Bks)t||B||@kstnL|||@||||Bksot|||B||||@kstdS(N(tNoneR(RRR((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pytdeMorgan-s   &cCs0||@|kst||B|ks,tdS(N(R(R((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyt idempotence5scCs\||@|kst||@|ks,t||B|ksBt||B|ksXtdS(N(R(RR((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyt inclusion9scCs|||@B||B||B@ks&t|||B@||@||@BksLt||@||@B||@B||B||B@||B@kst||@||@ko||B||Bk s||kstdS(N(R(RRR((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyt distributive@s&&:cCsx|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       cCsd}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(NcSs| s|stdS(N(R(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>x7|D]/}t|tt|ks1tt||@t|ksStt||Bt|ksutx|D]}t||Btt||Bkstt||@tt||@kstt||tt||kstt||Att||Aks|tq|WqWdS(N(RtlistR(RRRR((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyt test_set_len`s $"" ,,,cCsx|D]}x|D]}|t|B||Bks:t|t|||ksZt|t|@||@kszt|t|A||AkstqWqWdS(N(R!Rttuple(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#eZdZdZdZRS(cCstj|t|ddS(Ni (tbitsmuttappendtid(tselfR+((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyR1scCstj|t|ddS(Ni (R0tremoveR2(R3R+((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyR4scCstj|t|dS(Ni (R0t __contains__R2(R3R+((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyR5s(t__name__t __module__R1R4R5(((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.pytadds   licCsttj| |S(N(tlongRt randrange(tlim((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyR scCs\t}t}td@}t}t}td@}|||>|||>}|S(Nl(R (RRtashRtdtbshR)((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pytrandlongs      cCs4i}x'|D]}||kr d|| list of n unique random ints in [-amp,amp]i'iPi(R R R1(tntampRAtrngR R((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pytrandlists     cCs(|j}x|D]}||qWdS(N(R1(RRtaptbit((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pytt_appends  cCs2|j}x"|D]}|t|dqWdS(Ni (R1R2(RRRLRM((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyt t_append_ids  tTestcBsUeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z dd Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&RS(%icCsdS(N((R3((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest0sc Csfddl}|j}tdddggBtdddgg@tdddgdgBtdddgtdBtdddgtdddBttgtdtdtdttf}||IJx |D]}|tkstqWtdtd|td IJ|tdIJ|td IJ|tdgtdBIJ|ttdgIJ|ttdgIJtdj}|}|dO}|t|IJ|d O}|t|IJ|ddgO}|t|IJ|dO}|t|IJ|tdgO}|t|I|IJ|tdgO}t|}||IJ||M}||IJ|dM}||IJ||O}|d M}|t|IJ||O}|ddgM}|t|IJ||O}|d M}|t|IJ||O}|tdgM}||IJ||O}|tdgM}||IdI|tdg@IJ|dN}||IJ|d N}|t|IJ|ddgN}|t|IJ|d!N}|t|IJ|tdgN}||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|tdO}||It|IJ|tdM}||It|IJ||kst|tdIJ|tdgIJ|tdgtdgBIJt j dkrb|j dksbtndS("Niiiiiidillii il@iiii%sts&.tmtiilllis(ImmBitSet([]), ImmBitSet([]), ImmBitSet([]), ImmBitSet([]), ImmBitSet([]), ImmBitSet([])) ImmBitSet([15]) ImmBitSet([4]) (~ImmBitSet([15])) ImmBitSet([0, 1]) 2 2 [0] [0, 14] [0, 3, 4, 14] [0, 3, 4, 6, 8, 14] [0, 3, 4, 6, 7, 8, 14] MutBitSet([0, 3, 4, 6, 7, 8, 14]) ImmBitSet([0, 3, 4, 6, 7, 8, 14, 37]) MutBitSet([0, 3, 4, 6, 7, 8, 14, 37]) MutBitSet([0]) [14] [3, 4] [6, 8] MutBitSet([7]) MutBitSet([0, 3, 4, 7, 8, 14, 37]) ts&. ImmBitSet([0, 3, 4, 7, 8, 14, 37]) MutBitSet([3, 4, 7, 8, 14, 37]) [3, 4, 7, 8, 37] [7, 8, 37] [6, 7, 37] MutBitSet([6, 37]) MutBitSet(~ImmBitSet([])) mt (~ImmBitSet([])) (~ImmBitSet([])) (~ImmBitSet([])) MutBitSet(~ImmBitSet([])) (~ImmBitSet([])) -1 -1 MutBitSet([]) MutBitSet([]) 0 0 MutBitSet(~ImmBitSet([])) -1 MutBitSet(~ImmBitSet([0])) -2 MutBitSet([1]) 2 MutBitSet(~ImmBitSet([])) -1 MutBitSet(~ImmBitSet([0])) -2 MutBitSet([1]) 2 MutBitSet(~ImmBitSet([])) -1 MutBitSet(~ImmBitSet([0])) -2 (~ImmBitSet([])) ImmBitSet([-1]) ImmBitSet([-1, 4]) (ll(i(ii(ii(ii( tStringIOtbitsetR tEmptyRR9RtmutcopyR!tsyst hexversiontgetvalue( R3RSR%temptiesRBtmstmsattstxs((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest1s  #                         $        8  ,   "        )c CsxgtdD]}t^qD]}xgtdD]}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|qWqtWtjdkrqLnxN|dD]B}x9t||dD]$\} } t| | kst qWqWqLWq#WdS(Ni iii( R R?RTR0R1RWRXtzipR9R( R3R RtjRR]ttattbttrR)R+((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest2s0))"" 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| qWqhWqFWtjdkrdSxN|dD]B} x9t| |dD]$\} } t| | kst qWqWdS(Niiiii( R?R RTR0R1R9RWRXR`R( R3tptopRRR]ttpRbRcRdR)R+((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest3sB    ""      "       cCsd}d}xtdd d d|jdD]}d |>}|Gt|d ||fGt|d t||fGt|d t|t|fGt|d t||fGt|d t|t|fGt|d t|t|fGHq1WdS( NcSsSxL|dkrN||O}||O}||O}||O}||O}|d8}qWdS(Nii((RHR+ty((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pytf1s     liii iiiliii(R tfasterR.RTR0(R3RkR+texpRj((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest4s ( ""c Csi}x{tdD]m}t}d||O}qWdS(Nl((RRRM((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyR%s (R.(RJtloR%(R{(sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttlos cs%t}d}t||fS(NcSs%x|D]}|t|O}qWdS(N(Rz(RRRM((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyR%s (RTR.(RJRR%(R{(sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttbss  csg}t||fS(N(R.(RJtls(R%(sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttlsscsi}t||fS(N(R.(RJRA(Ry(sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttdsscs{|dkrt|}ntg|| D]}|df^q)}t||fdd\}}||kswt|S(NiR((RRRoR.R(RJRHR+RARRw(Rx(sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttdslus  )!ii'iiPi@id( RSR0R1tpopR4RYRRRlR RK( R3RSRR~RRRRRRRtstepRJ((R%RxRyR{sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest7PsR                     !+, cCset}x||g|dgfD]}dgif}x|D]}|j|qDWx |D]}||ksbtqbWx|D]}|j|qWx |D]}||kstqWq(Wyddlm}Wntk rdGHnrXtd}x1g||fD]}tt ||fGHqWx.gt gfD]}tt ||fGHqCWdS(Nii(tListLikeDictSets:can not import snidioms, skipping a performance comparisoni'(( R/R1RR4tsnidiomsRt ImportErrorR R.RNR0RO(R3tBSRtostoRRJRw((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest8s((       cCsxdD]}t|}t|}t||ks=tt| ||}t|}t|}t|}t||kstqWdS(Nii'i(ii'i(R R0R!RRRGRT(R3R R)tmtlatlasR((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest9s      cCsbd}td}dGH|||jdGH||tddd}dGH||dS(NcSs3x,dD]$}d|GHtt|| fGHqWdS(Nii'iiseltime(bitset, (la[:%d],))(ii'ii(R.RT(RR ((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttestss  isla = range(400000)s la.reverse()is/la=random_integers_list(-400000,400000,400000))(R treverseR(R3RR((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest10s     cCsitddd}xP|dkrdtg}d|_||O}dG|G|jG|jGH|d8}qWdS(Niiiidttest11i(RR0t_splitting_sizet _indisizet_num_seg(R3RHRR[((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyR s   c CsnxgdD]_}t}t|}||O}x<dD]4}x!t|D]}|j|qFW||O}q3W|j}xdD]}xtd |d |D]}g}x*t|D]}|j|j|qWt|gkst|d kr|jn||kstt|||}||O}||jksFtt||kstqWq{WqWdS(Ni i@iiii!i?iAiiiii ( i i@iiii!i?iAii(ii(ii(R0R RRR1R!RR( R3R'R[RJtpopixRatindisizeR tpops((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest12s,          cCst}| st|dN}|s,t|jd|sEtt|dgksaty|jdWntk rnXd|jdt|gksty|jdWntk rnXd|jdy|jWntk r nXddS(Nisexpected ValueError for removesexpected ValueError for appendsexpected ValueError for popi(R0RR4R!t ValueErrorR1R(R3R[((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest133s2           cCsd}x|D]}tt|t|ks7tx|D]w}tt||t||ksntxDdD]<}t|||}tt||||ksutquWq>Wq WdS(Niiiiiiiiii ii i!idiiiiiii(iiiiiiiiii ii i!idi( iiiiiiiii i!(R!tbitrangeR R(R3R^RthiRR)((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest14Vs $ * cCs'x tddD]}xt|d|dD]}t||}t||}|d|ksht|d|dkstt|}|d|kst|d|dkstd}xT|r||}||j|kst||j|ks td|}qWq.WqWdS(Nii"ii#ii(R RRR0R(R3RRRJRR[R R+((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest15as   c CsxWtdD]I}x@tdD]2}tt||>t||>ks tq Wq Wtj}| d}tdg}x7|| |fD]%}||>t|gkstqWd}|t|gd|t|gd|t| gd>dxudddfD]d\}}xUdD]M}xDdD]<}t||||>t|||||ks7tq7Wq*WqWdS(Ni@iicSs*y ||>Wntk rnXddS(Nsexpected OverflowError(t OverflowError(Rtsh((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttsvs   ii i'iiiiiiiiii(ii (ii'(ii( iiiiiiiii(iii(R R9RTRRWtmaxintR( R3RtvRtminintRRRR((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest16vs 4  #   c CsxdddtdtdtdtfD]}xdddtdtdtdtfD]m}xdt|t|t|tt|fD]0}x'||t|t|t|tt|fD]}||k}|||kks t|||@|kks't|t|t|@t|kksUt||k}|||kksyt|||ko||kkst|||kot|t|kkstqWqWqhWq1WdS(Niiiii i!(R R?RTR0RR9(R3RRRRR|((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest17s779@ . $cCstttt>tttt>tttt>tttt>Btttt>tttt>Bg}tttdgttttgg|D]}|tA^q}|g|D]}t|^q}x|D]}t|ko3tkns>t|t@tksTt|tBtksjt|t@|kst|tB|kst||@tkst||Btkstttkstttkst||kstt|x|D]}||@||ks0tt ||t ||t ||t ||x.|D]&}t |||t|||qkW||k||@|kko||B|kko||@tkko||kko||Btkknst||A||Aks*tx@|D]8}||A|A|||AAksYtt |||q1W|tA|kst||Atkst||A||@||@BkstqWqWdS(Ni(RTtabsR?R RURqR0RRRRRRRR(R3tanyRRR((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest18sL39 0# "       3H "c Csd}dgtd|dBj}x9td|ddD]!}|td|||M}q<Wt|}t|dkst|d dddddd d d d d g kst|ddkst|ddkst|S(Niiii&i iii i iiiiii i%i(RRVR!RR(R3R'tprimesR ((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest19s 4c$Cstj}| d}xdddddddd 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]0}t|}t|t|kstqWyt||dWntk rnXd|jsdGHnxtdddd|jD]}dG|Gtjj xtdddd|jD]}xtdddd|jD]i}x`|||||f|||||ffD]0}t|}t|t|kstqWqWq]Wq$WdGHdS()Nii ii!i ii?ii@iiiiii@isexpected OverflowErrors>bitrange testing many combinations, this may take some time...i"iRii tdone(i (i(i!(i (ii!(ii!i(ii?i(ii@i iQi`i`iaiii@i`( RWRRR!R RRRltstdouttflush(R3RRRtbrR@tsttarg((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyttest20sn                "  $ $$ .cCsi}td}td}|}|}d|||q>q>WdS(Nstest%dsTest #%d(R1tgetattrR|R(tnumbersR5tenufuncsRHR%((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyt test_numss $  cCsddl}td}|jdt}d}xDt||j|jdrm|dkrm|n|d7}q7WdS(Nii$i"iii(RR R4RR9R5R(RtnumsR[R t dump_alset((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyt test_leaks      cCsttddS(Ni$(R9R (((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pyt test_mainst__main__(4RRRWt numpy.randomRRt has_numpyRttimeR RRt guppy.setsRRURqRR0RTt immbitrangeRtimmbitRzRRRRRRRRRR R"R$R.R/R8R R?RCRGRKRNRORPRR9R<R=R|R6(((sB/opt/alt/python27/lib64/python2.7/site-packages/guppy/sets/test.pytsh$                        8