ÿØÿà JFIF    ÿÛ „ !.%+&8&+/1555$;@;4?.451 4,$,44444444444414444444444444444444444444444444444444ÿÀ  á á" ÿÄ     ÿÄ ?    !1AQaq"2‘¡±ÁðBRbrÑá#‚’¢²3S CñÿÄ   ÿÄ !    !1QAa‘2ÿÚ   ? 5˜Z¯V¦cø)›t/? z¨±>Õ5€¶‹Á¤·¼z¼Ü¬+ñ®v¤¨_ˆR­BFn©—˜ý®ç̝P8gýt·ÉSTŦˆìät?þé¼íìN/Þa)ì–í6ô… Ï¿øÃj´¿KÇü]ÿ ªô¹-eKànëÕHTx}ýSÜ›ÿ ”7Ø×&µ<¦  ¥ÑO¶[Ù¯ä¨ÞÃÿ PZ-¬;#õ|•oaÿ ©CìÞz3˜öː/¤­ñTûIØ}š^ mÓ%ªxˆ¥ÉŸu=Z+ISe¿45™¼u;ú&WØ÷€æßQ™®{|íx*TC“#ZŠìZ§²‹ 6pv…³¿¡äª*áZÐ%ÒOáˆo"x«OHk w±æ+¬V(kMúŸ5Vö«$ ÁrÏbàb57/luR ¸ÑÛj Òµì`Мq­û žICÀÊ•©4€Âcà¨Ï€O´<èÐ:›ù(Ë^L8þ‘ÍÌ#¸Ð_Ì©ÙK(Öz 4¬û+¸;ü’V’84‘¬ÃŽ:[â‡ÔÌáõp¢~§ªlæ£ö{®G>J¼"°‡7¯ÆÉèßû ‹É‹§ÁòÃýâßî ^ƾÙõ‹×óH#«LP½ïX=xÑÍ$|W?•~• îëÔ©ª‹ {ÝT…Kÿ ”hûâá)J*ö˜–ÔU;iÇ€/ ÆþjóZ\ýwØ=Ìm ºèËL9 ýèÆð/¨’¥öo=nË.%Îì ŽÕ¯È|{Oj²ƒE6e/ßdÄõ²Ìâ1O®ò×TsəԸhOMýíMˆ¿¼H˜l²,7Â¥#MF/Úf°Ö½± ¸–dr‹NýÊ íjqx{œÉ ä-È ¦ øÄër¨q°ð †nцýÑÄÆ’mä…n<0È™;ÁÝá¯ÁZƒ7FÀmì­ É&9ˆîéi¶ùN§Y• ÃZãAâ?•‡©‰ , ó¾IŸŠc1 4â&y­&pŠ­6;M À 0¹qç»p.á …ŸÅáK@%6·y6ƒ‰3?”úºŽ‰éX5ªPT §µ!=Mž«Ú½‹ÅgÂSâÉaþÓoö–¯ÁÔìR>5éÿ üs¶ÆUcÌ kÇR ]ÿ ù¬¼«VŽ;Â|‡~¢¦”ÏŰæ {L™Õ°Óv¹ò¸írޡעCÃ!íVÕ {¶»sŒNPg/ "uÕbkm²“$ďå¿é¹§°½æz¯6 †s¿!s–wÚÝ“™Œ °.ûj>·+™Òa…©Œ&rÝÎtÛë긪Ît’LAVp%c Úý[ÄzJ¾ÇàXXç@˜ó<êL]·T˜¾¥1Ó©V‡g´æ½¦Ý@¹óø!_@´ÞâSÁ —S3™•& ]@JHÚý©ZŽ €×æÔr»Áf!‡yÞ4Mv*èÓã_{‘åóUuљØ«Oïé*®EvÑ Œ÷‡U \"㪒ÍK+À 4“M¡ï:0¥5í!'<@î´”>Ç»&Z–ïCCV˜Ì5Šo&îhè.žû |ÓK©h$s6KìŒëã)¹hI¦GïOåóI;ììü#É$Š0…Ææ¥TØ.5­¾gn´ “ÂÖ\:hœ89G)J@„}œ:’Ò{/Š"¦_Æ×7Æ3VÇŠÊa]ÚŒÙ€Ä–=®uÁßâACZƒ§§£ Qnâ:«,×{tyø¬iÛcœÜÄ€H½ÄÍCk´÷šß .W'b¤Íåh]÷€=,Žv×cÚEÚHXJX¶îo¨FÒtèöŸ>ªª6[J®Fµ£sGÁeqõfe\íjÒÐïÄÐGˆe1Ø‹.Ø”‘Ëuø Y­ˆÜ ŽG|zùªüMpDnQWÄ”%JŠ™)â*p@Örš«ÕT2Ð%ˆG#ª„ ·¤!°ŸOTÂT¸aÚ%4&h™LµšØüÐ.F¿²ÐÞ_Ç‚¾ÅÃaÜ÷09Æ q€öy˜v‡85õN÷]¬äѼóS{°_MެúÔ#°Ç¸0åÞè2ëôPcvÆw9®ií1Ä8F™˜à‰´+‰Ik1òÝ7“Ñ×ÒsÝ\x‚h`ÞÑ`ó"|µEcý£n˜h`}GÞ !±ù²Ápü²ß6 0ïi󜵩SÈÇ7˜-ÕURO˜¦´f$ªž-Í6(œ}<„ éc øs]ŽŽ„*—¾ ìdŽ„)méª\¿êÎIg¾ØÞ~I#C/¼¼´EÁÈŽi8“©õådô·>euä ƒ'Ê×लR1ÉJE1ÐAát`t;ÇР%Ý<‡¥„ÍÆ`×Oyó)õiI€ñQaŸ4Ûù\áàaÃÔ¹HÃu¹*k€¦<„e S‡&õÏ B!ŽhüÞ`yj}mªf×\¿ Ç~æ­9‡û\՞Ǖg²1Žû5V7 !àöšm° c`ܬøÇìµÒ'P"?…´Ö,"§^•õލsÔ)6˜sæéÍR¼ ò|Sl”‹7 nPW Gòú÷½§O¯‡„l¡kSÞŒr½PÊ@æ¢pŽ-mÿ #Ÿ˜Àº¶Áä¦;ïÔæ$1££`“Õ>„—·ž)ßð³ñ#Ï Ô$¶œ‰ÊE‹À;÷º ¯«P:Ñ”8–IÊtpÞ3ª“>ê“þës4ò2OÏÕ­±zô†Õ§‰.÷ä¸;¿˜“'œ›žª}«Œ{ª±Ì 9ÔóÞÕ‡0 $íWV3Üì¬ —@kÝ4@¿r¼±½¬™›?øØæ´'Áé®CË3-g$˜ö‡×auÚi´Žp/êÛ æF›Ú2v‹ã¿¿,nB1̨ƃqÞa5͝@&Æû“él÷ \C²½UÍc ¯k×¢U ÖéQå™—-r wô ÞÏ<Ò=&=ÿ Ôê Òêˈt,i—;LîÜ á¸*ÚÃ1$êL•LÍ <É)ýÐà’ ;F™{ƒ™˜€&'}‚ãÄK`¡ÞT@I;®žZóè‚s’7®°›+§O­Åq©é»²9<Ô J ¼9O’HL»Ùïì¸rk¼Ž_ý‘TŸu[²ßÚŒ·ü÷B%¯E ŸÔX5êO´ Ç•€’I0 ÉJX` ñ¹õ%;µŸD‘«´€àwÒ™U ûئžÖö\×®×´8 ½‡ºÐÆÓ§?Àkmœ=;d5*@-ì0F Rªýš[Ü6âö̃ڸr*KA9· u*µæ£?U¸Âêí†8@¦X4 e-ò„0s{ HâUpU?¼mñRa°®a%Ð'tÉ×’\¾ÊÉ]t›h>·(Ë@R¼¡Ãt h}’O÷au<+nT…Ö…MӐ??Óe95 q>í/;&JSû °¯ÊéÞ øƒ*Ã2½Ài&:nôUl=¾¿5eˆ3”ñc|Ú2V”>„»&eE;«ÚäC p¢Û úy 9š[ŒÌx¼擼A&DåÒ¯ˆ¤ÀÌ;"˜ ÏQä¸åhÊ}Ûq«Û0WžÒ|»€ø®öCm5•\ÇÀ§Pe3£]0ÃàLDÉ‰1øªxjgwT‚÷¿LΨK‹›ùs—xˆÜ±µ kæ¸f‰‰ÜGk/LÛØ6d9ò¶ùA{ƒA3š/¬D¬khÓk‰`˜"㯒r¿±Óã jx‡°e}<Ñø\3y:'À•/h½Í€Ç4~g ?Û(¼]v‘ªlKÎâ~?O‚W%{Ì:“'©úNq¾›úo(X’¥¯ˆ nFê{Ç€ü?º'ë ø‹ì Þ09ŒÌç9Æ —ËC`j@ÓÄ(+a‹un¸#ÂꟋ{K`‘ÑÍÍ'à´»/Û,KW;Þ4²þð ï Nm|~fGÏ(…³Ã)«1ö­Õ ¥‡¨©ƒÃ™ü-s=à=U66Ï«Ýc蓦W¹íž®›nÔ%êÇìŒ<#Ü×84ån®Ð ÒåOC` ñânÑs‡¢ç 1õ%Îhì½Ã½® e:ݼUZo™`  ÅZŸŒÊ«ê1ÏÄo$q¹Þ€©ˆhÐÉä¯ñ[!…Ú˜àJ:x2$Íß&PåT£6ç— ‡Í*4Ýšçjÿ ‰É nófÐ ó(L5C•åÆ\rMÒ@ò }y-W}™üýVù—ú¢=Ù”c®‘< M ž ´Phr ¦©TD ‘ù.$´÷O‡‘V2Æò.=IUŒ=ž‡â¬i™aþÓåÙ?òUø'ØÖ•.~* šTŒ!•-×áºTâ®ä#õü'´ eýlYÅÓeÕKÂrT"CÚ@u!Óxƒ{š3€}1¿(r}%«nËamjÑ%ÑNEò v ˜à  σöK³,*º.àzù¨™Ó ÚçâU¦*¿ 9{%Ö¹ njûdaXöb) kÛÆ±ûÓ\°M7ˆÂ=û›ç¿Ã‚­V»Cg–8ÙêE- j)k$º`Ã-ùEýeBÆÇ]c¡°ñty&Òd0nõ'¡W+ƒ*|–øµFa\GQªEAÔp5\Ǽ·¼Ç8·õ -â§Ú[ ‡ uZeÖ 3}×d'+¹:ð+K†Û®s!Ï$úe€<Û”x)1»a­¡LC]¸µík…ÚàA»AYº{†ªS[¦5HÒ7ù --,ísòDØ€èk ÞÀîÜ ò@â( ËNˆë›4ô½•/¦o‡€Û7 ê•ÆêòðÜy'Án½µ á˜ݦ ndeo…[ì¶Ê,¥R³Ä=À±—–ß;£™´ñSâ*g§”ïaið‘Jå~™ÓÞ ß³Õ¢»8x埒²52>AÊb&-÷\7´éÄù€T˜,w;3{ï˜k…à¹ÄqÀ«œ{€\ ˆ¾[´¨јr &Úé„Ívˆ±8†¿]|¬ņ4I×pÞS1ÈÖz‰#Ìv‡G!YNògñ:màTz¢Ý1ô©^O=~ë|5Bã™ç•¼µõ•bÆ@úÕS¬ÈŒ#¬zünrŸ û” Z²•èðV"ÁHÚý©wÝ €7¼Ìu1hÑa3Éä û f$o¿É ™Ú›ÝçnpÒ3äÌ3†Í§,Äï]$‰/pê †«À¼¸e9­Æê_C]žƒ·ý·frÁN«, E=›Çq -‰öŒ:aÏ¿±í&£Í:-} 84‘ÿ eƒQÑeëSsuiA ³g㟥ú£?ÿ ʼn*”“÷aühe:ÊWa@ÒÞk±eØ] F Ô—r.åä˜ @ö¥ªZoÐýYL·¥S²G/‡ñ <~*ZÆ´è>JlòàÛÆ½ÿ 窘ìGN¢:I®KšJp/`íIÁÀõ#Ä-€ö­šµŒoF4|ÆQØÆ@Ì|£Ô…¢À{9˜è½Üó›€ôYÒÎYsið;ís¤€à²ˆ‚4qÉVŒI$ ‰"° æµ8cXGjœˏ¡Aâý•ËÜ¢ûï e·çLx']á"oÅÎê3¯Ç—¹”ó0nå‚âg{Œñ> S´˜îè°g238‚ãköÝfÚd´6Ò€;ò÷±¢™¼›º ¢Æ'¥Ðx'e¬ç ]bÈÆV¢ó‹kýBO ðÊâ$Ÿ!×T 3Mýמ žìٍàÌü‘8÷€àæØ8æ©6‰©L´«…oãpð„~Çk‰!ñ;‹”ÛžÍ àž±z Ÿôû øŸÝužÏ;ÿ #|u6™Þ¬ÚˆÐõA4¶â|ôl|Ê2ŽÇ¤ÝÅÇY.<#Aí.k§hóF‚”Y; M½Ö4hŸ4&›­¿tès´%FìL¥£Ãk‰ÇT¤haÁ¤ÚxfÉ`ÑìË›>i 3t‚:,–+^÷´–{Û–Nxi"x‘Ûg î¨>¥Õ܁ùZH,2Û“:8xÊ¢Çí9.É-Ìâã-=çjwµS˜dütžçwýGòú®®ûº_ˆýx$–¡ãøO EÚÛÏ÷R„×w+3£Á£öUMyR²¹âŒ°š›¸Ñãò9§Ó_Dl+Ùßc›úšGÅÌc†Ž!Ko=¶.‘Îÿ c²(2®V mª.ÿ ¹B›¹å ù„öŸSV>™ü¯$y:G¢Z×àøúdî¹û­·ýÇ´:•c LÍõi_‹ö+ÎæGÊè>OŠ•äž´§Þ{X}¨1ÚTc›»Qþ•êô°t¿OP?eæ~É{5]•ÙR£r5†nZ\ã@ &îJõ ¾àC°þV>fé¥/ü5ñÊIº_é5 ;e­h<@ Ä&æÃëE%;X,ÒãÆÞ`Oò¦kŸm#˜!ÀyÄ¢| óLšò¥Ä` ¶R=|ÈCâh5ò3DˆïF†ðÒ#ÅìÛœ?¸yhBãœí ZxßÎÄhºRK„`Þödvײ™ÀÈÑÒgŒuY w³%†ƒÓzõ ÖÏp‚dH®¦A´ù§»ÓÇMæ~)ˆð‡û:ù&Ä •vGD´À n ݇¼Ö8Fö óáà£~Ë¥x`oK|Ä?fxiØü%pìR>éò+Û±éÎ>núlFŤ'tq8LZÏvÃ?„¡ß±È⽆¯³íü@x|PöUäèØã¡ð‚ŒAìÏ"vÍwóŸÍ{ ý0.z È•Ö{,N¡£¡ŸKÕÙž>Ýœþ ÍÀ°<×EA!Å‚D™IúOÍ¡>ôG}Â` ÍßkÜL™Ž Þð™ {IøF²¹òQ3&!ÃÂÞz.d&Ï-sH¸,Ôõ˜ŽP€ 77ˆÝ¼ÊëÜw =cÕ Ú,ØÐ5ÎYÐ)ì´öœgŒ[¤ßv㙑8心>h]§µháYš£²ºÑ.{Ï7Sð•?´~×SÃKýJÛ˜ ™Íäiúu<µX¶1õ^kâçIÑ£sZ4h>j*ÔšD:4­¿_ ÷¸ Õxæÿ ¸?Mù _•­ÊÐ ä ÷ý ÑwL œ­ïnTkÛUÍN©ë:¦fV ¶ÜÔÜMªÅâA½–¿R×TXš-%iTÊT•‡Ù‚JôϐZxWÑè‰f‰òG º ×Õû2aZ7OU3[“×AT–ÞŒ…-‘¤”Ì ì&(ˆ¿­•ƒkï’:ðY¦W‘ Å)“†‘˜³Åtcø˜ñTÂwÚÇ4|üLÇªí–v- qˆèU qPE.†â‘˜µ Æ,ÐÅs]8¾„oúÑ i>ÜxxÈó)ƒ ´æÁâØ$À‰vžŸf$Ž |ãw;ÀÁIJ»b` {¦Ó¤Ú$©YÀ‘n@Óïž«9J¼êG m¤ ܯ¹ÌW4€ÐÒÅÛ‡#褕Ÿn-?í|с¥÷Ú¹¬'´ÞÜ9ÓK `hê£SÄSà?7—Wí_´…óB›»:=Ãïq`<8ñÓŒÑlú2d¬ê³£hÖ[l|$vÝro~'R®‰§°ñmY ͧäP |PUª¹·:3Œ[Û{Xÿ ºâ@‚W–Äé u‚ ¯´*=íή.pûÒdt @G‰¬ s¸ ëÉücr ÞæÑ¨Ê@>¤¢Ö±. Þ'¯°ÌME[YéïĵÂCå½ Ué©Áû'Ê9%eÔðNU”ë‘ÌsD3/®+UI˜9h.WC”빓$#:pz:YÓ ¿xž* ³$Í +$kñAŠ‹†¢ Uê>¸)_š¬÷©ßAÂÔb9ÇU ¯¾á•9¯ÏÏ÷O÷¼¼Fähal1‰3Ì[Ïr•´UCksNÐ] R‘¸¥H+§Šé†c©vÖÞ0iÓ76s†î!§=ß ¼~Ô'°Ãmäoäš³ªøi1úÉ)³yV8 CLÄØÁ‘WYïi€H6ÖÑiámø^ÈY´°Ñ7¥Û*—Ñ©L«Qƒï—Ùrÿ ›£Ð*š¸ˆL©ˆ$ˆ ÷¾D§9È®«qbqC)–ˆïv´çñsÑVT­Ø, <àïºÀO«Jý·õ àfPìð .wFšir´þ’2_Y *Æ€x\« ì€9š@ Ž|F⇥ˆkZ@hÖÄ0t¿-<“‹qµ¾*ZL¤Ú)&BJpÓF5=$„at*Zš$’ÑtdûÝRI1 2މ$€$I$#‰SÞ’Hë¬ï;Á$¡t$’`<(ñÇt)$‡Ð.Êf¢X’Kt=Éé$‚ˆªè¢oÝëòI%Rgcª÷ŠyI%¡‰ÿ !ñ)´õ $¤ Ô’IIGÿÙa 3gʓ@sJddlmZddlmZmZddlZddlZddlmZm Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlmZddlZddlZedZddlmZmZmZdadd ZGd d d ejZGd d d eZGdddeZ GdddeZ!GdddeZ"GdddeZ#ddZ$e%dkrFe&dS))support) bigmemtest_4GN)BytesIODEFAULT_BUFFER_SIZE)unlinkbz2)BZ2File BZ2CompressorBZ2DecompressorcCs8tdurttdatr*tjdg|dSt|SdS)NZbunzip2)input)has_cmdline_bunzip2boolshutilwhich subprocess check_outputr decompress)datar,/opt/python39/lib/python3.9/test/test_bz2.pyext_decompresss rc @seZdZdZgdZdeZdZdZdZ dZ e dZ e eje ejed D]TZeed *Ze eee e d 7Z Wd n1s0Ye dkrXqqXeje d d ZddZddZd S)BaseTestzBase for other testcases.)s root:x:0:0:root:/root:/bin/bash sbin:x:1:1:bin:/bin: sdaemon:x:2:2:daemon:/sbin: sadm:x:3:4:adm:/var/adm: slp:x:4:7:lp:/var/spool/lpd: s sync:x:5:0:sync:/sbin:/bin/sync s-shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown s!halt:x:7:0:halt:/sbin:/sbin/halt s"mail:x:8:12:mail:/var/spool/mail: s"news:x:9:13:news:/var/spool/news: s#uucp:x:10:14:uucp:/var/spool/uucp: s operator:x:11:0:operator:/root: s!games:x:12:100:games:/usr/games: s,gopher:x:13:30:gopher:/usr/lib/gopher-data: s(ftp:x:14:50:FTP User:/var/ftp:/bin/bash s#nobody:x:65534:65534:Nobody:/home: s.postfix:x:100:101:postfix:/var/spool/postfix: s-niemeyer:x:500:500::/home/niemeyer:/bin/bash s>postgres:x:101:102:PostgreSQL Server:/var/lib/pgsql:/bin/bash s6mysql:x:102:103:MySQL server:/var/lib/mysql:/bin/bash s#www:x:103:104::/var/www:/bin/false sBZh91AY&SY.N>_@n?0F#&FЦMQ4hh$i44S9gd6 Պ.Kvxwߡ|/";ձ#Aoy\O煚f82"%>V,z⟣"E)I^rU26U0^DFݸankR3]f"6l$j@l1..klsE knQ%yvz̹zn7.G]B@!8`sBZh9rE8Psthis is not a valid bzip2 fileriz*.pyrbN compresslevelcCst\}|_t|dSN)tempfilemkstempfilenameosclose)selffdrrrsetUpPszBaseTest.setUpcCst|jdSr)rr!r$rrrtearDownTszBaseTest.tearDown)__name__ __module__ __qualname____doc__ TEXT_LINESjoinTEXTDATA EMPTY_DATABAD_DATAZ test_size bytearrayBIG_TEXTglobr"pathescapedirname__file__ZfnameopenZfhreadinto memoryviewrcompressBIG_DATAr&r(rrrrr$s  & 8rc@seZdZdZd}ddZddZdd 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/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9Zd:d;Zdd?Z!d@dAZ"dBdCZ#dDdEZ$dFdGZ%dHdIZ&dJdKZ'dLdMZ(dNdOZ)dPdQZ*dRdSZ+dTdUZ,dVdWZ-dXdYZ.dZd[Z/d\d]Z0d^d_Z1d`daZ2dbdcZ3dddeZ4dfdgZ5dhdiZ6djdkZ7dldmZ8dndoZ9dpdqZ:drdsZ;dtduZdzd{Z?d|S)~ BZ2FileTestzTest the BZ2File class.rrcCsJt|jd*}||j|||Wdn1s<0YdS)Nwb)r:r!writer0)r$streamssuffixfrrrcreateTempFile[szBZ2FileTest.createTempFilecCs|ttd|tttjd|tttjd|tttjd|jtttjdd|jtttjdd|tttjdd dS) Ngw/^@zrxZrbtrr r) assertRaises TypeErrorr ValueErrorr"devnullr'rrr testBadArgs`szBZ2FileTest.testBadArgscCsZ|t|j4}|t|jt|||jWdn1sL0YdSr rEr r!rKrLreadfloat assertEqualr/r$bz2frrrtestReadks zBZ2FileTest.testReadcCsL|jd|jdt|j}|t|jWdn1s>0YdS)NrrBrC)rEr2r r!rKOSErrorrQrTrrrtestReadBadFileqs zBZ2FileTest.testReadBadFilecCsb|jddt|j8}|t|jt|||jdWdn1sT0YdSNrBrPrTrrrtestReadMultiStreamvs  zBZ2FileTest.testReadMultiStreamcCstj}t|jt_zh|jddt|j8}|t|j t | | |j dWdn1sh0YW|t_n|t_0dSrZ) _compression BUFFER_SIZElenr0rEr r!rKrLrQrRrSr/)r$Z buffer_sizerUrrrtestReadMonkeyMultiStream|s   6z%BZ2FileTest.testReadMonkeyMultiStreamcCsN|j|jdt|j"}|||jWdn1s@0YdS)N)rCrEr2r r!rSrQr/rTrrrtestReadTrailingJunks z BZ2FileTest.testReadTrailingJunkcCsT|jd|jdt|j&}|||jdWdn1sF0YdS)Nr[rWrbrTrrrtestReadMultiStreamTrailingJunks z+BZ2FileTest.testReadMultiStreamTrailingJunkcCsZ|t|j4}|t|jt||ddWdn1sL0YdS)Nrr)rEr r!rKrLrQrRrSrTrrr testRead0s zBZ2FileTest.testRead0cCsb|t|j<}d}|d}|s(q2||7}q|||jWdn1sT0YdS)NrrHrEr r!rQrSr/r$rUtextstrrrrtestReadChunk10s   zBZ2FileTest.testReadChunk10cCsj|jddt|j@}d}|d}|s,q6||7}q|||jdWdn1s\0YdS)Nr[r\rrHrfrgrrrtestReadChunk10MultiStreams    z&BZ2FileTest.testReadChunk10MultiStreamcCsR|t|j,}||d|jddWdn1sD0YdS)Nd)rEr r!rSrQr/rTrrr testRead100s zBZ2FileTest.testRead100cCsr|t|jL}|}|t|d||j|| | |jWdn1sd0YdSNr) rEr r!peekassertNotEqualr` assertTruer/ startswithrSrQ)r$rUpdatarrrtestPeeks  zBZ2FileTest.testPeekcCs|t|j}d}t|}|||||||jd|t|j|}tt|j}||||||d||j| dWdn1s0YdS)N)rEr r!r3rSr;r/r`)r$rUnbrrr testReadIntos zBZ2FileTest.testReadIntocCsb|t|j<}|t|jd|jD]}|||q*Wdn1sT0YdSrrEr r!rKrLreadliner-rSr$rUlinerrr testReadLines   zBZ2FileTest.testReadLinecCsj|jddt|j@}|t|jd|jdD]}|||q2Wdn1s\0YdSrZryr{rrrtestReadLineMultiStreams   z#BZ2FileTest.testReadLineMultiStreamcCsX|t|j2}|t|jd|||jWdn1sJ0YdSrrEr r!rKrL readlinesrSr-rTrrr testReadLiness zBZ2FileTest.testReadLinescCs`|jddt|j6}|t|jd|||jdWdn1sR0YdSrZrrTrrrtestReadLinesMultiStreams  z$BZ2FileTest.testReadLinesMultiStreamcCsL|t|j&}|tt||jWdn1s>0YdSrrEr r!rSlistiterr-rTrrr testIterators zBZ2FileTest.testIteratorcCsT|jddt|j*}|tt||jdWdn1sF0YdSrZrrTrrrtestIteratorMultiStreams  z#BZ2FileTest.testIteratorMultiStreamcCs:|t|j}||tt||t|jdSr)rEr r!r#rKrMnextrrTrrrtestClosedIteratorDeadlocks  z&BZ2FileTest.testClosedIteratorDeadlockcCst|jd*}|t|j||jWdn1s<0Yt|jd&}|t| |jWdn1s~0YdS)Nwr r r!rKrLrAr/r:rSrrQr$rUrDrrr testWrites *zBZ2FileTest.testWritecCst|jdH}d}|j|d|dd}|s2qF|||d7}qWdn1sZ0Yt|jd&}|t||jWdn1s0YdS)NrrrHrr)r r!r/rAr:rSrrQ)r$rUrvrirDrrrtestWriteChunks10s (zBZ2FileTest.testWriteChunks10cCstj|jdd}t|jddd}||jWdn1sB0Yt|jd }|||Wdn1s~0YdS)Nr[rrr) rr=r/r r!rAr:rSrQ)r$ZexpectedrUrDrrr testWriteNonDefaultCompressLevels *z,BZ2FileTest.testWriteNonDefaultCompressLevelcCst|jd*}|t|j||jWdn1s<0Y|t|jdgt|jd&}|t | |j Wdn1s0YdS)Nrar) r r!rKrL writelinesr-rMr:rSrrQr/rrrrtestWriteLiness *zBZ2FileTest.testWriteLinescCst|jd}|dWdn1s,0Yt|jd2}|t|jd|t|jdgWdn1sz0YdS)NrsabcrIa)r r!rArKrXrrTrrrtestWriteMethodsOnReadOnlyFiles (z*BZ2FileTest.testWriteMethodsOnReadOnlyFilecCst|jd*}|t|j||jWdn1s<0Yt|jd*}|t|j||jWdn1s0Yt|jd*}|t| |jdWdn1s0YdS)Nrrrrrrrr testAppend!s**zBZ2FileTest.testAppendcCsh|t|jB}|t|j|d|||jddWdn1sZ0YdSN) rEr r!rKrLseekrSrQr/rTrrrtestSeekForward+s   zBZ2FileTest.testSeekForwardcCsv|jddt|jL}|t|j|t|jd|| |jddWdn1sh0YdS)Nrr\r) rEr r!rKrLrr`r/rSrQrTrrrtestSeekForwardAcrossStreams2s   z(BZ2FileTest.testSeekForwardAcrossStreamscCsf|t|j@}|d|dd|||jddWdn1sX0YdSNijri^)rEr r!rQrrSr/rTrrrtestSeekBackwards9s    zBZ2FileTest.testSeekBackwardscCs|jddt|jf}t|jd}|dkrB|t||8}q&|dd|||jdd|jWdn1s0YdS)Nrr\rlrrri)rEr r!r`r/rQrrS)r$rUZreadtorrrtestSeekBackwardsAcrossStreams@s   z*BZ2FileTest.testSeekBackwardsAcrossStreamscCsf|t|j@}|dd|||jt|jddWdn1sX0YdS)Nrrr)rEr r!rrSrQr/r`rTrrrtestSeekBackwardsFromEndIs  z$BZ2FileTest.testSeekBackwardsFromEndcCsd|jddt|j:}|dd|||jdddWdn1sV0YdS)Nrr\i)rEr r!rrSrQr/rTrrr%testSeekBackwardsFromEndAcrossStreamsOs   z1BZ2FileTest.testSeekBackwardsFromEndAcrossStreamscCsf|t|j@}|d||t|j||dWdn1sX0YdSNIr rEr r!rrStellr`r/rQrTrrrtestSeekPostEndUs   zBZ2FileTest.testSeekPostEndcCsn|jddt|jD}|d||t|jd||dWdn1s`0YdSNr[r\rrrrTrrrtestSeekPostEndMultiStream\s    z&BZ2FileTest.testSeekPostEndMultiStreamcCsp|t|jJ}|d|d||t|j||dWdn1sb0YdSrrrTrrrtestSeekPostEndTwicecs    z BZ2FileTest.testSeekPostEndTwicecCsx|jddt|jN}|d|d||t|jd||dWdn1sj0YdSrrrTrrrtestSeekPostEndTwiceMultiStreamks     z+BZ2FileTest.testSeekPostEndTwiceMultiStreamcCsb|t|j<}|d||d|||jWdn1sT0YdS)NrrrEr r!rrSrrQr/rTrrrtestSeekPreStartss   zBZ2FileTest.testSeekPreStartcCsj|jddt|j@}|d||d|||jdWdn1s\0YdS)Nrr\rrrrTrrrtestSeekPreStartMultiStreamzs    z'BZ2FileTest.testSeekPreStartMultiStreamc Csz|t|jdD}t|}z |||W|n |0Wdn1s^0Y|t|jdS)Nr) rEr:r!r rSfilenor#rKrM)r$ZrawfrUrrr testFilenos2zBZ2FileTest.testFilenocCstt|j}z0|||||W|n |0|t|jttd}z| |W|n |0|t|jt|j}dd|_t|}z| |W|n |0|t|jdS)NrcSsdS)NFrrrrrrz*BZ2FileTest.testSeekable..) r rr0rqseekablerQr#rKrM assertFalse)r$rUsrcrrr testSeekables&   zBZ2FileTest.testSeekablecCstt|j}z0|||||W|n |0|t|jttd}z| |W|n |0|t|jdSNr) r rr0rqreadablerQr#rKrMrrTrrr testReadables zBZ2FileTest.testReadablecCstt|j}z0|||||W|n |0|t|jttd}z| |W|n |0|t|jdSr) r rr0rwritablerQr#rKrMrqrTrrr testWritables zBZ2FileTest.testWritablecCs&|tdD]}t|j}~qdS)Ni')rEranger r!)r$iorrr testOpenDels  zBZ2FileTest.testOpenDelcCs|ttddS)Nz /non/existent)rKrXr r'rrrtestOpenNonexistentszBZ2FileTest.testOpenNonexistentcCsd}t|jd}||Wdn1s00Yt|j}|}Wdn1sb0Y||dgt|j}t|}Wdn1s0Y||dgdS)Ns,BZh91AY&SYb] !h3M<]BCe%tr@sTest)r:r!rAr rrSr)r$rrDrUlinesZxlinesrrrtestReadlinesNoNewlines( & *z"BZ2FileTest.testReadlinesNoNewlinecCsd}t|jd}|dWdn1s00Yt|jd}|z(|Wdn1sj0YWntyYn 0|dz8t|jd}ddWdn1s0YWntyYn 0|ddS)Nr@sxxxrz4__enter__ on a closed file didn't raise an exceptionrrz1/0 didn't raise an exception)r r!rAr#rMZfailZeroDivisionErrorr$rDrrrtestContextProtocols"( "  * zBZ2FileTest.testContextProtocolc sddd}t|jd^fddfddt|D}t|Wdn1s^0YWdn1s|0YdS) N1irHr@cstdD]}qdSNr[)rrA)r)rrDrrcomps z'BZ2FileTest.testThreading..compcsg|]}tjdqS))target) threadingThread).0r)rrr rz-BZ2FileTest.testThreading..)r r!rrZ start_threads)r$Znthreadsthreadsr)rrrDr testThreadings zBZ2FileTest.testThreadingcCs>|t|jd}|d}t|jR}|||t||jd|d|||j|dWdn1s0Yt|jD}| |t||jd|| |jdWdn1s0Yt|j6}| | t t||| gWdn1s00YdS)Nrrr) rEr`r-r r!rQrSrr/rzrrK StopIteration)r$ZlinelenZhalflenrUrrrtestMixedIterationAndReadss  8 4 z&BZ2FileTest.testMixedIterationAndReadscCsd}d}t|jd}||Wdn1s40Yt|jd}||Wdn1sj0Yt|j$}||||Wdn1s0YdS)Ns foofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoos barbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarrr)r r!rArSrQ)r$Zdata1Zdata2rUrrrtestMultiStreamOrderings(( z#BZ2FileTest.testMultiStreamOrderingcCs|j}z|d}Wnty0|dYn0t|d}||jWdn1s^0Yt|d"}|||jWdn1s0Yt|d"}|||jWdn1s0YdS)Nasciiz%Temporary file name needs to be ASCIIr@r) r!encodeUnicodeEncodeErrorZskipTestr rAr0rSrQ)r$Z str_filenameZbytes_filenamerDrrrtestOpenBytesFilenames  * 0 z!BZ2FileTest.testOpenBytesFilenamecCst|j}t|d}||jWdn1s80Yt|d"}|||jWdn1st0YdS)Nr@r)pathlibPathr!r rAr0rSrQ)r$r!rDrrrtestOpenPathLikeFilename's   * z$BZ2FileTest.testOpenPathLikeFilenamecCshtjdtddd}|t|tjtt|}| | dddt }| |j j|ddS)z-Decompressed data buffering should be limitedg>A rrz)Excessive amount of data was decompressedN)rr=intZ assertLessr`r^r_r rrSrQrassertLessEqual_bufferrawr)r$ZbombdecompZ max_decomprrrtestDecompressLimited.s z!BZ2FileTest.testDecompressLimitedc Cst|jh}t|4}|t|jt|||jWdn1sN0Y| |j Wdn1sx0YdSr) rr0r rKrLrQrRrSr/rclosedr$biorUrrrtestReadBytesIO<s   0zBZ2FileTest.testReadBytesIOc Cst|jt}t|L}|}|t|d||j|| | |jWdn1sf0YWdn1s0YdSrn) rr0r rorpr`rqr/rrrSrQ)r$rrUrsrrrtestPeekBytesIOCs   zBZ2FileTest.testPeekBytesIOc Cstv}t|d*}|t|j||jWdn1sB0Y|t||j| |j Wdn1s0YdSr) rr rKrLrAr/rSrgetvaluerrrrrrtestWriteBytesIOKs  *zBZ2FileTest.testWriteBytesIOc Cst|jj}t|B}|t|j|d|||jddWdn1s\0YWdn1sz0YdSr) rr0r rKrLrrSrQr/rrrrtestSeekForwardBytesIOSs    z"BZ2FileTest.testSeekForwardBytesIOc Cst|jh}t|@}|d|dd|||jddWdn1sZ0YWdn1sx0YdSr)rr0r rQrrSr/rrrrtestSeekBackwardsBytesIOZs     z$BZ2FileTest.testSeekBackwardsBytesIOc Cs|jdd}tt|}|t|jWdn1s>0Ytt|:}||t|j|j|t|jdWdn1s0Yt dD]H}tt|d| }|t|jdWdq1s0YqdS)Nr) r0r rrKEOFErrorrQrSr`r/r)r$Z truncatedrDrrrrtest_read_truncatedas,. zBZ2FileTest.test_read_truncatedcCsptdgd}t||j}ttd2}|||||||Wdn1sb0YdS)NQ)rrrJr[r)arrayr`itemsizer rrSrAr)r$qZLENGTHrDrrrtest_issue44439ns zBZ2FileTest.test_issue44439N)rr)@r)r*r+r,rErOrVrYr]rarcrdrerjrkrmrtrxr}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr?Xsz                r?c@sJeZdZddZddZddZejee ddd d d Z d d Z dS)BZ2CompressorTestcCsBt}|t|j||j}||7}|t||jdSr)r rKrLr=r/flushrSrr$bz2crrrr testCompressxs   zBZ2CompressorTest.testCompresscCs.t}|d}||7}|||jdSNr)r r=rrSr1rrrrtestCompressEmptyStrings  z)BZ2CompressorTest.testCompressEmptyStringcCsht}d}d}|j|d|dd}|s.qF|||7}|d7}q||7}|t||jdS)NrrrHr)r r/r=rrSr)r$rrvrrirrrtestCompressChunks10s  z&BZ2CompressorTest.testCompressChunks10rlrsizeZmemusecCsxt}d|}z||}||7}Wd}nd}0t|}z.|t|||t|ddWd}nd}0dS)Nxr)r r=rrrrSr`strip)r$rrr compressedrrrtestCompress4Gs   z BZ2CompressorTest.testCompress4Gc CsPttjdD]<}|ttt|Wdq1s@0YqdSNr)rpickleHIGHEST_PROTOCOLrKrLdumpsr r$protorrr testPickles zBZ2CompressorTest.testPickleN) r)r*r+rrrrskip_if_pgo_taskrrrrrrrrrws  rc@seZdZddZddZddZddZd d Zej e e d d d ddZ ddZ ddZddZddZddZddZejddZdS)BZ2DecompressorTestcCs|ttddS)N*)rKrLr r'rrrtest_Constructorsz$BZ2DecompressorTest.test_ConstructorcCs2t}|t|j||j}|||jdSr)r rKrLrr0rSr/r$bz2drhrrrtestDecompresss z"BZ2DecompressorTest.testDecompresscCsXt}d}d}|j|d|dd}|s.qF|||7}|d7}q|||jdS)NrrrHr)r r0rrSr/)r$r rhrvrirrrtestDecompressChunks10s z*BZ2DecompressorTest.testDecompressChunks10cCs:t}d}||j|}|||j||j|dS)Nsthis is unused data)r rr0rSr/ unused_data)r$r rrhrrrtestDecompressUnusedDatas z,BZ2DecompressorTest.testDecompressUnusedDatacCs6t}||j}|t|jd|t|jddS)Nsanythingr)r rr0rKrr rrr testEOFErrors z BZ2DecompressorTest.testEOFErrorrlgffffff @rcCsjd}t|}zH|||d}t|}t}||}|||kWd}d}d}nd}d}d}0dS)Nir)random randbytesrr=r rrq)r$r blocksizeblockrrr Z decompressedrrrtestDecompress4Gs   z$BZ2DecompressorTest.testDecompress4Gc CsPttjdD]<}|ttt|Wdq1s@0YqdSr)rrrrKrLrr rrrrrs zBZ2DecompressorTest.testPicklecCst}d}g}t|jd}||j|jd||d||j|t|d|||jd|d||j|t|d|||j|j|d|d|t|d||j s||jd|d|t|d|qd |}|||j ||j ddS)Nrl@ max_lengthr) r r`r>appendrr needs_inputrSreofr.r4r)r$bzdroutZlen_rrrtestDecompressorChunksMaxsizes,   z1BZ2DecompressorTest.testDecompressorChunksMaxsizecCst}g}||j|jddddd||dd|||jddd|||jdd|d||jdS)Nrlrrrrir rSrr0rr.r/r$rr rrrtest_decompressor_inputbuf_1sz0BZ2DecompressorTest.test_decompressor_inputbuf_1cCst}g}||j|jddddd||d|||jddd|||jddd|||jdd|d||jdS)Nrrrir,r$r%rrrtest_decompressor_inputbuf_2sz0BZ2DecompressorTest.test_decompressor_inputbuf_2cCstt}g}|||jddd|||jddd|||jdd|d||jdS)Nr'r[r(r)r rrr0rSr.r/r%rrrtest_decompressor_inputbuf_3-s z0BZ2DecompressorTest.test_decompressor_inputbuf_3cCs6t}|t|j|jd|t|j|jddS)N)r rK Exceptionrr2)r$rrrr test_failure=sz BZ2DecompressorTest.test_failurecCsHttd}t}|}tdD] }|q |j||ddddS)NgettotalrefcountrlrrH)Zdelta)rZ get_attributesysr r__init__ZassertAlmostEqual)r$r.rZ refs_beforerrrrtest_refleaks_in___init__Cs    z-BZ2DecompressorTest.test_refleaks_in___init__N)r)r*r+r rrrrrrrrrrr!r&r)r*r-Z refcount_testr1rrrrr s   r c@s\eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ dS)CompressDecompressTestcCs"t|j}|t||jdSr)rr=r/rSr)r$rrrrrNs z#CompressDecompressTest.testCompresscCstd}|||jdSr)rr=rSr1r$rhrrrrRs z.CompressDecompressTest.testCompressEmptyStringcCst|j}|||jdSrrrr0rSr/r3rrrrVs z%CompressDecompressTest.testDecompresscCstd}||ddSr)rrrSr3rrrtestDecompressEmptyZs z*CompressDecompressTest.testDecompressEmptycCst|j}||ddSr)rrr1rSr3rrrtestDecompressToEmptyString^s z2CompressDecompressTest.testDecompressToEmptyStringcCs|ttj|jdddS)Nr)rKrMrrr0r'rrrtestDecompressIncompletebsz/CompressDecompressTest.testDecompressIncompletecCs|ttj|jdSr)rKrXrrr2r'rrrtestDecompressBadDataesz,CompressDecompressTest.testDecompressBadDatacCs&t|jd}|||jddSrr4r3rrrtestDecompressMultiStreamhsz0CompressDecompressTest.testDecompressMultiStreamcCs$t|j|j}|||jdSrrrr0r2rSr/r3rrrtestDecompressTrailingJunklsz1CompressDecompressTest.testDecompressTrailingJunkcCs,t|jd|j}|||jddSrr:r3rrr%testDecompressMultiStreamTrailingJunkpsz||j|}Wdn1sp0YWdq1s0YqdS)N)rGr@rK)rr!r:rKFileExistsError)r$rDrDrrr test_x_modes  zOpenTest.test_x_modecCs|t|jd"}|||jWdn1s:0Y|t|jd"}|||jWdn1s~0Y|jd}|t|jd }|||Wdn1s0YdS)NrIrrrL)r:rr0rSrQr/rM)r$rDrhrrr test_fileobjs00 zOpenTest.test_fileobjcCst|t|j|jd|t|j|jd|jt|j|jddd|jt|j|jddd|jt|j|jddd dS) NZwbtZxbtrzutf-8encodingignore)errorsrInewline)rKrMr:r!r'rrrtest_bad_paramss     zOpenTest.test_bad_paramscCs|jd}|dtj}|j|jddd}||Wdn1sL0Yt|jd.}t| d}| ||Wdn1s0Y|j|jddd }| | |Wdn1s0YdS)NrrIrJz utf-16-lerUrrL) r/rMrNr"rOr:r!rArrQrS)r$rhrPrDrErrr test_encodings (*zOpenTest.test_encodingcCs||jd}|dWdn1s.0Y|j|jdddd }||dWdn1sr0YdS)Nr@sfoobarrLrrW)rVrXZfoobar)r:r!rArSrQrrrrtest_encoding_error_handlers (z$OpenTest.test_encoding_error_handlercCs|jd}|j|jddd}||Wdn1s>0Y|j|jddd"}|||gWdn1s0YdS)NrrJrIrYrL )r/rMr:r!rArSr)r$rhrDrrr test_newlines  (zOpenTest.test_newlineN)r)r*r+r,r:rFrHrQrSrTr[r\r]r_rrrrr=us    r=cCs tdSr)r reap_childrenrrrrtearDownModulesra__main__)'testrZ test.supportrrrZunittestiorrr"rr5rrrrrrrr^r/ import_modulerr r r r rZTestCaserr?rr r2r=rar)mainrrrrsD    4#3$(x