mò 9ã¸Ec@sìdklZlZlZlZdklZlZlZl Z dk l Z l Z l Z lZdklZlZlZlZdklZlZlZlZdefd„ƒYZd„Zdefd „ƒYZd efd „ƒYZd efd „ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZ defd„ƒYZ!defd„ƒYZ"defd„ƒYZ#d„Z$de#fd„ƒYZ%de#fd„ƒYZ&d„Z'd „Z(d!„Z)e*d"jo e)ƒnd#S($(sTestCases TestSuitesTextTestRunners makeSuite(sOOBTreesOOBucketsOOSets OOTreeSet(sIOBTreesIOBucketsIOSets IOTreeSet(sIIBTreesIIBucketsIISets IITreeSet(sOIBTreesOIBucketsOISets OITreeSett SetResultcBsttZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d „Z d „Z d „Z d „Z RS( NcCs»ddddg|_dddddg|_g}|iD]}|||iƒq;~|_g}|iD]}|||iƒqk~|_g}|iD]}||ƒq›~|_dS(Niiiiiii( tselftAkeystBkeyst_[1]tbuilderstmakesettAstBstemptys(RRR((t6/data/zmath/zope/lib/python/BTrees/tests/testSetOps.pytsetUps 00cCsIt|ƒ}x,|D]$}||jo|i|ƒqqW|iƒ|S(N(tlisttxtresulttytetappendtsort(RR RRR((R t_union!s   cCs9g}x,|D]$}||jo|i|ƒq q W|S(N(RR RRR(RR RRR((R t _intersection)s  cCs~t|ƒ}x,|D]$}||jo|i|ƒqqWt|dƒo/g}|D]}||||fqV~}n|S(Ntvalues( R R RRRtremovethasattrRtk(RR RRRRR((R t _difference0s  /cCsëxB|i|i|ifD](}|ddƒ}|i|djƒqWxŸ|i|i|ifD]…}x||iD]q}||dƒ}|i||jƒ|d|ƒ}||ijo|i|djƒqn|i||jƒqnWq^WdS(N( Rtuniont intersectiont differencetoptNonetCtassert_RtA(RR!RR((R ttestNone:s cCs°x©|iD]ž}x•|iD]Š}|i||ƒ}|it|dƒ ƒ|i t |ƒ|i ƒ|i||ƒ}|it|dƒ ƒ|i t |ƒ|i ƒqWq WdS(NR( RRR!R tERRR Rt assertEqualR R(RR!RR#((R ttestEmptyUnionJs  cCsªx£|iD]˜}x|iD]„}|i||ƒ}|it|dƒ ƒ|i t |ƒgƒ|i||ƒ}|it|dƒ ƒ|i t |ƒgƒqWq WdS(NR( RRR!R R#RRR RR$R (RR!RR#((R ttestEmptyIntersectionUs  cCsÿxø|iD]í}xä|iD]Ù}|i||ƒ}|it|dƒt|dƒƒt|dƒo,|it |i ƒƒt |i ƒƒƒn|it |ƒ|i ƒ|i||ƒ}|it|dƒt|dƒƒ|it |ƒgƒqWq WdS(NR( RRR!R R#RRR$RR titemsR(RR!RR#((R ttestEmptyDifference`s  ","cCs|i|i}xj|D]b}xY|D]Q}|i||ƒ}|it |dƒ ƒ|i t |ƒ|i ||ƒƒq$WqWdS(NR( RRRtinputsR!tBRRR RR$R R(RR!R)RR*((R t testUnionoscCs|i|i}xj|D]b}xY|D]Q}|i||ƒ}|it |dƒ ƒ|i t |ƒ|i ||ƒƒq$WqWdS(NR( RRRR)R!R*RRR RR$R R(RR!R)RR*((R ttestIntersectionwscCsÂ|i|i}x«|D]£}xš|D]’}|i||ƒ}|it |dƒt |dƒƒ|i ||ƒ}t |dƒo |it |i ƒƒ|ƒq$|it |ƒ|ƒq$WqWdS(NR(RRRR)R!R*RRR$RRtwantR R'(RR!R)RR*R-((R ttestDifferences" c CsÓdkl}d} d} x³tdƒD]¥} |d| ƒ}g}t|ƒD]}||d| ƒqL~}g}|i D]}|||ƒqy~}t|ƒ}|d| ƒ}g}t|ƒD]}||d| ƒqÁ~}g}|i D]}|||ƒqî~}t|ƒ}x²|i|if|i|if|i|iffD]}\}}xn|D]f} x]|D]U} || | ƒ}|||ƒ}|it|ƒ|| | ||t|ƒ|fƒqjWq]WqJWq&WdS(N(srandintiÈiiii(trandomtrandinttMAXSIZEtMAXVALtrangetitnRtjRRRRRtIISetRRRRRRRRRt simulatorR!R*tgotR-R$R (RR6R8R-RR0RRR9R!R*R1R2R4RR5RRR((R ttestLargerInputsŒs.  0* 0* 4 (t__name__t __module__R RRRR"R%R&R(R+R,R.R:(((R Rs        cCsg|d„}|S(NcCs|t||ƒƒS(N(t mapbuildertziptkeys(R?R=((R R¨s(R=R(R=R((R t makeBuilder§stPureIIcBs?tZdklZlZlZeeee ƒee ƒfZ RS(N(sunions intersections difference( R;R<tBTrees.IIBTreeRRRR7t IITreeSetR@tIIBTreetIIBucketR(((R RA¬stPureIOcBs?tZdklZlZlZeeee ƒee ƒfZ RS(N(sunions intersections difference( R;R<tBTrees.IOBTreeRRRtIOSett IOTreeSetR@tIOBTreetIOBucketR(((R RF°stPureOOcBs?tZdklZlZlZeeee ƒee ƒfZ RS(N(sunions intersections difference( R;R<tBTrees.OOBTreeRRRtOOSett OOTreeSetR@tOOBTreetOOBucketR(((R RL´stPureOIcBs?tZdklZlZlZeeee ƒee ƒfZ RS(N(sunions intersections difference( R;R<tBTrees.OIBTreeRRRtOISett OITreeSetR@tOIBTreetOIBucketR(((R RR¸st MultiUnioncBs>tZd„Zd„Zd„Zd„Zd„Zd„ZRS(NcCs#|it|igƒƒdƒdS(Ni(RR$tlent multiunion(R((R t testEmptyÂsc CsóxìdgtdƒtdddƒtdddƒfD]¶}|}|}|iƒ|}|iƒx„|||fD]s}xj|i |i fD]V}||ƒ}|i |gƒ}|it|ƒt|ƒƒ|i|t|ƒƒqWqtWq5WdS(Niiiöÿÿÿiiii (R3tsequencetseq1tseq2treverset seqsortedRtseqRtmksett mktreesettbuildertinputRZtoutputR$RYR ( RRaR\RfReR^R]R`Rd((R ttestOneÅs5   cCsgx`|i|ifD]L}|ddd gƒ}|i|gƒ}|idddgt|ƒƒqWdS( Niiiiii(ii(ii(ii( RtmkbuckettmkbtreeRdReRZRfR$R (RReRdRf((R ttestValuesIgnoredÓs cCs—d}|it|ƒƒ}|i|gdƒ}|it|ƒ|ƒ|i|i ƒdƒ|i|i ƒ|dƒ|it |ƒt|ƒƒdS(Ni †i ii( tNRRbR3ReRZRfR$RYtminKeytmaxKeyR (RRkRfRe((R t testBigInputÙsc Csêdkl}d}g}|i|i}}x`t|ƒD]R}|d|}|i |||dgƒƒ|i ||d|dgƒƒq9W||ƒ|i |ƒ}|i t|ƒ|dƒ|i t|ƒt| d|ƒƒdS(N(sshuffleiˆiiii(R/tshuffleRkR)RRbRcR3R4tbaseRRZRfR$RYR ( RR)RoR4RkRbRpRfRc((R ttestLotsOfLittleOnesâs  % cCsÎd}|i|i}}|ƒ}x,t|ƒD]}||||gƒƒ}q/W|it|ƒƒ}|i t |ƒ|ƒ|i t |ƒ|ƒ|i t |ƒt |ƒƒ|i t |ƒt|ƒƒdS(Nid( RkRRRbtslowR3R4RZtfastR$RYR (RRrR4RRsRkRb((R ttestFunkyKeyIterationðs  (R;R<R[RgRjRnRqRt(((R RXÀs     tTestIIMultiUnioncBsAtZdklZlZdklZlZdkl Z l Z RS(N(s multiunionsunion(sIISets IITreeSet(sIIBucketsIIBTree( R;R<RBRZRR7RbRCRcRERhRDRi(((R RuþstTestIOMultiUnioncBsAtZdklZlZdklZlZdkl Z l Z RS(N(s multiunionsunion(sIOSets IOTreeSet(sIOBucketsIOBTree( R;R<RGRZRRHRbRIRcRKRhRJRi(((R Rvst TestImportscBs#tZd„Zd„Zd„ZRS(NcCs†dkl}dkl}ydkl}Wntj onX|idƒydkl}Wntj onX|idƒdS(N(s weightedUnions$IOBTree shouldn't have weightedUnions$OOBTree shouldn't have weightedUnion(RBt weightedUnionRSRGt ImportErrorRtfailRM(RRx((R ttestWeightedUnion s   cCs†dkl}dkl}ydkl}Wntj onX|idƒydkl}Wntj onX|idƒdS(N(sweightedIntersections+IOBTree shouldn't have weightedIntersections+OOBTree shouldn't have weightedIntersection(RBtweightedIntersectionRSRGRyRRzRM(RR|((R ttestWeightedIntersections   cCs†dkl}dkl}ydkl}Wntj onX|idƒydkl}Wntj onX|idƒdS(N(s multiunions!OIBTree shouldn't have multiunions!OOBTree shouldn't have multiunion(RBRZRGRSRyRRzRM(RRZ((R ttestMultiunion/s   (R;R<R{R}R~(((R Rw s  tWeightedcBsetZd„Zd„Zd„Zd„Zd„Zddd„Zd„Zddd „Z d „Z RS( NcCsddddg|_dddddg|_g}|iD]}|||iƒq;~|_g}|iD]}|||iƒqk~|_g}|iD]}||gƒq›~|_g}x2dD]*}x!dD]}|i ||fƒqÔWqÇW||_ dS(Nii iiii2ii<iiiii)i=iiGiýÿÿÿiÿÿÿÿi(ii (ii(ii2(ii<(ii(ii(ii)(ii=(iiG(iýÿÿÿiÿÿÿÿiii(iýÿÿÿiÿÿÿÿiii( RtAitemstBitemsRRtmakeRRR tweightstw1tw2R(RRRƒR…R„R‚((R R Hs00-cCs—x|i|ifD]|}|ddƒ\}}|i|djƒ|i|dƒ|ddddƒ\}}|i|djƒ|i|dƒqWdS(Nii*iš( RRxR|RRtwRR R$(RRR†R((R t testBothNoneVscCs²x«|i|ifD]—}xŽ|i|iD]|}|d|ƒ\}}|i ||jƒ|i |dƒ|d|ddƒ\}}|i ||jƒ|i |dƒq*WqWdS(Nii*iš( RRxR|RRR R!RR†RR R$(RR!RR†R((R t testLeftNone`scCs²x«|i|ifD]—}xŽ|i|iD]|}||dƒ\}}|i ||jƒ|i |dƒ||dddƒ\}}|i ||jƒ|i |dƒq*WqWdS(Nii*iš( RRxR|RRR R!RR†RR R$(RR!RR†R((R t testRightNonekscCs:t|ƒo)|it|dgt|ƒƒƒ}n|S(Ni(tisasettobjRRhR>RY(RR‹((R t _normalizews )ic CsÈt|ƒo-t|ƒo d|i||ƒiƒfSn|i|ƒ}|i|ƒ}g}x]|i||ƒD]I}|i |dƒ}|i |dƒ}|i |||||fƒqqWd|fS(Nii(RŠR!R*RRR?RŒRtkeytgettv1tv2RR„R…( RR!R*R„R…RRRR((R t_wunion}s #c Cs]|i|i|i}x?|D]7}x.|D]&}|i||ƒ\}}|i ||ƒ\}}|i ||ƒt|ƒo|i |iƒ|ƒn|i |iƒ|ƒx |iD]•\}} |i|||| ƒ\}}|i |||| ƒ\}}|i ||ƒt|ƒo|i |iƒ|ƒq¸|i |iƒ|ƒq¸Wq+WqWdS(N(RRRR R)R!R*R‘twant_wtwant_sRxtgot_wtgot_sR$RŠR?R'RƒR„R…( RR!R)R*R•R”R“R„R’R…((R R+‰s&   cCs°t|ƒo1t|ƒo$|||i||ƒiƒfSn|i|ƒ}|i|ƒ}g}xA|i||ƒD]-}|i |||||||fƒquWd|fS(Ni( RŠR!R*R„R…RRR?RŒRRR(RR!R*R„R…RR((R t_wintersectionŸs$+c Cs]|i|i|i}x?|D]7}x.|D]&}|i||ƒ\}}|i ||ƒ\}}|i ||ƒt|ƒo|i |iƒ|ƒn|i |iƒ|ƒx |iD]•\}} |i|||| ƒ\}}|i |||| ƒ\}}|i ||ƒt|ƒo|i |iƒ|ƒq¸|i |iƒ|ƒq¸Wq+WqWdS(N(RRRR R)R!R*R–R’R“R|R”R•R$RŠR?R'RƒR„R…( RR!R)R*R•R”R“R„R’R…((R R,©s&   ( R;R<R R‡RˆR‰RŒR‘R+R–R,(((R RFs    cCs|d„}|S(NcCs+|g}|D]\}}||q~ƒS(N(t setbuilderRR'Rtvalue(R'R—RR˜R((R RÁs(R—R(R—R((R t itemsToSetÀs tTestWeightedIIcBsYtZdklZlZdklZlZdklZee e e ƒe e ƒfZ RS(N(s weightedUnionsweightedIntersection(sunions intersection(sIIBucket(R;R<RBRxR|RRRERhRDR™R7RCR(((R RšÅs tTestWeightedOIcBsYtZdklZlZdklZlZdklZee e e ƒe e ƒfZ RS(N(s weightedUnionsweightedIntersection(sunions intersection(sOIBucket(R;R<RSRxR|RRRWRhRVR™RTRUR(((R R›Ës cCst|dƒ S(NR(Rtthing(Rœ((R RŠÔsc CsLtƒ}x<tttttttt t f D]}|i t |ƒƒq+W|S(N(t TestSuitetsRuRvRwRARFRRRLRšR›tklasstaddTestt makeSuite(RžRŸ((R t test_suiteØs  "cCstƒitƒƒdS(N(tTextTestRunnertrunR¢(((R tmainást__main__N(+tunittesttTestCaseRR£R¡RMRPRQRNRORGRJRKRHRIRBRDRER7RCRSRVRWRTRURR@RARFRLRRRXRuRvRwRR™RšR›RŠR¢R¥R;(%RIRHR@RKRšRERRNRRPRORQR7R¨R¢RUR›RvR¥RuR£RŠRJRwR¡R™RWRLRRRRARDRFRVRXRCRT((R t?s. ><z