mò %U²Ic@s¥dZdklZlZlZlZlZlZdkZdk Z dk l Z dk Z d„Z de ifd„ƒYZdfd„ƒYZd fd „ƒYZd fd „ƒYZd „Zdfd„ƒYZdfd„ƒYZdfd„ƒYZdfd„ƒYZdfd„ƒYZdfd„ƒYZdfd„ƒYZdklZlZd„Zde ifd„ƒYZdd „Z!e"d!joe!d"e#ƒndS(#sUnittests for heapq.(sheappushsheappopsheapifys heapreplacesnlargests nsmallestN(s test_supportccs0yxt|ƒVqWWntj onXdS(Ni(theappoptheapt IndexError(R((t,/data/zmath/lib/python2.4/test/test_heapq.pytheapiter s tTestHeapcBsPtZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z RS( NcCs&g}g}|i|ƒxGtdƒD]9}tiƒ}|i|ƒt ||ƒ|i|ƒq&Wg}x2|o*t |ƒ}|i|ƒ|i|ƒqlW|}|i ƒ|i||ƒ|i|ƒ|itt gƒy-|itt ddƒ|itt dƒWntj onXdS(Ni(Rtdatatselftcheck_invarianttrangetitrandomtitemtappendtheappushtresultsRt data_sortedtsortt assertEqualt assertRaisest TypeErrortNonetAttributeError(RRR RR RR((Rt test_push_pops2         cCsQxJt|ƒD]<\}}|o)|dd?}|i|||jƒq q WdS(Ni(t enumerateRtposR t parentposRtassert_(RRRRR ((RR0s  cCsrxXtdƒD]J}g}t|ƒD]}|tiƒq$~}t|ƒ|i|ƒq W|i t tdƒdS(Ni( R tsizet_[1]tdummyR RtheapifyRRRRR(RRRRR((Rt test_heapify7s  - cCsg}tdƒD]}|tidƒq~}g}x<|D]4}t||ƒt |ƒdjot |ƒq=q=W|i ƒ|i |t|ƒdƒdS(NièiÐi iöÿÿÿ(RR R R t randrangeRRR RtlenRRRRtsorted(RR RR RR((Rttest_naive_nbest?s0  cCsäg}tdƒD]}|tidƒq~}|d }t|ƒx4|dD](}||djot ||ƒqOqOW|i t t |ƒƒt|ƒdƒ|itt dƒ|itt ddƒ|itt gdƒdS(NièiÐi iiöÿÿÿ(RR R R R!RRRR t heapreplaceRRtlistRR#RRRR(RR RR RR((Rt test_nbestIs0   &c CsáxÚtdƒD]Ì}tidƒ}g}t|ƒD]}|tidƒq3~}|d@o|}t |ƒn%g}x|D]}t ||ƒqWg}t|ƒD]}|t |ƒq§~}|i|t|ƒƒq WdS(Nidi2ii(txrangettrialR R!RRR R RRRR RRt heap_sortedRRR#( RR*R R RR)RRR((Rt test_heapsort[s 0 -c Cshg}tdƒD]}|tidƒq~}x1d D])}|it ||ƒt |ƒ| ƒq7WdS( NièiÐiiii idiiçiL( iiii idiiçièiL( RR R R R!RtnRRt nsmallestR#(RR R,RR((Rttest_nsmallestjs0c Csng}tdƒD]}|tidƒq~}x7d D]/}|it ||ƒt |d t ƒ| ƒq7WdS( NièiÐiiii idiiçiLtreverse( iiii idiiçièiL( RR R R R!RR,RRtnlargestR#tTrue(RR R,RR((Rt test_largestos0( t__name__t __module__RRR R$R'R+R.R2(((RRs      tLenOnlycBstZdZd„ZRS(s:Dummy sequence class defining __len__ but not __getitem__.cCsdS(Ni ((R((Rt__len__ys(R3R4t__doc__R6(((RR5ws tGetOnlycBstZdZd„ZRS(s:Dummy sequence class defining __getitem__ but not __len__.cCsdS(Ni ((Rtndx((Rt __getitem__~s(R3R4R7R:(((RR8|s tCmpErrcBstZdZd„ZRS(s;Dummy element that always raises an error during comparisoncCs t‚dS(N(tZeroDivisionError(Rtother((Rt__cmp__ƒs(R3R4R7R>(((RR;s ccsx|D] }|VqWdS(sRegular generatorN(tseqnR (R?R ((RtR†stGcBs tZdZd„Zd„ZRS(sSequence using __getitem__cCs ||_dS(N(R?R(RR?((Rt__init__scCs |i|S(N(RR?R (RR ((RR:s(R3R4R7RBR:(((RRA‹s  tIcBs)tZdZd„Zd„Zd„ZRS(s Sequence using iterator protocolcCs||_d|_dS(Ni(R?RR (RR?((RRB”s cCs|S(N(R(R((Rt__iter__—scCsF|it|iƒjo t‚n|i|i}|id7_|S(Ni(RR R"R?t StopIterationtv(RRF((Rtnext™s  (R3R4R7RBRDRG(((RRC’s   tIgcBs tZdZd„Zd„ZRS(s9Sequence using iterator protocol defined with a generatorcCs||_d|_dS(Ni(R?RR (RR?((RRB¡s ccsx|iD] }|Vq WdS(N(RR?tval(RRI((RRD¤s (R3R4R7RBRD(((RRHŸs  tXcBs tZdZd„Zd„ZRS(s Missing __getitem__ and __iter__cCs||_d|_dS(Ni(R?RR (RR?((RRBªs cCsF|it|iƒjo t‚n|i|i}|id7_|S(Ni(RR R"R?RERF(RRF((RRG­s  (R3R4R7RBRG(((RRJ¨s  tNcBs tZdZd„Zd„ZRS(sIterator missing next()cCs||_d|_dS(Ni(R?RR (RR?((RRBµs cCs|S(N(R(R((RRD¸s(R3R4R7RBRD(((RRK³s  tEcBs)tZdZd„Zd„Zd„ZRS(sTest propagation of exceptionscCs||_d|_dS(Ni(R?RR (RR?((RRB½s cCs|S(N(R(R((RRDÀscCs dddS(Nii((R((RRGÂs(R3R4R7RBRDRG(((RRL»s   tScBs)tZdZd„Zd„Zd„ZRS(sTest immediate stopcCsdS(N((RR?((RRBÇscCs|S(N(R(R((RRDÉscCs t‚dS(N(RE(R((RRGËs(R3R4R7RBRDRG(((RRMÅs   (schainsimapcCs(ttd„ttt|ƒƒƒƒƒS(s Test multiple tiers of iteratorscCs|S(N(tx(RN((RtÑsN(tchaintimapR@RHRAR?(R?((RtLÏstTestErrorHandlingcBs>tZd„Zd„Zd„Zd„Zd„Zd„ZRS(NcCsax'ttfD]}|it|dƒq Wx0tttt fD]}|it|ddƒq=WdS(Ni ( RRtfRRRRR%R0R-(RRT((Rttest_non_sequenceÕs  cCs‘x*ttfD]}|it|tƒƒq Wx-ttfD]}|it|tƒdƒq:Wx-t t fD]}|it|dtƒƒqjWdS(Ni i( RRRTRRRR5RR%R0R-(RRT((Rt test_len_onlyÛs   cCs‘x*ttfD]}|it|tƒƒq Wx-ttfD]}|it|tƒdƒq:Wx-t t fD]}|it|dtƒƒqjWdS(Ni i( RRRTRRRR8RR%R0R-(RRT((Rt test_get_onlyãs   cCs tƒtƒtƒg}x'ttfD]}|it||ƒq%Wx*tt fD]}|it||dƒqOWx*t t fD]}|it|d|ƒq|WdS(Ni i( R;tseqRRRTRRR<RR%R0R-(RRXRT((RRWës   cCs:x3ttttttfD]}|it |dƒqWdS(Ni ( RRRR%R0R-RTRRR(RRT((Rttest_arg_parsingôsc CsxttfD]ó}xêddtdƒd tdddƒfD]Á}xEtttt t fD].}|i |d ||ƒƒ|d |ƒƒqWW|i |d t|ƒƒgƒ|it|d t|ƒƒ|it|d t|ƒƒ|it|d t|ƒƒq;Wq WdS( Nt123tiètdof1.2iÐi˜ii(R\f1.2(R0R-RTR R(tsRARCRHRRR@tgRRRMRRRJRKR<RL(RR^RTR]((Rttest_iterable_argsøs (,(R3R4RURVRWRYR_(((RRSÓs     cCsÂdkl}tg}tt|ƒo|itƒnti |Œ|ost t dƒocdk }dgd}xAtt|ƒƒD]-}ti |Œ|iƒt iƒ||