a zeWa@sbddlZddlZddlZddlZddlmZddZddZGdddejZ e d kr^e dS) N) ALWAYS_EQccs<|||dkr8||||7}||kr8|V||7}q dS)NrstartstopsteprrC/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_range.pypyrange s r cCs&||||7}t||||| SN)r rrrrpyrange_reversedsr c@seZdZd:ddZddZddZdd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ ddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9ZdS); RangeTestNc Cs|dur t||}t||}t}tj|||d}t|D]j\}\}} || krVq>q>||krt|d||| q>| |kr|d|||q>|d||| |q>dS)N) fillvaluez;{}: iterator ended unexpectedly at position {}; expected {}z/{}: unexpected excess element {} at position {}z5{}: wrong element at position {}; expected {}, got {}) itertoolsisliceobject zip_longest enumerateZfailformat) selfZxsZystest_idlimitsentinelpairsixyrrrassert_iterators_equals&  z RangeTest.assert_iterators_equalcCs|ttdgd|ttddgd|ttdg|ttdg|ttdddgd |ttdd dgd d}d }d }|tt||d||dg|tt|d|d|d|dg|tt|d|d|d|dgtt|||}|||||||t|dtt||| }|||||||t|dtt| | | }|| ||| ||t|d|tt|ttdddd|ttddd|ttddd|ttddd|ttddd|ttddd|ttdd|ttddd|ttdt j t j ddtt j t j d}|t|t j dS)N)rr)rrrr )rr!)r rd2rr&r!g@?}Ô%IT\nTspam*) assertEquallistrangeassertIn assertNotInlen assertRaises TypeError ValueErrorsysmaxsize)rabcseqrrrr test_range.sH"((      zRangeTest.test_rangecCst|tdtWdn1s(0Y|td"tddddddWdn1sf0YdS) Nz)range expected at least 1 argument, got 0z)range expected at most 3 arguments, got 6rrrr!r )ZassertRaisesRegexr8r3rrrr%test_range_constructor_error_messages^s$z/RangeTest.test_range_constructor_error_messagescCstddd}|t|d|tt|dtddd}|t|d|tt|d||tddd}|t|d|tt|d||tddd}|t|d|tt|d||tdd tddd tdddd fD] }|t|g||q td tj}tdtj}td tj}|tt||d||d g|tt|d|d |d|d g|tt|d|d |d|dgtt|||}| ||| |||t|d||d|||d ||tt||| }| ||| |||t|d||d|||d ||tt| | | }| | || | ||t|d||d| ||d | |dS)N Fx:^Vl Fx:^Vrr!rr"rr(r&r#r)rr*) r3r1r6r2Z assertFalse assertTrueintr:r;r4r5)rrr<r=r>r?rrrtest_large_operandsksZ        "((    zRangeTest.test_large_operandscCsdd}tj }tj}||}t||}|||||||tt|||| |||| |d|tjd}| ||||| |||dd|||t || dWdn1s0Y|t ||Wdn1s0Yd}dtj}||}t||}|||||||tt|||| |||| |d|tjd}| ||||| |||dd|||t || dWdn1s0Y|t ||Wdn1s40Yd}tjd}dtj}d|||}t|||}|||||||tt|||| |||| |d|tjd}| |||||| |||dd||||t || dWdn1s80Y|t ||Wdn1sl0Ytjd}d}dtj}d|||}t|||}|||||||tt|||| |||| |d|tjd}| |||||| |||dd||||t || dWdn1sp0Y|t ||Wdn1s0YdS)NcSsLz t|}Wn:tyF|d|d}d|d|d|}Yn0|S)Nrrr&)r6 OverflowError)rlengthrrrr _range_lens   z.RangeTest.test_large_range.._range_lenrrrr#r*) r:r;r3r4r5r7rIr6rFr1 IndexError)rrKr<r=Z expected_lenridxr>rrrtest_large_ranges       , (        . (       $ . (       $ . zRangeTest.test_large_rangecCs`|tt|ttdddd|ttdddtdtj}|tt||dtd|ttddd|ttdd d |ttdd |ttdd d |ttd |ttdd |ttd d|ttd d |ttddd|ttdd d|ttdd d|ttd dd|ttd dd|ttd d d|ttd d ddS) Nrrrr!rr#r,r-r.r/r0r+)r7r8r3r9rGr:r;)rr<rrrtest_invalid_invocations( z!RangeTest.test_invalid_invocationcstd}||dd||dd|t|jdtdd}||dd||dd|t|jGdddtGfdd d }td }||j|tdd}||dd|tdd dd d|tdd d dd|tddd|tddd|ttddddjdd|tddddddddd|td tddS)Nrrrr*rc@s eZdZdS)z$RangeTest.test_index..BadExcN)__name__ __module__ __qualname__rrrrBadExcsrScseZdZfddZdS)z$RangeTest.test_index..BadCmpcs|dkrdS)NrFrrotherrSrr__eq__sz+RangeTest.test_index..BadCmp.__eq__NrPrQrRrWrrVrrBadCmpsrYr!r#r"r%rElFx:^Vr(WV) r3r1indexr7r9countr8 Exceptionr)rurYr<rrVr test_indexs*   *zRangeTest.test_indexcCsBdtj}d}Gddd}|tt||||d|g|tt||||d|gGddd}|tt|Gdd d }|tt||td d|d td |t$td d d|Wdn1s0Y|t$td d d|Wdn1s40YdS) Nrr0c@seZdZddZddZdS)z+RangeTest.test_user_index_method..IcSst||_dSr )rGn)rrbrrr__init__:sz4RangeTest.test_user_index_method..I.__init__cSs|jSr )rbrCrrr __index__<sz5RangeTest.test_user_index_method..I.__index__N)rPrQrRrcrdrrrrI9srerc@seZdZddZdS)z,RangeTest.test_user_index_method..IXcSstdSr ) RuntimeErrorrCrrrrdCsz6RangeTest.test_user_index_method..IX.__index__NrPrQrRrdrrrrIXBsrhc@seZdZddZdS)z,RangeTest.test_user_index_method..INcSsdS)Nz not a numberrrCrrrrdIsz6RangeTest.test_user_index_method..IN.__index__NrgrrrrINHsrir#r r)r:r;r1r2r3r7rfr8)rZbignumZsmallnumrerhrirrrtest_user_index_method4s $$  2 z RangeTest.test_user_index_methodcCsd|tddd|tddd|tddd|tddd|tddd|ttddt|ttddt|tddd|tddd|tddd|tddddddd|tdddddddd|td td |ttt j t j d d dS) Nrr&rrrrEr(r[r#) r1r3r^assertIstyperGr]rr6r:r;rCrrr test_countWs"&zRangeTest.test_countcCsF|ttdd|ttddd|ttdddddS)Nrz range(0, 1)rz range(1, 2)rzrange(1, 2, 3))r1reprr3rCrrr test_repriszRangeTest.test_reprc Csdddddddddddfg}ttjd D]f}|D]\}|j||d :t|}|ttt||t|Wdq81s0Yq8q0dS) N r ir#rr&rqrr*rrrAr)prototest)r3pickleHIGHEST_PROTOCOLsubTestr1r2loadsdumps)r testcasesr{tr@rrr test_picklingnszRangeTest.test_picklingc Csgd}dD]~}||d|dfd|d|df|d|ddf| d| dfdd|dfdd| fd|d|dfd| | fg7}q ttjdD]}|D]}|j||d tt|}}tt|}t||}t|}|t |t ||t||t|}z t |Wn$t yFYWdqYn0t||}t|}|t||ddWdq1s0YqqdS) N)rprrrtrurwry)llrrr!rr*r&)r{r) r3r}r~riterr2rrr1rlnext StopIteration) rrMr{ritZitorgdatadrrrtest_iterator_picklingxs2         z RangeTest.test_iterator_picklingc CsttjdD]}|j|dttd}|\}}}||d|d|\}}}||dt||}t |}|t |dWdq1s0YqdS)Nr)r{lrl) r3r}r~rr __reduce__r1 __setstate__rrr)rr{r_rMrrrr(test_iterator_pickling_overflowing_indexs      z2RangeTest.test_iterator_pickling_overflowing_indexcCsttjdD]t}tddddd}t|}t|}|dddkr0qLq0t||}t|}|t|g|t|gqdS)Nrrrz r3r}r~rrrrr1r2rr{r@rrZi2rrr test_exhausted_iterator_picklings  z*RangeTest.test_exhausted_iterator_picklingcCsrttjdD]^}td}t|}t|}|dkr"q6q"t||}t|}|t|g|t|gqdS)Nrrvrrrrr&test_large_exhausted_iterator_picklings  z0RangeTest.test_large_exhausted_iterator_picklingcCs:|ttgddWdn1s,0YdS)Nrr&)r7r8r3rCrrr test_odd_bugs zRangeTest.test_odd_bugcCs|dtd|dtd|dtd|ttdGddd}||td|t|tdGdddt}||d td ||d ttd dS) Nr,rTy?c@seZdZddZddZdS)z RangeTest.test_types..C2cSsdSNrrrCrrr__int__z(RangeTest.test_types..C2.__int__cSsdSrrrCrrrrdrz*RangeTest.test_types..C2.__index__N)rPrQrRrrdrrrrC2src@seZdZddZdS)z RangeTest.test_types..C3cSsdS)NTrrTrrrrWrz'RangeTest.test_types..C3.__eq__NrXrrrrC3srrsr#)r4r3rr5rGr2)rrrrrr test_typesszRangeTest.test_typescCstddd}|d||d||d||d||d||d|tddd}|d||d||d ||d|tddd }|d ||d ||d|dS) Nrerrcr(r&r*ir3r4r5rr@rrrtest_strided_limitss                zRangeTest.test_strided_limitscCsRtd}|d||d|tdd}|d||d||d|dS)NrrrZr&)r3r5rrrr test_emptys     zRangeTest.test_emptycsdddDfddD}|D]~\}}}t|||}t|||}d|||}|j|||ddtt|||}t|||}d|||}|j|||ddq$dS) NcSs>g|]6}| | dd|d|fD]}dD] }||q*q"qS)rr)r*r&rrrr).0rbaseZjigglerrr sz2RangeTest.test_range_iterators..)llcs*g|]"}D]}dD]}|||fqq qS))lir*r&rrr)rrendrZlimitsrrrszrange({}, {}, {})r()rzreversed(range({}, {}, {})))r3r rrreversedr )r test_rangesrrrZiter1Ziter2rrrrtest_range_iteratorss    zRangeTest.test_range_iteratorscCsLtttd}|t|dddtttdd>}|t|ddddS)Nrrri)rlrr3r7r8)rZrangeiter_typeZlong_rangeiter_typerrrtest_range_iterators_invocationsz)RangeTest.test_range_iterators_invocationcsdfdd }tdtdtdddtddd ttjdtjdfD]X|dd |dd |dd |d d |d d|ddd |dd|dd dqHdS)NcsLt|||}t|t|t|tt|dSr )slicer1r2r6)rrrrr@rrrchecks z#RangeTest.test_slice..checkr#rr rr"rrvrr&r()N)r3r:r;)rrrrr test_slices         zRangeTest.test_slicecCstd}|d||d||d||d||d||d||d|tddd}|d||d||d||d||d||d||d|tddd }|d||d||d||d||d||d||d|tddd }|d||d||d||d||d||d||d|dS) Nr#rrg@gffffff@r&rrr*rrrrr test_contains.s@                              zRangeTest.test_containscCsdtdtdtdddtdddttjdtjdfD]&}|tt|t|dddq8dS) Nr#rrrrrr"r&)r3r:r;r1r2rrrrrtest_reverse_iterationPs  z RangeTest.test_reverse_iterationcCsTttdddd}hd}|D],}|D]"}|dhD]}||||q8q*q"dS)Nrrrv>rrrrrr irrrrvrxr&rNr%ir*r)r3rindices)rr@valuesrjkrrrtest_issue11845Ys zRangeTest.test_issue11845csdtdtddtdddtdtddtdddtdddtdtdd dtdddtdddg tttfd d D}fd d D}|||fd d D}||dd |DD]*}D] }||kr|t|t|qq|tddkd|dtdkd|tdddgkd|tdddddtdddd|ttdddddttdddd|tddddtddddd|tddddddddtdddddd|ttddddddddttdddddd|tddddddtddddddd|t  tdtdkWdn1s0Y|t  tdtdkWdn1s0Y|t  tdtdkWdn1s0Y|t  tdtdkWdn1sV0YdS)Nrr&rrr rBrr$r!csg|]}D] }||kq qSrrrr<r=rrrrkrz-RangeTest.test_comparison..csg|]}D] }||kq qSrrr) test_tuplesrrrlrcsg|]}D] }||kq qSrrrrrrrprcSsg|] }| qSrr)rrrrrrqrrFr(r) r3r2maptupler1hashrkZassertNotEqualr7r8)rZ ranges_eqZ tuples_eqZ ranges_ner<r=r)rrrtest_comparisonbsX "& 0 0 0 zRangeTest.test_comparisoncCs|tdddd|tdddd|tdddd|tdddddd|tdddddd|tdddddd|tdddddddS)Nrrr#rZrr&r") assert_attrsr3rCrrrtest_attributesszRangeTest.test_attributescCsL||j|||j|||j||td|_Wdn1sP0Y|td|_Wdn1s0Y|td|_Wdn1s0Y|t|`Wdn1s0Y|t|`Wdn1s0Y|t|`Wdn1s>0YdS)Nrr#r)r1rrrr7AttributeError)rZrangeobjrrrrrrrs $ $ $ " $ zRangeTest.assert_attrs)N)rPrQrRrrArDrHrNrOrarjrmrorrrrrrrrrrrrrrrrrrrrrrr s8 0 8U$#     "  5 r __main__) Zunittestr:r}rZ test.supportrr r ZTestCaser rPmainrrrrs  !