a ze!@sDddlZddlZddlZddlZddlZddlmZGdddZGdddZGdddZ Gd d d Z Gd d d Z Gd ddZ GdddZ Gdddeje ZGdddeZGdddeZGdddeZGdddeZGdddeje ZGdddeZGdd d eZGd!d"d"eZed#kr@edS)$N)supportc@s eZdZdZddZddZdS)GzSequence using __getitem__cCs ||_dSNseqnselfrr G/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_enumerate.py__init__ sz G.__init__cCs |j|Srrrir r r __getitem__ sz G.__getitem__N)__name__ __module__ __qualname____doc__r rr r r r r src@s(eZdZdZddZddZddZdS) Iz Sequence using iterator protocolcCs||_d|_dSNrrr rr r r r sz I.__init__cCs|Srr rr r r __iter__sz I.__iter__cCs2|jt|jkrt|j|j}|jd7_|SNr lenr StopIterationrvr r r __next__s z I.__next__Nrrrrr rrr r r r rsrc@s eZdZdZddZddZdS)Igz9Sequence using iterator protocol defined with a generatorcCs||_d|_dSrrrr r r r sz Ig.__init__ccs|jD] }|VqdSrr)rvalr r r r"s z Ig.__iter__Nrrrrr rr r r r r!sr!c@s eZdZdZddZddZdS)Xz Missing __getitem__ and __iter__cCs||_d|_dSrrrr r r r (sz X.__init__cCs2|jt|jkrt|j|j}|jd7_|Srrrr r r r+s z X.__next__N)rrrrr rr r r r r$&sr$c@s(eZdZdZddZddZddZdS) EzTest propagation of exceptionscCs||_d|_dSrrrr r r r 3sz E.__init__cCs|Srr rr r r r6sz E.__iter__cCs dddS)Nrr rr r r r8sz E.__next__Nr r r r r r%1sr%c@s eZdZdZddZddZdS)NzIterator missing __next__()cCs||_d|_dSrrrr r r r =sz N.__init__cCs|Srr rr r r r@sz N.__iter__Nr#r r r r r';sr'c@seZdZddZdS) PickleTestc CsttjdD]}t||}t|}|t|t||t||t|}z t|Wn(t y| |ddYqYn0t||}t|}|t||ddqdSr) rangepickleHIGHEST_PROTOCOLdumpsloads assertEqualtypelistnextrZ assertFalse)rZitorgseqprotoditr r r check_pickleEs        zPickleTest.check_pickleN)rrrr6r r r r r(Csr(c@seZdZeZdgdZZddZddZddZ d d Z d d Z d dZ ddZ ddZddZejddZejddZdS)EnumerateTestCaseabc))ra)rb)ccCs\|t||j|j||j}|t|||t||j|j|jjdSr)r.r/enumr2iterr0resrrer r r test_basicfunction[s  z$EnumerateTestCase.test_basicfunctioncCs|||j|jdSr)r6r=r2r?rr r r test_picklebszEnumerateTestCase.test_picklecCs>|t|t|j|j|td}|tt|dSN) r.r0r=rr2r? assertRaisesrr1r@r r r test_getitemseqnesz"EnumerateTestCase.test_getitemseqncCs>|t|t|j|j|td}|tt|dSrD) r.r0r=rr2r?rFrr1r@r r r test_iteratorseqnjsz#EnumerateTestCase.test_iteratorseqncCs>|t|t|j|j|td}|tt|dSrD) r.r0r=r!r2r?rFrr1r@r r r test_iteratorgeneratorosz(EnumerateTestCase.test_iteratorgeneratorcCs|t|jt|jdSr)rF TypeErrorr=r$r2rr r r test_noniterabletsz"EnumerateTestCase.test_noniterablecCs|t|jt|jdSr)rFrJr=r'r2rr r r test_illformediterablewsz(EnumerateTestCase.test_illformediterablecCs|tt|t|jdSr)rFZeroDivisionErrorr0r=r%r2rr r r test_exception_propagationzsz,EnumerateTestCase.test_exception_propagationcCsH|t|j|t|jd|t|jdd|t|jddddS)Nrr8r9r;r&)rFrJr=rr r r test_argumentcheck}sz$EnumerateTestCase.test_argumentcheckc CsZ|tttttt|jt|j|ttttt|jtdt|jdSr) r.rsetmapidr0 enumerater2minrr r r test_tuple_reuses*z"EnumerateTestCase.test_tuple_reusecCs,|gg}t|tt|dSr)r=gcZcollectZ assertTrueZ is_trackedr1)rr5r r r test_enumerate_result_gcs z*EnumerateTestCase.test_enumerate_result_gcN)rrrrSr=r2r?rBrCrGrHrIrKrLrNrOrZ cpython_onlyrUrWr r r r r7Vs r7c@s eZdZdS)MyEnumN)rrrr r r r rXsrXc@seZdZeZdS)SubclassTestCaseN)rrrrXr=r r r r rYsrYc@seZdZdgZZdS) TestEmptyrEN)rrrr2r?r r r r rZsrZc@s*eZdZedddZeeedeZdS)TestBig i Nr;N)rrrr)r2r0zipr?r r r r r[s r[c@s^eZdZddZddZddZddZd d Ze e e d d d dZ ddZ ddZdS) TestReversedcCsxGddd}dtdttd|tdddtdfD]&}|t|dddtt|q:|jt tgdd dS) Nc@seZdZddZddZdS)z#TestReversed.test_simple..AcSs|dkrt|StdSN)strrr r r r rsz/TestReversed.test_simple..A.__getitem__cSsdSr_r rr r r __len__sz+TestReversed.test_simple..A.__len__N)rrrrrbr r r r Asrcr8r`rZabcde)r9) r)tuplerSdictfromkeysr.r0reversedrFrJ)rrcdatar r r test_simples $zTestReversed.test_simplecCs(td}|tt|tt|dSr)r)r.r/rir>)rxr r r test_range_optimizationsz$TestReversed.test_range_optimizationcCsdtdtdtdfD]@}|tt|t|t|}t||t|dqGddd}t|}|t tj|dS)NZhellor`rc@s eZdZdZddZddZdS)z.TestReversed.test_len..SeqWithWeirdLenFcSs|jsd|_dStdS)NTr\)calledrMrr r r rbsz6TestReversed.test_len..SeqWithWeirdLen.__len__cSs|Srr rindexr r r rsz:TestReversed.test_len..SeqWithWeirdLen.__getitem__N)rrrrnrbrr r r r SeqWithWeirdLensrq) rfr0r)r.operator length_hintrirrFrM)rsrrqr r r test_lens zTestReversed.test_lencCs&Gddd}|}t|}||_dS)Nc@seZdZddZddZdS)z!TestReversed.test_gc..SeqcSsdS)Nr\r rr r r rbsz)TestReversed.test_gc..Seq.__len__cSs|Srr ror r r rsz-TestReversed.test_gc..Seq.__getitem__N)rrrrbrr r r r Seqsrw)riru)rrwrtrur r r test_gcszTestReversed.test_gccCs |tt|ttgddS)Nextra)rFrJrirr r r test_argss zTestReversed.test_args getrefcountztest needs sys.getrefcount()c Csldd}t}|_t|}tdD].}z t|WntyHYq&0|dq&||t|dS)NcSsdSrr r r r r fsz'TestReversed.test_bug1229429..fr\z'non-callable __reversed__ didn't raise!) object __reversed__sysr{r)rirJZfailr.)rr|rurcr r r r test_bug1229429s      zTestReversed.test_bug1229429cCspGdddt}|}|tt|Gdddt}|}|tt|Gdddt}|}|tt|dS)Nc@seZdZddZdS)z+TestReversed.test_objmethods..NoLencSsdSrr r r r r rz7TestReversed.test_objmethods..NoLen.__getitem__N)rrrrr r r r NoLensrc@seZdZddZdS)z/TestReversed.test_objmethods..NoGetItemcSsdSNr;r rr r r rbrz7TestReversed.test_objmethods..NoGetItem.__len__N)rrrrbr r r r NoGetItemsrc@s eZdZddZddZdZdS)z-TestReversed.test_objmethods..BlockedcSsdSrr r r r r rrz9TestReversed.test_objmethods..Blocked.__getitem__cSsdSrr rr r r rbrz5TestReversed.test_objmethods..Blocked.__len__N)rrrrrbr~r r r r Blockedsr)r}rFrJri)rrnlrZngirr:r r r test_objmethodsszTestReversed.test_objmethodscCsHdtdttdtdddfD]"}|t|t|dddq dS)Nr8r`rrdre)r)rfrSr6rir0)rrjr r r rCs$zTestReversed.test_pickleN)rrrrkrmrvrxrzunittestZ skipUnlesshasattrrrrrCr r r r r^s  r^c@seZdZddZdS)EnumerateStartTestCasecCs:||j}|t|||t||j|jdSr)r=r2r.r>r0r?r@r r r rBs z)EnumerateStartTestCase.test_basicfunctionN)rrrrBr r r r rsrc@s"eZdZddZdgdZZdS) TestStartcCs t|ddS)N start)rSr r r r rzTestStart.r8))rr9) r:) r<N)rrrr=r2r?r r r r r src@sBeZdZddZdejddfejddfejdd fgZZd S) TestLongStartcCst|tjddS)Nrr)rSrmaxsizer r r r rrzTestLongStart.r8rr9r;r:r&r<N)rrrr=rrr2r?r r r r rs r__main__)rrrrr*rVtestrrrr!r$r%r'r(ZTestCaser7rSrXrYrZr[r^rrrrmainr r r r s.     @^