ÿØÿà 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 @seZdZgdZdeZdZdZdZdZ e dZ e e je e jedD]TZeed *Ze eee e d 7Z Wd n1s0Ye dkrTqqTeje d d Zd dZddZd S)BaseTest)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__ TEXT_LINESjoinTEXTDATA EMPTY_DATABAD_DATAZ test_size bytearrayBIG_TEXTglobr"pathescapedirname__file__ZfnameopenZfhreadinto memoryviewrcompressBIG_DATAr&r(rrrrr$s & 8rc@seZdZd|ddZddZddZd d Zd d Zd dZddZ ddZ ddZ ddZ ddZ ddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Zd9d:Zd;d<Zd=d>Z d?d@Z!dAdBZ"dCdDZ#dEdFZ$dGdHZ%dIdJZ&dKdLZ'dMdNZ(dOdPZ)dQdRZ*dSdTZ+dUdVZ,dWdXZ-dYdZZ.d[d\Z/d]d^Z0d_d`Z1dadbZ2dcddZ3dedfZ4dgdhZ5didjZ6dkdlZ7dmdnZ8dodpZ9dqdrZ:dsdtZ;dudvZd{S)} BZ2FileTestrrcCsJt|jd*}||j|||Wdn1s<0YdS)Nwb)r9r!writer/)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 rDr r!rJrKreadfloat assertEqualr.r$bz2frrrtestReadks zBZ2FileTest.testReadcCsL|jd|jdt|j}|t|jWdn1s>0YdS)NrrArB)rDr1r r!rJOSErrorrPrSrrrtestReadBadFileqs zBZ2FileTest.testReadBadFilecCsb|jddt|j8}|t|jt|||jdWdn1sT0YdSNrArOrSrrrtestReadMultiStreamvs  zBZ2FileTest.testReadMultiStreamcCstj}t|jt_zh|jddt|j8}|t|j t | | |j dWdn1sh0YW|t_n|t_0dSrY) _compression BUFFER_SIZElenr/rDr r!rJrKrPrQrRr.)r$Z buffer_sizerTrrrtestReadMonkeyMultiStream|s   6z%BZ2FileTest.testReadMonkeyMultiStreamcCsN|j|jdt|j"}|||jWdn1s@0YdS)N)rBrDr1r r!rRrPr.rSrrrtestReadTrailingJunks z BZ2FileTest.testReadTrailingJunkcCsT|jd|jdt|j&}|||jdWdn1sF0YdS)NrZrVrarSrrrtestReadMultiStreamTrailingJunks z+BZ2FileTest.testReadMultiStreamTrailingJunkcCsZ|t|j4}|t|jt||ddWdn1sL0YdS)Nrr)rDr r!rJrKrPrQrRrSrrr testRead0s zBZ2FileTest.testRead0cCsb|t|j<}d}|d}|s(q2||7}q|||jWdn1sT0YdS)NrrGrDr r!rPrRr.r$rTtextstrrrrtestReadChunk10s   zBZ2FileTest.testReadChunk10cCsj|jddt|j@}d}|d}|s,q6||7}q|||jdWdn1s\0YdS)NrZr[rrGrerfrrrtestReadChunk10MultiStreams    z&BZ2FileTest.testReadChunk10MultiStreamcCsR|t|j,}||d|jddWdn1sD0YdS)Nd)rDr r!rRrPr.rSrrr testRead100s zBZ2FileTest.testRead100cCsr|t|jL}|}|t|d||j|| | |jWdn1sd0YdSNr) rDr r!peekassertNotEqualr_ assertTruer. startswithrRrP)r$rTpdatarrrtestPeeks  zBZ2FileTest.testPeekcCs|t|j}d}t|}|||||||jd|t|j|}tt|j}||||||d||j| dWdn1s0YdS)N)rDr r!r2rRr:r.r_)r$rTnbrrr testReadIntos zBZ2FileTest.testReadIntocCsb|t|j<}|t|jd|jD]}|||q*Wdn1sT0YdSrrDr r!rJrKreadliner,rRr$rTlinerrr testReadLines   zBZ2FileTest.testReadLinecCsj|jddt|j@}|t|jd|jdD]}|||q2Wdn1s\0YdSrYrxrzrrrtestReadLineMultiStreams   z#BZ2FileTest.testReadLineMultiStreamcCsX|t|j2}|t|jd|||jWdn1sJ0YdSrrDr r!rJrK readlinesrRr,rSrrr testReadLiness zBZ2FileTest.testReadLinescCs`|jddt|j6}|t|jd|||jdWdn1sR0YdSrYr~rSrrrtestReadLinesMultiStreams  z$BZ2FileTest.testReadLinesMultiStreamcCsL|t|j&}|tt||jWdn1s>0YdSrrDr r!rRlistiterr,rSrrr testIterators zBZ2FileTest.testIteratorcCsT|jddt|j*}|tt||jdWdn1sF0YdSrYrrSrrrtestIteratorMultiStreams  z#BZ2FileTest.testIteratorMultiStreamcCs:|t|j}||tt||t|jdSr)rDr r!r#rJrLnextrrSrrrtestClosedIteratorDeadlocks  z&BZ2FileTest.testClosedIteratorDeadlockcCst|jd*}|t|j||jWdn1s<0Yt|jd&}|t| |jWdn1s~0YdS)Nwr r r!rJrKr@r.r9rRrrPr$rTrCrrr testWrites *zBZ2FileTest.testWritecCst|jdH}d}|j|d|dd}|s2qF|||d7}qWdn1sZ0Yt|jd&}|t||jWdn1s0YdS)NrrrGrr)r r!r.r@r9rRrrP)r$rTrurhrCrrrtestWriteChunks10s (zBZ2FileTest.testWriteChunks10cCstj|jdd}t|jddd}||jWdn1sB0Yt|jd }|||Wdn1s~0YdS)NrZrrr) rr<r.r r!r@r9rRrP)r$ZexpectedrTrCrrr testWriteNonDefaultCompressLevels *z,BZ2FileTest.testWriteNonDefaultCompressLevelcCst|jd*}|t|j||jWdn1s<0Y|t|jdgt|jd&}|t | |j Wdn1s0YdS)Nrar) r r!rJrK writelinesr,rLr9rRrrPr.rrrrtestWriteLiness *zBZ2FileTest.testWriteLinescCst|jd}|dWdn1s,0Yt|jd2}|t|jd|t|jdgWdn1sz0YdS)NrsabcrHa)r r!r@rJrWrrSrrrtestWriteMethodsOnReadOnlyFiles (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) rDr r!rJrKseekrRrPr.rSrrrtestSeekForward+s   zBZ2FileTest.testSeekForwardcCsv|jddt|jL}|t|j|t|jd|| |jddWdn1sh0YdS)Nrr[r) rDr r!rJrKrr_r.rRrPrSrrrtestSeekForwardAcrossStreams2s   z(BZ2FileTest.testSeekForwardAcrossStreamscCsf|t|j@}|d|dd|||jddWdn1sX0YdSNijri^)rDr r!rPrrRr.rSrrrtestSeekBackwards9s    zBZ2FileTest.testSeekBackwardscCs|jddt|jf}t|jd}|dkrB|t||8}q&|dd|||jdd|jWdn1s0YdS)Nrr[rkrrri)rDr r!r_r.rPrrR)r$rTZreadtorrrtestSeekBackwardsAcrossStreams@s   z*BZ2FileTest.testSeekBackwardsAcrossStreamscCsf|t|j@}|dd|||jt|jddWdn1sX0YdS)Nrrr)rDr r!rrRrPr.r_rSrrrtestSeekBackwardsFromEndIs  z$BZ2FileTest.testSeekBackwardsFromEndcCsd|jddt|j:}|dd|||jdddWdn1sV0YdS)Nrr[i)rDr r!rrRrPr.rSrrr%testSeekBackwardsFromEndAcrossStreamsOs   z1BZ2FileTest.testSeekBackwardsFromEndAcrossStreamscCsf|t|j@}|d||t|j||dWdn1sX0YdSNIr rDr r!rrRtellr_r.rPrSrrrtestSeekPostEndUs   zBZ2FileTest.testSeekPostEndcCsn|jddt|jD}|d||t|jd||dWdn1s`0YdSNrZr[rrrrSrrrtestSeekPostEndMultiStream\s    z&BZ2FileTest.testSeekPostEndMultiStreamcCsp|t|jJ}|d|d||t|j||dWdn1sb0YdSrrrSrrrtestSeekPostEndTwicecs    z BZ2FileTest.testSeekPostEndTwicecCsx|jddt|jN}|d|d||t|jd||dWdn1sj0YdSrrrSrrrtestSeekPostEndTwiceMultiStreamks     z+BZ2FileTest.testSeekPostEndTwiceMultiStreamcCsb|t|j<}|d||d|||jWdn1sT0YdS)NrrrDr r!rrRrrPr.rSrrrtestSeekPreStartss   zBZ2FileTest.testSeekPreStartcCsj|jddt|j@}|d||d|||jdWdn1s\0YdS)Nrr[rrrrSrrrtestSeekPreStartMultiStreamzs    z'BZ2FileTest.testSeekPreStartMultiStreamc Csz|t|jdD}t|}z |||W|n |0Wdn1s^0Y|t|jdS)Nr) rDr9r!r rRfilenor#rJrL)r$ZrawfrTrrr 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 rr/rpseekablerPr#rJrL assertFalse)r$rTsrcrrr testSeekables&   zBZ2FileTest.testSeekablecCstt|j}z0|||||W|n |0|t|jttd}z| |W|n |0|t|jdSNr) r rr/rpreadablerPr#rJrLrrSrrr testReadables zBZ2FileTest.testReadablecCstt|j}z0|||||W|n |0|t|jttd}z| |W|n |0|t|jdSr) r rr/rwritablerPr#rJrLrprSrrr testWritables zBZ2FileTest.testWritablecCs&|tdD]}t|j}~qdS)Ni')rDranger r!)r$iorrr testOpenDels  zBZ2FileTest.testOpenDelcCs|ttddS)Nz /non/existent)rJrWr r'rrrtestOpenNonexistentszBZ2FileTest.testOpenNonexistentcCsd}t|jd}||Wdn1s00Yt|j}|}Wdn1sb0Y||dgt|j}t|}Wdn1s0Y||dgdS)Ns,BZh91AY&SYb] !h3M<]BCe%tr?sTest)r9r!r@r rrRr)r$rrCrTlinesZxlinesrrrtestReadlinesNoNewlines( & *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!r@r#rLZfailZeroDivisionErrorr$rCrrrtestContextProtocols"( "  * zBZ2FileTest.testContextProtocolc sddd}t|jd^fddfddt|D}t|Wdn1s^0YWdn1s|0YdS) N1irGr?cstdD]}qdSNrZ)rr@)r)rrCrrcomps z'BZ2FileTest.testThreading..compcsg|]}tjdqS))target) threadingThread).0r)rrr rz-BZ2FileTest.testThreading..)r r!rrZ start_threads)r$Znthreadsthreadsr)rrrCr testThreadings zBZ2FileTest.testThreadingcCs>|t|jd}|d}t|jR}|||t||jd|d|||j|dWdn1s0Yt|jD}| |t||jd|| |jdWdn1s0Yt|j6}| | t t||| gWdn1s00YdS)Nrrr) rDr_r,r r!rPrRrr.ryrrJ StopIteration)r$ZlinelenZhalflenrTrrrtestMixedIterationAndReadss  8 4 z&BZ2FileTest.testMixedIterationAndReadscCsd}d}t|jd}||Wdn1s40Yt|jd}||Wdn1sj0Yt|j$}||||Wdn1s0YdS)Ns foofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoos barbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarrr)r r!r@rRrP)r$Zdata1Zdata2rTrrrtestMultiStreamOrderings(( 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 r@r/rRrP)r$Z str_filenameZbytes_filenamerCrrrtestOpenBytesFilenames  * 0 z!BZ2FileTest.testOpenBytesFilenamecCst|j}t|d}||jWdn1s80Yt|d"}|||jWdn1st0YdS)Nr?r)pathlibPathr!r r@r/rRrP)r$r!rCrrrtestOpenPathLikeFilename's   * z$BZ2FileTest.testOpenPathLikeFilenamecCshtjdtddd}|t|tjtt|}| | dddt }| |j j|ddS)Ng>A rrz)Excessive amount of data was decompressed)rr<intZ assertLessr_r]r^r rrRrPrassertLessEqual_bufferrawr)r$ZbombdecompZ max_decomprrrtestDecompressLimited.s z!BZ2FileTest.testDecompressLimitedc Cst|jh}t|4}|t|jt|||jWdn1sN0Y| |j Wdn1sx0YdSr) rr/r rJrKrPrQrRr.rclosedr$biorTrrrtestReadBytesIO<s   0zBZ2FileTest.testReadBytesIOc Cst|jt}t|L}|}|t|d||j|| | |jWdn1sf0YWdn1s0YdSrm) rr/r rnror_rpr.rqrRrP)r$rrTrrrrrtestPeekBytesIOCs   zBZ2FileTest.testPeekBytesIOc Cstv}t|d*}|t|j||jWdn1sB0Y|t||j| |j Wdn1s0YdSr) rr rJrKr@r.rRrgetvaluerrrrrrtestWriteBytesIOKs  *zBZ2FileTest.testWriteBytesIOc Cst|jj}t|B}|t|j|d|||jddWdn1s\0YWdn1sz0YdSr) rr/r rJrKrrRrPr.rrrrtestSeekForwardBytesIOSs    z"BZ2FileTest.testSeekForwardBytesIOc Cst|jh}t|@}|d|dd|||jddWdn1sZ0YWdn1sx0YdSr)rr/r rPrrRr.rrrrtestSeekBackwardsBytesIOZs     z$BZ2FileTest.testSeekBackwardsBytesIOc Cs|jdd}tt|}|t|jWdn1s>0Ytt|:}||t|j|j|t|jdWdn1s0Yt dD]H}tt|d| }|t|jdWdq1s0YqdS)Nr) r/r rrJEOFErrorrPrRr_r.r)r$Z truncatedrCrrrrtest_read_truncatedas,. zBZ2FileTest.test_read_truncatedcCsptdgd}t||j}ttd2}|||||||Wdn1sb0YdS)NQ)rrrIrZr)arrayr_itemsizer rrRr@r)r$qZLENGTHrCrrrtest_issue44439ns zBZ2FileTest.test_issue44439N)rr)?r)r*r+rDrNrUrXr\r`rbrcrdrirjrlrsrwr|r}rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr>Xsx                r>c@sJeZdZddZddZddZejee ddd d d Z d d Z dS)BZ2CompressorTestcCsBt}|t|j||j}||7}|t||jdSr)r rJrKr<r.flushrRrr$bz2crrrr testCompressxs   zBZ2CompressorTest.testCompresscCs.t}|d}||7}|||jdSNr)r r<rrRr0rrrrtestCompressEmptyStrings  z)BZ2CompressorTest.testCompressEmptyStringcCsht}d}d}|j|d|dd}|s.qF|||7}|d7}q||7}|t||jdS)NrrrGr)r r.r<rrRr)r$rrurrhrrrtestCompressChunks10s  z&BZ2CompressorTest.testCompressChunks10rkrsizeZmemusecCsxt}d|}z||}||7}Wd}nd}0t|}z.|t|||t|ddWd}nd}0dS)Nxr)r r<rrrrRr_strip)r$rrr compressedrrrtestCompress4Gs   z BZ2CompressorTest.testCompress4Gc CsPttjdD]<}|ttt|Wdq1s@0YqdSNr)rpickleHIGHEST_PROTOCOLrJrKdumpsr 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*)rJrKr r'rrrtest_Constructorsz$BZ2DecompressorTest.test_ConstructorcCs2t}|t|j||j}|||jdSr)r rJrKrr/rRr.r$bz2drgrrrtestDecompresss z"BZ2DecompressorTest.testDecompresscCsXt}d}d}|j|d|dd}|s.qF|||7}|d7}q|||jdS)NrrrGr)r r/rrRr.)r$r rgrurhrrrtestDecompressChunks10s z*BZ2DecompressorTest.testDecompressChunks10cCs:t}d}||j|}|||j||j|dS)Nsthis is unused data)r rr/rRr. unused_data)r$r rrgrrrtestDecompressUnusedDatas z,BZ2DecompressorTest.testDecompressUnusedDatacCs6t}||j}|t|jd|t|jddS)Nsanythingr)r rr/rJrr rrr testEOFErrors z BZ2DecompressorTest.testEOFErrorrkgffffff @rcCsjd}t|}zH|||d}t|}t}||}|||kWd}d}d}nd}d}d}0dS)Nir)random randbytesrr<r rrp)r$r blocksizeblockrrr Z decompressedrrrtestDecompress4Gs   z$BZ2DecompressorTest.testDecompress4Gc CsPttjdD]<}|ttt|Wdq1s@0YqdSr)rrrrJrKrr 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)Nrk@ max_lengthr) r r_r=appendrr needs_inputrRreofr-r3r)r$bzdroutZlen_rrrtestDecompressorChunksMaxsizes,   z1BZ2DecompressorTest.testDecompressorChunksMaxsizecCst}g}||j|jddddd||dd|||jddd|||jdd|d||jdS)Nrkrrrrir rRrr/rr-r.r$rrrrrtest_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&rZr'r)r rrr/rRr-r.r$rrrtest_decompressor_inputbuf_3-s z0BZ2DecompressorTest.test_decompressor_inputbuf_3cCs6t}|t|j|jd|t|j|jddS)N)r rJ Exceptionrr1)r$rrrr test_failure=sz BZ2DecompressorTest.test_failurecCsHttd}t}|}tdD] }|q |j||ddddS)NgettotalrefcountrkrrG)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 r rrrrrrrrrr r%r(r)r,Z refcount_testr0rrrrrs   rc@s\eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ dS)CompressDecompressTestcCs"t|j}|t||jdSr)rr<r.rRr)r$rrrrrNs z#CompressDecompressTest.testCompresscCstd}|||jdSr)rr<rRr0r$rgrrrrRs z.CompressDecompressTest.testCompressEmptyStringcCst|j}|||jdSrrrr/rRr.r2rrrr Vs z%CompressDecompressTest.testDecompresscCstd}||ddSr)rrrRr2rrrtestDecompressEmptyZs z*CompressDecompressTest.testDecompressEmptycCst|j}||ddSr)rrr0rRr2rrrtestDecompressToEmptyString^s z2CompressDecompressTest.testDecompressToEmptyStringcCs|ttj|jdddS)Nr)rJrLrrr/r'rrrtestDecompressIncompletebsz/CompressDecompressTest.testDecompressIncompletecCs|ttj|jdSr)rJrWrrr1r'rrrtestDecompressBadDataesz,CompressDecompressTest.testDecompressBadDatacCs&t|jd}|||jddSrr3r2rrrtestDecompressMultiStreamhsz0CompressDecompressTest.testDecompressMultiStreamcCs$t|j|j}|||jdSrrrr/r1rRr.r2rrrtestDecompressTrailingJunklsz1CompressDecompressTest.testDecompressTrailingJunkcCs,t|jd|j}|||jddSrr9r2rrr%testDecompressMultiStreamTrailingJunkpsz||j|}Wdn1sp0YWdq1s0YqdS)N)rFr?rJ)rr!r9rJFileExistsError)r$rCrCrrr test_x_modes  zOpenTest.test_x_modecCs|t|jd"}|||jWdn1s:0Y|t|jd"}|||jWdn1s~0Y|jd}|t|jd }|||Wdn1s0YdS)NrHrrrK)r9rr/rRrPr.rL)r$rCrgrrr test_fileobjs00 zOpenTest.test_fileobjcCst|t|j|jd|t|j|jd|jt|j|jddd|jt|j|jddd|jt|j|jddd dS) NZwbtZxbtrzutf-8encodingignore)errorsrHnewline)rJrLr9r!r'rrrtest_bad_paramss     zOpenTest.test_bad_paramscCs|jd}|dtj}|j|jddd}||Wdn1sL0Yt|jd.}t| d}| ||Wdn1s0Y|j|jddd }| | |Wdn1s0YdS)NrrHrIz utf-16-lerTrrK) r.rLrMr"rNr9r!r@rrPrR)r$rgrOrCrDrrr test_encodings (*zOpenTest.test_encodingcCs||jd}|dWdn1s.0Y|j|jdddd }||dWdn1sr0YdS)Nr?sfoobarrKrrV)rUrWZfoobar)r9r!r@rRrPrrrrtest_encoding_error_handlers (z$OpenTest.test_encoding_error_handlercCs|jd}|j|jddd}||Wdn1s>0Y|j|jddd"}|||gWdn1s0YdS)NrrIrHrXrK )r.rLr9r!r@rRr)r$rgrCrrr test_newlines  (zOpenTest.test_newlineN) r)r*r+r9rErGrPrRrSrZr[r\r^rrrrr<us    r<cCs tdSr)r reap_childrenrrrrtearDownModulesr`__main__)'testrZ test.supportrrrZunittestiorrr"rr4rrrrrrrr]r. import_modulerr r r r rZTestCaserr>rrr1r<r`r)mainrrrrsD    4#3$(x