ó {G_Tc@sNddlZddlmZddlmZmZmZddlZddlZddl Z ddl Z ddl m Z m Z ddlZddlZddlZddlZddlZddlmZdfd„ƒYZdefd „ƒYZd efd „ƒYZd ejfd „ƒYZed„ZedkrJedeƒndS(iÿÿÿÿN(t test_support(tproxytreftWeakSet(t randrangetshuffle(t UserStringtFoocBseZRS((t__name__t __module__(((s-/usr/local/lib/python2.7/test/test_weakset.pyRst SomeClasscBs,eZd„Zd„Zd„Zd„ZRS(cCs ||_dS(N(tvalue(tselfR ((s-/usr/local/lib/python2.7/test/test_weakset.pyt__init__scCs,t|ƒt|ƒkrtS|j|jkS(N(ttypetFalseR (R tother((s-/usr/local/lib/python2.7/test/test_weakset.pyt__eq__scCs|j|ƒ S(N(R(R R((s-/usr/local/lib/python2.7/test/test_weakset.pyt__ne__scCstt|jfƒS(N(thashR R (R ((s-/usr/local/lib/python2.7/test/test_weakset.pyt__hash__s(RR R RRR(((s-/usr/local/lib/python2.7/test/test_weakset.pyR s   tRefCyclecBseZd„ZRS(cCs ||_dS(N(tcycle(R ((s-/usr/local/lib/python2.7/test/test_weakset.pyR #s(RR R (((s-/usr/local/lib/python2.7/test/test_weakset.pyR"st TestWeakSetcBs¦eZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „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&d%„Z'd&„Z(d'„Z)d(„Z*d)„Z+d*„Z,d+„Z-d,„Z*d-„Z+RS(.cCsTgd D]}t|ƒ^q|_gd D]}t|ƒ^q)|_gtjD]}t|ƒ^qN|_gdD]}t|ƒ^qp|_gdD]}t|ƒ^q’|_gd D]}t|ƒ^q´|_t |jƒ|_ t |jƒ|_ t |jƒ|_ t |jƒ|_ tj|jƒ|_td ƒ|_t |jgƒ|_dS( NtatbtctxtytztabtabcdetdeftF(RRR(RRR(R titemstitems2tstringt ascii_letterstletterstab_itemst abcde_itemst def_itemsRt ab_weaksett abcde_weaksett def_weaksettstdicttfromkeystdtobjtfs(R R((s-/usr/local/lib/python2.7/test/test_weakset.pytsetUp(s""%"""cCs_ttƒ}xLttƒD]>}|dks|jdƒr@qn|j||d|ƒqWdS(Nt test_c_apit_sWeakSet missing method (tdirRtsett startswithtassertIn(R tweaksetmethodstmethod((s-/usr/local/lib/python2.7/test/test_weakset.pyt test_methods8s   cCs|jttgdƒdS(Ni(t assertRaisest TypeErrorR(R ((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_new_or_init@scCs^|jt|jƒt|jƒƒ|jt|jƒdƒ|`|jt|jƒdƒdS(Nii(t assertEqualtlenR-R0R2R1(R ((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_lenCs"cCs‚x3|jD](}|j||jk||jkƒq W|jd|jƒ|j|j|jƒ|`|jtdƒ|jƒdS(NiR!( R&R@R-R0t assertNotInR9R1R2R (R R((s-/usr/local/lib/python2.7/test/test_weakset.pyt test_containsIs &cCs|jj|jƒ}x?|jD]4}|j||k||jkpO||jkƒqW|j|jt|jƒƒ|jt|ƒtƒ|j t |jjggƒxdt t t jttfD]J}t|j|jƒ}||jƒ}|j|jj|ƒ|ƒ~q¾W|jt|ƒt|jƒt|jƒƒ|jjƒtjƒ|jt|ƒt|jƒt|jƒƒdS(N(R-tunionR#R&R@R0RR"RR=R>R7t frozensetR.R/tlistttupleRAtpoptgctcollect(R tuRtCR((s-/usr/local/lib/python2.7/test/test_weakset.pyt test_unionRs2,  cCsY|jj|jƒ}|j|jt|jƒB|ƒ|j|jt|jƒB|ƒdS(N(R-RER#R@R7RF(R ti((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_orcs cCs<t|jƒ}|j|jƒ}x?|jD]4}|j||k||jko[||jkƒq+W|j|t|jƒƒ|jt|ƒtƒxNtttj t t fD]4}tgƒ}|j|j||j ƒƒ|ƒq«W|jt |ƒt |jƒƒ|jjƒtjƒ|jt |ƒt |jƒƒdS(N(RR&t intersectionR#R@RR7RFR.R/RGRHR"RARIRJRK(R R-RORRMR((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_intersectionhs2 &  cCsI|j|jjt|jƒƒƒ|j|jjt|jƒƒ ƒdS(N(t assertTrueR-t isdisjointRR#R&(R ((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_isdisjointws"cCsY|jj|jƒ}|j|jt|jƒ@|ƒ|j|jt|jƒ@|ƒdS(N(R-RQR#R@R7RF(R RO((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_and{s cCs©|jj|jƒ}x?|jD]4}|j||k||jkoO||jkƒqW|j|jt|jƒƒ|jt|ƒtƒ|j t |jjggƒdS(N( R-t differenceR#R&R@R0RR"RR=R>(R ROR((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_difference€s 2cCsY|jj|jƒ}|j|jt|jƒ|ƒ|j|jt|jƒ|ƒdS(N(R-RWR#R@R7RF(R RO((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_subˆs cCs|jj|jƒ}x=|jD]2}|j||k||jk||jkAƒqW|j|jt|jƒƒ|jt|ƒtƒ|j t |jjggƒ|jt |ƒt |jƒt |jƒƒ|jj ƒt jƒ|jt |ƒt |jƒt |jƒƒdS(N(R-tsymmetric_differenceR#R&R@R0RR"RR=R>RARIRJRK(R ROR((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_symmetric_differences0,  cCsY|jj|jƒ}|j|jt|jƒA|ƒ|j|jt|jƒA|ƒdS(N(R-RZR#R@R7RF(R RO((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_xor™s cCsñ|j|j|jkƒ|j|j|jkƒ|j|j|jkƒ|j|j|jkƒ|j|j|jkƒ|jtdƒjdƒƒ|jtdƒjdƒƒ|jtdƒjdƒƒ|jtdƒjdƒƒdS(NRtabctcbs(RSR*R+t assertFalseR,R7tissubsett issuperset(R ((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_sub_and_superžscCsh|j|j|jkƒ|j|j|jkƒ|j|j|jkƒ|jtƒtƒkƒdS(N(RSR*R+R_R,R(R ((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_lt©scCsh|j|j|jkƒ|j|j|jkƒ|j|j|jkƒ|jtƒtƒkƒdS(N(RSR+R*R_R,R(R ((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_gt¯scCsUtd„tdƒDƒƒ}x2|D]*}||_||_t|gƒ|_q#WdS(Ncss|]}tƒVqdS(N(R(t.0RO((s-/usr/local/lib/python2.7/test/test_weakset.pys ·siè(RtrangeRtsubR7(R R-telem((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_gcµs    cCspdtfd„ƒY}|ƒ}tƒ}|j|ƒ|j||ƒ|j|ƒ|j|ƒ|j|ƒdS(NtHcBseZd„ZRS(cSstt|ƒd@ƒS(Niÿÿÿ(tinttid(R ((s-/usr/local/lib/python2.7/test/test_weakset.pyRÀs(RR R(((s-/usr/local/lib/python2.7/test/test_weakset.pyRj¿s(RR7taddR9tremovetdiscard(R RjR-tf((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_subclass_with_custom_hash½s     cCsˆtƒ}|j|jƒ|j||jƒ|j|jƒ|j|t|jƒƒ|jt|j|dƒ|jt|jdƒdS(Nii(RR R"R@R-R#R=R>(R R-((s-/usr/local/lib/python2.7/test/test_weakset.pyt test_initÊs cCs;t|jƒ}t|ƒ}|jt|ƒt|ƒƒdS(N(RR"tassertNotEqualRl(R R-tt((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_constructor_identityÓs cCs|jtt|jƒdS(N(R=R>RR-(R ((s-/usr/local/lib/python2.7/test/test_weakset.pyt test_hashØscCsC|jjƒ|j|jtgƒƒ|jt|jƒdƒdS(Ni(R-tclearR@RRA(R ((s-/usr/local/lib/python2.7/test/test_weakset.pyt test_clearÛs cCsE|jjƒ}|j|j|ƒ|jt|jƒt|ƒƒdS(N(R-tcopyR@RsRl(R tdup((s-/usr/local/lib/python2.7/test/test_weakset.pyt test_copyàscCsÜtdƒ}|jj|ƒ|j||jƒ|jjƒ}|jj|ƒ|j|j|ƒ|jt|jjgƒ|jjt ƒƒ|j t |jƒdkƒ|jj|j ƒ|j t |jƒdkƒdS(NtQi( R R-RmR9RyR@R=R>R2RRSRAR1(R RRz((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_addås cCsetdƒ}|jj|ƒ|j||jƒ|jt|jj|ƒ|jt|jjgƒdS(NR(R R-RnRCR=tKeyErrorR>(R R((s-/usr/local/lib/python2.7/test/test_weakset.pyt test_removeòs  cCsitdƒtdƒ}}|jj|ƒ|j||jƒ|jj|ƒ|jt|jjgƒdS(NRR|(R R-RoRCR=R>(R Rtq((s-/usr/local/lib/python2.7/test/test_weakset.pyt test_discardùs cCs\x?tt|jƒƒD](}|jjƒ}|j||jƒqW|jt|jjƒdS(N(RfRAR-RIRCR=R~(R RORh((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_popscCss|jj|jƒ}|j|dƒx+|j|jD]}|j||jƒq6W|jt|jjggƒdS(N( R-tupdateR#R@tNoneR"R9R=R>(R tretvalR((s-/usr/local/lib/python2.7/test/test_weakset.pyt test_updates cCsK|jjt|jƒƒx+|j|jD]}|j||jƒq*WdS(N(R-RƒR7R#R"R9(R R((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_update_set scCsJ|jt|jƒO_x+|j|jD]}|j||jƒq)WdS(N(R-R7R#R"R9(R R((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_iorscCs§|jj|jƒ}|j|dƒx_|j|jD]M}||jkrp||jkrp|j||jƒq6|j||jƒq6W|jt |jjggƒdS(N( R-tintersection_updateR#R@R„R"R9RCR=R>(R R…R((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_intersection_updatescCs~|jt|jƒM_x_|j|jD]M}||jkrc||jkrc|j||jƒq)|j||jƒq)WdS(N(R-R7R#R"R9RC(R R((s-/usr/local/lib/python2.7/test/test_weakset.pyt test_iand!s cCsÃ|jj|jƒ}|j|dƒx_|j|jD]M}||jkrp||jkrp|j||jƒq6|j||jƒq6W|jt |jjggƒ|jt |jj ggƒdS(N( R-tdifference_updateR#R@R„R"R9RCR=R>tsymmetric_difference_update(R R…R((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_difference_update)scCs~|jt|jƒ8_x_|j|jD]M}||jkrc||jkrc|j||jƒq)|j||jƒq)WdS(N(R-R7R#R"R9RC(R R((s-/usr/local/lib/python2.7/test/test_weakset.pyt test_isub4s cCs¥|jj|jƒ}|j|dƒx]|j|jD]K}||jk||jkArn|j||jƒq6|j||jƒq6W|jt |jjggƒdS(N( R-RR#R@R„R"R9RCR=R>(R R…R((s-/usr/local/lib/python2.7/test/test_weakset.pyt test_symmetric_difference_update<scCs||jt|jƒN_x]|j|jD]K}||jk||jkAra|j||jƒq)|j||jƒq)WdS(N(R-R7R#R"R9RC(R R((s-/usr/local/lib/python2.7/test/test_weakset.pyt test_ixorFs cCs–|jjƒ}||O}|j||jƒ||M}|j||jƒ||8}|j|tƒƒ|jjƒ}||N}|j|tƒƒdS(N(R-RyR@R(R Rt((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_inplace_on_selfNs    cCs¯|j|j|jkƒ|j|jt|jƒkƒ|j|jt|jƒkƒ|j|jt|jƒkƒ|j|jt|jƒkƒ|j|jdkƒdS(Ni(RSR-RR"R_R7RGRH(R ((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_eqZs cCsH|j|jt|jƒkƒtƒ}tƒ}|j||kƒdS(N(RSR-R7R"RR_(R ts1ts2((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_necs  cCs§gdD]}t|ƒ^q}t|ƒ}t|ƒ}t|ƒ|d=tjƒ|jtt|ƒƒt|ƒt|ƒdgƒ~|j t|ƒt|ƒƒdS(NRRRiÿÿÿÿi(RRR( R RtitertnextRJRKR9RARGR@(R RR"R-tit((s-/usr/local/lib/python2.7/test/test_weakset.pyt!test_weak_destroy_while_iteratingis    2c sOgtjD]}t|ƒ^q ‰tˆƒ‰tj‡‡fd†ƒ}|ƒ}|j|ˆƒWdQX|ƒ}|jtˆj |ƒWdQX|j|ˆƒ|ƒ}ˆj |ƒWdQX|j |ˆƒˆj ƒ}|ƒ}ˆj |ƒWdQX|jtˆƒt|ƒƒ|ƒ}ˆjƒWdQX|jtˆƒdƒdS(Nc3sOzAtˆƒ}t|ƒttˆjƒƒƒ}tjƒ|VWdd}XdS(N(R—R˜R tstrRIRJRKR„(R™RL(R"R-(s-/usr/local/lib/python2.7/test/test_weakset.pyt testcontext}s    i(R$R%R Rt contextlibtcontextmanagerRCR=R~RnRmR9RyRƒR@RARw(R RRœRLRt((R"R-s-/usr/local/lib/python2.7/test/test_weakset.pyt,test_weak_destroy_and_mutate_while_iteratingys$"       cCs¸d}gt|ƒD]}tƒ^q}t|ƒ}~t|ƒ}yt|ƒWntk rdnXtjƒt|ƒ}~tjƒt|ƒ}|j |dƒ|j |dƒdS(Niii(ii( RfRRR—R˜t StopIterationRJRKRAR9R@(R tNROR"R-R™tn1tn2((s-/usr/local/lib/python2.7/test/test_weakset.pyttest_len_cycles™s "       c Cs|jtjtjƒŒx÷tddƒD]æ}d}tjdƒtj|||ƒgt|ƒD]}tƒ^qb}t|ƒ}~t|ƒ}yt |ƒWnt k r³nXt |ƒ}~t |ƒ}|j |dƒ|j ||ƒ|j |dƒ|j ||ƒq)WdS(Niidii(t addCleanupRJt set_thresholdt get_thresholdRfRKRRR—R˜R RAtassertGreaterEqualtassertLessEqual( R tthR¡ROR"R-R™R¢R£((s-/usr/local/lib/python2.7/test/test_weakset.pyt test_len_race¬s( "     cCs§gdD]}t|ƒ^q}t|ƒ}t|ƒ}t|ƒ|d=tjƒ|jtt|ƒƒt|ƒt|ƒdgƒ~|j t|ƒt|ƒƒdS(NRRRiÿÿÿÿi(RRR( tustrRR—R˜RJRKR9RARGR@(R RR"R-R™((s-/usr/local/lib/python2.7/test/test_weakset.pyRšÄs    2c sXgtjD]}t|ƒ^q ‰tˆƒ‰tj‡‡fd†ƒ}|ƒ}|j|ˆkƒWdQX|ƒ}|jtˆj |ƒWdQX|j|ˆkƒ|ƒ}ˆj |ƒWdQX|j |ˆkƒˆj ƒ}|ƒ}ˆj |ƒWdQX|jtˆƒt|ƒƒ|ƒ}ˆjƒWdQX|jtˆƒdƒdS(Nc3svzhtˆƒ}ttt|ƒƒƒ}ttˆjƒƒƒ}||krXt|ƒntjƒ|VWdd}XdS(N(R—R¬R›R˜RIRJRKR„(R™tyieldedRL(R"R-(s-/usr/local/lib/python2.7/test/test_weakset.pyRœØs     i(R$R%R¬RRRžR_R=R~RnRmRSRyRƒR@RARw(R RRœRLRt((R"R-s-/usr/local/lib/python2.7/test/test_weakset.pyRŸÔs$"       (.RR R3R<R?RBRDRNRPRRRURVRXRYR[R\RbRcRdRiRqRrRuRvRxR{R}RRR‚R†R‡RˆRŠR‹RŽRRR‘R’R“R–RšRŸR¤R«(((s-/usr/local/lib/python2.7/test/test_weakset.pyR&s\                                 cCstjtƒdS(N(Rt run_unittestR(tverbose((s-/usr/local/lib/python2.7/test/test_weakset.pyt test_mainúst__main__R¯(tunittestttestRtweakrefRRRtoperatorRyR$tostrandomRRtsystwarningst collectionsRJRRR¬RtobjectR RtTestCaseRR„R°RtTrue(((s-/usr/local/lib/python2.7/test/test_weakset.pyts*          ÿÕ