a zez;@sdZddlZddlZddlZddlmZddlmZmZddZ GdddZ Gd d d Z Gd d d Z Gd ddZ GdddZGdddZGdddZddlmZddZGdddeZGdddeZGdddejZdS)z3 Tests common to tuple, list and UserList.UserList N)support) ALWAYS_EQNEVER_EQccs|D] }|VqdS)zRegular generatorNseqnirrB/opt/bitninja-python-dojo/embedded/lib/python3.9/test/seq_tests.pyiterfunc sr c@s eZdZdZddZddZdS)SequencezSequence using __getitem__cCs ||_dSNrselfrrrr __init__szSequence.__init__cCs |j|Sr r rrrrr __getitem__szSequence.__getitem__N)__name__ __module__ __qualname____doc__rrrrrr r sr c@s(eZdZdZddZddZddZdS) IterFuncz Sequence using iterator protocolcCs||_d|_dSNrrrrrr rszIterFunc.__init__cCs|Sr rrrrr __iter__szIterFunc.__iter__cCs2|jt|jkrt|j|j}|jd7_|SNrlenr StopIterationrvrrr __next__ s zIterFunc.__next__Nrrrrrrr"rrrr rsrc@s eZdZdZddZddZdS)IterGenz9Sequence using iterator protocol defined with a generatorcCs||_d|_dSrrrrrr r(szIterGen.__init__ccs|jD] }|VqdSr r )rvalrrr r+s zIterGen.__iter__Nrrrrrrrrrr r$&sr$c@s eZdZdZddZddZdS) IterNextOnlyz Missing __getitem__ and __iter__cCs||_d|_dSrrrrrr r1szIterNextOnly.__init__cCs2|jt|jkrt|j|j}|jd7_|Srrr rrr r"4s zIterNextOnly.__next__N)rrrrrr"rrrr r'/sr'c@s eZdZdZddZddZdS) IterNoNextzIterator missing __next__()cCs||_d|_dSrrrrrr r<szIterNoNext.__init__cCs|Sr rrrrr r?szIterNoNext.__iter__Nr&rrrr r(:sr(c@s(eZdZdZddZddZddZdS) IterGenExczTest propagation of exceptionscCs||_d|_dSrrrrrr rDszIterGenExc.__init__cCs|Sr rrrrr rGszIterGenExc.__iter__cCs dddS)Nrrrrrr r"IszIterGenExc.__next__Nr#rrrr r)Bsr)c@s(eZdZdZddZddZddZdS) IterFuncStopzTest immediate stopcCsdSr rrrrr rNszIterFuncStop.__init__cCs|Sr rrrrr rPszIterFuncStop.__iter__cCstdSr )rrrrr r"RszIterFuncStop.__next__Nr#rrrr r+Lsr+)chaincCsttddttt|S)z Test multiple tiers of iteratorscSs|Sr r)xrrr Xzitermulti..)r,mapr r$r r rrr itermultiVsr1c@seZdZddZdS) LyingTupleccs dVdSrrrrrr r[szLyingTuple.__iter__Nrrrrrrrr r2Zsr2c@seZdZddZdS) LyingListccs dVdSrrrrrr r_szLyingList.__iter__Nr3rrrr r4^sr4c@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)ZdS)* CommonTestNcCsg}dg}ddg}|}||}||}||}||}||} ||} ||} |t|} Gddd} | |}||}|t|t|d}||}|t|t|ddtdd td d d fD]}ttttt fD] }||||||q||t ||||d ddD|d| t |jt || t |jt|| t|jt|q||td|d||tdg|dgdS)Nrrc@s$eZdZddZddZddZdS)z.CommonTest.test_constructors..OtherSeqcSs ||_dSr _OtherSeq__data)rZinitseqrrr rwsz7CommonTest.test_constructors..OtherSeq.__init__cSs t|jSr )rr7rrrr __len__ysz6CommonTest.test_constructors..OtherSeq.__len__cSs |j|Sr r6rrrr r{sz:CommonTest.test_constructors..OtherSeq.__getitem__N)rrrrr8rrrrr OtherSeqvsr9zthis is also a sequenceZ123)Zdog333333?iicss|] }|VqdSr r).0crrr r/z/CommonTest.test_constructors..))rr@) type2testtuple assertEqualrranger rr$r1r r+ assertRaises TypeErrorr'r(ZeroDivisionErrorr)r2r4)rZl0l1l2uZu0u1u2uuZuu0Zuu1Zuu2r!r9sZv0Zvvgrrr test_constructorsfs>         "zCommonTest.test_constructorscCs$||||dgdS)N*)Z assertFalserAZ assertTruerrrr test_truthszCommonTest.test_truthcCs||gd}tt|D](}||||||t||qtt| dD]8}|||t||||t|t||qT|t|jt| d|t|jt||t|jt ddd|}|t|jd|t|jd|t |j|ddg}||dd||dd||dd||dd|t|jd|t|jd dS) Nrrr@r*rr r*) rArDrrCintrE IndexErrorr ValueErrorslicerF)rrJrarrr test_getitems*zCommonTest.test_getitemcCs0gd}||}||dd|||dd|dg||dd|dg||dd |||d d|g||dd|||dd|gd ||dd|gd ||dd|||ddd|gd ||ddd|ddg||ddd|gd ||ddd|gd||ddd|ddg||ddd|g||ddd|dg||ddd|dg||ddd|ddg||ddd|dg||dd|g||dd|||ddd|ddd||ddd|g||ddd|gd |gd}||tdd d|gd ||dtdd|ddg||ddtj|dgdS)NrSrrr@rXrUr*ir;)rr@r*rTrrr@)rr@rT)rTr*r@rr)rTr@rirTd)rArCpowsysmaxsize)rlrJr^rrr test_getslices<         &$zCommonTest.test_getslicecCs`|gd}|D]}|||qt|dt|dfD]}|||q<|t|jdS)Nr`r)rAassertInminmax assertNotInrErF __contains__)rrJrrrr test_containss zCommonTest.test_containscCsx|t|g|t|dg|d|tg|t|g|t|tg|t|tgdSr)rlrrArirrrrr test_contains_fakes zCommonTest.test_contains_fakecsbGdddtGfddd}|d|g}|d|||dg}||jddS)Nc@s eZdZdS)z3CommonTest.test_contains_order..DoNotTestEqNrrrrrrr DoNotTestEqsrqcseZdZfddZdS)z4CommonTest.test_contains_order..StopComparescsdSr rrotherrqrr __eq__sz;CommonTest.test_contains_order..StopCompares.__eq__Nrrrrurrtrr StopComparessrwr) ExceptionrArirErm)rrwZ checkfirstZ checklastrrtr test_contains_orders  zCommonTest.test_contains_ordercCs`|t|d|t|gd|t|dgd|t|gdddS)Nrrr`r*)rCrrArrrr test_lenszCommonTest.test_lencCs2|gd}|t|d|t|ddS)Nr`rr@)rArCrjrkrrJrrr test_minmaxszCommonTest.test_minmaxcCs|dg}|ddg}|||||||||||dg|||dg||ddg|||d||d||||d||d||||d||d||||d||d|||||d|||d|||||d|||d||||||d||||d|Gddd|j}|ddg}|||d|||ddS)NrrrUr@r*c@s eZdZdS)z(CommonTest.test_addmul..subclassNrprrrr subclasssr})rArCZ assertIsNot)rrKrLr}u3rrr test_addmuls0 " zCommonTest.test_addmulcCs|ddg}||7}|||ddg||ddg7}|||gd||ddg7}|||gd|d }||d 7}|||d dS) Nrrr@r*rrr@r*rTr<)rrr@r*rTr<ZspamZeggsZspameggsrArCr{rrr test_iadd!s  zCommonTest.test_iaddcCsJ|ddg}|d9}|||gd|d9}|||gdS)Nrrr*)rrrrrrrr{rrr test_imul.s zCommonTest.test_imulcCs.Gddd|j}|tt|dddS)Nc@seZdZddZdS)z/CommonTest.test_getitemoverwriteiter..TcSs t|dS)Nz!!!)str)rkeyrrr r8sz;CommonTest.test_getitemoverwriteiter..T.__getitem__N)rrrrrrrr T7sr)rr@r)rArCnextiter)rrrrr test_getitemoverwriteiter5sz$CommonTest.test_getitemoverwriteitercCstdD]t}tt|}tddD]$}|||||||q"|||d|g|t|t|dqdS)NrTrYr<r)rDrBrCrAid)rmrNnrrr test_repeat<s   "zCommonTest.test_repeatcCsLtjdkrH|dg}|d9}|t|jdt|drH|t|jddS)Niri__imul__)rerfrArE MemoryError__mul__hasattrr)rr-rrr test_bigrepeatDs    zCommonTest.test_bigrepeatcCsD|ddg}||dd||dd||dd||dd|t|jd|t|jd||tdd|dg||tdd |dg||tdd |ddg||tdd|ddg||tdd |g|t|jtddd|t|jd dS) NrVrWrrrXrUrYr*r@r<r-)rArCrrEr[r]r\rF)rr^rrr test_subscriptLs  ""zCommonTest.test_subscriptcs|gdd}||dd||dd||dd||td||ttgdd||ttgtd||ttgtd|t|jGdddtGfd d d }||j|dS) Nr`r*rr r@c@s eZdZdS)z%CommonTest.test_count..BadExcNrprrrr BadExcisrcseZdZfddZdS)z%CommonTest.test_count..BadCmpcs|dkrdSNr@Frrrrrr rumsz,CommonTest.test_count..BadCmp.__eq__Nrvrrrr BadCmplsr)rArCcountrrrErFrx)rr^rrrr test_count\szCommonTest.test_countcs|ddg}||dd||dd|t|jd|gd}||dd||dd||ddd||ddd||ddd||dddd|t|jddd||td||ttgdd||ttgtd|t|ttgjt|t|jGd d d t Gfd d d }|gd }||j||gd}||dd||ddd||ddd||ddd||ddd||ddd||dddd||dddd||ddt j dt j d|t|jddt j dt j |t|jddddS)Nrrr@)rXrUrrrr@rXir*rTc@s eZdZdS)z%CommonTest.test_index..BadExcNrprrrr rsrcseZdZfddZdS)z%CommonTest.test_index..BadCmpcs|dkrdSrrrrrrr rusz,CommonTest.test_index..BadCmp.__eq__Nrvrrrr rsrrrrY) rArCindexrEr\rrrrFrxrerf)rrJrr^rrr test_indextsB" zCommonTest.test_indexcCsX|gd}ttjdD]6}tt||}||||t|t|qdS)N)rTr<r) rArDpickleHIGHEST_PROTOCOLloadsdumpsrCZassertNotEqualr)rZlstprotoZlst2rrr test_pickles  zCommonTest.test_picklecCs$t|t|jt|t|jdSr )rZcheck_free_after_iteratingrrAreversedrrrr test_free_after_iteratingsz$CommonTest.test_free_after_iterating)rrrrArPrRr_rhrnroryrzr|rrrrrrrrrrrrrrr r5bs*.%   /r5)rZunittestrertestrZ test.supportrrr r rr$r'r(r)r+ itertoolsr,r1rBr2listr4ZTestCaser5rrrr s$