python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_bz2.cpython-311.opt-1.pyc

e-ddlmZddlmZmZddlZddlZddlmZm	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlmZddlmZddlmZddlZddlZejdZdd	lmZmZmZdad
ZGddej Z!Gd
de!Z"Gdde!Z#Gdde!Z$Gdde!Z%Gdde!Z&dZ'e(dkrej)dSdS))support)
bigmemtest_4GN)BytesIODEFAULT_BUFFER_SIZE)
import_helper)threading_helper)unlinkbz2)BZ2File
BZ2CompressorBZ2Decompressorct!ttjdatrt	jdg|St|S)Nbunzip2)input)has_cmdline_bunzip2boolshutilwhich
subprocesscheck_outputr
decompress)datas A/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_bz2.pyext_decompressrsR""6<	#:#:;;$&	{$????~~d###c	eZdZdZgdZdeZdZdZdZ	dZ
edZe
j
eje
jejed	D]WZeed
5Ze
eeee
dz
Z
dddn#1swxYwYe
dkrnXeed
ZdZdZdS)BaseTestzBase for other testcases.)s root:x:0:0:root:/root:/bin/bash
sbin:x:1:1:bin:/bin:
sdaemon:x:2:2:daemon:/sbin:
sadm:x:3:4:adm:/var/adm:
slp:x:4:7:lp:/var/spool/lpd:
s sync:x:5:0:sync:/sbin:/bin/sync
s-shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
s!halt:x:7:0:halt:/sbin:/sbin/halt
s"mail:x:8:12:mail:/var/spool/mail:
s"news:x:9:13:news:/var/spool/news:
s#uucp:x:10:14:uucp:/var/spool/uucp:
s operator:x:11:0:operator:/root:
s!games:x:12:100:games:/usr/games:
s,gopher:x:13:30:gopher:/usr/lib/gopher-data:
s(ftp:x:14:50:FTP User:/var/ftp:/bin/bash
s#nobody:x:65534:65534:Nobody:/home:
s.postfix:x:100:101:postfix:/var/spool/postfix:
s-niemeyer:x:500:500::/home/niemeyer:/bin/bash
s>postgres:x:101:102:PostgreSQL Server:/var/lib/pgsql:/bin/bash
s6mysql:x:102:103:MySQL server:/var/lib/mysql:/bin/bash
s#www:x:103:104::/var/www:/bin/false
rsBZh91AY&SY.N>_@n?0F#&FЦMQ4hh$i44S<QHՇ
I/Epu]ɻDL
Q	1ߠ2O97dIJL#/#CWMXa<etL˄.`n}lh	E,ZVH>9gd6
Պ.Kvxwߡ|/";ձ#Aoy\O煚f82"%>V,z⟣"E)I^rU26U0^DFݸankR3]f"6l$j@l1..klsE
knQ%yvz̹zn7.G]B@!8`sBZh9rE8Psthis is not a valid bzip2 fileriz*.pyrbN
compresslevelcdtj\}|_tj|dSN)tempfilemkstempfilenameosclose)selffds  rsetUpzBaseTest.setUpRs($,..DM
rc.t|jdSr$)r
r'r*s rtearDownzBaseTest.tearDownVst}r)__name__
__module____qualname____doc__
TEXT_LINESjoinTEXTDATA
EMPTY_DATABAD_DATA	test_size	bytearrayBIG_TEXTglobr(pathescapedirname__file__fnameopenfhreadinto
memoryviewrcompressBIG_DATAr,r/rrrr&s


J.88JD^D4J0HIy""H27<<BGOOH4M4M(N(NPVWWXX
T%

	G"ZZ%9%9)**%EFFFI	G	G	G	G	G	G	G	G	G	G	G	G	G	G	GxE ||HA|66Hs*CC
	
C
	rceZdZdZdAdZdZdZdZdZd	Z	d
Z
dZdZd
Z
dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd Z d!Z!d"Z"d#Z#d$Z$d%Z%d&Z&d'Z'd(Z(d)Z)d*Z*d+Z+d,Z,d-Z-d.Z.d/Z/d0Z0d1Z1d2Z2e3j4d3Z5d4Z6d5Z7d6Z8d7Z9d8Z:d9Z;d:Z<d;Z=d<Z>d=Z?d>Z@d?ZAd@S)BBZ2FileTestzTest the BZ2File class.r rct|jd5}||j|z||ddddS#1swxYwYdS)Nwb)rCr'writer7)r*streamssuffixfs    rcreateTempFilezBZ2FileTest.createTempFile]s
$-
&
&	!
GGDI'(((
GGFOOO																		s3AAAc^|ttd|tttjd|tttjd|tttjd|tttjd|tttjd|tttjdd	dS)
Ngw/^@zrxrbtrr!
r)assertRaises	TypeErrorr
ValueErrorr(devnullr.s rtestBadArgszBZ2FileTest.testBadArgsbs)Wg666*grz3???*grz4@@@*grz5AAA*grzKKK*grzLLL	
)Wbj#qAAAAArc<|t|j5}|t|jt
|||jddddS#1swxYwYdSr$	rRrr'rZr[readfloatassertEqualr6r*bz2fs  rtestReadzBZ2FileTest.testReadms
T]
#
#	5tiEGG<<<TYY[[$)444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5sABBBc|d|jt|j5}|t
|jddddS#1swxYwYdS)NrrOrP)rRr9rr'rZOSErrorrards  rtestReadBadFilezBZ2FileTest.testReadBadFilessAdm<<<
T]
#
#	2tgty111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2s!AA#&A#cF|dt|j5}|t|jt
|||jdzddddS#1swxYwYdSNrOr`rds  rtestReadMultiStreamzBZ2FileTest.testReadMultiStreamxsA&&&
T]
#
#	9tiEGG<<<TYY[[$)a-888	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9sABBBctj}t|jt_	|dt|j5}|t|j	t||	|jdzdddn#1swxYwY|t_dS#|t_wxYwrl)
_compressionBUFFER_SIZElenr7rRrr'rZr[rarbrcr6)r*buffer_sizeres   rtestReadMonkeyMultiStreamz%BZ2FileTest.testReadMonkeyMultiStream~s#.#&ty>> 	3***''
=4!!)TY@@@  di!m<<<
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=(3L$$${L$2222s0*CAC4CCCCCC'c||jt|j5}|||jddddS#1swxYwYdS)N)rPrRr9rr'rcrar6rds  rtestReadTrailingJunkz BZ2FileTest.testReadTrailingJunks4=111
T]
#
#	5tTYY[[$)444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5s.A++A/2A/c|d|jt|j5}|||jdzddddS#1swxYwYdS)Nrmrhrwrds  rtestReadMultiStreamTrailingJunkz+BZ2FileTest.testReadMultiStreamTrailingJunksAdm<<<
T]
#
#	9tTYY[[$)a-888	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9s1A//A36A3c4|t|j5}|t|jt
||ddddddS#1swxYwYdS)Nrr)rRrr'rZr[rarbrcrds  r	testRead0zBZ2FileTest.testRead0s
T]
#
#	0tiEGG<<<TYYq\\3///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0sAB

BBc|t|j5}d}	|d}|sn||z
}|||jddddS#1swxYwYdS)NrTrWrRrr'rarcr6r*retextstrs    rtestReadChunk10zBZ2FileTest.testReadChunk10s
T]
#
#	.tD
iimm	


T49---	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.s=A33A7:A7c
|dt|j5}d}	|d}|sn||z
}|||jdzddddS#1swxYwYdS)NrmrnrTrWr~rs    rtestReadChunk10MultiStreamz&BZ2FileTest.testReadChunk10MultiStreamsA&&&
T]
#
#	2tD
iimm	


T49q=111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2sAA88A<?A<c|t|j5}||d|jddddddS#1swxYwYdS)Nd)rRrr'rcrar6rds  rtestRead100zBZ2FileTest.testRead100s
T]
#
#	>tTYYs^^TYtt_===	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>s7A--A14A1c|t|j5}|}|t|d||j||	|
|jddddS#1swxYwYdSNr)rRrr'peekassertNotEqualrs
assertTruer6
startswithrcra)r*repdatas   rtestPeekzBZ2FileTest.testPeeks
T]
#
#	5tIIKKEE

A...OODI0077888TYY[[$)444		5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5sBCCCc\|t|j5}d}t|}|||||||jd|t|j|z
}tt|j}||||||d||j|dddddS#1swxYwYdS)N)rRrr'r;rcrEr6rs)r*renbs    rtestReadIntozBZ2FileTest.testReadIntosJ
T]
#
#	4tA!AT]]1--q111Q	"1"
...DI"A#di..))AT]]1--q111QrrUDIqbccN333	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4sC+D!!D%(D%c0|t|j5}|t|jd|jD]*}|||+	ddddS#1swxYwYdSr$rRrr'rZr[readliner4rcr*relines   rtestReadLinezBZ2FileTest.testReadLines
T]
#
#	8ti===
8
8  $7777
8	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8sABBBc:|dt|j5}|t|jd|jdzD]*}|||+	ddddS#1swxYwYdSrlrrs   rtestReadLineMultiStreamz#BZ2FileTest.testReadLineMultiStreamsA&&&
T]
#
#	8ti===!+
8
8  $7777
8	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8sABBBc$|t|j5}|t|jd|||jddddS#1swxYwYdSr$rRrr'rZr[	readlinesrcr4rds  r
testReadLineszBZ2FileTest.testReadLiness
T]
#
#	@ti>>>T^^--t???	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@sABB	B	c.|dt|j5}|t|jd|||jdzddddS#1swxYwYdSrlrrds  rtestReadLinesMultiStreamz$BZ2FileTest.testReadLinesMultiStreamsA&&&
T]
#
#	Dti>>>T^^--t/BCCC	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	DsAB

BBc|t|j5}|t	t||jddddS#1swxYwYdSr$rRrr'rclistiterr4rds  rtestIteratorzBZ2FileTest.testIterators
T]
#
#	@tT$t**--t???	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@s6A,,A03A0c|dt|j5}|t	t||jdzddddS#1swxYwYdSrlrrds  rtestIteratorMultiStreamz#BZ2FileTest.testIteratorMultiStreamsA&&&
T]
#
#	DtT$t**--t/BCCC	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	Ds9A11A58A5c|t|j}||t
t||t
|jdSr$)rRrr'r)rZr\nextrrds  rtestClosedIteratorDeadlockz&BZ2FileTest.testClosedIteratorDeadlocksft}%%

*dD111*dn55555rct|jd5}|t|j||jdddn#1swxYwYt
|jd5}|t|	|jddddS#1swxYwYdS)Nwr
rr'rZr[rNr6rCrcrrar*rerQs   r	testWritezBZ2FileTest.testWritesB
T]C
(
(	"Di444JJty!!!	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"$-
&
&	B!^AFFHH55tyAAA	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	Bs#;AA!$A!=;CC	C	ct|jd5}d}	|j|dz|dzdz}|sn|||dz
}6	dddn#1swxYwYt	|jd5}|t
||jddddS#1swxYwYdS)NrrTrWr r)rr'r6rNrCrcrra)r*rerrrQs     rtestWriteChunks10zBZ2FileTest.testWriteChunks10si
T]C
(
(	DA
i"ac2X
.

3Q
															$-
&
&	B!^AFFHH55tyAAA	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	Bs#:AA!$A!=;CC	C	ct|jd}t|jdd5}||jdddn#1swxYwYt
|jd5}|||ddddS#1swxYwYdS)Nrmr!rr)	rrGr6rr'rNrCrcra)r*expectedrerQs    r testWriteNonDefaultCompressLevelz,BZ2FileTest.testWriteNonDefaultCompressLevel
s'<<	<;;
T]Cq
9
9
9	"TJJty!!!	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"
$-
&
&	1!QVVXXx000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1s#A  A$'A$)B66B:=B:ct|jd5}|t|j||jdddn#1swxYwY|t|jdgt|jd5}|t|
|jddddS#1swxYwYdS)Nrar)rr'rZr[
writelinesr4r\rCrcrrar6rs   rtestWriteLineszBZ2FileTest.testWriteLiness^
T]C
(
(	-Di999OODO,,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
	
*dou===
$-
&
&	B!^AFFHH55tyAAA	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	Bs#;AA!$A!;C''C+.C+clt|jd5}|ddddn#1swxYwYt|jd5}|t|jd|t|jdgddddS#1swxYwYdS)NrsabcrXa)rr'rNrZrirrds  rtestWriteMethodsOnReadOnlyFilez*BZ2FileTest.testWriteMethodsOnReadOnlyFiles6
T]C
(
(	DJJv															T]C
(
(	@Dgtz4888gt???	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@s8<<AB))B-0B-cxt|jd5}|t|j||jdddn#1swxYwYt|jd5}|t|j||jdddn#1swxYwYt
|jd5}|t|	|jdzddddS#1swxYwYdS)Nrrrrrs   r
testAppendzBZ2FileTest.testAppend#s
T]C
(
(	"Di444JJty!!!	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"T]C
(
(	"Di444JJty!!!	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"$-
&
&	F!^AFFHH55ty1}EEE	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	Fs5;AA!$A!=;CCC$>D//D36D3c\|t|j5}|t|j|d|||jddddddS#1swxYwYdSN)	rRrr'rZr[seekrcrar6rds  rtestSeekForwardzBZ2FileTest.testSeekForward-s
T]
#
#	;ti333IIcNNNTYY[[$)CDD/:::	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;A+B!!B%(B%c|dt|j5}|t|j|t
|jdz||	|jddddddS#1swxYwYdS)Nrrnr)
rRrr'rZr[rrsr6rcrards  rtestSeekForwardAcrossStreamsz(BZ2FileTest.testSeekForwardAcrossStreams4sA&&&
T]
#
#	;ti333IIc$)nns*+++TYY[[$)CDD/:::	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;sBB88B<?B<cH|t|j5}|d|dd|||jddddddS#1swxYwYdSNijr i^)rRrr'rarrcr6rds  rtestSeekBackwardszBZ2FileTest.testSeekBackwards;s
T]
#
#	?tIIcNNNIIdATYY[[$)GHH*=>>>	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?A!BBBc|dt|j5}t|jdz}|dkr+|t||z}|dk+|dd|||jdd|jzddddS#1swxYwYdS)Nrrnrrrr i)rRrr'rsr6rarrc)r*rereadtos   rtestSeekBackwardsAcrossStreamsz*BZ2FileTest.testSeekBackwardsAcrossStreamsBs%A&&&
T]
#
#	Kt^^c)F1**#dii//0001**IIdATYY[[$)GHH*=	*IJJJ	K	K	K	K	K	K	K	K	K	K	K	K	K	K	K	K	K	KsBCCCcH|t|j5}|dd|||jt|jdz
dddddS#1swxYwYdS)Nrrr)rRrr'rrcrar6rsrds  rtestSeekBackwardsFromEndz$BZ2FileTest.testSeekBackwardsFromEndKs
T]
#
#	JtIIdATYY[[$)C	NN34F4G4G*HIII	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	Jrc(|dt|j5}|dd|||jdzddddddS#1swxYwYdS)Nrrni)rRrr'rrcrar6rds  r%testSeekBackwardsFromEndAcrossStreamsz1BZ2FileTest.testSeekBackwardsFromEndAcrossStreamsQsA&&&
T]
#
#	CtIIeQTYY[[49q=%&&*ABBB	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	CsABBBcv|t|j5}|d||t
|j||dddddS#1swxYwYdSNIr	rRrr'rrctellrsr6rards  rtestSeekPostEndzBZ2FileTest.testSeekPostEndWs
T]
#
#	/tIIfTYY[[#di..999TYY[[#...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/sA8B..B25B2c|dt|j5}|d||t
|jdz||dddddS#1swxYwYdSNrmrnrrrrds  rtestSeekPostEndMultiStreamz&BZ2FileTest.testSeekPostEndMultiStream^sA&&&
T]
#
#	/tIIfTYY[[#di..1*<===TYY[[#...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/sA;B33B7:B7c|t|j5}|d|d||t
|j||dddddS#1swxYwYdSrrrds  rtestSeekPostEndTwicez BZ2FileTest.testSeekPostEndTwicees
T]
#
#	/tIIfIIfTYY[[#di..999TYY[[#...		/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/sB
CC
Cc|dt|j5}|d|d||t
|jdz||dddddS#1swxYwYdSrrrds  rtestSeekPostEndTwiceMultiStreamz+BZ2FileTest.testSeekPostEndTwiceMultiStreammsA&&&
T]
#
#	/tIIfIIfTYY[[#di..1*<===TYY[[#...		/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/sBCCCc\|t|j5}|d||d|||jddddS#1swxYwYdS)NrrrRrr'rrcrrar6rds  rtestSeekPreStartzBZ2FileTest.testSeekPreStartus
T]
#
#	5tIIdOOOTYY[[!,,,TYY[[$)444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5rcf|dt|j5}|d||d|||jdzddddS#1swxYwYdS)Nrrnrrrrds  rtestSeekPreStartMultiStreamz'BZ2FileTest.testSeekPreStartMultiStream|sA&&&
T]
#
#	9tIIdOOOTYY[[!,,,TYY[[$)a-888	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9sA.B&&B*-B*c|t|jd5}t|}	||||n#|wxYw	dddn#1swxYwY|t|jdS)Nr)	rRrCr'rrcfilenor)rZr\)r*rawfres   r
testFilenozBZ2FileTest.testFilenos
$-
&
&	$4==D
  

>>>



																
*dk22222s(B0:B
5B0
B  B00B47B4ctt|j}	||||||n#|wxYw|t|jttd}	|	||n#|wxYw|t|jt|j}d|_t|}	|	||n#|wxYw|t|jdS)NrcdS)NFrIrIrr<lambda>z*BZ2FileTest.testSeekable.<locals>.<lambda>sur)
rrr7rseekablerar)rZr\assertFalse)r*resrcs   rtestSeekablezBZ2FileTest.testSeekableswty))**	OODMMOO,,,IIKKKOODMMOO,,,JJLLLLDJJLLLL*dm444wyy#&&	T]]__---JJLLLLDJJLLLL*dm444di  $}s||	T]]__---JJLLLLDJJLLLL*dm44444s$A"BB00'D,,E'G

G#ctt|j}	||||||n#|wxYw|t|jttd}	|	||n#|wxYw|t|jdSNr)
rrr7rreadablerar)rZr\rrds  rtestReadablezBZ2FileTest.testReadableswty))**	OODMMOO,,,IIKKKOODMMOO,,,JJLLLLDJJLLLL*dm444wyy#&&	T]]__---JJLLLLDJJLLLL*dm44444A"BB00'D,,Ectt|j}	||||||n#|wxYw|t|jttd}	|	||n#|wxYw|t|jdSr)
rrr7rwritablerar)rZr\rrds  rtestWritablezBZ2FileTest.testWritables
wty))**	T]]__---IIKKKT]]__---JJLLLLDJJLLLL*dm444wyy#&&	OODMMOO,,,JJLLLLDJJLLLL*dm44444rc||tdD]}t|j}~dS)Ni')rRrangerr')r*ios   rtestOpenDelzBZ2FileTest.testOpenDelsGu		A
&&A		rcH|ttddS)Nz
/non/existent)rZrirr.s rtestOpenNonexistentzBZ2FileTest.testOpenNonexistents '7O<<<<<rcd}t|jd5}||dddn#1swxYwYt|j5}|}dddn#1swxYwY||dgt|j5}t
|}dddn#1swxYwY||dgdS)Ns,BZh91AY&SYb] !h3M<]BCe%trMsTest)rCr'rNrrrcr)r*rrQrelinesxliness      rtestReadlinesNoNewlinez"BZ2FileTest.testReadlinesNoNewlinesz
$-
&
&	!
GGDMMM															
T]
#
#	%tNN$$E	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%	***
T]
#
#	,t$..**++F	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,'+++++s1:>>A::A>A>0"CC"%C"cd}t|jd5}|ddddn#1swxYwYt|jd}|	|5	dddn#1swxYwY|dn#t
$rYnwxYw	t|jd5}ddzdddn#1swxYwY|ddS#t$rYdSwxYw)NrMsxxxrz4__enter__ on a closed file didn't raise an exceptionr rz1/0 didn't raise an exception)rr'rNr)failr\ZeroDivisionErrorr*rQs  rtestContextProtocolzBZ2FileTest.testContextProtocols
T]D
)
)	Q
GGFOOO															DM4((					N


















IILMMMM			D		7--
!
















II566666!			DD	sy:>>/B 1A?3B ?BB BB  
B-,B-1C:CC:CC:C C::
DDcddzd}t|jd5fdfdt|D}tj|5	dddn#1swxYwYddddS#1swxYwYdS)N1irWrMcVtdD]}dSNrm)rrN)rrrQs rcompz'BZ2FileTest.testThreading.<locals>.comps3q""AGGDMMMM""rc:g|]}tjS))target)	threadingThread).0rrs  r
<listcomp>z-BZ2FileTest.testThreading.<locals>.<listcomp>s'NNNy't444NNNr)rr'rr	
start_threads)r*nthreadsthreadsrrrQs   @@@r
testThreadingzBZ2FileTest.testThreadings1e|
T]D
)
)	Q
"
"
"
"
"
"ONNNeHooNNNG!/88
















																		s56A<A$A<$A(	(A<+A(	,A<<BBc|t|jd}|dz}t|j5}|||t||jd|d|||j|ddddn#1swxYwYt|j5}|	|t||jd||	|jddddn#1swxYwYt|j5}|
|tt|||
gddddS#1swxYwYdS)Nrrr )
rRrsr4rr'rarcrr6rrrZ
StopIteration)r*linelenhalflenres    rtestMixedIterationAndReadsz&BZ2FileTest.testMixedIterationAndReadss~doa())Q,
T]
#
#	?tIIgT$ZZ);GHH)EFFFTYY[[$)GHH*=>>>	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?T]
#
#	BtMMOOOT$ZZ);<<<T]]__doa.@AAA	B	B	B	B	B	B	B	B	B	B	B	B	B	B	BT]
#
#	3tNNmT4888T^^--r222	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3s9BCCC4A6E66E:=E:AHHHcd}d}t|jd5}||dddn#1swxYwYt|jd5}||dddn#1swxYwYt|j5}||||zddddS#1swxYwYdS)Nsfoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoosbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarrr)rr'rNrcra)r*data1data2res    rtestMultiStreamOrderingz#BZ2FileTest.testMultiStreamOrderings
T]C
(
(	DJJu															
T]C
(
(	DJJu															
T]
#
#	9tTYY[[%%-888	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9s3<AAA>>BB,CCCcf|j}	|d}n%#t$r|dYnwxYwt	|d5}||jdddn#1swxYwYt	|d5}|||jdddn#1swxYwYt	|d5}|||jddddS#1swxYwYdS)Nasciiz%Temporary file name needs to be ASCIIrMr)	r'encodeUnicodeEncodeErrorskipTestrrNr7rcra)r*str_filenamebytes_filenamerQs    rtestOpenBytesFilenamez!BZ2FileTest.testOpenBytesFilenames}	C)0099NN!	C	C	CMMABBBBB	C
^T
*
*	a
GGDI															
^T
*
*	2aQVVXXty111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2\4
(
(	2AQVVXXty111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2sEAAA;;A?A?.CCC+.D&&D*-D*chtj|j}t|d5}||jdddn#1swxYwYt|d5}|||jddddS#1swxYwYdS)NrMr)pathlibPathr'rrNr7rcra)r*r'rQs   rtestOpenPathLikeFilenamez$BZ2FileTest.testOpenPathLikeFilename*s<
..
Xt
$
$	
GGDI															
Xt
$
$	2QVVXXty111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2s#AAA,.B''B+.B+ctdtdzd}|t	|t
jtt|}|	|
dddtz}||j
j|ddS)z-Decompressed data buffering should be limitedg>A	r!r z)Excessive amount of data was decompressedN)rrGint
assertLessrsrqrrrrrcrarassertLessEqual_bufferrawr)r*bombdecomp
max_decomps    rtestDecompressLimitedz!BZ2FileTest.testDecompressLimited1s||ECHH,A|>>D		<#;<<<''Q///,,
V^/4466
7	9	9	9	9	9rct|j5}t|5}|t|jt
|||jdddn#1swxYwY|	|j
ddddS#1swxYwYdSr$)rr7rrZr[rarbrcr6rclosedr*biores   rtestReadBytesIOzBZ2FileTest.testReadBytesIO?s'
TY

	)3
9!!)TY@@@  di888
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
SZ(((		)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)s5B>ABB>B	B>B	B>>CCct|j5}t|5}|}|t|d||j||	|
|jdddn#1swxYwYddddS#1swxYwYdSr)rr7rrrrsrr6rrcra)r*r=rers    rtestPeekBytesIOzBZ2FileTest.testPeekBytesIOFs<
TY

	93
9		##CJJ222	 4 4U ; ;<<<  di888	
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9s5CBC7CC	C
C	CC"Cct5}t|d5}|t|j||jdddn#1swxYwY|t||j|	|j
ddddS#1swxYwYdSr)rrrZr[rNr6rcrgetvaluerr;r<s   rtestWriteBytesIOzBZ2FileTest.testWriteBytesIONs;
YY	)#c""
&d!!)TZ888

49%%%
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
^CLLNN;;TYGGGSZ(((	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)s5C;A'C'A+	+C.A+	/ACCCct|j5}t|5}|t|j|d|||jdddddn#1swxYwYddddS#1swxYwYdSr)	rr7rrZr[rrcrar6r<s   rtestSeekForwardBytesIOz"BZ2FileTest.testSeekForwardBytesIOVs 
TY

	?3
?!!)TY777		#  dio>>>
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?s5B4A+BB4B 	 B4#B 	$B44B8;B8cnt|j5}t|5}|d|dd|||jdddddn#1swxYwYddddS#1swxYwYdSr)rr7rrarrcr6r<s   rtestSeekBackwardsBytesIOz$BZ2FileTest.testSeekBackwardsBytesIO]s@
TY

	C3
C		#		$"""  di.ABBB
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	Cs5B*A!BB*B	B*B	B**B.1B.c|jdd}tt|5}|t|jdddn#1swxYwYtt|5}||t|j|j|t|jddddn#1swxYwYtdD]_}tt|d|5}|t|jddddn#1swxYwY`dS)Nr )
r7rrrZEOFErrorrarcrsr6r)r*	truncatedrQrs    rtest_read_truncatedzBZ2FileTest.test_read_truncateddsIdsdO	
WY''
(
(	0Ah///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
WY''
(
(	3AQVVC	NN33TY???h222	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3r	7	7A2A2//00
7A!!(AFA666
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7	7	7s6!AA AA"C..C25C2."EE 	#E 	cntjdgd}t||jz}tt	d5}|||||||ddddS#1swxYwYdS)NQ)r rrYrmr)arrayrsitemsizerrrcrNr)r*qLENGTHrQs    rtest_issue44439zBZ2FileTest.test_issue44439qsK___--Q!*$
WYY
$
$	/QWWQZZ000QVVXXv...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/sAB**B.1B.N)r r)Br0r1r2r3rRr^rfrjrorurxrzr|rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr	r	requires_working_threadingrrr!r)r-r9r>r@rCrErGrMrUrIrrrKrKZs
	B	B	B555222
999333555
999
000	.	.	.	2	2	2>>>
555
4
4
4888888@@@DDD@@@
DDD
666BBB
B
B
B111BBB@@@FFF;;;;;;???KKKJJJCCC////////////5559993335554555"555"===
,
,
,777*1022

32
333"	9	9	9222222	9	9	9)))999)))???CCC777/////rrKcreZdZdZdZdZejee	dzddZ
dZd	S)
BZ2CompressorTestct}|t|j||j}||z
}|t||jdSr$)r
rZr[rGr6flushrcrr*bz2crs   rtestCompresszBZ2CompressorTest.testCompress{sn)T]333}}TY''

--ty99999rct}|d}||z
}|||jdSNr)r
rGrZrcr8r[s   rtestCompressEmptyStringz)BZ2CompressorTest.testCompressEmptyStringsL}}S!!

t/////rct}d}d}	|j|dz|dzdz}|sn|||z
}|dz
}9||z
}|t||jdS)NrrTrWr )r
r6rGrZrcr)r*r\rrrs     rtestCompressChunks10z&BZ2CompressorTest.testCompressChunks10s
	)AbD!A#rM*C
DMM#&&&D
FA		


--ty99999rrrsizememusect}d|z}	||}||z
}d}n#d}wxYwt|}	|t
|||t
|ddd}dS#d}wxYw)Nxr)r
rGrZrrrcrsstrip)r*rdr\r
compresseds     rtestCompress4Gz BZ2CompressorTest.testCompress4Gsd{	t,,J$**,,&JDD4DKKKK~~j))	SYY---SD!1!122A666DDD4DKKKKs,AA&ACCcttjdzD]U}|t5tjt
|dddn#1swxYwYVdSNr )rpickleHIGHEST_PROTOCOLrZr[dumpsr
r*protos  r
testPicklezBZ2CompressorTest.testPickles62Q677	5	5E""9--
5
5]__e444
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5	5	5"A''A+	.A+	N)r0r1r2r]r`rbrskip_if_pgo_taskrrrjrrrIrrrXrXzs:::000:::
ZS3Yq)))*) 55555rrXceZdZdZdZdZdZdZej	e
edzdd	Zd
Z
dZdZd
ZdZdZejdZdS)BZ2DecompressorTestcH|ttddS)N*)rZr[rr.s rtest_Constructorz$BZ2DecompressorTest.test_Constructors )_b99999rct}|t|j||j}|||jdSr$)rrZr[rr7rcr6r*bz2drs   rtestDecompressz"BZ2DecompressorTest.testDecompresssV  )T_555ty))ty)))))rct}d}d}	|j|dz|dzdz}|sn|||z
}|dz
}9|||jdS)NrrTrWr )rr7rrcr6)r*r|rrrs     rtestDecompressChunks10z*BZ2DecompressorTest.testDecompressChunks10s  
	)AbD!A#rM*C
DOOC(((D
FA		
ty)))))rct}d}||j|z}|||j||j|dS)Nsthis is unused data)rrr7rcr6unused_data)r*r|rrs    rtestDecompressUnusedDataz,BZ2DecompressorTest.testDecompressUnusedDatasa  ,ty455ty))));77777rct}||j}|t|jd|t|jddS)Nsanythingr)rrr7rZrKr{s   rtestEOFErrorz BZ2DecompressorTest.testEOFErrorsZ  ty))(DO[AAA(DOS99999rrgffffff
@rcc:td|}tj|}	||dz
|zdzz}t|}t}||}|||kd}d}d}dS#d}d}d}wxYw)Nir )minrandom	randbytesrrGrrr)r*rd	blocksizeblockrrir|decompresseds        rtestDecompress4Gz$BZ2DecompressorTest.testDecompress4Gs($//	 ++		 T!V	1A56Dd++J"$$D??:66LOOLD0111DJLLLDJLsA$BBcttjdzD]U}|t5tjt
|dddn#1swxYwYVdSrl)rrmrnrZr[rorrps  rrrzBZ2DecompressorTest.testPickles62Q677	7	7E""9--
7
7_..666
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7	7	7rsc>t}d}g}t|jdz
}|||jd||||j|t|d|||d|||j|t|d||||j|d||t|d||j	sZ||d||t|d||j	Zd
|}|||j||jddS)Nr@
max_lengthr)
rrsrHappendrrneeds_inputrcr3eofr5r<r)r*bzdroutlen_s     rtestDecompressorChunksMaxsizez1BZ2DecompressorTest.testDecompressorChunksMaxsizes
4=!!B&

3>>$-"6-7"99	:	:	:)))SWz222	

3>>#*>==>>>)))SWz222	

3>>$-"6-7"99	:	:	:SR\\:666'	;JJs~~cj~AABBB  SWz:::'	;hhsmmdm,,,#.....rct}g}|||jdddd||dd|||jddd|||jdd|d||jdS)Nrrrrrirrcrr7rr5r6r*rrs   rtest_decompressor_inputbuf_1z0BZ2DecompressorTest.test_decompressor_inputbuf_1s	
	$3$34(667:	<	<	<
	

3>>#q))***	

3>>$)CG"4b99:::	

3>>$)CDD/22333#	22222rct}g}|||jdddd||d|||jddd|||jddd|||jdd|d||jdS)Nrrrir,rrs   rtest_decompressor_inputbuf_2z0BZ2DecompressorTest.test_decompressor_inputbuf_2s	
	$3$34(667:	<	<	<

3>>#&&'''	

3>>$)CG"4a88999	

3>>$)CG"4a88999	

3>>$)CDD/22333#	22222rct}g}|||jddd|||jddd|||jdd|d||jdS)Nrrmrr)rrrr7rcr5r6rs   rtest_decompressor_inputbuf_3z0BZ2DecompressorTest.test_decompressor_inputbuf_30s	

3>>$)DSD/155666	

3>>$)CG"4a88999	

3>>$)CDD/22333#	22222rct}|t|j|jdz|t|j|jdzdS)N)rrZ	Exceptionrr9)r*rs  rtest_failurez BZ2DecompressorTest.test_failure@sU)S^T]R5GHHH)S^T]R5GHHHHHrctjtd}t}|}t	dD]}||||z
dddS)NgettotalrefcountrrrW)delta)r
get_attributesysrr__init__assertAlmostEqual)r*rrrefs_beforers     rtest_refleaks_in___init__z-BZ2DecompressorTest.test_refleaks_in___init__Fs"06HII&&((s		ALLNNNN//11K?"MMMMMrN)r0r1r2ryr}rrrrrtrrrrrrrrrr
refcount_testrrIrrrvrvs:::***
*
*
*888:::
ZS3Ys+++
 
 ,+
 777
///>333,333*333 III
NNNNNrrvcJeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdS)CompressDecompressTestct|j}|t	||jdSr$)rrGr6rcr)r*rs  rr]z#CompressDecompressTest.testCompressQs;||DI&&--ty99999rcptd}|||jdSr_)rrGrcr8r*rs  rr`z.CompressDecompressTest.testCompressEmptyStringUs1||C  t/////rczt|j}|||jdSr$rrr7rcr6rs  rr}z%CompressDecompressTest.testDecompressYs3~~di((ty)))))rcftd}||ddSr_)rrrcrs  rtestDecompressEmptyz*CompressDecompressTest.testDecompressEmpty]s/~~c""s#####rcpt|j}||ddSr_)rrr8rcrs  rtestDecompressToEmptyStringz2CompressDecompressTest.testDecompressToEmptyStringas1~~do..s#####rcl|ttj|jdddS)NrI)rZr\rrr7r.s rtestDecompressIncompletez/CompressDecompressTest.testDecompressIncompletees,*cndioFFFFFrc\|ttj|jdSr$)rZrirrr9r.s rtestDecompressBadDataz,CompressDecompressTest.testDecompressBadDatahs$'3>4=AAAAArct|jdz}|||jdzdSr
rrs  rtestDecompressMultiStreamz0CompressDecompressTest.testDecompressMultiStreamks;~~di!m,,ty1}-----rct|j|jz}|||jdSr$rrr7r9rcr6rs  rtestDecompressTrailingJunkz1CompressDecompressTest.testDecompressTrailingJunkos:~~di$-788ty)))))rct|jdz|jz}|||jdzdSr
rrs  r%testDecompressMultiStreamTrailingJunkz<CompressDecompressTest.testDecompressMultiStreamTrailingJunkssB~~di!mdm;<<ty1}-----rN)
r0r1r2r]r`r}rrrrrrrrIrrrrPs:::000***$$$$$$GGGBBB...***.....rrcNeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dS)
OpenTestzTest the open function.c$tj|i|Sr$)rrC)r*argskwargss   rrCz
OpenTest.open{sx((((rcdD]}|dkrt|j||j|5}||jdddn#1swxYwYt|jd5}t|}|||jdddn#1swxYwY||jd5}|||jdddn#1swxYwY||jd5}||jdddn#1swxYwYt|jd5}t|}|||jdzdddn#1swxYwYdS)N)rMxbrrabrr
r'rCrNr6rrarcr*moderQ	file_datas    rtest_binary_modeszOpenTest.test_binary_modes~s 	;	;Dt||t}%%%4=$//
#1	"""
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#dmT**
7a*1668844	  DI666
7
7
7
7
7
7
7
7
7
7
7
7
7
7
74=$//
61  49555
6
6
6
6
6
6
6
6
6
6
6
6
6
6
64=$//
#1	"""
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#dmT**
;a*1668844	  DIM:::
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;	;	;ZA""A&	)A&	=CC	C	1.D++D/	2D/	E88E<	?E<	AG$$G(	+G(	cdD]}|dkrt|j||j|5}||jdddn#1swxYwYt|jd5}t|}|||jdddn#1swxYwY||jd5}|||jdddn#1swxYwY||jd5}||jdddn#1swxYwYt|jd5}t|}|||jdzdddn#1swxYwYdS)N)rxrrrXrrrrs    rtest_implicit_binary_modesz#OpenTest.test_implicit_binary_modess	;	;Ds{{t}%%%4=$//
#1	"""
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#dmT**
7a*1668844	  DI666
7
7
7
7
7
7
7
7
7
7
7
7
7
7
74=#..
6!  49555
6
6
6
6
6
6
6
6
6
6
6
6
6
6
64=#..
#!	"""
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#dmT**
;a*1668844	  DIM:::
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;	;	;rc|jd}|dtj}dD]}|dkrt|j||j|d5}||dddn#1swxYwYt|jd5}t|
d}|||dddn#1swxYwY||jdd5}||
|dddn#1swxYwY||jdd5}||dddn#1swxYwYt|jd5}t|
d}|||d	zdddn#1swxYwYdS)
Nr#
)wtxtrencodingrrtatr)r6decodereplacer(linesepr
r'rCrNrrarc)r*rtext_native_eolrrQrs      rtest_text_modeszOpenTest.test_text_modess4y((,,tRZ88 	A	ADt||t}%%%4=$AA
Q

















dmT**
=a*1668844;;GDD	  O<<<
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=4=$AA
1Q  4000
1
1
1
1
1
1
1
1
1
1
1
1
1
1
14=$AA
Q

















dmT**
Aa*1668844;;GDD	  Oa,?@@@
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A	A	As\7BB	 B	9ADD	D	8)E--E1	4E1	F77F;	>F;	AH11H5	8H5	cdD]}t|jd|vrdnd}||j||5}	dddn#1swxYwY|t5||j|5}	dddn#1swxYwYdddn#1swxYwYdS)N)rrrtutf-8r)r
r'rCrZFileExistsError)r*rrrQs    rtest_x_modezOpenTest.test_x_modes%		D4=!!!"%++ww4H4=$BB
a














""?33

YYt}d33q














		sGAA	A	1B2
BB2BB2"B#B22B6	9B6	c|t|jd5}|||jdddn#1swxYwY|t|jd5}|||jdddn#1swxYwY|jd}|t|jdd5}|||ddddS#1swxYwYdS)NrXrr#rrr)rCrr7rcrar6r)r*rQrs   rtest_fileobjzOpenTest.test_fileobjs
YYwty))3
/
/	21QVVXXty111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2
YYwty))4
0
0	2AQVVXXty111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2y((
YYwty))4'Y
B
B	-aQVVXXt,,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-s5.A##A'*A'.CCC)EEEc|t|j|jd|t|j|jd|t|j|jdd|t|j|jdd|t|j|jdd	dS)
Nwbtxbtrrrignore)errorsr)newline)rZr\rCr'r.s rtest_bad_paramszOpenTest.test_bad_paramss*)T]E	;	;	;*)T]E	;	;	;*)T]D7		L	L	L*)T]D		K	K	K*)T]D$		H	H	H	H	Hrc|jd}|dtj}||jdd5}||dddn#1swxYwYt|jd5}t|	d}|
||dddn#1swxYwY||jdd5}|
|	|ddddS#1swxYwYdS)Nr#rrz	utf-16-lerrr)r6rrr(rrCr'rNrrarc)r*rrrQrs     r
test_encodingzOpenTest.test_encodingsy((,,tRZ88
YYt}d[Y
A
A	Q
GGDMMM															
$-
&
&	9!&qvvxx0077DDIY888	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9YYt}d[Y
A
A	-QQVVXXt,,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-s7A::A>A>AC11C58C5)EEEcT||jd5}|ddddn#1swxYwY||jddd5}||dddddS#1swxYwYdS)NrMsfoobarrr#r)rrfoobar)rCr'rNrcrars  rtest_encoding_error_handlerz$OpenTest.test_encoding_error_handlers
YYt}d
+
+	#q
GGM"""	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#
YYt}dWXY
N
N	1QVVXXx000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1s!>AA')BB!$B!c|jd}||jddd5}||dddn#1swxYwY||jddd5}|||gddddS#1swxYwYdS)Nr#rrr)rrr
)r6rrCr'rNrcr)r*rrQs   rtest_newlinezOpenTest.test_newlines1y((
YYt}dWdY
K
K	q
GGDMMM															
YYt}dWdY
K
K	4qQ[[]]TF333	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4s#AA"A*B;;B?B?N)r0r1r2r3rCrrrrrrrrrrIrrrrxs)));;;";;;$AAA&---HHH
-
-
-11144444rrc,tjdSr$)r
reap_childrenrIrrtearDownModulersr__main__)*testrtest.supportrrrQunittestiorrr(rmr=r%r+rrrrrr	test.support.os_helperr
rqr
import_modulerrr
rrrTestCaserrKrXrvrrrr0mainrIrr<module>r
s((((((((++++++++				











&&&&&&))))))))))))



"m!%((7777777777$$$11111x 111h]/]/]/]/]/(]/]/]/@0505050505050505f`N`N`N`N`N(`N`N`NF%.%.%.%.%.X%.%.%.Pv4v4v4v4v4xv4v4v4rzHMOOOOOr