a ze"@sdZddlmZddlmZmZmZmZddlZddl Z ddl Z dZ dZ dZ e jdkrZdnd ZGd d d ZGd d d ejeZGdddejeZGdddejeZGdddejZGdddejZedkree jdkree jdedS)aBigmem tests - tests for the 32-bit boundary in containers. These tests try to exercise the 32-bit boundary that is sometimes, if rarely, exceeded in practice, but almost never tested. They are really only meaningful on 64-bit builds on machines with a *lot* of memory, but the tests are always run, usually with very low memory limits to make sure the tests themselves don't suffer from bitrot. To run them for real, pass a high memory limit to regrtest, with the -M option. )support) bigmemtest_1G_2G_4GNlc@s<eZdZddZeedddddZeeddd d Zeeddd d Zeedddd dZ eeddddZ eeddddZ eeddddZ eeddddZ eeddddZeeddddZeeddddZeeddddZeedddd Zeeddd!d"Zeedddd#d$Zeedddd%d&Zeedddd'd(Zeedddd)d*Zeeddd+d,Zeeddd-d.Zeedddd/d0Zeedddd1d2Zeed3dd4d5Zeed6ededd7d8Zeed3dd9d:Z eeddd;d<Z!eeddd=d>Z"d?d@Z#dAdBZ$eedddCdDZ%eed6dddEdFZ&eedGdddHdIZ'ee(ddJddKdLZ)ee(ddJddMdNZ*eedGdddOdPZ+eedddQdRZ,eeddddSdTZ-eeddddUdVZ.dWS)X BaseStrTestcCs`|j}|d}|d||}|}||t| d||||d|dSN abc def ghi-) from_latin1 capitalize assertEquallenlstrip)selfsize_SUBSTRsZcapsrD/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_bigmem.py_test_capitalizeHs zBaseStrTest._test_capitalize rrmemusecCs~|d}||}|t||t|t|d}}t|drP|d7}|||| ||||dS)Nr rr)rcenterrrstrip)rrrrZlpadsizeZrpadsizerrr test_centerQs   zBaseStrTest.test_centerrcCs|j}|d}|d||}|||d|||d7}|||d|d|||dd|||dd|||dddS) Nr .r ijr)rrcountrrrrrrrr test_count\s zBaseStrTest.test_countcCs|j}|d}|d||}|||||||d|}||||||d||||dS)Nr r...a)r assertTrueendswith assertFalse)rrrrrs2rrr test_endswithhs zBaseStrTest.test_endswithcCs|j}|d|}d}|||k~t||\}}|d|}||}|t||||t||dddS)Nrr z r#r)rr, expandtabsdivmodrrr )rrrrtabsizeZslen remainderrrrtest_expandtabsts   zBaseStrTest.test_expandtabscCs |j}|d}t|}|d||d||g}|||dd|||d|||d||||||t||||||d||d|||d|||||d|||d|||||d|||dddS Nr rr#rr%r&)rrjoinrfindrrrrsublenrrrr test_finds  zBaseStrTest.test_findcCs|j}|d}t|}|d||d||g}|||dd|||d|||d||||||||||||d||d|||d|||||d|||d|||||d|t|j|ddS)Nr r7rr#rr%r&)rrr9rindex assertRaises ValueErrorr;rrr test_indexs  zBaseStrTest.test_indexcCsJ|j}|d}|d||}||||d7}||dS)N123456r+r")rr,isalnumr.r(rrr test_isalnums  zBaseStrTest.test_isalnumcCsJ|j}|d}|d||}||||d7}||dS)NZzzzzzzzr+r")rr,isalphar.r(rrr test_isalphas  zBaseStrTest.test_isalphacCsJ|j}|d}|d||}||||d7}||dS)NrB9z)rr,isdigitr.r(rrr test_isdigits  zBaseStrTest.test_isdigitcCsf|j}|dddtdD}|t|d}||}||||d7}||dS)Nr7css"|]}t|st|VqdSN)chrisupper.0crrr sz+BaseStrTest.test_islower..rA)rr9rangerr,islowerr.rrrcharsrepeatsrrrr test_islowers   zBaseStrTest.test_islowercCsR|j}|d}|t|d}||}||||d7}||dS)Nz rr&)rrr,isspacer.)rrr whitespacerXrrrr test_isspaces zBaseStrTest.test_isspacecCst|j}|d}|d|d|d||g}||||d7}||||d7}||dS)NrBr7rSr+ZaA)rr9r,istitler.r(rrr test_istitles   zBaseStrTest.test_istitlecCsf|j}|dddtdD}|t|d}||}||||d7}||dS)Nr7css"|]}t|st|VqdSrK)rLrUrNrrrrQsz+BaseStrTest.test_isupper..rRrr+)rr9rTrr,rMr.rVrrr test_isuppers   zBaseStrTest.test_isuppercCs|j}|d|}||d|dg}|||dd|||dd|||d|||ddS) NrSZaaaaaZbbbbbr+bZaaaaaAZAbbbbb)rr9rr'r, startswithr-)rrrrxrrr test_joins zBaseStrTest.test_joincCsX|j}|d}||}||||d|t|||||dSNr z rljustr,rbrrr r(rrr test_ljusts  zBaseStrTest.test_ljustcCsD|j}|d|}|}|t|||||d|dS)NrSr+)rlowerrrr'rrrrrrr test_lowers  zBaseStrTest.test_lowercCs|j}|d}||}|t|||||~||}|t||t|ttfr||}| ||udS)Nz abc def ghi) rrjustrrrrg isinstancestrbytesr,rrrrrstrippedrrr test_lstrips  zBaseStrTest.test_lstripcCs|j}|d}|d|}||d|}|t|||||||||d|d}|t|||||d||dd|ddS)Nr+r#r z aaaa)rreplacerrr')rrrZ replacementrrrr test_replaces zBaseStrTest.test_replacecCs<|j}|d}t|}|d||d||g}|||d||||d||||||||dd|||d|||d||d|||d||||d|||dd|||d|||dd||||d|||dddSr6)rrr9rrfindr;rrr test_rfind s($($ zBaseStrTest.test_rfindcCsB|j}|d}t|}|d||d||g}|||d||||d||||||||dd||d||d|||d||d|||d||||d|||dd|||d|||dd||||d|t|j|ddS) Nr r7rr#rrr%r&)rrr9rrindexr?r@r;rrr test_rindex0s( $ zBaseStrTest.test_rindexcCsX|j}|d}||}||||d|t|||||dSrerfr(rrr test_rjustCs  zBaseStrTest.test_rjustcCs|j}|d}||}|t|||||~||}|t||t|ttfr||}| ||udS)Nr ) rrgrrrstriprlrmrnror,rprrr test_rstripLs  zBaseStrTest.test_rstripg@c Cs|j}t|dd}|d|d|}||}|}|t|||d}|D]}|||qV~||d}|t||d|d|}td|D]}|||qdS)N?rr+r#r)rintsplitrrfilter rrr chunksizerrlZexpecteditemrrrtest_split_small^s zBaseStrTest.test_split_smallr`cCs|j}|d||d}|}|t|||t|t|dg~||d}|t||d|t|t|dgdS)Nz ar#r+r)rrrrset)rrrrrrrrtest_split_largexszBaseStrTest.test_split_largec Cs|j}t|ddd}|d||d|d||d}||d}|}|t||d|d|}|D]}|||qzdS)Nr}rr# z r )rr~ splitlinesrrrrrrtest_splitliness(  zBaseStrTest.test_splitlinescCsZ|j}|d}|d||}||||||d||||dSr )rr,rbr.r(rrrtest_startswiths zBaseStrTest.test_startswithcCsp|j}|d}||}|t|||||~||}|t|||||dS)Nz abc def ghi )rrlrrr rgr(rrr test_strips  zBaseStrTest.test_stripcCs|j}|d}t|}||d}||}|}|t|||||d|d|d||| dd|ddS)NuaBcDeFG12.'©rr$)rrswapcaser)rrrrr<rXrrrr_test_swapcases  zBaseStrTest._test_swapcasecCs^|j}|d}||t|d}|}|||d|||ddS)NZ SpaaHAaaAahamrr$)rrtitler,rbr-rir(rrr _test_titles zBaseStrTest._test_titlecCs|j}|d}tdd}t|}||d}||}||}|t|||||d|||||| d|||||dd|||d|d|||d|d dS) N aZz.z.Aaz.s.aZs-!$rr"r!rHr$)rro maketransr translaterr'rrrrZtransr<rXrrrrtest_translates   zBaseStrTest.test_translatecCsD|j}|d|}|}|t|||||d|dS)Nr+rS)rupperrrr'rjrrr test_uppers  zBaseStrTest.test_uppercCs~|j}|d}||}|||d|dd|||d|t|||||d|t|dS)Nz-5683247235982340rz-0)rzfillr,r-rbrrr'r(rrr test_zfills  zBaseStrTest.test_zfillr$cCs\|j}|d|}|t||||}|t||d|||d|ddSNr"rrrrr'rjrrr test_concats  zBaseStrTest.test_concatcCs\|j}|d|}|t|||d}|t||d|||d|ddSrrrjrrr test_repeats  zBaseStrTest.test_repeatcCs~|j}|d}t|}|||}t|d}|||}tdt|||D]}||||d|||||||||||d|ddd|dkrN||||d|dd||ddqN||t|d|d||d|d||t|d|d||| |d||t|d|d ||t|dd|dd||dd|dd||t||d|||| d||t|ddt||t|dt|d t|d |t|d d t|d|ttj|t||ttj|t|d|ttj|t|dd >dS) N 0123456789drrrr8rr7r`)rrrTrr? IndexErroroperatorgetitem)rrrrr<rZstepsizer%rrrtest_slice_and_getitems:   $ $( z"BaseStrTest.test_slice_and_getitemcCs|j}|d}|d|d}|d|||g}~|||v||d|v||d|v||d|v||d7}||d|vdS)Nrrrr7r+)rr9r,r.)rrrredgerrrr test_containss zBaseStrTest.test_containscCsh|j}|d|}|d|}|||k~||d}|||k~|d|}|||kdS)Nrr+r")rr,r.)rrrs1r/rrr test_compare"s    zBaseStrTest.test_comparecCs@|j}|d|}t|}~|d|d}||t|dS)Nr)rhashZassertNotEqual)rrrrh1rrr test_hash/s  zBaseStrTest.test_hashN)/__name__ __module__ __qualname__rrrr!r)r0r5r=rArDrFrJrYr\r^r_rdrhrkrrrurwryrzr|rascii_char_size pointer_sizerrrrrrrrrrrrrrrrrrrrr Fs                                            !   r c@seZdZddZd1ddZddZd d Zeee d e d d ddZ eee d e d d ddZ eee d e d d ddZ eed e dd ddZeedd e e dd ddZeedde ddd ddZeedde e dd d d!Zeede dd d"d#Zeed$e d e d d%d&Zeed$e d d d'd(Zeed$e dd d)d*Zeeddee e dd d+d,Zeedde d e d$d d-d.Zeee d e d d/d0ZdS)2StrTestcCs|SrKrrrrrrrAszStrTest.from_latin1r"NcCs>|dur |}z&||}|t|||Wd}nd}0dSrK)rrencode)rrencrP expectedsizerrrrbasic_encode_testDs zStrTest.basic_encode_testc Cshi|_ttD]T}|dsqtt||}z |j}WntyLYqYn0t||_||j|<qdS)NZtest_) _adjusteddirr rbgetattrtyperAttributeErrorr)rnamemethrrrrsetUpMs      z StrTest.setUpcCs(|jD]\}}|tt||_q dSrK)ritemsrrr)rrrrrrtearDown\szStrTest.tearDownr$rrcCs||dSrKrrrrrrtest_capitalize`szStrTest.test_capitalizecCs||dSrKrrrrr test_titledszStrTest.test_titlecCs||dSrKrrrrr test_swapcasehszStrTest.test_swapcasercCs ||dS)Nutf-8rrrrr test_encodeoszStrTest.test_encodecCs&z||dWSty Yn0dS)NZraw_unicode_escaper MemoryErrorrrrrtest_encode_raw_unicode_escapess z&StrTest.test_encode_raw_unicode_escaper`Fr cCs&z||dWSty Yn0dS)Nutf7rrrrrtest_encode_utf7zs zStrTest.test_encode_utf7r cCs2z|j|dd|ddWSty,Yn0dS)Nutf32r )rrrrrrtest_encode_utf32s zStrTest.test_encode_utf32cCs|j|dddS)NasciirS)rPrrrrrtest_encode_asciiszStrTest.test_encode_asciircCsd|}d|f}|||k~d|f}|t|t|d||d||d~~|d}d|}d|d|g}~|d }|t||dd ||d d ||d|ddS) Nrz%sz..%s..r z..-z-..rr7r*r$r")r,rrrbr-r9r')rrrZsfrrrr test_formats"  zStrTest.test_formatcCsd|}t|}|t||d||dd||dd||d|~|dd}d|}t|}|t||dd||dd||dd||d |||d |ddS) Nrrr'r8r`rr \rreprrrr'rrrrrrtest_repr_smalls zStrTest.test_repr_smallcCstd|}t|}|t||dd||dd||dd||d|||d|ddS) Nrr rrrr8rrrrrrrtest_repr_largeszStrTest.test_repr_largecCsd}||}zdttfD]N}||}|t|dt||d|||d|ddd}qWd}}n d}}0dS)Nurz\udcba'rsrrrrr,r-rrcharrfrrrrtest_unicode_reprs $zStrTest.test_unicode_reprcCsd}||}zdttfD]N}||}|t|dt||d|||d|ddd}qWd}}n d}}0dS)Nu𝲺rz \U0001dcba'irrrrrtest_unicode_repr_wides $zStrTest.test_unicode_repr_widecCs|j}|d}t|d|dt|d|dt|d|di}t|}||d}||}||}|t|||||d|||||| d|||||dd |||d|d|||d |d dS) Nrr"rr+rZ$rrrHr$)rordrrrr'rrrrrs   zStrTest.test_translate)r"N)rrrrrrrrrucs4_char_sizerrrrrrrrrrrrrucs2_char_sizerrrrrrrr?sH              rc@sleZdZddZeeddedddZeedddd Zeeddd d Z eeddd d Z dS) BytesTestcCs |dSNzlatin-1)rrrrrrszBytesTest.from_latin1rrrcCs(|d|}|t|d|dSNr"rrrrdecoderrrr test_decodeszBytesTest.test_decodecCs||dSrKrrrrrrszBytesTest.test_capitalizecCs||dSrKrrrrrr szBytesTest.test_titlecCs||dSrKrrrrrrszBytesTest.test_swapcaseN) rrrrrrrrrrrrrrrrs      rc@steZdZddZeeddedddZeedddd Zeeddd d Z eeddd d Z dZ dZ dS) BytearrayTestcCst|dSr) bytearrayrrrrrrszBytearrayTest.from_latin1rrrcCs(|d|}|t|d|dSrrrrrrrszBytearrayTest.test_decodecCs||dSrKrrrrrrszBytearrayTest.test_capitalizecCs||dSrKrrrrrr"szBytearrayTest.test_titlecCs||dSrKrrrrrr&szBytearrayTest.test_swapcaseN) rrrrrrrrrrrrrrrrrrs       rc@seZdZeededdddZddZeeddedddd Zeededdd d Z eed d ed dddZ eed edddZ eed edddZ ddZ eeddeddddZeededdddZeedddddZeededdddZeed eddd!d"Zd#d$Zeed%deed%dd&d'Zeedeed%dd(d)Zd*S)+ TupleTestrrcCsVd|}d|}|||k~d|d}|||k~d|}|||kdS)Nr7r)rr,r.)rrt1t2rrrr8s zTupleTest.test_comparecCs8d|}|t||||}|t||ddS)N)rrrrrrtrrrbasic_concat_testIszTupleTest.basic_concat_testr$cCs ||SrKrrrrrtest_concat_smallOszTupleTest.test_concat_smallcCs ||SrKrrrrrtest_concat_largeSszTupleTest.test_concat_larger`rcCsJd|}|t||d|d|v|d|v|d|vdSNrrr$r r`r`rrrr,r.rrrrrWs zTupleTest.test_containscCs4d|}t|}~d|d}||t|kdS)N)rr)rr.)rrrrrrrrr_s  zTupleTest.test_hashcCs*d|}|t||||dd||dd|||dd|ttj||||ddd||ddd||ddd||d d d|||ddd|||d|d|||d |d d ||||d||||dddS)NrKr8r`r)NNNNNrrrr)NNNNr)rrr?rrrrrrrtest_index_and_slicegszTupleTest.test_index_and_slicecCs8d|}|t|||d}|t||ddS)Nrrrrrrrbasic_test_repeatzszTupleTest.basic_test_repeatcCs ||SrKr rrrrtest_repeat_smallszTupleTest.test_repeat_smallcCs ||SrKr rrrrtest_repeat_largeszTupleTest.test_repeat_larger cCs ||SrKr rrrrtest_repeat_large_2szTupleTest.test_repeat_large_2cCsfzttdg|}Wnty(Yn:0|t||||ddd||ddddSN*r) rrrrrrrrrrrstupleiterrrrrrrrtest_from_2G_generators z TupleTest.test_from_2G_generatorrcCsfzttdg|}Wnty(Yn:0|t||||ddd||ddddSrrrrrrtest_from_almost_2G_generators z'TupleTest.test_from_almost_2G_generatorcCsPd|}t|}|t||d||ddd||ddddS)N)Frz (False, Farsz se, False))rrr)rrrrrrrbasic_test_reprs zTupleTest.basic_test_reprrcCs ||SrKrrrrrrszTupleTest.test_repr_smallcCs ||SrKrrrrrrszTupleTest.test_repr_largeN)rrrrrrrrrrrrr r r rrrrrrrrrrrrrr-s:             rc@s@eZdZeededdddZddZeeddedddd Zeededdd d Z d d Z eeddeddddddZ eededdddddZ eeddeddddZ eededddZeededddZddZeeddeddddZeededdd d!Zd"d#Zeeddeddddd$d%Zeededdddd&d'Zd(d)Zeed*deed*dd+d,Zeedeed*dd-d.Zeeedddd/d0Zeeddeddd1d2Zd3d4Zeeddeddddd5d6Zeededdddd7d8Zeeddeddd9d:Zeededddd;d<Z eedd=eddd>d?Z!eededd@dAZ"eeddedddBdCZ#eeddeddDddEdFZ$dGS)HListTestrrcCs^dg|}dg|}|||k~dg|d}|||k~dg|}|||kdS)Nr7rrr)rrl1l2rrrrs   zListTest.test_comparecCs:gg|}|t||||}|t||ddS)Nrrrrrrrrbasic_test_concats zListTest.basic_test_concatr$cCs ||SrKrrrrrrszListTest.test_concat_smallcCs ||SrKr rrrrrszListTest.test_concat_largecCs`tjg|}||7}|t||d||d|du|||d||dudSNrrr8r)sysstdoutrrr,rrrrbasic_test_inplace_concats  z"ListTest.basic_test_inplace_concat r cCs ||SrKr$rrrrtest_inplace_concat_smallsz"ListTest.test_inplace_concat_smallcCs ||SrKr&rrrrtest_inplace_concat_largesz"ListTest.test_inplace_concat_larger`rcCsRgd|}|t||d|d|v|gd|v|d|vdSrrrrrrrs  zListTest.test_containscCsdg|}|tt|dS)Nr)r? TypeErrorrrrrrrs zListTest.test_hashcCsdg|}|t||||dd||dd|||dd|ttj||||dddgd||dddgd||dddgd||dddgd|||dddgd|||d|dgd|||d |d dgd ||||g||||dgd||d <|t||||d dgd ||dd|ttj||d |t||gd||dd<|d 8}|t||||ddgdgd|dd<|d 8}|t||||ddgd||d=|d8}|t||||dd |dd=|d 8}|t||||dd |d=|d8}|t||||dd |dd =|d 8}|t||||dd dS)Nr8r`rrrrrr rrr r)Nr`Nrri)NNrrr$r r`)rrr$r r`NNr)rrr?rrrr'setitemrrrrr sZ "    zListTest.test_index_and_slicecCsLg|}||dg|}|t|||d}|t||ddS)Nr7r)r.rrrrrrr /s   zListTest.basic_test_repeatcCs ||SrKr rrrrr 7szListTest.test_repeat_smallcCs ||SrKr rrrrr;szListTest.test_repeat_largecCszdg}||9}|t||||d|du~dg|}|d9}|t||d|||d|dudS)Nr7rr8rr)rrr,rrrrbasic_test_inplace_repeatAs z"ListTest.basic_test_inplace_repeatcCs ||SrKr,rrrrtest_inplace_repeat_smallMsz"ListTest.test_inplace_repeat_smallcCs ||SrKr-rrrrtest_inplace_repeat_largeQsz"ListTest.test_inplace_repeat_largecCsddg|}t|}|t||d||ddd||ddd||d|dS)NFrrz [False, Farsz se, False]Fr)rrrrrrrrUs  zListTest.basic_test_reprrcCs ||SrKrrrrrr^szListTest.test_repr_smallcCs ||SrKrrrrrrbszListTest.test_repr_largecCs\tg|}|t|t||d||d|du||d|dudS)Nrrr*r8)objectappendrrr,r.rrrr test_appendhs   zListTest.test_appendcCs4gd|}||d|||dddS)Nrr1r)rr'rrrrr)ps zListTest.test_countcCs`tg|}|||t||d||d|du|||d||dudSr!)r1extendrrr,rrrrbasic_test_extendxs   zListTest.basic_test_extendcCs ||SrKr6rrrrtest_extend_smallszListTest.test_extend_smallcCs ||SrKr7rrrrtest_extend_largeszListTest.test_extend_largecCsgd|}|d9}||dd||d|d|d||d|d||d|t|jd|d||t|jddS)Nrr`rrr r)rr>r?r@rrrrrAs zListTest.test_indexcCsdg|}||dd|d7}|t||||ddgd||dd|d7}|t||||ddgd|dd|d7}|t||||dd gd |||d dgddS) N?rrSr)r:rSr:B)rSr:r;Cr$)r:r<r:)insertrrrrrr test_inserts  zListTest.test_insertr cCsgd|}|d9}|t|||}|d8}|t||||d||ddddg|d}|d8}|t||||d ||dd d dg||d }|d8}|t||||d||ddd dgdS) N)r+rarPder`rr@r*rPr?rr+rra)rrpop)rrrrrrrtest_pops$     zListTest.test_popcCsdg|}|t|||d|d8}|t|||d|d7}|t||||ddddg|d|d8}|t||||ddddgdS)Nrrr`r*)rrremover2rrrr test_removes    zListTest.test_removecCs\gd|}||t||d||ddgd||ddgddS)Nrr`r)r`r r$rr)reverserrrrrr test_reverses  zListTest.test_reverseg?cCsrgd|}||t||d||d|||dddgd||dddgddS)Nrr`rrrs)sortrrr'rrrr test_sorts  zListTest.test_sortN)%rrrrrrrrrrr$r'r(rrr r r rr,r.r/rrrrr3r)r6r8r9rAr>rBrDrFrHrrrrrsl        7                 r__main__)__doc__testrZ test.supportrrrrZunittestrr"rrrmaxsizerr ZTestCaserrrrrrrargvZ set_memlimitmainrrrrs4 0|?2