+
    Bi                        ^ RI Ht ^ RIHtHt ^ RIt^ RIt^ RIt^ RIHtH	t	 ^ RI
t
^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIHtHt ^ RIHt ^ RIt]P4                  ! R	4      t^ R
IHtHtHt RsR t  ! R R]PB                  4      t" ! R R]"4      t# ! R R]"4      t$ ! R R]"4      t% ! R R]"4      t& ! R R]"4      t'R t(])R8X  d   ]PT                  ! 4        R# R# )    )support)
bigmemtest_4GN)BytesIODEFAULT_BUFFER_SIZE)import_helper)threading_helper)unlinkFakePath)_streamsbz2)BZ2FileBZ2CompressorBZ2Decompressorc                     \         f    \        \        P                  ! R4      4      s \         '       d   \        P
                  ! R.V R7      # \        P                  V 4      # )Nbunzip2)input)has_cmdline_bunzip2boolshutilwhich
subprocesscheck_outputr   
decompress)datas   &$/usr/lib/python3.14/test/test_bz2.pyext_decompressr      sF    ""6<<	#:;&&	{$??~~d##    c            	         a  ] tR t^&t o Rt. ROtRP                  ]4      tRtRt	Rt
^ t]! R4      t]P                  ! ]P                   P                  ]P"                  ! ]P                   P%                  ]4      4      R4      4       FG  t]! ]R4      ;_uu_ 4       t]]P/                  ]! ]4      ]R 4      ,          tRRR4       ]R8  g   KG   M	  ]P5                  ]^R	7      tR
 tR tRtV tR#   + '       g   i     L<; i)BaseTestzBase for other testcases.r   s  BZh91AY&SY.N >_ @n ?0 F#&FЦMQ4hh$i44S<QHՇI/E pu]ɻDL
Q	1ߠ2O97dIJL#/#CWMXa<etL˄.`n}lh	E,ZVH>9gd6
Պ.Kvxwߡ|/";ձ#Aoy\O煚f82"%>V,z⟣"E)I^rU26U0^DFݸankR3]f"6l$j@l1..klsEknQ%yvz̹zn7.G]B@!8`s   BZh9rE8P    s   this is not a valid bzip2 filez*.pyrbNcompresslevelc                j    \         P                  ! 4       w  qn        \        P                  ! V4       R # N)tempfilemkstempfilenameosclose)selffds   & r   setUpBaseTest.setUpR   s     $,,.M
r   c                0    \        V P                  4       R # r%   )r
   r(   r+   s   &r   tearDownBaseTest.tearDownV   s    t}}r   )r(   )s    root:x:0:0:root:/root:/bin/bash
s   bin:x:1:1:bin:/bin:
s   daemon:x:2:2:daemon:/sbin:
s   adm:x:3:4:adm:/var/adm:
s   lp: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
s6   mysql:x:102:103:MySQL server:/var/lib/mysql:/bin/bash
s#   www:x:103:104::/var/www:/bin/false
i   ) __name__
__module____qualname____firstlineno____doc__
TEXT_LINESjoinTEXTDATA
EMPTY_DATABAD_DATA	test_size	bytearrayBIG_TEXTglobr)   pathescapedirname__file__fnameopenfhreadinto
memoryviewr   compressBIG_DATAr-   r1   __static_attributes____classdictcell____classdict__s   @r   r    r    &   s     
J. 88JD ^D4J0H I"H277<<BGGOOH4M(NPVWX%"Z%9)*%EFFI x	 Y
 ||HA|6H  s   "C00D r    c                     a  ] tR t^Zt o RtRDR ltR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t R t!R t"R  t#R! t$R" t%R# t&R$ t'R% t(R& t)R' t*R( t+R) t,R* t-R+ t.R, t/R- t0R. t1R/ t2R0 t3]4Pj                  ! 4       R1 4       t6R2 t7R3 t8R4 t9R5 t:R6 t;R7 t<R8 t=R9 t>R: t?R; t@R< tAR= tBR> tCR? tDR@ tERA tFRBtGV tHRC# )EBZ2FileTestzTest the BZ2File class.c                    \        V P                  R 4      ;_uu_ 4       pVP                  V P                  V,          4       VP                  V4       RRR4       R#   + '       g   i     R# ; i)wbN)rG   r(   writer;   )r+   streamssuffixfs   &&& r   createTempFileBZ2FileTest.createTempFile]   sD    $--&&!GGDII'(GGFO '&&&s   4AA.	c                :   V P                  \        \        R 4       V P                  \        \        \        P
                  R4       V P                  \        \        \        P
                  R4       V P                  \        \        \        P
                  R4       V P                  \        \        \        P
                  ^ R7       V P                  \        \        \        P
                  ^
R7       V P                  \        \        \        P
                  R^4       R# )gw/^@zrxrbtr"   rN)assertRaises	TypeErrorr   
ValueErrorr)   devnullr0   s   &r   testBadArgsBZ2FileTest.testBadArgsb   s    )Wg6*grzz3?*grzz4@*grzz5A*grzzK*grzzL 	)Wbjj#qAr   c                @   V P                  4        \        V P                  4      ;_uu_ 4       pV P                  \        VP
                  \        4       4       V P                  VP                  4       V P                  4       R R R 4       R #   + '       g   i     R # ; ir%   	rY   r   r(   r`   ra   readfloatassertEqualr:   r+   bz2fs   & r   testReadBZ2FileTest.testReadm   s`    T]]##tiEG<TYY[$))4 $###s   ABB	c                    V P                  ^ V P                  R7       \        V P                  4      ;_uu_ 4       pV P	                  \
        VP                  4       RRR4       R#   + '       g   i     R# ; i)r   rV   rW   N)rY   r=   r   r(   r`   OSErrorrh   rk   s   & r   testReadBadFileBZ2FileTest.testReadBadFiles   sM    Admm<T]]##tgtyy1 $###s   !A&&A7	c                R   V P                  ^R7       \        V P                  4      ;_uu_ 4       pV P                  \        VP
                  \        4       4       V P                  VP                  4       V P                  ^,          4       RRR4       R#   + '       g   i     R# ; i   rV   Nrg   rk   s   & r   testReadMultiStreamBZ2FileTest.testReadMultiStreamx   si    A&T]]##tiEG<TYY[$))a-8 $###s   ABB&	c                   \         P                  p\        V P                  4      \         n         V P	                  ^R7       \        V P                  4      ;_uu_ 4       pV P                  \        VP                  \        4       4       V P                  VP                  4       V P                  ^,          4       RRR4       V\         n        R#   + '       g   i     L; i  T\         n        i ; iru   )r   BUFFER_SIZElenr;   rY   r   r(   r`   ra   rh   ri   rj   r:   )r+   buffer_sizerl   s   &  r   testReadMonkeyMultiStream%BZ2FileTest.testReadMonkeyMultiStream~   s     **"499~	/*''4!!)TYY@  dii!m< ( $/H 	 (' $/H s$   /C" AC:C" C	C" "C/c                   V P                  V P                  R 7       \        V P                  4      ;_uu_ 4       pV P	                  VP                  4       V P                  4       RRR4       R#   + '       g   i     R# ; i))rW   NrY   r=   r   r(   rj   rh   r:   rk   s   & r   testReadTrailingJunk BZ2FileTest.testReadTrailingJunk   sQ    4==1T]]##tTYY[$))4 $###s   +A//B 	c                   V P                  ^V P                  R7       \        V P                  4      ;_uu_ 4       pV P	                  VP                  4       V P                  ^,          4       RRR4       R#   + '       g   i     R# ; i)rv   rp   Nr   rk   s   & r   testReadMultiStreamTrailingJunk+BZ2FileTest.testReadMultiStreamTrailingJunk   sW    Admm<T]]##tTYY[$))a-8 $###s   2A77B	c                .   V P                  4        \        V P                  4      ;_uu_ 4       pV P                  \        VP
                  \        4       4       V P                  VP                  ^ 4      R4       RRR4       R#   + '       g   i     R# ; ir   r   N)rY   r   r(   r`   ra   rh   ri   rj   rk   s   & r   	testRead0BZ2FileTest.testRead0   s^    T]]##tiEG<TYYq\3/ $###s   ABB	c                   V P                  4        \        V P                  4      ;_uu_ 4       pR p VP                  ^
4      pV'       g   M
W#,          pK%  V P	                  W P
                  4       RRR4       R#   + '       g   i     R# ; ir   NrY   r   r(   rh   rj   r:   r+   rl   textstrs   &   r   testReadChunk10BZ2FileTest.testReadChunk10   sb    T]]##tDiimT99- $###s   A;&A;;B	c                0   V P                  ^R7       \        V P                  4      ;_uu_ 4       pRp VP                  ^
4      pV'       g   M
W#,          pK%  V P	                  W P
                  ^,          4       RRR4       R#   + '       g   i     R# ; i)rv   rw   r   Nr   r   s   &   r   testReadChunk10MultiStream&BZ2FileTest.testReadChunk10MultiStream   sk    A&T]]##tDiimT99q=1 $###s   B-BB	c                    V P                  4        \        V P                  4      ;_uu_ 4       pV P                  VP	                  ^d4      V P
                  R,          4       RRR4       R#   + '       g   i     R# ; i)d   Nr   NN)rY   r   r(   rj   rh   r:   rk   s   & r   testRead100BZ2FileTest.testRead100   sN    T]]##tTYYs^TYYt_= $###s   3A++A<	c                |   V P                  4        \        V P                  4      ;_uu_ 4       pVP                  4       pV P	                  \        V4      ^ 4       V P                  V P                  V4       V P                  VP                  4       V P                  4       RRR4       R#   + '       g   i     R# ; ir   N)
rY   r   r(   peekassertNotEqualr|   assertStartsWithr:   rj   rh   )r+   rl   pdatas   &  r   testPeekBZ2FileTest.testPeek   s{    T]]##tIIKEE
A.!!$))U3TYY[$))4	 $###s   A2B**B;	c                .   V P                  4        \        V P                  4      ;_uu_ 4       p^p\        V4      pV P	                  VP                  V4      V4       V P	                  W0P                  RV 4       \        V P                  4      V,
          p\        \        V P                  4      4      pV P	                  VP                  V4      V4       V P	                  VRV V P                  V) R 4       RRR4       R#   + '       g   i     R# ; i)   N)rY   r   r(   r?   rj   rI   r:   r|   )r+   rl   nbs   &   r   testReadIntoBZ2FileTest.testReadInto   s    T]]##tA!AT]]1-q1Q		"1.DII"A#dii.)AT]]1-q1QrUDIIqbcN3 $###s   CDD	c                B   V P                  4        \        V P                  4      ;_uu_ 4       pV P                  \        VP
                  R 4       V P                   F#  pV P                  VP                  4       V4       K%  	  R R R 4       R #   + '       g   i     R # ; ir%   rY   r   r(   r`   ra   readliner8   rj   r+   rl   lines   &  r   testReadLineBZ2FileTest.testReadLine   sh    T]]##ti=  $7 ( $###s   ABB	c                T   V P                  ^R7       \        V P                  4      ;_uu_ 4       pV P                  \        VP
                  R4       V P                  ^,           F#  pV P                  VP                  4       V4       K%  	  RRR4       R#   + '       g   i     R# ; iru   r   r   s   &  r   testReadLineMultiStream#BZ2FileTest.testReadLineMultiStream   su    A&T]]##ti=!++  $7 , $###s   ABB'	c                0   V P                  4        \        V P                  4      ;_uu_ 4       pV P                  \        VP
                  R 4       V P                  VP                  4       V P                  4       R R R 4       R #   + '       g   i     R # ; ir%   rY   r   r(   r`   ra   	readlinesrj   r8   rk   s   & r   testReadLinesBZ2FileTest.testReadLines   s_    T]]##ti>T^^-t? $###s   ABB	c                B   V P                  ^R7       \        V P                  4      ;_uu_ 4       pV P                  \        VP
                  R4       V P                  VP                  4       V P                  ^,          4       RRR4       R#   + '       g   i     R# ; iru   r   rk   s   & r   testReadLinesMultiStream$BZ2FileTest.testReadLinesMultiStream   si    A&T]]##ti>T^^-t/BC $###s   ABB	c           	         V P                  4        \        V P                  4      ;_uu_ 4       pV P                  \	        \        V4      4      V P                  4       R R R 4       R #   + '       g   i     R # ; ir%   rY   r   r(   rj   listiterr8   rk   s   & r   testIteratorBZ2FileTest.testIterator   sK    T]]##tT$t*-t? $###s   /A''A8	c           	        V P                  ^R7       \        V P                  4      ;_uu_ 4       pV P                  \	        \        V4      4      V P                  ^,          4       RRR4       R#   + '       g   i     R# ; iru   r   rk   s   & r   testIteratorMultiStream#BZ2FileTest.testIteratorMultiStream   sU    A&T]]##tT$t*-t/BC $###s   6A00B	c                    V P                  4        \        V P                  4      pVP                  4        V P	                  \
        \        V4       V P	                  \
        VP                  4       R # r%   )rY   r   r(   r*   r`   rb   nextr   rk   s   & r   testClosedIteratorDeadlock&BZ2FileTest.testClosedIteratorDeadlock   sK    t}}%

*dD1*dnn5r   c                   \        V P                  R 4      ;_uu_ 4       pV P                  \        VP                  4       VP	                  V P
                  4       RRR4       \        V P                  R4      ;_uu_ 4       pV P                  \        VP                  4       4      V P
                  4       RRR4       R#   + '       g   i     Ll; i  + '       g   i     R# ; iwNr!   
r   r(   r`   ra   rU   r:   rG   rj   r   rh   r+   rl   rX   s   &  r   	testWriteBZ2FileTest.testWrite   s    T]]C((Di4JJtyy! ) $--&&!^AFFH5tyyA '& )( '&&s   <B?4C?C	C#	c                   \        V P                  R 4      ;_uu_ 4       p^ p V P                  V^
,          V^,           ^
,           pV'       g   MVP                  V4       V^,          pKJ  RRR4       \	        V P                  R4      ;_uu_ 4       pV P                  \        VP                  4       4      V P                  4       RRR4       R#   + '       g   i     Ll; i  + '       g   i     R# ; ir   )r   r(   r:   rU   rG   rj   r   rh   )r+   rl   r   r   rX   s   &    r   testWriteChunks10BZ2FileTest.testWriteChunks10   s    T]]C((DAii"ac2X.

3Q ) $--&&!^AFFH5tyyA '& )( '&&s   /CC4C#C 	#C4	c                   \         P                  V P                  ^R7      p\        V P                  R^R7      ;_uu_ 4       pVP                  V P                  4       RRR4       \        V P                  R4      ;_uu_ 4       pV P                  VP                  4       V4       RRR4       R#   + '       g   i     LY; i  + '       g   i     R# ; i)rv   r"   r   Nr!   )	r   rK   r:   r   r(   rU   rG   rj   rh   )r+   expectedrl   rX   s   &   r    testWriteNonDefaultCompressLevel,BZ2FileTest.testWriteNonDefaultCompressLevel
  s    <<		<;T]]Cq99TJJtyy! :$--&&!QVVXx0 '& :9&&&s   B/!C/B?	C	c                   \        V P                  R 4      ;_uu_ 4       pV P                  \        VP                  4       VP	                  V P
                  4       RRR4       V P                  \        XP                  R.4       \        V P                  R4      ;_uu_ 4       pV P                  \        VP                  4       4      V P                  4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; ir   Nar!   )r   r(   r`   ra   
writelinesr8   rb   rG   rj   r   rh   r:   r   s   &  r   testWriteLinesBZ2FileTest.testWriteLines  s    T]]C((Di9OODOO, )
 	*doou=$--&&!^AFFH5tyyA '& )( '&&s   <C!#4C4!C1	4D	c                   \        V P                  R 4      ;_uu_ 4       pVP                  R4       RRR4       \        V P                  R4      ;_uu_ 4       pV P                  \        VP                  R4       V P                  \        VP
                  R.4       RRR4       R#   + '       g   i     L|; i  + '       g   i     R# ; i)r   s   abcNr_      a)r   r(   rU   r`   rq   r   rk   s   & r   testWriteMethodsOnReadOnlyFile*BZ2FileTest.testWriteMethodsOnReadOnlyFile  s    T]]C((DJJv ) T]]C((Dgtzz48gt? )( )( )((s   B%AB8%B5	8C		c                   \        V P                  R 4      ;_uu_ 4       pV P                  \        VP                  4       VP	                  V P
                  4       RRR4       \        V P                  R4      ;_uu_ 4       pV P                  \        VP                  4       VP	                  V P
                  4       RRR4       \        V P                  R4      ;_uu_ 4       pV P                  \        VP                  4       4      V P
                  ^,          4       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; ir   r   r   s   &  r   
testAppendBZ2FileTest.testAppend#  s    T]]C((Di4JJtyy! ) T]]C((Di4JJtyy! ) $--&&!^AFFH5tyy1}E '& )( )( '&&s#   <D(<D;#;E(D8	;E	E	c                ^   V P                  4        \        V P                  4      ;_uu_ 4       pV P                  \        VP
                  4       VP                  ^4       V P                  VP                  4       V P                  R,          4       RRR4       R#   + '       g   i     R# ; i   r   NNN)	rY   r   r(   r`   ra   seekrj   rh   r:   rk   s   & r   testSeekForwardBZ2FileTest.testSeekForward-  sk    T]]##ti3IIcNTYY[$))D/: $###s   A#BB,	c                   V P                  ^R7       \        V P                  4      ;_uu_ 4       pV P                  \        VP
                  4       VP                  \        V P                  4      ^,           4       V P                  VP                  4       V P                  R,          4       RRR4       R#   + '       g   i     R# ; i)   rw   r   N)
rY   r   r(   r`   ra   r   r|   r:   rj   rh   rk   s   & r   testSeekForwardAcrossStreams(BZ2FileTest.testSeekForwardAcrossStreams4  s~    A&T]]##ti3IIc$))ns*+TYY[$))D/: $###   A=B77C	c                :   V P                  4        \        V P                  4      ;_uu_ 4       pVP                  R 4       VP	                  R^4       V P                  VP                  4       V P                  RR 4       RRR4       R#   + '       g   i     R# ; ii  Nji^  )rY   r   r(   rh   r   rj   r:   rk   s   & r   testSeekBackwardsBZ2FileTest.testSeekBackwards;  sh    T]]##tIIcNIIdATYY[$))GH*=> $###s   AB		B	c                   V P                  ^R7       \        V P                  4      ;_uu_ 4       p\        V P                  4      ^d,           pV^ 8  d$   V\        VP                  V4      4      ,          pK*  VP                  R^4       V P                  VP                  4       V P                  RR V P                  ,           4       RRR4       R#   + '       g   i     R# ; i)r   rw   Nr   i)rY   r   r(   r|   r:   rh   r   rj   )r+   rl   readtos   &  r   testSeekBackwardsAcrossStreams*BZ2FileTest.testSeekBackwardsAcrossStreamsB  s    A&T]]##t^c)F1*#dii/00IIdATYY[$))GH*=		*IJ $###s   BCC"	c           	     L   V P                  4        \        V P                  4      ;_uu_ 4       pVP                  R^4       V P	                  VP                  4       V P                  \        V P                  4      ^,
          R 4       RRR4       R#   + '       g   i     R# ; ir   Nr   )rY   r   r(   r   rj   rh   r:   r|   rk   s   & r   testSeekBackwardsFromEnd$BZ2FileTest.testSeekBackwardsFromEndK  sk    T]]##tIIdATYY[$))C		N34F4G*HI $###s   ABB#	c                *   V P                  ^R7       \        V P                  4      ;_uu_ 4       pVP                  R^4       V P	                  VP                  4       V P                  ^,          RR 4       RRR4       R#   + '       g   i     R# ; i)r   rw   Ni)rY   r   r(   r   rj   rh   r:   rk   s   & r   %testSeekBackwardsFromEndAcrossStreams1BZ2FileTest.testSeekBackwardsFromEndAcrossStreamsQ  sf    A&T]]##tIIeQTYY[499q=%&*AB $###s   ABB	c                b   V P                  4        \        V P                  4      ;_uu_ 4       pVP                  R 4       V P	                  VP                  4       \        V P                  4      4       V P	                  VP                  4       R4       RRR4       R#   + '       g   i     R# ; iI r   N	rY   r   r(   r   rj   tellr|   r:   rh   rk   s   & r   testSeekPostEndBZ2FileTest.testSeekPostEndW  sn    T]]##tIIfTYY[#dii.9TYY[#. $###s   A%BB.	c                t   V P                  ^R7       \        V P                  4      ;_uu_ 4       pVP                  R4       V P	                  VP                  4       \        V P                  4      ^,          4       V P	                  VP                  4       R4       RRR4       R#   + '       g   i     R# ; irv   rw   r  r   Nr  rk   s   & r   testSeekPostEndMultiStream&BZ2FileTest.testSeekPostEndMultiStream^  sx    A&T]]##tIIfTYY[#dii.1*<=TYY[#. $###s   A,B&&B7	c                   V P                  4        \        V P                  4      ;_uu_ 4       pVP                  R 4       VP                  R 4       V P	                  VP                  4       \        V P                  4      4       V P	                  VP                  4       R4       RRR4       R#   + '       g   i     R# ; ir   r  rk   s   & r   testSeekPostEndTwice BZ2FileTest.testSeekPostEndTwicee  sz    T]]##tIIfIIfTYY[#dii.9TYY[#.	 $###s   A6B..B?	c                   V P                  ^R7       \        V P                  4      ;_uu_ 4       pVP                  R4       VP                  R4       V P	                  VP                  4       \        V P                  4      ^,          4       V P	                  VP                  4       R4       RRR4       R#   + '       g   i     R# ; ir  r  rk   s   & r   testSeekPostEndTwiceMultiStream+BZ2FileTest.testSeekPostEndTwiceMultiStreamm  s    A&T]]##tIIfIIfTYY[#dii.1*<=TYY[#.	 $###r   c                P   V P                  4        \        V P                  4      ;_uu_ 4       pVP                  R4       V P	                  VP                  4       ^ 4       V P	                  VP                  4       V P                  4       RRR4       R#   + '       g   i     R# ; ir   rY   r   r(   r   rj   r  rh   r:   rk   s   & r   testSeekPreStartBZ2FileTest.testSeekPreStartu  si    T]]##tIIdOTYY[!,TYY[$))4 $###s   ABB%	c                b   V P                  ^R7       \        V P                  4      ;_uu_ 4       pVP                  R4       V P	                  VP                  4       ^ 4       V P	                  VP                  4       V P                  ^,          4       RRR4       R#   + '       g   i     R# ; i)r   rw   Nr   r  rk   s   & r   testSeekPreStartMultiStream'BZ2FileTest.testSeekPreStartMultiStream|  sr    A&T]]##tIIdOTYY[!,TYY[$))a-8 $###s   A#BB.	c                   V P                  4        \        V P                  R 4      ;_uu_ 4       p\        V4      p V P	                  VP                  4       VP                  4       4       VP                  4         RRR4       V P                  \        XP
                  4       R#   TP                  4        i ; i  + '       g   i     LG; i)r!   N)	rY   rG   r(   r   rj   filenor*   r`   rb   )r+   rawfrl   s   &  r   
testFilenoBZ2FileTest.testFileno  s    $--&&$4=D  >

 ' 	*dkk2 

 '&s"   B:.B%*B:%B77B::C
	c                v   \        \        V P                  4      4      p V P                  VP	                  4       4       VP                  4        V P                  VP	                  4       4       VP                  4        V P                  \        VP                  4       \        \        4       R 4      p V P                  VP	                  4       4       VP                  4        V P                  \        VP                  4       \        V P                  4      pR Vn        \        V4      p V P                  VP	                  4       4       VP                  4        V P                  \        VP                  4       R#   TP                  4        i ; i  TP                  4        i ; i  TP                  4        i ; i)r   c                      R # )F r  r   r   <lambda>*BZ2FileTest.testSeekable.<locals>.<lambda>  s    ur   N)
r   r   r;   
assertTrueseekablerh   r*   r`   rb   assertFalse)r+   rl   srcs   &  r   testSeekableBZ2FileTest.testSeekable  s!   wtyy)*	OODMMO,IIKOODMMO,JJL*dmm4wy#&	T]]_-JJL*dmm4dii $s|	T]]_-JJL*dmm4# JJL JJL JJLs$   AE< 3F +F& <FF#&F8c                \   \        \        V P                  4      4      p V P                  VP	                  4       4       VP                  4        V P                  VP	                  4       4       VP                  4        V P                  \        VP                  4       \        \        4       R 4      p V P                  VP	                  4       4       VP                  4        V P                  \        VP                  4       R#   TP                  4        i ; i  TP                  4        i ; ir   N)
r   r   r;   r!  readablerh   r*   r`   rb   r#  rk   s   & r   testReadableBZ2FileTest.testReadable  s    wtyy)*	OODMMO,IIKOODMMO,JJL*dmm4wy#&	T]]_-JJL*dmm4 JJL JJL   AD 3D DD+c                \   \        \        V P                  4      4      p V P                  VP	                  4       4       VP                  4        V P                  VP	                  4       4       VP                  4        V P                  \        VP                  4       \        \        4       R 4      p V P                  VP	                  4       4       VP                  4        V P                  \        VP                  4       R#   TP                  4        i ; i  TP                  4        i ; ir(  )
r   r   r;   r#  writablerh   r*   r`   rb   r!  rk   s   & r   testWritableBZ2FileTest.testWritable  s    wtyy)*	T]]_-IIKT]]_-JJL*dmm4wy#&	OODMMO,JJL*dmm4 JJL JJLr,  c                v    V P                  4        \        R 4       F  p\        V P                  4      p?K  	  R# )i'  N)rY   ranger   r(   )r+   ios   &  r   testOpenDelBZ2FileTest.testOpenDel  s-    uA&A r   c                <    V P                  \        \        R 4       R# )z/non/existentN)r`   rq   r   r0   s   &r   testOpenNonexistentBZ2FileTest.testOpenNonexistent  s    '7O<r   c                "   R p\        V P                  R4      ;_uu_ 4       pVP                  V4       RRR4       \        V P                  4      ;_uu_ 4       pVP	                  4       pRRR4       V P                  XR.4       \        V P                  4      ;_uu_ 4       p\        VP	                  4       4      pRRR4       V P                  XR.4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     LK; i)s,   BZh91AY&SYb]        !h3M<]BCe%trT   Ns   Test)rG   r(   rU   r   r   rj   r   )r+   r   rX   rl   linesxliness   &     r   testReadlinesNoNewline"BZ2FileTest.testReadlinesNoNewline  s    z$--&&!GGDM 'T]]##tNN$E $	*T]]##t$..*+F $'+ '&## $#s#   CC+!C>C(	+C;	>D	c                J   \        V P                  R 4      ;_uu_ 4       pVP                  R4       RRR4       \        V P                  R4      pVP                  4         V;_uu_ 4         RRR4       V P	                  R4        \        V P                  R 4      ;_uu_ 4       p^^ ,           RRR4       V P	                  R4       R#   + '       g   i     L; i  + '       g   i     Lx; i  \
         d     Lwi ; i  + '       g   i     LZ; i  \         d     R# i ; i)rT   s   xxxNr!   z4__enter__ on a closed file didn't raise an exceptionz1/0 didn't raise an exception)r   r(   rU   r*   failrb   ZeroDivisionErrorr+   rX   s   & r   testContextProtocolBZ2FileTest.testContextProtocol  s    T]]D))QGGFO *DMM4(			N 
 IILM	7--! .
 II56# *)
  		
 .-  		s_   C	 
C/ *C,C/ D $
D .D 	C	C,	'C/ /C=<C= D	D D"!D"c           	       aa R R,          o^
p\        V P                  R4      ;_uu_ 4       oVV3R lp\        V4       Uu. uF  p\        P                  ! VR7      NK  	  pp\
        P                  ! V4      ;_uu_ 4         RRR4       RRR4       R# u upi   + '       g   i     L; i  + '       g   i     R# ; i)   1rT   c                  N   < \        ^4       F  p SP                  S4       K  	  R# rv   N)r2  rU   )r3  r   rX   s    r   comp'BZ2FileTest.testThreading.<locals>.comp  s    qAGGDM "r   )targetNi   )r   r(   r2  	threadingThreadr	   start_threads)r+   nthreadsrI  r3  threadsr   rX   s   &    @@r   testThreadingBZ2FileTest.testThreading  s     e|T]]D))Q" ?DHoNoy''t4oGN!//88 9 *) O88 *))s5   B- B! B-B	B-B-B*%B--B>	c                   V P                  4        \        V P                  ^ ,          4      pV^,          p\        V P                  4      ;_uu_ 4       pVP                  V4       V P                  \        V4      V P                  ^ ,          VR 4       V P                  VP                  4       V P                  VR 4       RRR4       \        V P                  4      ;_uu_ 4       pVP                  4        V P                  \        V4      V P                  ^,          4       V P                  VP                  4       V P                  ^,          4       RRR4       \        V P                  4      ;_uu_ 4       pVP                  4        V P                  \        \        V4       V P                  VP                  4       . 4       RRR4       R#   + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     R# ; ir   )rY   r|   r8   r   r(   rh   rj   r   r:   r   r   r`   StopIteration)r+   linelenhalflenrl   s   &   r   testMixedIterationAndReads&BZ2FileTest.testMixedIterationAndReads  s]   dooa()Q,T]]##tIIgT$Z);GH)EFTYY[$))GH*=> $ T]]##tMMOT$Z);<T]]_dooa.@A $ T]]##tNNmT48T^^-r2 $# $## $# $##s'   A.G&A.G#9AG6G 	#G3	6H	c                   RpRp\        V P                  R4      ;_uu_ 4       pVP                  V4       RRR4       \        V P                  R4      ;_uu_ 4       pVP                  V4       RRR4       \        V P                  4      ;_uu_ 4       pV P                  VP	                  4       W,           4       RRR4       R#   + '       g   i     L; i  + '       g   i     Lq; i  + '       g   i     R# ; i)s   foor   Nr   s  foofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoos  barbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbar)r   r(   rU   rj   rh   )r+   data1data2rl   s   &   r   testMultiStreamOrdering#BZ2FileTest.testMultiStreamOrdering  s    T]]C((DJJu )T]]C((DJJu )T]]##tTYY[%-8 $#	 )(((###s#   CC'C)C	C&	)C:	c                ,   \        V P                  R 4      ;_uu_ 4       pVP                  R4       V P                  VP                  V P                  4       V P                  VP                  4       \        4       V P                  VP                  R 4       V P                  VP                  4       R4       V P                  VP                  4       R4       V P                  VP                  4       R4       V P                  VP                  R4       RRR4       V P                  XP                  R4       V P                  \        4      ;_uu_ 4        VP                   RRR4       V P                  \        VP                  4       V P                  VP                  R 4       V P                  \        VP                  4       V P                  \        VP                  4       V P                  \        VP                  4       \        V P                  R4      ;_uu_ 4       pVP                  R4       V P                  VP                  V P                  4       V P                  VP                  4       \        4       V P                  VP                  R 4       V P                  VP                  4       R4       V P                  VP                  4       R4       V P                  VP                  4       R4       V P                  VP                  R4       RRR4       V P                  VP                  R4       V P                  \        4      ;_uu_ 4        VP                   RRR4       V P                  \        VP                  4       V P                  VP                  R 4       V P                  \        VP                  4       V P                  \        VP                  4       V P                  \        VP                  4       \        V P                  R4      ;_uu_ 4       pV P                  VP!                  4       R4       V P                  VP                  V P                  4       V P                  VP                  4       \        4       V P                  VP                  R4       V P                  VP                  4       R4       V P                  VP                  4       R4       V P                  VP                  4       R4       V P                  VP                  R4       RRR4       V P                  VP                  R4       V P                  \        4      ;_uu_ 4        VP                   RRR4       V P                  \        VP                  4       V P                  VP                  R4       V P                  \        VP                  4       V P                  \        VP                  4       V P                  \        VP                  4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL8; i  + '       g   i     EL; i  + '       g   i     ELM; i  + '       g   i     EL; i	rT      contentFTNab   appendixr!      contentappendix)r   r(   rU   rj   nameassertIsInstancer  intmodeassertIsr)  r.  r"  closedr`   rb   rh   rB  s   & r   testOpenFilenameBZ2FileTest.testOpenFilename  s1   T]]D))QGGJQVVT]]3!!!((*c2QVVT*MM!**,.MM!**,-MM!**,.MM!((E* * 	ahh%z**FF +*ahh/&*ajj1*ajj1*ajj1T]]D))QGGK QVVT]]3!!!((*c2QVVT*MM!**,.MM!**,-MM!**,.MM!((E* * 	ahh%z**FF +*ahh/&*ajj1*ajj1*ajj1T]]D))QQVVX'9:QVVT]]3!!!((*c2QVVT*MM!**,-MM!**,.MM!**,-MM!((E* * 	ahh%z**FF +*ahh/&*ajj1*ajj1*ajj1i *)) +** *)) +** *)) +**sJ   C4XX2#C4YY'DY.+ZX/	2Y	Y	Y+	.Y?	Z	c           	        \        V P                  R 4      ;_uu_ 4       p\        VR 4      ;_uu_ 4       pVP                  R4       V P	                  VP
                  VP
                  4       V P	                  VP                  4       VP                  4       4       V P	                  VP                  R 4       V P                  VP                  4       R4       V P                  VP                  4       R4       V P                  VP                  4       R4       V P                  VP                  R4       RRR4       V P                  XP                  R4       V P                  \        4      ;_uu_ 4        VP
                   RRR4       V P                  \        VP                  4       V P	                  VP                  R 4       V P                  \        VP                  4       V P                  \        VP                  4       V P                  \        VP                  4       RRR4       \        V P                  R4      ;_uu_ 4       p\        VR4      ;_uu_ 4       pVP                  R4       V P	                  VP
                  VP
                  4       V P	                  VP                  4       VP                  4       4       V P	                  VP                  R 4       V P                  VP                  4       R4       V P                  VP                  4       R4       V P                  VP                  4       R4       V P                  VP                  R4       RRR4       V P                  XP                  R4       V P                  \        4      ;_uu_ 4        VP
                   RRR4       V P                  \        VP                  4       V P	                  VP                  R 4       V P                  \        VP                  4       V P                  \        VP                  4       V P                  \        VP                  4       RRR4       \        V P                  R4      ;_uu_ 4       p\        VR4      ;_uu_ 4       pV P	                  VP                  4       R4       V P	                  VP
                  VP
                  4       V P	                  VP                  4       VP                  4       4       V P	                  VP                  R4       V P                  VP                  4       R4       V P                  VP                  4       R4       V P                  VP                  4       R4       V P                  VP                  R4       RRR4       V P                  XP                  R4       V P                  \        4      ;_uu_ 4        VP
                   RRR4       V P                  \        VP                  4       V P	                  VP                  R4       V P                  \        VP                  4       V P                  \        VP                  4       V P                  \        VP                  4       RRR4       R#   + '       g   i     ELj; i  + '       g   i     EL0; i  + '       g   i     EL; i  + '       g   i     EL{; i  + '       g   i     ELA; i  + '       g   i     EL; i  + '       g   i     EL}; i  + '       g   i     ELC; i  + '       g   i     R# ; ir_  )rG   r(   r   rU   rj   rd  r  rg  rh  r)  r.  r"  ri  r`   rb   rh   )r+   rawrX   s   &  r   testOpenFileWithName BZ2FileTest.testOpenFileWithNameR  s   $--&&#d##q
#  2  SZZ\:  .ajjlE2ajjlD1ajjlE2ahh. $ MM!((D)"":.. /j!((3QVVT*j!**5j!**5j!**5# '& $--&&#d##q$  2  SZZ\:  .ajjlE2ajjlD1ajjlE2ahh. $ MM!((D)"":.. /j!((3QVVT*j!**5j!**5j!**5# '& $--&&#d##q  +=>  2  SZZ\:  .ajjlD1ajjlE2ajjlD1ahh. $ MM!((D)"":.. /j!((3QVVT*j!**5j!**5j!**5# '&K $## /.. '&&( $## /.. '&&( $## /.. '&&s   Z;C>Z	2AZ;3Z'	 B$Z;
[7C>[	A[7[#	+B$[75\3
D\	A\3\	%B$\3Z$	Z;'Z82	Z;;[	[ 	[7#[4.	[77\	\	\3\0*	\33]	c           	        \        4       p\        VR 4      ;_uu_ 4       pVP                  R4       V P                  \        4      ;_uu_ 4        VP
                   RRR4       V P                  \        P                  VP                  4       V P                  VP                  R 4       RRR4       V P                  \        4      ;_uu_ 4        XP
                   RRR4       V P                  \        XP                  4       \        VR4      ;_uu_ 4       pVP                  R4       V P                  \        4      ;_uu_ 4        VP
                   RRR4       V P                  \        P                  VP                  4       V P                  VP                  R 4       RRR4       V P                  \        4      ;_uu_ 4        VP
                   RRR4       V P                  \        VP                  4       VP                  ^ 4       \        VR4      ;_uu_ 4       pV P                  VP                  4       R4       V P                  \        4      ;_uu_ 4        VP
                   RRR4       V P                  \        P                  VP                  4       V P                  VP                  R4       RRR4       V P                  \        4      ;_uu_ 4        VP
                   RRR4       V P                  \        VP                  4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELk; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL+; i  + '       g   i     L; i  + '       g   i     L; irT   r`  Nra  rb  r!   rc  )r   r   rU   r`   AttributeErrorrd  ioUnsupportedOperationr  rj   rg  rb   r   rh   )r+   biorX   s   &  r   testOpenFileWithoutName#BZ2FileTest.testOpenFileWithoutName  s_   iS$1GGJ"">22 3b55qxx@QVVT*   z**FF +*ahh/S$1GGK "">22 3b55qxx@QVVT*   z**FF +*ahh/S$1QVVX'9:"">22 3b55qxx@QVVT*   z**FF +*ahh/7 322   +** 322   +** 322   +*s   /L)L	AL)L=/M%M	AM%M9 >N!N	+AN!N4L& 	L))L:	=M	M"	M%%M6	9N
	N	N!!N1	4O	c           	     	   \         P                  ! V P                  \         P                  \         P                  ,          \         P
                  ,          4      p\        VR 4      ;_uu_ 4       p\        VR 4      ;_uu_ 4       pVP                  R4       V P                  VP                  VP                  4       V P                  VP                  4       VP                  4       4       V P                  VP                  R 4       RRR4       V P                  \        4      ;_uu_ 4        XP                   RRR4       V P                  \        XP                  4       RRR4       \         P                  ! V P                  \         P                  \         P                  ,          \         P                  ,          4      p\        VR4      ;_uu_ 4       p\        VR4      ;_uu_ 4       pVP                  R4       V P                  VP                  VP                  4       V P                  VP                  4       VP                  4       4       V P                  VP                  R 4       RRR4       V P                  \        4      ;_uu_ 4        XP                   RRR4       V P                  \        XP                  4       RRR4       \         P                  ! V P                  \         P                  4      p\        VR4      ;_uu_ 4       p\        VR4      ;_uu_ 4       pV P                  VP!                  4       R4       V P                  VP                  VP                  4       V P                  VP                  4       VP                  4       4       V P                  VP                  R4       RRR4       V P                  \        4      ;_uu_ 4        XP                   RRR4       V P                  \        XP                  4       RRR4       R#   + '       g   i     EL; i  + '       g   i     EL ; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; irq  )r)   rG   r(   O_WRONLYO_CREATO_TRUNCr   rU   rj   rd  r  rg  r`   rb   O_APPENDO_RDONLYrh   )r+   r,   rm  rX   s   &   r   testOpenFileWithIntName#BZ2FileTest.testOpenFileWithIntName  s   WWT]]BKK"**$<rzz$IJ"d^^sd##q
#  2  SZZ\:  .	 $
 "":.. /j!((3  WWT]]BKK"**$<r{{$JK"d^^sd##q$  2  SZZ\:  .	 $
 "":.. /j!((3  WWT]]BKK0"d^^sd##q  +=>  2  SZZ\:  .	 $
 "":.. /j!((3 ^+ $##
 /.. ^^ $##
 /.. ^^ $#
 /. ^^s   .QBP	%Q*P.	7(QQ>)BQ	+%Q>Q*	(Q>R8%BR	6%R8R%	((R8P+%	Q.P?9	QQ	Q'!	Q>*Q;5	Q>>R	R"R8%R50R88S		c                   V P                   p\        P                  ! V4      p\        VR 4      ;_uu_ 4       pVP	                  V P
                  4       V P                  VP                  V4       RRR4       \        VR4      ;_uu_ 4       pV P                  VP                  4       V P
                  4       V P                  VP                  V4       RRR4       \        VR4      ;_uu_ 4       pV P                  VP                  4       V P
                  4       V P                  VP                  V4       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; irT   Nr!   )	r(   r)   fsencoder   rU   r;   rj   rd  rh   )r+   str_filenamebytes_filenamerX   s   &   r   testOpenBytesFilename!BZ2FileTest.testOpenBytesFilename  s    }}\2^T**aGGDIIQVV^4 + ^T**aQVVXtyy1QVV^4 + \4((AQVVXtyy1QVV\2 )( +* +* )((s%   8D?AE.AE%?E	E"	%E6	c                   \        V P                  4      p\        VR 4      ;_uu_ 4       pVP                  V P                  4       V P                  VP                  V P                  4       RRR4       \        VR4      ;_uu_ 4       pV P                  VP                  4       V P                  4       V P                  VP                  V P                  4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; ir  )r   r(   r   rU   r;   rj   rd  rh   )r+   r(   rX   s   &  r   testOpenPathLikeFilename$BZ2FileTest.testOpenPathLikeFilename  s    DMM*Xt$$GGDIIQVVT]]3 % Xt$$QVVXtyy1QVVT]]3 %$ %$ %$$s   AC#AC6#C3	6D	c                   \         P                  R\        R4      ,          ^	R7      pV P                  \	        V4      \
        P                  4       \        \        V4      4      pV P                  VP                  ^4      R4       ^\        ,           pV P                  VP                  P                  P                  4       VR4       R# )z-Decompressed data buffering should be limited    g    >Ar"   z)Excessive amount of data was decompressedN)r   rK   rf  
assertLessr|   r   r{   r   r   rj   rh   r   assertLessEqual_bufferrm  r  )r+   bombdecomp
max_decomps   &   r   testDecompressLimited!BZ2FileTest.testDecompressLimited  s    ||ECH,A|>D	8#7#78'Q/,,
V^^//446
7	9r   c                ~   \        V P                  4      ;_uu_ 4       p\        V4      ;_uu_ 4       pV P                  \        VP
                  \        4       4       V P                  VP                  4       V P                  4       V P                  \        4      ;_uu_ 4        \        P                   R R R 4       V P                  VP                  R4       R R R 4       V P                  VP                  4       R R R 4       R #   + '       g   i     LY; i  + '       g   i     LH; i  + '       g   i     R # ; i)Nr!   )r   r;   r   r`   ra   rh   ri   rj   r:   rr  r   rd  rg  r#  ri  r+   ru  rl   s   &  r   testReadBytesIOBZ2FileTest.testReadBytesIO  s    TYY3!!)TYY@  dii8&&~66HH 7  D1  SZZ(   76   s;   D+A1D	#D4$D	#D+DD	D(#D++D<	c           	        \        V P                  4      ;_uu_ 4       p\        V4      ;_uu_ 4       pVP                  4       pV P	                  \        V4      ^ 4       V P                  V P                  V4       V P                  VP                  4       V P                  4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; ir   )
r   r;   r   r   r   r|   r   r:   rj   rh   )r+   ru  rl   r   s   &   r   testPeekBytesIOBZ2FileTest.testPeekBytesIO  s    TYY3		##CJ2%%dii7  dii8	     s#   C	A2B6	$C	6CC		C	c                   \        4       ;_uu_ 4       p\        VR 4      ;_uu_ 4       pV P                  \        VP                  4       VP	                  V P
                  4       V P                  \        4      ;_uu_ 4        \        P                   RRR4       V P                  VP                  R4       RRR4       V P                  \        VP                  4       4      V P
                  4       V P                  VP                  4       RRR4       R#   + '       g   i     L; i  + '       g   i     L{; i  + '       g   i     R# ; i)r   NrT   )r   r   r`   ra   rU   r:   rr  r   rd  rj   rg  r   getvaluer#  ri  r  s   &  r   testWriteBytesIOBZ2FileTest.testWriteBytesIO  s    YY#c""d!!)TZZ8

499%&&~66HH 7  D1 # ^CLLN;TYYGSZZ( Y 76 #" YYs<   D<AD)	D$D)	6AD<D&!D)	)D94D<<E	c           	        \        V P                  4      ;_uu_ 4       p\        V4      ;_uu_ 4       pV P                  \        VP
                  4       VP                  ^4       V P                  VP                  4       V P                  R,          4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; ir   )	r   r;   r   r`   ra   r   rj   rh   r:   r  s   &  r   testSeekForwardBytesIO"BZ2FileTest.testSeekForwardBytesIO  sz    TYY3!!)TYY7		#  diio>     s#   B:A#B'	B:'B72B::C	c           
     x   \        V P                  4      ;_uu_ 4       p\        V4      ;_uu_ 4       pVP                  R 4       VP	                  R^4       V P                  VP                  4       V P                  RR 4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; ir   )r   r;   r   rh   r   rj   r:   r  s   &  r   testSeekBackwardsBytesIO$BZ2FileTest.testSeekBackwardsBytesIO  sw    TYY3		#		$"  dii.AB     s#   B(AB	B(B% B((B9	c           	        V P                   R R p\        \        V4      4      ;_uu_ 4       pV P                  \        VP
                  4       R R R 4       \        \        V4      4      ;_uu_ 4       pV P                  VP                  \        V P                  4      4      V P                  4       V P                  \        VP
                  ^4       R R R 4       \        ^4       FL  p\        \        VR V 4      4      ;_uu_ 4       pV P                  \        VP
                  ^4       R R R 4       KN  	  R #   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     K  ; iNi)
r;   r   r   r`   EOFErrorrh   rj   r|   r:   r2  )r+   	truncatedrX   r3  s   &   r   test_read_truncatedBZ2FileTest.test_read_truncated  s    IIdsO	WY'((Ah/ )WY'((AQVVC		N3TYY?h2 ) rA2A/00A!!(AFFA6 10  )(((
 100s$   !D61A E	"E6E		E	E-c                d   \         P                   ! R . RO4      p\        V4      VP                  ,          p\        \	        4       R4      ;_uu_ 4       pV P                  VP                  V4      V4       V P                  VP                  4       V4       RRR4       R#   + '       g   i     R# ; i)Qr   N)   r         rv   )arrayr|   itemsizer   r   rj   rU   r  )r+   qLENGTHrX   s   &   r   test_issue44439BZ2FileTest.test_issue44439,  sr    KK_-Q!**$WY$$QWWQZ0QVVXv. %$$$s   ABB/	r  N)r  r   )Ir3   r4   r5   r6   r7   rY   rd   rm   rr   rx   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r%  r*  r/  r5  r8  r=  rC  r	   requires_working_threadingrQ  rW  r\  rj  rn  rv  r~  r  r  r  r  r  r  r  r  r  r  rM   rN   rO   s   @r   rR   rR   Z   sw    
	B52
9/5
9
0	.	2>
5
488@D@
D
6B
B1B@F;;?KJC////593545"5"=
,7( 002
 3
3"	952n86t0B 4D34	9)9	)?C7/ /r   rR   c                      a  ] tR tRt o R tR tR t]P                  ]	! ]
^d,           ^R7      R 4       4       tR tRtV tR	# )
BZ2CompressorTesti5  c                   \        4       pV P                  \        VP                  4       VP                  V P                  4      pW!P                  4       ,          pV P                  \        V4      V P                  4       R # r%   )r   r`   ra   rK   r:   flushrj   r   r+   bz2cr   s   &  r   testCompressBZ2CompressorTest.testCompress6  sV    )T]]3}}TYY'

-tyy9r   c                    \        4       pVP                  R 4      pW!P                  4       ,          pV P                  W P                  4       R# r   )r   rK   r  rj   r<   r  s   &  r   testCompressEmptyString)BZ2CompressorTest.testCompressEmptyString=  s7    }}S!

/r   c                8   \        4       p^ pRp V P                  V^
,          V^,           ^
,           pV'       g   M"W1P                  V4      ,          pV^,          pKP  W1P                  4       ,          pV P	                  \        V4      V P                  4       R# r   )r   r:   rK   r  rj   r   )r+   r  r   r   r   s   &    r   testCompressChunks10&BZ2CompressorTest.testCompressChunks10C  sy    ))AbD!A#r*CMM#&&DFA

-tyy9r   sizememusec                V   \        4       pR V,          p VP                  V4      pWBP                  4       ,          pRp\        P	                  V4      p V P                  \        V4      V4       V P                  \        VP                  R 4      4      ^ 4       RpR#   Rpi ; i  Rpi ; i)   xN)r   rK   r  r   r   rj   r|   strip)r+   r  r  r   
compresseds   &&   r   testCompress4G BZ2CompressorTest.testCompress4GP  s     d{	t,J**,&JD~~j)	SY-SD!12A6D D Ds   'B AB$ B!$B(c                   \        \        P                  ^,           4       FH  pV P                  \        4      ;_uu_ 4        \        P
                  ! \        4       V4       RRR4       KJ  	  R#   + '       g   i     K_  ; ir  N)r2  pickleHIGHEST_PROTOCOLr`   ra   dumpsr   r+   protos   & r   
testPickleBZ2CompressorTest.testPickleb  sO    622Q67E""9--]_e4 .- 8---    A//B r  N)r3   r4   r5   r6   r  r  r  r   skip_if_pgo_taskr   r   r  r  rM   rN   rO   s   @r   r  r  5  sK     :0: S3Yq) *  5 5r   r  c                      a  ] tR tRt o R tR tR tR tR t]	P                  ]! ]^d,           RR7      R	 4       4       tR
 tR tR tR tR tR t]	P(                  R 4       tR tRtV tR# )BZ2DecompressorTestih  c                <    V P                  \        \        ^*4       R# )*   N)r`   ra   r   r0   s   &r   test_Constructor$BZ2DecompressorTest.test_Constructori  s    )_b9r   c                    \        4       pV P                  \        VP                  4       VP                  V P                  4      pV P                  W P                  4       R # r%   )r   r`   ra   r   r;   rj   r:   r+   bz2dr   s   &  r   testDecompress"BZ2DecompressorTest.testDecompressl  sB     )T__5tyy)yy)r   c                    \        4       pR p^ p V P                  V^
,          V^,           ^
,           pV'       g   M"W!P                  V4      ,          pV^,          pKP  V P                  W P                  4       R# r   )r   r;   r   rj   r:   )r+   r  r   r   r   s   &    r   testDecompressChunks10*BZ2DecompressorTest.testDecompressChunks10r  se     ))AbD!A#r*COOC((DFAyy)r   c                    \        4       pR pVP                  V P                  V,           4      pV P                  W0P                  4       V P                  VP
                  V4       R# )s   this is unused dataN)r   r   r;   rj   r:   unused_data)r+   r  r  r   s   &   r   testDecompressUnusedData,BZ2DecompressorTest.testDecompressUnusedData~  sN     ,tyy45yy)));7r   c                    \        4       pVP                  V P                  4      pV P                  \        VP                  R 4       V P                  \        VP                  R4       R# )s   anythingr   N)r   r   r;   r`   r  r  s   &  r   testEOFError BZ2DecompressorTest.testEOFError  sH     tyy)(DOO[A(DOOS9r   gffffff
@r  c                .   \        RV4      p\        P                  ! V4      p W1^,
          V,          ^,           ,          p\        P	                  V4      p\        4       pVP                  V4      pV P                  Wt8H  4       RpRpRpR#   RpRpRpi ; i)
   Ni   )minrandom	randbytesr   rK   r   r   r!  )r+   r  	blocksizeblockr   r  r  decompresseds   &&      r   testDecompress4G$BZ2DecompressorTest.testDecompress4G  s     ($/	  +		 !V	1A56Dd+J"$D??:6LOOL01DJL DJLs   A B Bc                   \        \        P                  ^,           4       FH  pV P                  \        4      ;_uu_ 4        \        P
                  ! \        4       V4       RRR4       KJ  	  R#   + '       g   i     K_  ; ir  )r2  r  r  r`   ra   r  r   r  s   & r   r  BZ2DecompressorTest.testPickle  sP    622Q67E""9--_.6 .- 8---r  c                   \        4       p^dp. p\        V P                  4      ^@,
          pVP                  VP	                  V P                  RV VR7      4       V P                  VP                  4       V P                  \        VR,          4      V4       VP                  VP	                  RVR7      4       V P                  VP                  4       V P                  \        VR,          4      V4       VP                  VP	                  V P                  VR VR7      4       V P                  \        VR,          4      V4       VP                  '       gG   VP                  VP	                  RVR7      4       V P                  \        VR,          4      V4       KX  RP                  V4      pV P                  W0P                  4       V P                  VP                  R4       R# )r   N
max_lengthr   )r   r|   rL   appendr   r#  needs_inputrj   r  eofr9   r@   r  )r+   bzdr  outlen_s   &    r   testDecompressorChunksMaxsize1BZ2DecompressorTest.testDecompressorChunksMaxsize  sy   
 4==!B&

3>>$--"6-7 " 9 	:)SWz2 	

3>>#*>=>)SWz2 	

3>>$--"6-7 " 9 	:SR\:6 '''JJs~~cj~AB  SWz:hhsmmm,#.r   c                   \        4       p. pV P                  VP                  V P                  R ,          ^ R7      R4       VP	                  VP                  R^4      4       VP	                  VP                  V P                  R,          ^4      4       VP	                  VP                  V P                  R,          4      4       V P                  RP                  V4      V P                  4       R# )r   r  r   :r   i   N:r  NNNr   rj   r   r;   r  r9   r:   r+   r  r  s   &  r   test_decompressor_inputbuf_10BZ2DecompressorTest.test_decompressor_inputbuf_1  s      			$34 ( 67:	<
 	

3>>#q)* 	

3>>$))G"4b9: 	

3>>$))D/23#		2r   c                F   \        4       p. pV P                  VP                  V P                  R ,          ^ R7      R4       VP	                  VP                  R4      4       VP	                  VP                  V P                  R,          ^4      4       VP	                  VP                  V P                  R,          ^4      4       VP	                  VP                  V P                  R,          4      4       V P                  RP                  V4      V P                  4       R# )N   Nr  r   :r  i  N:i  i,  Ni,  NNNr  r	  s   &  r   test_decompressor_inputbuf_20BZ2DecompressorTest.test_decompressor_inputbuf_2  s      			$34 ( 67:	<

3>>#&' 	

3>>$))G"4a89 	

3>>$))G"4a89 	

3>>$))D/23#		2r   c                   \        4       p. pVP                  VP                  V P                  R ,          ^4      4       VP                  VP                  V P                  R,          ^4      4       VP                  VP                  V P                  R,          4      4       V P	                  RP                  V4      V P                  4       R# )r  :r  i,  Nr  r   N)r   r  r   r;   rj   r9   r:   r	  s   &  r   test_decompressor_inputbuf_30BZ2DecompressorTest.test_decompressor_inputbuf_3  s      	

3>>$))D/156 	

3>>$))G"4a89 	

3>>$))D/23#		2r   c                    \        4       pV P                  \        VP                  V P                  ^,          4       V P                  \        VP                  V P                  ^,          4       R# )   N)r   r`   	Exceptionr   r=   )r+   r  s   & r   test_failure BZ2DecompressorTest.test_failure  sH    )S^^T]]R5GH)S^^T]]R5GHr   c                    \         P                  ! \        R 4      p\        4       pV! 4       p\	        ^d4       F  pVP                  4        K  	  V P                  V! 4       V,
          ^ ^
R7       R# )gettotalrefcount)deltaN)r   get_attributesysr   r2  __init__assertAlmostEqual)r+   r  r  refs_beforer3  s   &    r   test_refleaks_in___init__-BZ2DecompressorTest.test_refleaks_in___init__  s[    "006HI&(sALLN /1K?"Mr   c                    V P                  \        P                  ! \        4      P                  \	        4       4      R 4       R# r   )rj   r   __new__r   bytesr0   s   &r   (test_uninitialized_BZ2Decompressor_crash<BZ2DecompressorTest.test_uninitialized_BZ2Decompressor_crash
  s+    00A#EG,c	3r   r  N)r3   r4   r5   r6   r  r  r  r  r  r   r  r   r   r  r  r  r
  r  r  r  refcount_testr"  r'  rM   rN   rO   s   @r   r  r  h  s     :*
*8: S3Ys+  ,  7
/>3,3*3 I N N3 3r   r  c                   \   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tRtV tR# )CompressDecompressTesti  c                    \         P                  V P                  4      pV P                  \	        V4      V P                  4       R # r%   )r   rK   r:   rj   r   )r+   r   s   & r   r  #CompressDecompressTest.testCompress  s-    ||DII&-tyy9r   c                f    \         P                  R 4      pV P                  WP                  4       R# r   )r   rK   rj   r<   r+   r   s   & r   r  .CompressDecompressTest.testCompressEmptyString  s"    ||C /r   c                z    \         P                  V P                  4      pV P                  WP                  4       R # r%   r   r   r;   rj   r:   r/  s   & r   r  %CompressDecompressTest.testDecompress  s&    ~~dii(yy)r   c                T    \         P                  R 4      pV P                  VR 4       R# r   )r   r   rj   r/  s   & r   testDecompressEmpty*CompressDecompressTest.testDecompressEmpty  s     ~~c"s#r   c                h    \         P                  V P                  4      pV P                  VR 4       R# r   )r   r   r<   rj   r/  s   & r   testDecompressToEmptyString2CompressDecompressTest.testDecompressToEmptyString   s$    ~~doo.s#r   c                j    V P                  \        \        P                  V P                  R R 4       R # r  )r`   rb   r   r   r;   r0   s   &r   testDecompressIncomplete/CompressDecompressTest.testDecompressIncomplete$  s"    *cnndiioFr   c                d    V P                  \        \        P                  V P                  4       R # r%   )r`   rq   r   r   r=   r0   s   &r   testDecompressBadData,CompressDecompressTest.testDecompressBadData'  s    '3>>4==Ar   c                    \         P                  V P                  ^,          4      pV P                  WP                  ^,          4       R# rH  r2  r/  s   & r   testDecompressMultiStream0CompressDecompressTest.testDecompressMultiStream*  s.    ~~dii!m,yy1}-r   c                    \         P                  V P                  V P                  ,           4      pV P	                  WP
                  4       R # r%   r   r   r;   r=   rj   r:   r/  s   & r   testDecompressTrailingJunk1CompressDecompressTest.testDecompressTrailingJunk.  s/    ~~dii$--78yy)r   c                    \         P                  V P                  ^,          V P                  ,           4      pV P	                  WP
                  ^,          4       R# rH  rD  r/  s   & r   %testDecompressMultiStreamTrailingJunk<CompressDecompressTest.testDecompressMultiStreamTrailingJunk2  s7    ~~dii!mdmm;<yy1}-r   r  N)r3   r4   r5   r6   r  r  r  r5  r8  r;  r>  rA  rE  rH  rM   rN   rO   s   @r   r+  r+    s>     :0*$$GB.*. .r   r+  c                   `   a  ] tR tRt o RtR tR tR tR tR t	R t
R	 tR
 tR tR tRtV tR# )OpenTesti7  zTest the open function.c                .    \         P                  ! V/ VB # r%   )r   rG   )r+   argskwargss   &*,r   rG   OpenTest.open:  s    xx(((r   c                b   R EF  pVR8X  d   \        V P                  4       V P                  V P                  V4      ;_uu_ 4       pVP                  V P                  4       RRR4       \        V P                  R4      ;_uu_ 4       p\        VP                  4       4      pV P                  W0P                  4       RRR4       V P                  V P                  R4      ;_uu_ 4       pV P                  VP                  4       V P                  4       RRR4       V P                  V P                  R4      ;_uu_ 4       pVP                  V P                  4       RRR4       \        V P                  R4      ;_uu_ 4       p\        VP                  4       4      pV P                  W0P                  ^,          4       RRR4       EK  	  R#   + '       g   i     ELt; i  + '       g   i     EL-; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     EK+  ; i)rT   xbNr!   ra  )rT   rQ  r
   r(   rG   rU   r:   r   rh   rj   r+   rg  rX   	file_datas   &   r   test_binary_modesOpenTest.test_binary_modes=  sZ    Dt|t}}%4==$//1		" 0dmmT**a*16684	  II6 + 4==$//1  4995 04==$//1		" 0dmmT**a*16684	  IIM: +* ! 0//*** 0///***<   G	5G"*+G6H	<HG"G36H	HH.c                b   R EF  pVR8X  d   \        V P                  4       V P                  V P                  V4      ;_uu_ 4       pVP                  V P                  4       RRR4       \        V P                  R4      ;_uu_ 4       p\        VP                  4       4      pV P                  W0P                  4       RRR4       V P                  V P                  R4      ;_uu_ 4       pV P                  VP                  4       V P                  4       RRR4       V P                  V P                  R4      ;_uu_ 4       pVP                  V P                  4       RRR4       \        V P                  R4      ;_uu_ 4       p\        VP                  4       4      pV P                  W0P                  ^,          4       RRR4       EK  	  R#   + '       g   i     ELt; i  + '       g   i     EL-; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     EK+  ; i)r   xNr!   r_   r   )r   rY  rR  rS  s   &   r   test_implicit_binary_modes#OpenTest.test_implicit_binary_modesN  sZ   Ds{t}}%4==$//1		" 0dmmT**a*16684	  II6 + 4==#..!  4995 /4==#..!		" /dmmT**a*16684	  IIM: +*  0//*** /...***rW  c                   V P                   P                  R 4      pVP                  R\        P                  4      pR EF  pVR8X  d   \        V P                  4       V P                  V P                  VR R7      ;_uu_ 4       pVP                  V4       RRR4       \        V P                  R4      ;_uu_ 4       p\        VP                  4       4      P                  R 4      pV P                  WR4       RRR4       V P                  V P                  RR R7      ;_uu_ 4       pV P                  VP                  4       V4       RRR4       V P                  V P                  RR R7      ;_uu_ 4       pVP                  V4       RRR4       \        V P                  R4      ;_uu_ 4       p\        VP                  4       4      P                  R 4      pV P                  WR^,          4       RRR4       EK  	  R#   + '       g   i     ELn; i  + '       g   i     EL"; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     EK  ; i)	ascii
xtencodingNr!   rtat)wtr_  )r:   decodereplacer)   linesepr
   r(   rG   rU   r   rh   rj   )r+   r   text_native_eolrg  rX   rT  s   &     r   test_text_modesOpenTest.test_text_modes`  s   yy(,,tRZZ8 Dt|t}}%4==$AAQ BdmmT**a*16684;;GD	  < + 4==$AAQ  40 B4==$AAQ BdmmT**a*16684;;GD	  a,?@ +* ! BAA*** BAAA***s=   G;<:H$!H#3H6+AI	;HH #H36I	Ic           
        R F  p\        V P                  4       RV9   d   RMRpV P                  V P                  WR7      ;_uu_ 4       p RRR4       V P                  \        4      ;_uu_ 4        V P                  V P                  V4      ;_uu_ 4       p RRR4       RRR4       K  	  R#   + '       g   i     Lj; i  + '       g   i     L1; i  + '       g   i     K  ; i)rY  tutf-8Nr`  )rY  rQ  r_  )r
   r(   rG   r`   FileExistsError)r+   rg  ra  rX   s   &   r   test_x_modeOpenTest.test_x_modes  s    %D4==!"%+w4H4==$BBa C""?33YYt}}d33q 4 43 & CB 43 433s0   B/2%CCC/B?CCC&c                   V P                  \        V P                  4      R 4      ;_uu_ 4       pV P                  VP	                  4       V P
                  4       RRR4       V P                  \        V P                  4      R4      ;_uu_ 4       pV P                  VP	                  4       V P
                  4       RRR4       V P
                  P                  R4      pV P                  \        V P                  4      RRR7      ;_uu_ 4       pV P                  VP	                  4       V4       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)r_   Nr!   r]  rb  rm  r`  )rG   r   r;   rj   rh   r:   re  )r+   rX   r   s   &  r   test_fileobjOpenTest.test_fileobj}  s    YYwtyy)3//1QVVXtyy1 0YYwtyy)400AQVVXtyy1 1yy(YYwtyy)4'YBBaQVVXt, CB 0/00 CBBs#   +D6+E	!E6E		E	E-	c                   V P                  \        V P                  V P                  R 4       V P                  \        V P                  V P                  R4       V P                  \        V P                  V P                  RRR7       V P                  \        V P                  V P                  RRR7       V P                  \        V P                  V P                  RRR7       R	# )
wbtxbtr!   rm  r`  ignore)errorsr^  )newlineN)r`   rb   rG   r(   r0   s   &r   test_bad_paramsOpenTest.test_bad_params  s    *))T]]E	;*))T]]E	;*))T]]D7 	 	L*))T]]D 	 	K*))T]]D$ 	 	Hr   c                   V P                   P                  R 4      pVP                  R\        P                  4      pV P                  V P                  RRR7      ;_uu_ 4       pVP                  V4       RRR4       \        V P                  R4      ;_uu_ 4       p\        VP                  4       4      P                  R4      pV P                  WB4       RRR4       V P                  V P                  RRR7      ;_uu_ 4       pV P                  VP                  4       V4       RRR4       R#   + '       g   i     L; i  + '       g   i     Lt; i  + '       g   i     R# ; i)r]  r^  rd  z	utf-16-ler`  Nr!   rb  )r:   re  rf  r)   rg  rG   r(   rU   r   rh   rj   )r+   r   rh  rX   rT  s   &    r   test_encodingOpenTest.test_encoding  s    yy(,,tRZZ8YYt}}d[YAAQGGDM B$--&&!&qvvx077DIY8 ' YYt}}d[YAAQQVVXt, BA BA&& BAAs$   "D-:E !E-D=	 E	E$	c                p   V P                  V P                  R 4      ;_uu_ 4       pVP                  R4       RRR4       V P                  V P                  RRRR7      ;_uu_ 4       pV P                  VP	                  4       R4       RRR4       R#   + '       g   i     Lb; i  + '       g   i     R# ; i)rT   s   foobarNrb  r]  rw  )ra  rx  foobar)rG   r(   rU   rj   rh   rB  s   & r   test_encoding_error_handler$OpenTest.test_encoding_error_handler  sz    YYt}}d++qGGM" ,YYt}}dWXYNNQVVXx0 ON ,+NNNs   B&!B$B!	$B5	c                   V P                   P                  R 4      pV P                  V P                  RRRR7      ;_uu_ 4       pVP	                  V4       RRR4       V P                  V P                  RRRR7      ;_uu_ 4       pV P                  VP                  4       V.4       RRR4       R#   + '       g   i     Lc; i  + '       g   i     R# ; i)r]  rd  rm  r^  )ra  ry  Nrb  )r:   re  rG   r(   rU   rj   r   )r+   r   rX   s   &  r   test_newlineOpenTest.test_newline  s    yy(YYt}}dWdYKKqGGDM LYYt}}dWdYKKqQ[[]TF3 LK LKKKKs   B0"C0C 	C	r  N)r3   r4   r5   r6   r7   rG   rU  rZ  ri  ro  rr  rz  r}  r  r  rM   rN   rO   s   @r   rK  rK  7  sA     );";$A&-H
-14 4r   rK  c                  0    \         P                  ! 4        R # r%   )r   reap_childrenr  r   r   tearDownModuler    s    r   __main__)+testr   test.supportr   r   r  unittestrs  r   r   r)   r  rA   r&   r  r   r   rL  r   r	   test.support.os_helperr
   r   compression._commonr   r  import_moduler   r   r   r   r   r   TestCaser    rR   r  r  r+  rK  r  r3   mainr  r   r   <module>r     s     (   	 + 	        & ) 3 ( 
 !!%( 7 7 $1x   1hX/( X/v05 05fd3( d3N%.X %.Pv4x v4r zMMO r   