mς 0αΈEc@sμdklZdkZdkZdkZdkZeiii ƒdk l Z eiii ƒye dZWnej o dZnXdfd„ƒYZdfd„ƒYZd eifd „ƒYZd „Zed jo eƒndS( (s generatorsN(sIteratoriit itemIteratorcBs tZdZd„Zd„ZRS(sGIgnore the __getitem__ argument in order to catch non-monotonic access.cCs||_d|_dS(Ni(tntselfti(RR((t9/data/zmath/zope/lib/python/ZTUtils/tests/testIterator.pyt__init__s cCs:|i|ijo t‚n|i}|id|_|S(Ni(RRRt IndexError(RR((Rt __getitem__s   (t__name__t __module__t__doc__RR(((RRs  t genIteratorcBs tZdZd„Zd„ZRS(sGenerator-based iterationcCs ||_dS(N(RR(RR((RRsccs"xt|iƒD] }|VqWdS(N(trangeRRR(RR((Rt__iter__s(RR R RR (((RR s  t IteratorTestscBsmtZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z e od „Z d „Z nRS( NcCs(tfƒ}|iƒ p td‚dS(NsEmpty iterator(tIteratortittnexttAssertionError(RR((Rt testIterator0%s cCs5tdƒ}|iƒo|iƒ p td‚dS(NisSingle-element iterator(i(RRRR(RR((Rt testIterator1)s cCsPtdƒ}x%dD]}|iƒp td‚qW|iƒ p td‚dS(NttextsMulti-element iterator(RRtcRR(RRR((RttestIteratorMany-s  cCsŸx˜tdƒD]Š}tt|dƒƒ}|iƒ|iptd|d‚d}x?|iƒo1|d}|i ptd||df‚qXWq WdS(NiisStart true on element 1 of %ssStart false on element %s of %s(R tsizeRRRtstartRtel(RRRR((Rt testStart3s    cCs€xtdƒD]}|d}tt|ƒƒ}d}xd|iƒoV|d}||jo|iptd|‚q8|i ptd||f‚q8Wq WdS(NiiisEnd true on element %ssEnd false on element %s of %s(R RRRRRtendR(RRRR((RttestEnd>s     cCs“t|ƒ}x€t|ƒD]r}|iƒp td‚|i|jp td‚|i ƒ|djp td‚|i |jp td‚qWdS(NsIterator stopped too soonsIncorrect indexisIncorrect numbersIncorrect item( RtobRR RRRRtindextnumbertitem(RRRRR((RtassertRangeMatchKs  !cCs“|itdƒdƒ|iddƒ|ihdd<dd<dd<dd<dd|i|ijp t d‚|i |i jp t d‚q@W|iƒp |iƒ p t d‚q WdS(NisItem mismatch with iter()sIndex mismatch with iter()sLength mismatch with iter()( R RtrRtit1titertit2RR!RR(RRR,R/R-((RttestIterOfIterss   "cCs td„tdƒƒ}xttdƒD]f}t|ƒ}g}t|ƒ}x$|D]}|i ||i fƒqPW||| jp t d‚q%Wttdƒƒ}|i ƒ|i ƒ|i ƒg}x$|D]}|i ||i fƒqΜW||djp t d‚dS(NcCs ||fS(N(tx(R1((Rt€sis!for-loop failure on full iteratoris"for-loop failure on half iteration( tmapR two_iterRR,tw_iterRRR1tappendRRR(RR4R5RRR,R1((Rt testIterIters"   ( RR RRRRRR"R#R+t do_piter_testR0R7(((RR#s       cCs titƒS(N(tunittestt makeSuiteR(((Rt test_suitest__main__(t __future__t generatorstostsysR9tzope.deprecationtzopet deprecationt__show__tofftZTUtilsRtonR.R8t NameErrorRR tTestCaseRR;Rtmain( RRR9R R@R;R>RBR8RR?((Rt?s      m