Your IP : 216.73.216.85


Current Path : /opt/alt/python35/lib64/python3.5/test/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/test/__pycache__/test_iter.cpython-35.pyc



��Yf}�@s4ddlZddlZddlmZmZmZmZddlmZddlZddl	Z
dddfdddfdddfdddfdddfdddfdddfdddfdddfdddfdddfdddfdddfdddfdddfdddfdddfdddfdddfdddfdddfdddfdddfdddfdddfdddfdddfgZGdd�d�ZGdd	�d	�Z
Gd
d�d�ZGdd
�d
�ZGdd�dej�Zdd�Zedkr0e�dS)�N)�run_unittest�TESTFN�unlink�cpython_only)�check_free_after_iterating��c@s4eZdZdd�Zdd�Zdd�ZdS)�BasicIterClasscCs||_d|_dS)Nr)�n�i)�selfr
�r
�3/opt/alt/python35/lib64/python3.5/test/test_iter.py�__init__s	zBasicIterClass.__init__cCs/|j}||jkrt�|d|_|S)Nr)rr
�
StopIteration)r�resr
r
r�__next__s
	
zBasicIterClass.__next__cCs|S)Nr
)rr
r
r�__iter__#szBasicIterClass.__iter__N)�__name__�
__module__�__qualname__rrrr
r
r
rr	sr	c@s(eZdZdd�Zdd�ZdS)�IteratingSequenceClasscCs
||_dS)N)r
)rr
r
r
rr'szIteratingSequenceClass.__init__cCs
t|j�S)N)r	r
)rr
r
rr)szIteratingSequenceClass.__iter__N)rrrrrr
r
r
rr&src@s(eZdZdd�Zdd�ZdS)�
SequenceClasscCs
||_dS)N)r
)rr
r
r
rr-szSequenceClass.__init__cCs-d|ko|jknr#|St�dS)Nr)r
�
IndexError)rrr
r
r�__getitem__/szSequenceClass.__getitem__N)rrrrrr
r
r
rr,src@seZdZdd�ZdS)�UnlimitedSequenceClasscCs|S)Nr
)rrr
r
rr6sz"UnlimitedSequenceClass.__getitem__N)rrrrr
r
r
rr5src@s�eZdZddd�Zddd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Zd:d;�Zd<d=�Z d>d?�Z!d@dA�Z"dBdC�Z#dDdE�Z$dFdG�Z%dHdI�Z&dJdK�Z'dLdM�Z(dNdO�Z)dPdQ�Z*dRdS�Z+e,dTdU��Z-dVdW�Z.dXdY�Z/dZd[�Z0d\d]�Z1d^d_�Z2d`da�Z3dbdc�Z4ddde�Z5dfdg�Z6dhdi�Z7djdk�Z8e,dldm��Z9dndo�Z:dpdq�Z;drS)s�TestCaseTcCsj|r|j||�g}x7yt|�}Wntk
rDPYnX|j|�qW|j||�dS)N)�check_pickle�nextr�append�assertEqual)r�it�seq�pickler�valr
r
r�check_iterator>s
zTestCase.check_iteratorcCsT|r|jt|�|�g}x|D]}|j|�q)W|j||�dS)N)r�iterrr )r�exprr"r#rr$r
r
r�check_for_loopKs
zTestCase.check_for_loopcCs�x�ttjd�D]�}tj||�}tj|�}|jt|tjj	��|j
t|�|�tj|�}yt|�Wnt
k
r�wYnXtj||�}tj|�}|j
t|�|dd��qWdS)Nr)�ranger#�HIGHEST_PROTOCOL�dumps�loads�
assertTrue�
isinstance�collections�abc�Iteratorr �listrr)rZitorgr"�proto�dr!r
r
rrTs
zTestCase.check_picklecCs,|jttd��ttd���dS)N�
)r%r&r)r2)rr
r
r�test_iter_basichszTestCase.test_iter_basiccCsAttd��}t|�}t|�}|j||k�dS)Nr5)r2r)r&r-)rr"r!Zit2r
r
r�test_iter_idempotencylszTestCase.test_iter_idempotencycCs,|jttd��ttd���dS)Nr5)r(r&r)r2)rr
r
r�test_iter_for_loopsszTestCase.test_iter_for_loopcCs�td�}g}xXt|�D]J}xAt|�D]3}x*t|�D]}|j|||f�qEWq2WqW|j|t�dS)N�)r)r&rr �TRIPLETS)rr"rr�j�kr
r
r�test_iter_independencews"zTestCase.test_iter_independencecs?td���fdd�t��D�}|j|t�dS)Nr9csEg|];}t��D](}t��D]}|||f�q&qqSr
)r&)�.0rr;r<)r"r
r�
<listcomp>�s	z<TestCase.test_nested_comprehensions_iter.<locals>.<listcomp>)r)r&r r:)rrr
)r"r�test_nested_comprehensions_iter�sz(TestCase.test_nested_comprehensions_itercs9td���fdd��D�}|j|t�dS)Nr9cs9g|]/}�D]"}�D]}|||f�qqqSr
r
)r>rr;r<)r"r
rr?�s	z;TestCase.test_nested_comprehensions_for.<locals>.<listcomp>)r)r r:)rrr
)r"r�test_nested_comprehensions_for�sz'TestCase.test_nested_comprehensions_forcCs&|jtd�ttd���dS)Nr5)r(rr2r))rr
r
r�test_iter_class_for�szTestCase.test_iter_class_forcCs,|jttd��ttd���dS)Nr5)r%r&rr2r))rr
r
r�test_iter_class_iter�szTestCase.test_iter_class_itercCs&|jtd�ttd���dS)Nr5)r(rr2r))rr
r
r�test_seq_class_for�szTestCase.test_seq_class_forcCs,|jttd��ttd���dS)Nr5)r%r&rr2r))rr
r
r�test_seq_class_iter�szTestCase.test_seq_class_itercCsEtd�}x2ttjd�D]}t|�}tj||f|�}tj|�\}}d|_|jt	|�t	|��|j
t|�ttd���t|�tj||f|�}tj|�\}}d|_|jt	|�t	|��|j
t|�ttdd���x!tdd�D]}t|�q7Wtj||f|�}tj|�\}}d|_|jt	|�t	|��|j
t|�ttdd���|j
tt|�tj||f|�}tj|�\}}d|_|jt|tjj��|j
t|�g�q WdS)N�r�)rr)r#r*r&r+r,r
ZassertIs�typer r2r�assertRaisesrr-r.r/r0r1)rZorigr3Zitorigr4r!r"rr
r
r�#test_mutating_seq_class_iter_pickle�s6	"
	%	%	z,TestCase.test_mutating_seq_class_iter_picklec	Cs�td�}t|�}t|�}x|D]}t|�q+Wd|_|jt|�g�|jt|�ddg�|jt|�dddddddg�dS)	NrFrG�rrrr9�)rr&rr
r r2)r�aZexhitZempit�xr
r
r�&test_mutating_seq_class_exhausted_iter�s
	z/TestCase.test_mutating_seq_class_exhausted_itercCs0Gdd�dt�}|jtt|��dS)Nc@seZdZdd�ZdS)z5TestCase.test_new_style_iter_class.<locals>.IterClasscSs|S)Nr
)rr
r
rr�sz>TestCase.test_new_style_iter_class.<locals>.IterClass.__iter__N)rrrrr
r
r
r�	IterClass�srP)�objectrI�	TypeErrorr&)rrPr
r
r�test_new_style_iter_class�sz"TestCase.test_new_style_iter_classcCsEGdd�d�}|jt|�d�ttd��dd�dS)Nc@s(eZdZdd�Zdd�ZdS)z&TestCase.test_iter_callable.<locals>.CcSs
d|_dS)Nr)r)rr
r
rr�sz/TestCase.test_iter_callable.<locals>.C.__init__cSs,|j}|d|_|dkr(t�|S)Nr�d)rr)rrr
r
r�__call__�s
	
z/TestCase.test_iter_callable.<locals>.C.__call__N)rrrrrUr
r
r
r�C�srVr5r#F)r%r&r2r))rrVr
r
r�test_iter_callable�s	zTestCase.test_iter_callablecCsAdgdd�}|jt|d�ttd��dd�dS)NrcSs|d}|d|d<|S)Nrrr
)�staterr
r
r�spam�s
z)TestCase.test_iter_function.<locals>.spamr5r#F)r%r&r2r))rrYr
r
r�test_iter_function�szTestCase.test_iter_functioncCsAdgdd�}|jt|d�ttd��dd�dS)NrcSs.|d}|dkrt�|d|d<|S)Nrr5r)r)rXrr
r
rrY�s

z.TestCase.test_iter_function_stop.<locals>.spam�r5r#F)r%r&r2r))rrYr
r
r�test_iter_function_stop�sz TestCase.test_iter_function_stopcCs�dgdd�}g}y+x$t|d�D]}|j|�q+WWn.tk
rs|j|ttd���YnX|jd�dS)NrcSs.|d}|d|d<|dkr*t�|S)Nrrr5)�RuntimeError)rXrr
r
rrY�s

z.TestCase.test_exception_function.<locals>.spamr[r5zshould have raised RuntimeError)r&rr]r r2r)�fail)rrYrrNr
r
r�test_exception_function�s
!z TestCase.test_exception_functioncCs�Gdd�dt�}g}y(x!|d�D]}|j|�q,WWn.tk
rt|j|ttd���YnX|jd�dS)Nc@seZdZdd�ZdS)z9TestCase.test_exception_sequence.<locals>.MySequenceClasscSs"|dkrt�tj||�S)Nr5)r]rr)rrr
r
rrszETestCase.test_exception_sequence.<locals>.MySequenceClass.__getitem__N)rrrrr
r
r
r�MySequenceClasssr`r[r5zshould have raised RuntimeError)rrr]r r2r)r^)rr`rrNr
r
r�test_exception_sequences
!z TestCase.test_exception_sequencecCsBGdd�dt�}|j|d�ttd��dd�dS)Nc@seZdZdd�ZdS)z4TestCase.test_stop_sequence.<locals>.MySequenceClasscSs"|dkrt�tj||�S)Nr5)rrr)rrr
r
rrsz@TestCase.test_stop_sequence.<locals>.MySequenceClass.__getitem__N)rrrrr
r
r
rr`sr`r[r5r#F)rr(r2r))rr`r
r
r�test_stop_sequenceszTestCase.test_stop_sequencecCs,|jttd��ttd���dS)Ni')r(r&r)r2)rr
r
r�test_iter_big_rangeszTestCase.test_iter_big_rangecCs|jtg�g�dS)N)r(r&)rr
r
r�test_iter_empty!szTestCase.test_iter_emptycCs&|jtd�ttd���dS)
Nrrrr9rLrFrKrG��	r5)
rrrr9rLrFrKrGrerf)r(r&r2r))rr
r
r�test_iter_tuple%szTestCase.test_iter_tuplecCs,|jttd��ttd���dS)Nr5)r(r&r)r2)rr
r
r�test_iter_range)szTestCase.test_iter_rangecCs)|jtd�dddddg�dS)N�abcderM�b�cr4�e)r(r&)rr
r
r�test_iter_string-szTestCase.test_iter_stringcCsGi}xtd�D]}d||<qW|j|t|j���dS)Nr5)r)r(r2�keys)r�dictrr
r
r�test_iter_dict1szTestCase.test_iter_dictcCs�ttd�}z,x%td�D]}|jd|�qWWd|j�Xttd�}z?|j|ddddd	gd
d�|j|gd
d�Wd|j�ytt�Wntk
r�YnXXdS)N�wrFz%d
�rz0
z1
z2
z3
z4
r#F)�openrr)�write�closer(r�OSError)r�frr
r
r�test_iter_file8s%

zTestCase.test_iter_filecCs�|jttd��ttd���|jttd��g�|jtf�g�ddddddi}|jt|�t|j���|jttt�|jttd	�ttd
�}z,x%td�D]}|j	d|�q�WWd|j
�Xttd�}z^|jt|�d
ddddg�|jdd�|jt|�d
ddddg�Wd|j
�ytt�Wnt
k
r�YnXXdS)NrFr�oner�twor�threer9�*rqz%d
rrz0
z1
z2
z3
z4
)r r2rr)rnrIrRrsrrtru�seekrrv)rr4rwrr
r
r�test_builtin_listKs.("%

zTestCase.test_builtin_listcCs�|jttd��d�|jttd��f�|jtg�f�|jtf�f�|jtd�d�ddddd
di}|jt|�t|j���|jttt�|jttd�ttd�}z,x%t	d�D]}|j
d|�q�WWd|j�Xttd�}z@|jt|�d�|jdd�|jt|�d�Wd|j�yt
t�Wntk
r�YnXXdS)NrFrrrr9rLr0rMrjrkryrzr{r|rqz%d
rr�0
�1
�2
�3
�4
)rrrr9rL)rMrjrk)rr�r�r�r�)rr�r�r�r�)r �tuplerrnrIrRr2rsrr)rtrur}rrv)rr4rwrr
r
r�test_builtin_tuplejs2"

zTestCase.test_builtin_tuplecCs�|jttdtd���ttdd���|jttdtd���g�|jttdf��g�|jttdd��dddg�ddd	d
ddi}|jttd|��t|j���|jttdt�|jttdd
�Gdd�d�}|d�}|d�}Gdd�d�}|||gd�}|jttdd�|��|gd�|jttdd�t|���|gd�dS)NrFrrr0rMrjrkryrzrr{r9r|c@s(eZdZdd�Zdd�ZdS)z-TestCase.test_builtin_filter.<locals>.BooleancSs
||_dS)N)�truth)rr�r
r
rr�sz6TestCase.test_builtin_filter.<locals>.Boolean.__init__cSs|jS)N)r�)rr
r
r�__bool__�sz6TestCase.test_builtin_filter.<locals>.Boolean.__bool__N)rrrrr�r
r
r
r�Boolean�sr�TFc@s(eZdZdd�Zdd�ZdS)z)TestCase.test_builtin_filter.<locals>.SeqcWs
||_dS)N)�vals)r�argsr
r
rr�sz2TestCase.test_builtin_filter.<locals>.Seq.__init__cSs Gdd�d�}||j�S)Nc@s4eZdZdd�Zdd�Zdd�ZdS)zCTestCase.test_builtin_filter.<locals>.Seq.__iter__.<locals>.SeqItercSs||_d|_dS)Nr)r�r)rr�r
r
rr�s	zLTestCase.test_builtin_filter.<locals>.Seq.__iter__.<locals>.SeqIter.__init__cSs|S)Nr
)rr
r
rr�szLTestCase.test_builtin_filter.<locals>.Seq.__iter__.<locals>.SeqIter.__iter__cSs@|j}|d|_|t|j�kr6|j|St�dS)Nr)r�lenr�r)rrr
r
rr�s
	
zLTestCase.test_builtin_filter.<locals>.Seq.__iter__.<locals>.SeqIter.__next__N)rrrrrrr
r
r
r�SeqIter�sr�)r�)rr�r
r
rr�s
z2TestCase.test_builtin_filter.<locals>.Seq.__iter__N)rrrrrr
r
r
r�Seq�sr��cSs|S)Nr
)rNr
r
r�<lambda>�sz.TestCase.test_builtin_filter.<locals>.<lambda>cSs|S)Nr
)rNr
r
rr��s)	r r2�filterrr)rnrIrRr&)rr4r�ZbTrueZbFalser�r"r
r
r�test_builtin_filter�s %(+,zTestCase.test_builtin_filtercCs�|jttd��d�|jttd��d�|jtdd�d�|jtdd�d�ddddd	d
i}|jt|�d�|jt|�d�|jt|j��d
�|jtt|j���d�ttd�}z+|jd�|jd
�|jd�Wd|j	�Xttd�}z@|jt|�d�|j
dd�|jt|�d
�Wd|j	�ytt�Wntk
r�YnXXdS)NrFrLrrerryrzrr{r9rqzmedium line
zxtra large line
zitty-bitty line
rr���r�r�)
r �maxr�min�valuesr&rsrrtrur}rrv)rr4rwr
r
r�test_builtin_max_min�s2"



zTestCase.test_builtin_max_mincs�|jttdd�td���ttdd���ddddd	d
i�|jtt�dd����t�j���t�j�����fdd
�td
�D�}ttd�}z0x)td�D]}|j	d|d�q�WWd|j
�Xttd�}z5|jttt|��ttddd���Wd|j
�ytt�Wnt
k
rzYnXXdS)NcSs|dS)Nrr
)rNr
r
rr��sz+TestCase.test_builtin_map.<locals>.<lambda>rFrrKryrzrr{r9cSs|||fS)Nr
)r<r4r
r
rr��scsWg|]M}|t��kr(�|p+d||t��krJ�|pMdf�qS)N)r�)r>r)r4�dkeysr
rr?�s	z-TestCase.test_builtin_map.<locals>.<listcomp>rqr5Zxy�
rr�)r r2�maprr)�itemsrnrsrrtrur�rrv)r�expectedrwrr
)r4r�r�test_builtin_map�s*$!5

zTestCase.test_builtin_mapcCs�|jtt��g�|jttg��g�|jttd%dg��d&d'g�|jttd�|jtttd�d�|jtttd�t�|jtttd���d(d)d*g�|jtttd���d+d,d-g�d
dddddi}|jt|j��tt||j	����Gd
d�d�}t
td�}z|jd�Wd|j
�Xt
td�}z;|jtt|d	�||d.���d0d2d4g�Wd|j
�ytt�Wntk
rYnXX|jtttd���dd�td�D��Gdd�d�}Gdd�d|�}Gdd �d |�}d!d"�}|jt|��d�|jt|��d#�|j||��|td���|j||��|td���|j||��|td���d$d�td�D�}x\|�|�|�fD]B}	x9|�|�|�fD]}
|j||	|
�|�quWqVWdS)5NrrZabrMrjr5r|r9rryrzr{c@s4eZdZdd�Zdd�Zdd�ZdS)z+TestCase.test_builtin_zip.<locals>.IntsFromcSs
||_dS)N)r)r�startr
r
rr	sz4TestCase.test_builtin_zip.<locals>.IntsFrom.__init__cSs|S)Nr
)rr
r
rrsz4TestCase.test_builtin_zip.<locals>.IntsFrom.__iter__cSs|j}|d|_|S)Nr)r)rrr
r
rrs	
z4TestCase.test_builtin_zip.<locals>.IntsFrom.__next__N)rrrrrrr
r
r
r�IntsFromsr�rqz	a
bbb
cc
rrrT�a
�bbb
�c�cc
�brFcSsg|]}|f�qSr
r
)r>rr
r
rr?&s	z-TestCase.test_builtin_zip.<locals>.<listcomp>c@seZdZdd�ZdS)z.TestCase.test_builtin_zip.<locals>.NoGuessLen5cSs|dkrt�|S)NrF)r)rrr
r
rr*sz:TestCase.test_builtin_zip.<locals>.NoGuessLen5.__getitem__N)rrrrr
r
r
r�NoGuessLen5)sr�c@seZdZdd�ZdS)z-TestCase.test_builtin_zip.<locals>.Guess3Len5cSsdS)Nr9r
)rr
r
r�__len__0sz5TestCase.test_builtin_zip.<locals>.Guess3Len5.__len__N)rrrr�r
r
r
r�
Guess3Len5/sr�c@seZdZdd�ZdS)z.TestCase.test_builtin_zip.<locals>.Guess30Len5cSsdS)N�r
)rr
r
rr�4sz6TestCase.test_builtin_zip.<locals>.Guess30Len5.__len__N)rrrr�r
r
r
r�Guess30Len53sr�cWstt|��S)N)r2�zip)r�r
r
r�lzip7sz'TestCase.test_builtin_zip.<locals>.lzipr�cSsg|]}||f�qSr
r
)r>rr
r
rr?@s	)rr)rrM)rrj)r)r)r)r)r)ri�������)rr�r����)rr�r����)rr�r�)r r2r�rIrRr)rrr�r�rsrrtrurrvr�)rr4r�rwr�r�r�r�r�rN�yr
r
r�test_builtin_zip�sT(1'

5%%%zTestCase.test_builtin_zipcCs�Gdd�d�}ttd�}z|jd�Wd|j�Xttd�}z)dj||��}|j|d	�Wd|j�ytt�Wntk
r�YnXXdS)Nc@s4eZdZdd�Zdd�Zdd�ZdS)z4TestCase.test_unicode_join_endcase.<locals>.OhPhooeycSst|�|_d|_dS)Nr)r&r!r)rr"r
r
rrJsz=TestCase.test_unicode_join_endcase.<locals>.OhPhooey.__init__cSs|S)Nr
)rr
r
rrNsz=TestCase.test_unicode_join_endcase.<locals>.OhPhooey.__iter__cSs3|j}|d|_|dkr&dSt|j�S)Nrrzfooled you!)rrr!)rrr
r
rrQs
	
z=TestCase.test_unicode_join_endcase.<locals>.OhPhooey.__next__N)rrrrrrr
r
r
r�OhPhooeyIsr�rqza
zb
zc
rrz - za
 - b
 - fooled you! - c
za
b
za
b
c
)rsrrtru�joinr rrv)rr�rwZgotr
r
r�test_unicode_join_endcaseEs

z"TestCase.test_unicode_join_endcasecCsjx�td�td�fD]o}x$td�D]}|j||�q,Wx?dddddgddid|f	D]}|j||�qnWqW|jtdd	��|jtd
d	��dddd
ddddi}x4|D],}|j||�|j||j��q�Wx:|j�D],}|j||j��|j||�qWxR|j�D]D\}}|j||f|j��|j||f|j��qWWt	t
d�}z|jd�Wd|j�Xt	t
d�}zYxRdD]J}|j
dd�|j||�|j
dd�|j|d|�q�WWd|j�ytt
�Wntk
rdYnXXdS)NrFr0rg�(\��5E@r9rLy(@cSs
ddkS)Nr9�r
r
r
r
rr�vsz-TestCase.test_in_and_not_in.<locals>.<lambda>cSs
dtkS)Nr9)r�r
r
r
rr�wsryrzrr{y�?y@rqza
b
c
rrrr�r�)r9rLy@(�)rrr)ZassertInZassertNotInrIrRr�r�rsrrtrur}rrv)rZsc5rr4r<�vrw�chunkr
r
r�test_in_and_not_inosB.
 


zTestCase.test_in_and_not_incCsddlm}|j|ddddddgd�d�|j|dd�d�|j|dd�d�|j|dd	�d�|jt|d
d�|jt|||�ddddd
dddi}x'|D]}|j|||�d�q�W|j||j�d�d�|j||j�d�d�|j||j�d�d�ttd�}z|jd�Wd|j	�Xttd�}zHxAdD]9\}}|j
dd�|j|||d�|�q�WWd|j	�ytt�Wntk
rYnXXdS)Nr)�countOfrrr9rF�122325�2�6r|ryrzr{y�?y@rqza
b
c
b
rrrMrjrkr4r�)rrrr9rrF�rMr�rjr�rkr�r4r)r�r�r�r�)
�operatorr�r rIrRr�rsrrtrur}rrv)rr�r4r<rwZletter�countr
r
r�test_countOf�s6+
%

zTestCase.test_countOfcCs[ddlm}|j|ddddddgd�d�|j|dd�d�|j|dd�d�|j|dd�d�|jt|dd�|jt|dd�|j|dd	�d�|j|dd
�d�|jt|dd�|jt|dd�|jt|||�ttd
�}z|jd�Wd|j	�Xttd�}zqt
|�}|j||d�d�|j||d�d�|j||d�d�|jt||d�Wd|j	�ytt�Wntk
rYnXXt
d�}x-td�D]}|j|||�|�qW|jt||d�dS)Nr)�indexOfrrr9rFrKr�r��5r�r|rqz
a
b
c
d
e
rrzb
zd
ze
za
)rrrr9rrF)rrrr9rrF)rrrr9rrF)rrrr9rrF)rrrr9rrFr�)r�r�r rI�
ValueErrorrRrsrrtrur&rrvrr))rr�rwZfiterZiclassrr
r
r�test_indexOf�s@+

zTestCase.test_indexOfcs>ttd�}z�|jt|jd�|jt|jd�|jddg�|jd�|jddi�|ji�Gdd	�d	��G�fd
d�d�}|j|dd��|j�tt�}dd�tdd�D�}|jt|�|�Wd|j�yt	t�Wnt
k
r8YnXXdS)Nrqr|z1
z2
�3
�4
z5
c@s4eZdZdd�Zdd�Zdd�ZdS)z*TestCase.test_writelines.<locals>.IteratorcSs"||_||_|j|_dS)N)r��finishr)rr�r�r
r
rr�s		z3TestCase.test_writelines.<locals>.Iterator.__init__cSs>|j|jkrt�t|j�d}|jd7_|S)Nr�r)rr�r�str)r�resultr
r
rr�s
z3TestCase.test_writelines.<locals>.Iterator.__next__cSs|S)Nr
)rr
r
rr�sz3TestCase.test_writelines.<locals>.Iterator.__iter__N)rrrrrrr
r
r
rr1�sr1cs.eZdZdd�Z�fdd�ZdS)z*TestCase.test_writelines.<locals>.WhatevercSs||_||_dS)N)r�r�)rr�r�r
r
rrs	z3TestCase.test_writelines.<locals>.Whatever.__init__cs�|j|j�S)N)r�r�)r)r1r
rrsz3TestCase.test_writelines.<locals>.Whatever.__iter__N)rrrrrr
)r1r
r�Whateversr�rKi�cSs g|]}t|�d�qS)r�)r�)r>rr
r
rr?
s	z,TestCase.test_writelines.<locals>.<listcomp>ri�)r�r�i�)rsrrIrR�
writelinesrur)r r2rrv)rrwr�r�r
)r1r�test_writelines�s(




zTestCase.test_writelinesc5Cs(d\}}|j||fd�td�\}}}|j|||fd�ytd�\}}Wntk
rzYnX|jd�ytd�\}}}Wntk
r�YnX|jd�yt\}}}Wntk
r�YnX|jd�ddddddij�\}}}|j|||fd�ttd�}d}z"x|D]}|j	|�qWWWd|j
�Xttd�}z,|\}}}|j|||f|�Wd|j
�ytt�Wntk
r�YnXXtd�dd
i\}}\}|j|||fd�dS)Nrrr9rzshould have raised ValueErrorzshould have raised TypeErrorr|rq�a
�bb
�ccc
rr�)rr)rr)rrr)r|r|r|)r�r�r�)rrr|)
r rr�r^r�rRr�rsrrtrurrv)rrMrjrkrw�lines�liner
r
r�test_unpack_itersL





'


"zTestCase.test_unpack_itercCs�Gdd�dt�}|�}|j|jd�~|j|jd�|�|�|�g}|j|jd�yt|�\}}Wntk
r�YnX~|j|jd�dS)Nc@s.eZdZdZdd�Zdd�ZdS)z.TestCase.test_ref_counting_behavior.<locals>.CrcSs|jd7_tj|�S)Nr)r�rQ�__new__)�clsr
r
rr�Rsz6TestCase.test_ref_counting_behavior.<locals>.C.__new__cSs1|j}|jdkst�|jd8_dS)Nrr)�	__class__r��AssertionError)rr�r
r
r�__del__Us	z6TestCase.test_ref_counting_behavior.<locals>.C.__del__N)rrrr�r�r�r
r
r
rrVPsrVrrr9)rQr r�r&r�)rrVrN�lrMrjr
r
r�test_ref_counting_behaviorNs		
z#TestCase.test_ref_counting_behaviorcCspttd��}t|�}|jt|�ttd���|jtdd��|jt|�g�dS)NrFr5)r2r)r&r �extend)rrMrjr
r
r�test_sinkstate_listks
"zTestCase.test_sinkstate_listcCsNd}t|�}|jt|�ttd���|jt|�g�dS)Nrrrr9rLrF)rrrr9rL)r&r r2r))rrMrjr
r
r�test_sinkstate_tupless"zTestCase.test_sinkstate_tuplecCsQd}t|�}|jt|�dddddg�|jt|�g�dS)NrirMrjrkr4rl)r&r r2)rrMrjr
r
r�test_sinkstate_stringys%zTestCase.test_sinkstate_stringcCs]td�}t|�}|jt|�ttd���d|_|jt|�g�dS)NrFr5)rr&r r2r)r
)rrMrjr
r
r�test_sinkstate_sequences
"	z TestCase.test_sinkstate_sequencecCs]dgdd�}t|d�}|jt|�ttd���|jt|�g�dS)NrcSs4|d}|d|d<|dkr0td��|S)Nrrr5zshouldn't have gotten this far)r�)rXrr
r
rrY�s

z.TestCase.test_sinkstate_callable.<locals>.spamrF)r&r r2r))rrYrjr
r
r�test_sinkstate_callable�s"z TestCase.test_sinkstate_callablec
Cs�ddddddddddi}xpt|�|j�|j�|j�fD]D}t|�}|jtt|��d�|jt|�g�qOWdS)NrrrrLr9rF)r&rnr�r�r r�r2)rrMrjr
r
r�test_sinkstate_dict�s
$1zTestCase.test_sinkstate_dictcCsQdd�}|�}|jt|�ttd���|jt|�g�dS)Ncss xtd�D]}|Vq
WdS)NrF)r))rr
r
r�gen�sz*TestCase.test_sinkstate_yield.<locals>.genrF)r r2r))rr�rjr
r
r�test_sinkstate_yield�s	"zTestCase.test_sinkstate_yieldcCsTtd�}t|�}|jt|�ttd���|jt|�g�dS)NrF)r)r&r r2)rrMrjr
r
r�test_sinkstate_range�s"zTestCase.test_sinkstate_rangecCsotd�}t|�}t|�}|jt|�tttd�td����|jt|�g�dS)NrF)r)�	enumerater&r r2r�)rrMrlrjr
r
r�test_sinkstate_enumerate�s
1z!TestCase.test_sinkstate_enumeratecsMG�fdd�dt��yx��D]}q)WWntk
rHYnXdS)Ncs.eZdZdd�Z�fdd�ZdS)z'TestCase.test_3720.<locals>.BadIteratorcSs|S)Nr
)rr
r
rr�sz0TestCase.test_3720.<locals>.BadIterator.__iter__cs
�`dS)Nr)r)r)�BadIteratorr
rr�sz0TestCase.test_3720.<locals>.BadIterator.__next__N)rrrrrr
)r�r
rr��sr�)rQrR)rrr
)r�r�	test_3720�s
zTestCase.test_3720cCsgdd�}dgd}x!td�D]}|jd�q&W|j|��|jt|�d�dS)Ncss xtd�D]}|Vq
WdS)Ni�)r))rr
r
rr��szITestCase.test_extending_list_with_iterator_does_not_segfault.<locals>.genri���i�)r)�popr�r r�)rr�Zlstrr
r
r�3test_extending_list_with_iterator_does_not_segfault�s
z<TestCase.test_extending_list_with_iterator_does_not_segfaultcCs�tt��}|jtjd�|jt|�tjd�|jt|�tjd�|jt��t|�WdQRX|jt��t|�WdQRXdS)Nrr)	r&r�__setstate__�sys�maxsizer rrI�
OverflowError)rr!r
r
r�test_iter_overflow�szTestCase.test_iter_overflowcCsLtt��}|jd�|jt|�d�|jt|�d�dS)Nr|rri���)r&rr�r r)rr!r
r
r�test_iter_neg_setstate�s
zTestCase.test_iter_neg_setstatecCst|ttd�dS)Nr)r)rr&r)rr
r
r�test_free_after_iterating�sz"TestCase.test_free_after_iteratingN)<rrrr%r(rr6r7r8r=r@rArBrCrDrErJrOrSrWrZr\r_rarbrcrdrgrhrmrprxr~r�r�r�r�r�r�r�r�r�r�r�rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r
r
r
rr;sp
	
$

	!- O*)#)55	rcCstt�dS)N)rrr
r
r
r�	test_main�sr��__main__)r�ZunittestZtest.supportrrrrrr#�collections.abcr/r:r	rrrrr�rr
r
r
r�<module>s2"$$$$$$$$*
	����