Your IP : 216.73.216.213


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



��Yf��@s�ddlmZddlZddlZddlZddlTGdd�dej�ZGdd�dej�Zedkr�ej	�dS)	�)�check_syntax_errorN)�*c@speZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�
TokenTestscCs6d}|j|dd�d}|j|dd�dS)N��zbackslash for line continuationrzbackslash ending commentr)�assertEqual)�self�x�r
�6/opt/alt/python35/lib64/python3.5/test/test_grammar.py�test_backslashs
zTokenTests.test_backslashcCs�|jtd�td��|jdd�|jdd�|jdd�|jdd�|jttd�ddlm}|dkr|jdd�|jd	dk�|jd	dk�|jddk�x�dD]<}yt|�}Wq�tk
r|j	d|�Yq�Xq�Wn�|dkr�|jdd�|jddk�|jddk�|jddk�xXdD]<}yt|�}Wqztk
r�|j	d|�YqzXqzWn|j	d|�dS) Nr�i����	Z0x)�maxsizerll���
2147483648�
0o40000000000�0x100000000�"0b10000000000000000000000000000000z(OverflowError on huge integer literal %rl����ll����l�����9223372036854775808�0o2000000000000000000000�0x10000000000000000�A0b100000000000000000000000000000000000000000000000000000000000000zWeird maxsize value %ri�i�i�)rrrrl��������l����l����)rrrr)
r�type�assertRaises�SyntaxError�eval�sysr�
assertTrue�
OverflowError�fail)rr�sr	r
r
r�test_plain_integerss>



zTokenTests.test_plain_integerscCs4d}d}d}d}d}d}d}d}dS)Nrl����l���?l�
~��l!]cll�����r
)rr	r
r
r�test_long_integers<szTokenTests.test_long_integerscCsFd}d}d}d}d}d}d}d}d}d}d}dS)Ng��Q�	@g�s@gj�t��?g��
�Bg��t� =g�W�H�BgF�@r
)rr	r
r
r�test_floatsFszTokenTests.test_floatscCsI|jdndd�|jdr(dndd�|jttd�dS)Nrrz0 if 1Else 0)rrrr)rr
r
r� test_float_exponent_tokenizationTsz+TokenTests.test_float_exponent_tokenizationcCs{d}d}|jt|�dko-||k�d}d}|jt|�dkop||kopt|�dk�d}d}|jt|�dko�||ko�t|�dk�d}d}|jt|�d	ko�||k�d
}d
}|jt|�d	ko||k�d}d}|j||�d}|j||�d}|j||�d}|j||�dS)N�r�'r�'�"�"zdoesn't "shrink" does it�zdoes "shrink" doesn't itz2
The "quick"
brown fox
jumps over
the 'lazy' dog.
)r�len�ordr)rr	�yr
r
r�test_string_literalsZs0%77%%zTokenTests.test_string_literalscCs0d}|j|tk�|jttd�dS)N.z.. .)r�Ellipsisrrr)rr	r
r
r�
test_ellipsis�szTokenTests.test_ellipsiscCs]d}xP|D]H}|jt��}t|dd�WdQRX|jdt|j��q
WdS)N�def foo(�	
def foo(�	def foo(
z<test>�execzunexpected EOF)r1r2r3)rr�compileZassertIn�strZ	exception)rZsamplesr �cmr
r
r�test_eof_error�s

zTokenTests.test_eof_errorN)�__name__�
__module__�__qualname__rr!r"r#r$r.r0r8r
r
r
rrs
$
(rc@s>eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zejed%�d&d'��Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Z d8d9�Z!d:d;�Z"d<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.dTdU�Z/dVdW�Z0dXdY�Z1dZd[�Z2d\S)]�GrammarTestscCstd�}dS)Nz	1, 0 or 1)r)rr	r
r
r�test_eval_input�szGrammarTests.test_eval_inputcs�dd�}|�|f�|fi�dd�}dd�}|j|jjdf�|j|jjdd	f�d
d�}dd
�}dd�}dd�}dd�}|�|d�|d�|dd�|dd�|�|d�|d�|dd�|dddddddddd�
|d�|d�|dd�|ddd�|dddddddddd�
|dd�|ddd�|dddd�|dddddddddd�
ddd�}	|	�|	d�|	df�|	gpdg�|	fp,fio5f�fpAi�|	d di�|	d dipgi�dd!d"�}
|
d�|
dd�|
dd#di�dd$d%�}|dd�|ddd�|dddf�|dddf�|dddf�|ddd&di�ddd'd(�}|�|d�|dd�|ddf�|ddf�|dd#di�|d dd#di�ddd)d*�}
|
d�|
dd�|
ddd�ddd+d,�}|dd�|ddd�|dddd�dd-d.�}|�|d�|dd�|ddddf�|df�|d di�dd/d0�}|d�|dd�|ddd�dd1d2�}|dd�|ddd�|dddd�|ddddf�|ddd&di�ddd3d4�}|�|d�|dd�|ddd�|ddddf�|d dd#di�ddd5d6�}|d�|dd�|ddd�|dddd�|ddddf�|dddddf�|ddfd&di�ddd7d8�}|dd�|ddd�|dddd�|ddddd�|ddddf�|dddddf�|dddfd9di�ytd:d;di�Wntk
r�YnX|jd<�d=d>�}|d?d@�dAd@dBdC�}|dddDd@�|dddDd@dAdE�|dddAd@dDdE�dDd@dFdG�}|dddAd@dHd@dIdE�|dddHd@dIdEdAd@�dJdK�}|j|dddgd:ddLd�dddfd:ddLdif�|j|dddfdf��ddddfif�|jttdM�|j|dNdOdPdQi�fdNdOdPdQif�|j|dPdQdNdOi�fdNdOdPdQif�t	dRdSdK��}|j|j
dTt	i�tdUdVdK��}|j|j
d:ti�tdUdWdK��}|j|j
d:ti�tdUdXdK��}|j|j
d:ti�dddYdZdK��}|j|j
dLdi�ddd[d\dK��}|j|j
d#dd&di�ddddddd]d^dK��}|j|j
d#dd&dd_dd`di�dddaddbdcdddddddddedfdgdK�	�}|j|j
d#dd&dd_dd`ddhddbddidddTdei�Gdjdk�dk�}Gdldm�dm|�}|j|j
j
dndi�|j|j
j
dndi�dodp�}|t	dRdqdK���}|j|j
dTt	i�d��fdrdK�}d�fdsdK�}did�fdtdK�}tdR�fdudK��}t|dv�t|dw�dS)�NcSsdS)Nr
r
r
r
r�f1�sz%GrammarTests.test_funcdef.<locals>.f1cSsdS)Nr
)�one_argumentr
r
r�f2�sz%GrammarTests.test_funcdef.<locals>.f2cSsdS)Nr
)�two�	argumentsr
r
r�f3�sz%GrammarTests.test_funcdef.<locals>.f3r?rArBcSsdS)Nr
)Zone_argr
r
r�a1�sz%GrammarTests.test_funcdef.<locals>.a1cSsdS)Nr
)rA�argsr
r
r�a2�sz%GrammarTests.test_funcdef.<locals>.a2cWsdS)Nr
)�restr
r
r�v0�sz%GrammarTests.test_funcdef.<locals>.v0cWsdS)Nr
)�arGr
r
r�v1�sz%GrammarTests.test_funcdef.<locals>.v1cWsdS)Nr
)rI�brGr
r
r�v2�sz%GrammarTests.test_funcdef.<locals>.v2rr������rrcSsdS)Nr
)rIr
r
r�d01�sz&GrammarTests.test_funcdef.<locals>.d01rIcSsdS)Nr
)rIrKr
r
r�d11�sz&GrammarTests.test_funcdef.<locals>.d11rKcSsdS)Nr
)rIrK�cr
r
r�d21�sz&GrammarTests.test_funcdef.<locals>.d21rUcSsdS)Nr
)rIrKr
r
r�d02�sz&GrammarTests.test_funcdef.<locals>.d02cSsdS)Nr
)rIrKrUr
r
r�d12�sz&GrammarTests.test_funcdef.<locals>.d12cSsdS)Nr
)rIrKrU�dr
r
r�d22�sz&GrammarTests.test_funcdef.<locals>.d22cWsdS)Nr
)rIrGr
r
r�d01v�sz'GrammarTests.test_funcdef.<locals>.d01vcWsdS)Nr
)rIrKrGr
r
r�d11v�sz'GrammarTests.test_funcdef.<locals>.d11vcWsdS)Nr
)rIrKrUrGr
r
r�d21v�sz'GrammarTests.test_funcdef.<locals>.d21vcWsdS)Nr
)rIrKrGr
r
r�d02vsz'GrammarTests.test_funcdef.<locals>.d02vcWsdS)Nr
)rIrKrUrGr
r
r�d12vsz'GrammarTests.test_funcdef.<locals>.d12vcWsdS)Nr
)rIrKrUrYrGr
r
r�d22vsz'GrammarTests.test_funcdef.<locals>.d22vrYr	sfooz/Bytes should not work as keyword argument namescSs|S)Nr
)�keyr
r
r�pos0key1 sz+GrammarTests.test_funcdef.<locals>.pos0key1ra�d�k2cSs||||fS)Nr
)�p1�p2�k1rdr
r
r�pos2key2"sz+GrammarTests.test_funcdef.<locals>.pos2key2rg��c[s|||||fS)Nr
)rerfrgrdZkwargr
r
r�pos2key2dict&sz/GrammarTests.test_funcdef.<locals>.pos2key2dictZtokwarg1Ztokwarg2c_s
||fS)Nr
)rE�kwargsr
r
r�f+sz$GrammarTests.test_funcdef.<locals>.fr-zf(1, x=2, *(3,4), x=5)ZeggsZ	scrambledZspamZfried)�returncSsdS)Nr
)r	r
r
rrl7srm)r	cSsdS)Nr
)r	r
r
rrl9scWsdS)Nr
)r	r
r
rrl;sc[sdS)Nr
)r	r
r
rrl=s)r-cSsdS)Nr
)r	r-r
r
rrl?s)rKrUcSsdS)Nr
)rIrKrUrYr
r
rrlAs)rKrU�e�gcWsdS)Nr
)rIrKrUrYrnrlror
r
rrlCsrnro�i�j�
��)rKrUrnro�hrq�krmc_sdS)Nr
)rIrKrUrYrnrlrurprqrorvr
r
rrlFsrurvc@s%eZdZdddd��ZdS)z'GrammarTests.test_funcdef.<locals>.Spamr)�	_Spam__kwcSsdS)Nr
)rrwr
r
rrlMsz)GrammarTests.test_funcdef.<locals>.Spam.fN)r9r:r;rlr
r
r
r�SpamLsrxc@seZdZdS)z&GrammarTests.test_funcdef.<locals>.HamN)r9r:r;r
r
r
r�HamOsryrwcSs|S)Nr
)r	r
r
r�nullSsz'GrammarTests.test_funcdef.<locals>.nullcSsdS)Nr
)r	r
r
rrlTscs�S)Nr
r
)�closurer
rrlZscs�S)Nr
)r	)r{r
rrl[scs�S)Nr
)rv)r{r
rrl\scs�S)Nr
r
)r{r
rrl]sz
f(*g(1=2))zf(**g(1=2)))r?)rArB)r)rrrM)rrM)rM)rr)r)rrrMrN)r)rrrMrN)rrMrN)rrrMrN)rMrNrO)r)rrrMrN)rMrNrO)rrM)rrMrN)rrM)rN)rrrMrNrM)r�__code__�co_varnamesr6�	TypeErrorrrrr�list�__annotations__�int�floatrlr)rr>r@rCrDrFrHrJrLrSrTrVrWrXrZr[r\r]r^r_r`rbrhrjrlrxryrzr
)r{r�test_funcdef�sJ









%


%
%

%





















0:$$$
zGrammarTests.test_funcdefcCs3dd�}|j|�d�dd�}dd�}|j|�dddg�ddd�dd�d	d�}|j|�d�d
dd�}|j|dd
�d�|j|dd
d
�d�t|d�t|d�dddd�}|j|dd
�d�|j|dd
dd�d�dS)NcSsdS)Nrr
r
r
r
r�<lambda>esz+GrammarTests.test_lambdef.<locals>.<lambda>rcSsttS)N)rIrYr
r
r
rr�gscSsdd�dddgD�S)NcSsg|]}d|k�qS)rr
)�.0r	r
r
r�
<listcomp>hs	z?GrammarTests.test_lambdef.<locals>.<lambda>.<locals>.<listcomp>rrMr���r
r
r
r
rr�hsrcSs|S)Nr
)�zr
r
rr�jscSs|�S)Nr
)r-r
r
rr�jscSs|�S)Nr
)r	r
r
rr�jsrcSs|||S)Nr
)r	r-r�r
r
rr�lsrOrMrPzlambda x: x = 2zlambda (None,): Nonerv�cSs|||S)Nr
)r	r-rvr
r
rr�qsrrrM�rM�
)rr)r�l1�l2�l3�l4�l5�l6r
r
r�test_lambdefcs!

zGrammarTests.test_lambdefcCs d}~dd�}|�dS)NrcSs
d}~dS)Nrr
)r	r
r
r�foo|sz*GrammarTests.test_simple_stmt.<locals>.foor
)rr	r�r
r
r�test_simple_stmtyszGrammarTests.test_simple_stmtc	Csodd}d}d	}}}d
\}}}d}\}}}\}}}}t|d�t|d�dS)
NrrrMrNz	x + 1 = 1z
a + 1 = b + 2)rrrM)rrrM)rrrM)rrrM�rMrN)rrr�)r)	rr	r-r��abcrIrKrU�xyzr
r
r�test_expr_stmt�s$
zGrammarTests.test_expr_stmtc Cs�d}ddddddg}x�|D]�}d	j|�}x�|D]�}|j|�}|jd
|��)|jt|��t|�WdQRXWdQRX|jdd�}|jd
|��)|jtd
��t|�WdQRXWdQRXqAWq%WdS)N�printr4z{} fooz{} {{1:foo}}zif 1: {} foozif 1: {} {{1:foo}}zif 1:
    {} foozif 1:
    {} {{1:foo}}zcall to '{}'�sourcer�z(foo.)zinvalid syntax)r�r4)�formatZsubTestZassertRaisesRegexrr4�replace)r�keywordsZcases�keywordZ
custom_msgZcaser�r
r
r�(test_former_statements_refer_to_builtins�s$	

z5GrammarTests.test_former_statements_refer_to_builtinscCs@dddg}|\}}}|||f}~~~~~dS)NrrrMr
)rr�r	r-r�r�r
r
r�
test_del_stmt�s
zGrammarTests.test_del_stmtcCsdS)Nr
)rr
r
r�test_pass_stmt�szGrammarTests.test_pass_stmtcCsxPqWdS)Nr
)rr
r
r�test_break_stmt�szGrammarTests.test_break_stmtc
Cs�d}x|rd}q	q	Wd}x.|sRd}y
w%d}Wq%d}Yq%Xq%W|dkrl|j|�d}x!|s�d}zwuWdd}XquW|dkr�|j|�dS)Nrrr%�okz&continue failed to continue inside tryz'continue inside try called except blockzfinally block not called)r)rrp�msgr
r
r�test_continue_stmt�s,		

	zGrammarTests.test_continue_stmtcs#dd�fdd�}|�dS)Nrrc	s�d}xP|rX|d7}y.|r9|dkr9|d8}P|d8}w	Wq	�Yq	Xq	W|dksq|dkr~�jd�dS)Nrrz1continue then break in try/except in loop broken!)r)Zextra_burning_oil�countZ	big_hippo)rr
r�
test_inner�s	


z9GrammarTests.test_break_continue_loop.<locals>.test_innerr
)rr�r
)rr�test_break_continue_loop�s
z%GrammarTests.test_break_continue_loopcCs9dd�}dd�}|�|�}t|d�dS)NcSsdS)Nr
r
r
r
r�g1�sz$GrammarTests.test_return.<locals>.g1cSsdS)Nrr
r
r
r
r�g2�sz$GrammarTests.test_return.<locals>.g2zclass foo:return 1)r)rr�r�r	r
r
r�test_return�s
	zGrammarTests.test_returncCs=dd�}dd�}dd�}dd�}dd�}dd�}t|d�t|d	�d
d�}dd�}t|d�t|d
�dd�}dd�}dd�}dd�}t|d�t|d�t|d�t|d�t|d�t|d�t|d�t|d�t|d�dS)Ncss	dVdS)Nrr
r
r
r
rro�sz"GrammarTests.test_yield.<locals>.gcss
fEdHdS)Nr
r
r
r
rro�scssdV}dS)Nrr
)r	r
r
rro�scssfEdH}dS)Nr
)r	r
r
rroscss	dVdS)Nr)rrr
r
r
r
rroscssdV}dS)Nr)rrr
)r	r
r
rroszdef g(): yield from (), 1zdef g(): x = yield from (), 1cssddVfdS)Nrr
r
r
r
rroscssdfEdHfdS)Nrr
r
r
r
rro	szdef g(): 1, yield 1zdef g(): 1, yield from ()csstdV�dS)Nr)rlr
r
r
rro
scsstdVd�dS)Nr)rlr
r
r
rroscsstfEdH�dS)N)rlr
r
r
rroscsstfEdHd�dS)Nr)rlr
r
r
rroszdef g(): f(yield 1)zdef g(): f(yield 1, 1)zdef g(): f(yield from ())zdef g(): f(yield from (), 1)�yieldz
yield fromzclass foo:yield 1zclass foo:yield from ()zdef g(a:(yield)): pass)r)rror
r
r�
test_yield�s2











zGrammarTests.test_yieldcCsHytd��Wntk
r$YnXy
t�Wntk
rCYnXdS)Nzjust testing)�RuntimeError�KeyboardInterrupt)rr
r
r�
test_raises


zGrammarTests.test_raisecCs�ddl}ddl}ddl}ddlm}ddlm}ddlm}m}ddlm}m}ddlm}m}dS)Nr)�time)�path�argv)rr�r�r�)rrr�r�r�r
r
r�test_import%szGrammarTests.test_importcCsdS)Nr
)rr
r
r�test_global2szGrammarTests.test_globalcs%d�d���fdd�}dS)NrcsdS)Nr
r
)r	r-r
rrl<sz%GrammarTests.test_nonlocal.<locals>.fr
)rrlr
)r	r-r�
test_nonlocal8szGrammarTests.test_nonlocalcCs�dst�dstd��dd�s0t�dsHtdd���ydsWt�Wn2tk
r�}z|jd�WYdd}~XnXyds�td��Wn2tk
r�}z|jd�WYdd}~XnXdS)	NrcSs|S)Nr
)r	r
r
rr�Dsz*GrammarTests.test_assert.<locals>.<lambda>cSs|dS)Nrr
)r	r
r
rr�EsTz6'assert True' should not have raised an AssertionErrorzthis should always passz;'assert True, msg' should not have raised an AssertionError)�AssertionErrorr)rrnr
r
r�test_assert@s zGrammarTests.test_assertz Won't work if __debug__ is FalsecCs�ydstd��Wn<tk
rT}z|j|jdd�WYdd}~XnX|jd�ydsqt�Wn>tk
r�}z|jt|j�d�WYdd}~XnX|jd�dS)Nrr�z%AssertionError not raised by assert 0Fz+AssertionError not raised by 'assert False')r�rrErr+)rrnr
r
r�testAssert2Ss*
,zGrammarTests.testAssert2cCsdS)Nr
)rr
r
r�test_ifgszGrammarTests.test_ifcCs d}d}|j|d�dS)Nrr)r)rr	r
r
r�
test_whiletszGrammarTests.test_whilecCs�xd
D]}qWxfD]\}}}qWGdd�d�}d}x|d�D]}||}qQW|dkr~|jd	�g}x'ddd
gD]\}|j|�q�W|j|dddg�dS)NrrrMc@s4eZdZdd�Zdd�Zdd�ZdS)z&GrammarTests.test_for.<locals>.SquarescSs||_g|_dS)N)�max�sofar)rr�r
r
r�__init__�s	z/GrammarTests.test_for.<locals>.Squares.__init__cSs
t|j�S)N)r+r�)rr
r
r�__len__�sz.GrammarTests.test_for.<locals>.Squares.__len__cSspd|ko|jkns%t�t|j�}x.||krd|jj||�|d}q7W|j|S)Nrr)r��
IndexErrorr+r��append)rrp�nr
r
r�__getitem__�sz2GrammarTests.test_for.<locals>.Squares.__getitem__N)r9r:r;r�r�r�r
r
r
r�Squares�sr�rrrizfor over growing sequence)rrrM)r)r)rM)rr�r)rrprqrvr�r�r	�resultr
r
r�test_for�s

zGrammarTests.test_forc5CsyddWntk
r YnXyddWnatk
rAYnPtk
re}zWYdd}~Xn,tk
r�}zWYdd}~XnYnXyddWntttfk
r�YnXyddWn.tttfk
r�}zWYdd}~XnXzWdXdS)Nrr)�ZeroDivisionError�EOFErrorr~r�)rr�r
r
r�test_try�s2

zGrammarTests.test_trycCsdS)Nr
)rr
r
r�
test_suite�szGrammarTests.test_suitecCshdsdrdrdsdrds&dr9dr9dr9drEdsddrWdrWdsddrddrddS)Nrr
)rr
r
r�	test_test�s+zGrammarTests.test_testcCs�ddk}ddkrddkr$ddkr0ddkr<ddkrHddkrTddkr`ddk	rldfkrxdfkr�ddko�dko�dko�dko�dko�dko�dko�dko�dko�dk	nr�dS)Nrr
)rr	r
r
r�test_comparison�stzGrammarTests.test_comparisoncCsd}d}d}dS)Nrrrrr
)rr	r
r
r�test_binary_mask_ops�sz!GrammarTests.test_binary_mask_opscCsd}d}d}dS)Nrrrrrr
)rr	r
r
r�test_shift_ops�szGrammarTests.test_shift_opscCsd}d}d}d}dS)	Nrrrr�rrrrr
)rr	r
r
r�test_additive_ops�szGrammarTests.test_additive_opscCsd}d}d}d}dS)Nrrg�?rg�?g�?gr
)rr	r
r
r�test_multiplicative_ops�sz$GrammarTests.test_multiplicative_opscCs"d}d}d}d}d}dS)Nrrr����r�rr�rr�r�r�r�r�g�rgr�rr�r�g�?r
)rr	r
r
r�test_unary_ops�s
zGrammarTests.test_unary_opsc	Cs8ddl}ddl}|jd}|j�}|jdj�}d}|d}|d
}|dd�}|dd�}|dd�}|dd�}|dd�}|dd�}|dd�}i}d|d<d|d<d|d<d|d<t|�}|jd	d
d��|jt|�d�dS)Nrr�Z01234rrOrNrMrracSst|t�r|SfS)N)�
isinstance�tuple)r	r
r
rr�sz-GrammarTests.test_selectors.<locals>.<lambda>z[1, (1,), (1, 2), (1, 2, 3)]r����r�������)r)rr)rrrM)rr�r��modulesr�sortrr6)	rrr�rUr	rIr rY�Lr
r
r�test_selectors�s,






zGrammarTests.test_selectorscCsEd}dpdpd}dp'dp'dddf}g}dg}dpQdpQdg}dpfdpfdddg}g}i}ddi}ddi}dp�ddp�di}ddddi}ddddi}ddddddddd	d
ddi}dh}ddh}dddh}dddh}|}d
}d}dS)NrrrMZonerAZthreeZfourrNZfiverOZsixrPr	�{r
)rr	r
r
r�
test_atomss,	*	zGrammarTests.test_atomsc	Cs�Gdd�d�}Gdd�d�}Gdd�d|�}Gdd�d|�}Gd	d
�d
|||�}Gdd�d�}d
d�}|Gdd�d��}dS)Nc@seZdZdS)z%GrammarTests.test_classdef.<locals>.BN)r9r:r;r
r
r
r�B@sr�c@seZdZdS)z&GrammarTests.test_classdef.<locals>.B2N)r9r:r;r
r
r
r�B2Asr�c@seZdZdS)z&GrammarTests.test_classdef.<locals>.C1N)r9r:r;r
r
r
r�C1Bsr�c@seZdZdS)z&GrammarTests.test_classdef.<locals>.C2N)r9r:r;r
r
r
r�C2Csr�c@seZdZdS)z%GrammarTests.test_classdef.<locals>.DN)r9r:r;r
r
r
r�DDsr�c@s4eZdZdd�Zdd�Zdd�ZdS)z%GrammarTests.test_classdef.<locals>.CcSsdS)Nr
)rr
r
r�meth1Fsz+GrammarTests.test_classdef.<locals>.C.meth1cSsdS)Nr
)r�argr
r
r�meth2Gsz+GrammarTests.test_classdef.<locals>.C.meth2cSsdS)Nr
)rrDrFr
r
r�meth3Hsz+GrammarTests.test_classdef.<locals>.C.meth3N)r9r:r;r�r�r�r
r
r
r�CEsr�cSs|S)Nr
)r	r
r
r�class_decoratorMsz3GrammarTests.test_classdef.<locals>.class_decoratorc@seZdZdS)z%GrammarTests.test_classdef.<locals>.GN)r9r:r;r
r
r
r�GNsr�r
)	rr�r�r�r�r�r�r�r�r
r
r�
test_classdef>szGrammarTests.test_classdefcCsBdddg}|jdd�|D�ddddddi�dS)NrrrMcSsi|]}|d|�qS)rr
)r�rpr
r
r�
<dictcomp>Vs	z/GrammarTests.test_dictcomps.<locals>.<dictcomp>rN)r)r�numsr
r
r�test_dictcompsQszGrammarTests.test_dictcompscsedddddg}dddg�d	d
dg}�jdd
�|D�dddg��jdd
�|D�dddddg��jdd
�|D�dddg��j�fdd
�|D�d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;g��j�fdd
�|D�d<d=d>d?d@dAdBdCdDdEg
��jdd
�td�D�dgddgdddgddddgdddddgg�dd�}�j||�dddg��fdd �}|�t�d!�t�d"�dFdGdHg}dIdJdKg�dLdMdNdOg���fd,d
�|D�}�j|dPdQdRdSg�dS)TNrrrMrNrO�Apple�Banana�Coconutz  Applez Banana zCoco  nut  cSsg|]}|j��qSr
)�strip)r�r r
r
rr�^s	z/GrammarTests.test_listcomps.<locals>.<listcomp>z	Coco  nutcSsg|]}d|�qS)rMr
)r�r	r
r
rr�_s	rPrrt�cSs"g|]}|dkr|�qS)rr
)r�r	r
r
rr�`s	cs)g|]}�D]}||f�qqSr
r
)r�rpr )�strsr
rr�as	cs6g|],}dd��D�D]}||f�qqS)cSs"g|]}d|kr|�qS)r�r
)r�rlr
r
rr�gs	z:GrammarTests.test_listcomps.<locals>.<listcomp>.<listcomp>r
)r�rpr )r�r
rr�gs	cSs"g|]}dd�|��qS)cs!�fdd�t�d�D�S)Ncsg|]}�|�qSr
r
)r�rp)rIr
rr�ks	zLGrammarTests.test_listcomps.<locals>.<listcomp>.<lambda>.<locals>.<listcomp>r)�range)rIr
)rIrr�ksz8GrammarTests.test_listcomps.<locals>.<listcomp>.<lambda>r
)r�rqr
r
rr�ks	���@�cSsdd�|D�S)NcSs8g|].}|dkrd|ko/dkn�qS)rrrMr
)r�r	r
r
rr�os	zEGrammarTests.test_listcomps.<locals>.test_in_func.<locals>.<listcomp>r
)�lr
r
r�test_in_funcnsz1GrammarTests.test_listcomps.<locals>.test_in_funcFcsE�jdd�dddgD�ddgddgddgg�dS)	NcSs-g|]#}dd�||dgD��qS)cSsg|]}|�qSr
r
)r�r-r
r
rr�ts	zUGrammarTests.test_listcomps.<locals>.test_nested_front.<locals>.<listcomp>.<listcomp>rr
)r�r	r
r
rr�ts	zJGrammarTests.test_listcomps.<locals>.test_nested_front.<locals>.<listcomp>rrMrOrrNrP)rr
)rr
r�test_nested_frontssz6GrammarTests.test_listcomps.<locals>.test_nested_frontz"[i, s for i in nums for s in strs]z[x if y]�Boeing�Ford�
Macdonaldsrr�Airlinerr��Engine��Cheeseburgercs`g|]V\}}�D]C\}}�D]0\}}||kr&||kr&||f�q&qqSr
r
)r�ZsnoZsnameZpnoZpnameZsp_snoZsp_pno)�parts�suppartr
rr��s		)rr�)rr�)rr�)rr�)rr�)rr�)rMr�)rMr�)rMr�)rNr�)rNr�)rNr�)rOr�)rOr�)rOr�)rr�)rr�)rr�)rr�)rMr�)rMr�)rNr�)rNr�)rOr�)rOr�)rr�)rr�)rMr�)rrr�)r�r)rr)rrr)rr�)rr�)rMr)r�r�)r�r)r�r)r�r)rr�r)rr�Zspcsr�r�Z	suppliersr	r
)rrr�rr�test_listcompsXsF&,&				
C

		
zGrammarTests.test_listcompscs�dd�td�D�}|jt|�dd�td�D��yt|�|jd�Wntk
rqYnXd�y4�fdd��D�}t|�|jd	�Wntk
r�YnX|jtd
d�dD��dd�dD��|jtd
d�dD��dd�dD��dd�td�D��dd�dd��D�D�}|jt|�tdd�td�D���|jtdd�td�D��tdd�td�D���|jtdd�td�D��tdd�td�D���|jtdd�dd�td�D�D��tdd�td�D���|jtdd�dd�dd�td�D�D�D��tdd�td�D���|jtdd�d d�d!d�td�D�D�D��td"d�td�D���|jtd#d�d$d�d%d�td�D�D�D��td&d�td�D���|jtd'd�d(d�d)d�td�D�D�D��d*�t|d+�t|d,�dS)-Ncss(|]}dd�td�D�VqdS)cSsg|]}|�qSr
r
)r�r	r
r
rr��s	z7GrammarTests.test_genexps.<locals>.<genexpr>.<listcomp>rrN)r�)r�r	r
r
r�	<genexpr>�sz,GrammarTests.test_genexps.<locals>.<genexpr>rcSsg|]}|�qSr
r
)r�r	r
r
rr��s	z-GrammarTests.test_genexps.<locals>.<listcomp>rrz&should produce StopIteration exceptionc3s|]}�VqdS)Nr
)r�rY)rIr
rr�szshould produce TypeErrorcss(|]}dD]}||fVq
qdS)�abcdNr
)r�r	r-r
r
rr�srcSs)g|]}dD]}||f�qqS)rr
)r�r	r-r
r
rr��s	css(|]}dD]}||fVq
qdS)�xyNr
)r�r	r-r
r
rr�sZabcSs)g|]}dD]}||f�qqS)rr
)r�r	r-r
r
rr��s	cSsg|]}|�qSr
r
)r�r	r
r
rr��s	css|]}|VqdS)Nr
)r�r	r
r
rr�scss|]}|VqdS)Nr
)r�r-r
r
rr�scSsg|]}|�qSr
r
)r�r	r
r
rr��s	css|]}|dVqdS)rNr
)r�r	r
r
rr�scSsg|]}|d�qS)rr
)r�r	r
r
rr��s	css#|]}|dr||VqdS)rNr
)r�r	r
r
rr�scSs$g|]}|dr||�qS)rr
)r�r	r
r
rr��s	css|]}|VqdS)Nr
)r�r	r
r
rr�scss|]}|VqdS)Nr
)r�r-r
r
rr�scSsg|]}|�qSr
r
)r�r	r
r
rr��s	css|]}|VqdS)Nr
)r�r	r
r
rr�scss|]}|VqdS)Nr
)r�r-r
r
rr�scss|]}|VqdS)Nr
)r�r�r
r
rr�scSsg|]}|�qSr
r
)r�r	r
r
rr��s	css|]}|VqdS)Nr
)r�r	r
r
rr�scSsg|]}|�qSr
r
)r�r-r
r
rr��s	css|]}|VqdS)Nr
)r�r�r
r
rr�scSsg|]}|�qSr
r
)r�r	r
r
rr��s	css|]}|VqdS)TNr
)r�r	r
r
rr�scss|]}|VqdS)Nr
)r�r-r
r
rr�scss|]}|VqdS)TNr
)r�r�r
r
rr�scSsg|]}|�qSr
r
)r�r	r
r
rr��s	css|]}|VqdS)TNr
)r�r	r
r
rr�scss|]}dr|VqdS)FNr
)r�r-r
r
rr�scss|]}|VqdS)TNr
)r�r�r
r
rr�srzfoo(x for x in range(10), 100)zfoo(100, x for x in range(10)))	r�r�nextr�
StopIterationr~r�sumr)rrorKr
)rIr�test_genexps�s8)



00 /BBO\\\C
zGrammarTests.test_genexpscsjd�dd�t��D�}d�|jtt|��d�d�d���fdd�t��D�}d�d�|jdd	�td�D�t|��|jd
d	�td�D�dddg�|jtd
d�td�D��dddg�|jdd	�dddgD�dddg�|jtdd�dddgD��dddg�dS)Nrrcss|]}|VqdS)Nr
)r�rpr
r
rr�sz;GrammarTests.test_comprehension_specials.<locals>.<genexpr>rOFc3s4|]*}�rt��D]}||fVqqdS)N)r�)r�rprq)�tr	r
rr�sTcSs/g|]%}td�D]}||f�qqS)rO)r�)r�rprqr
r
rr��s	z<GrammarTests.test_comprehension_specials.<locals>.<listcomp>cSs*g|] }|dr|dr|�qS)rrMr
)r�r	r
r
rr��s	rrQcss)|]}|dr|dr|VqdS)rrMNr
)r�r	r
r
rr�scSsg|]\}|�qSr
r
)r�r	r
r
rr��s	rNrPcss|]\}|VqdS)Nr
)r�r	r
r
rr�srRr)rN)rO)rP)rQ)rR)r)r�rr+r)rror
)r
r	r�test_comprehension_specials�s"),2/z(GrammarTests.test_comprehension_specialscACs�Gdd�dt�}|��WdQRX|��}WdQRX|��
\}}WdQRX|��|��WdQRXWdQRX|��}|��}WdQRXWdQRX|��}|��WdQRXWdQRXdS)Nc@s(eZdZdd�Zdd�ZdS)z1GrammarTests.test_with_statement.<locals>.managercSsdS)Nrr)rrr
)rr
r
r�	__enter__�sz;GrammarTests.test_with_statement.<locals>.manager.__enter__cWsdS)Nr
)rrEr
r
r�__exit__�sz:GrammarTests.test_with_statement.<locals>.manager.__exit__N)r9r:r;rrr
r
r
r�manager�sr)�object)rrr	r-r
r
r�test_with_statement�s
z GrammarTests.test_with_statementcCsDdd�}|jdd�dd�dd�fD�dg�|jd	d�d
d�dd�fD�dg�|jd
n|dd�d
�|jdr�|dd�nd
d
�|jdr�d
o�dndd�|jdr�d
o�dndd�|jd
o
dndd�|jdr5dp8|dd�ndd�|jdpf|dd�n|dd�d�|jdp�d
n|dd�d
�|jd
ndd�|jdr�d
ndd�|jdndd�|jdndd
�|jdndd�|jdndd�|jdr6ddkndd�dS) NcSst|�|S)z@helper to check that evaluation of expressions is done correctly)r�)r�Zretr
r
r�
_checkeval�s
z2GrammarTests.test_if_else_expr.<locals>._checkevalcSs"g|]}|�r|��qSr
r
)r�r	r
r
rr��s	z2GrammarTests.test_if_else_expr.<locals>.<listcomp>cSsdS)NTr
r
r
r
rr��sz0GrammarTests.test_if_else_expr.<locals>.<lambda>cSsdS)NFr
r
r
r
rr��sTcSs(g|]}|d�r|d��qS)Fr
)r�r	r
r
rr��s	cSs|r
dSdS)NFTr
)r	r
r
rr��scSs|r
dSdS)NTFr
)r	r
r
rr��srrOzcheck 1rzcheck 2rPzcheck 3rrMzcheck 4zcheck 5zcheck 6FrQrNrtrQrOrtg@)r)rrr
r
r�test_if_else_expr�s$22%""+.%zGrammarTests.test_if_else_exprcCs�|jdd�|jd
d�|jdd�|jdddkk�|jddkdk�|jddkodkn�dS)
Nr�rNrrRFrMrrRrNrrNr)rr�assertFalse)rr
r
r�test_paren_evaluation�sz"GrammarTests.test_paren_evaluationcCsQGdd�d�}|�}|j||d�|d}|j|jd�dS)Nc@s(eZdZdd�Zdd�ZdS)z'GrammarTests.test_matrix_mul.<locals>.McSsdS)NrNr
)r�or
r
r�
__matmul__sz2GrammarTests.test_matrix_mul.<locals>.M.__matmul__cSs
||_|S)N)�other)rrr
r
r�__imatmul__
s	z3GrammarTests.test_matrix_mul.<locals>.M.__imatmul__N)r9r:r;rrr
r
r
r�MsrrN�*)rr)rr�mr
r
r�test_matrix_muls
	
zGrammarTests.test_matrix_mulcs	d}d�|j|d��fdd�}|�|j�d�|jt|jjtj@��dd�}|j|jd�|jt|jjtj@��d	d
�}|dd��}|j|j	�|j|jd
�|jt|jjtj@��dS)Nrrcs
d�dS)Nrrr
r
)�awaitr
r�asyncsz,GrammarTests.test_async_await.<locals>.asyncrrc�sdd�}t�IdHdS)NcSsdS)Nr
r
r
r
rr sz8GrammarTests.test_async_await.<locals>.test.<locals>.sum)Zsomeobj)rr
r
r�testsz+GrammarTests.test_async_await.<locals>.testr"cSst|dd�|S)N�_markedT)�setattr)�funcr
r
r�	decorator(sz0GrammarTests.test_async_await.<locals>.decoratorc�sdS)N�r
r
r
r
r�test2,sz,GrammarTests.test_async_await.<locals>.test2r()
rr�boolr|�co_flags�inspectZCO_COROUTINEr9rr#)rr!r"r&r(r
)r r�test_async_awaits  zGrammarTests.test_async_awaitc	siGdd�dt��Gdd�d����fdd�}|j���|�jd�WdQRXdS)Nc@seZdZdS)z)GrammarTests.test_async_for.<locals>.DoneN)r9r:r;r
r
r
r�Done4sr-c@s(eZdZdd�Zdd�ZdS)z*GrammarTests.test_async_for.<locals>.AItercSs|S)Nr
)rr
r
r�	__aiter__7sz4GrammarTests.test_async_for.<locals>.AIter.__aiter__c�s
t�dS)N)�StopAsyncIteration)rr
r
r�	__anext__9sz4GrammarTests.test_async_for.<locals>.AIter.__anext__N)r9r:r;r.r0r
r
r
r�AIter6sr1c�s�x4��2dHy3dH}Wqtk
r/YWq7XqWq7x:��2dHy3dH\}}WqEtk
rlYWqtXqEWqtx4��2dHy3dH}Wq�tk
r�YWq�Xq�Wq���dS)N)r/)rprq)r1r-r
rr�<s060z(GrammarTests.test_async_for.<locals>.foo)�	Exceptionr�send)rr�r
)r1r-r�test_async_for3s
zGrammarTests.test_async_forc	siGdd�dt��Gdd�d����fdd�}|j���|�jd�WdQRXdS)Nc@seZdZdS)z*GrammarTests.test_async_with.<locals>.DoneN)r9r:r;r
r
r
rr-Ksr-c@s(eZdZdd�Zdd�ZdS)z-GrammarTests.test_async_with.<locals>.managerc�sdS)Nrr)rrr
)rr
r
r�
__aenter__Nsz8GrammarTests.test_async_with.<locals>.manager.__aenter__c�sdS)NFr
)r�excr
r
r�	__aexit__Psz7GrammarTests.test_async_with.<locals>.manager.__aexit__N)r9r:r;r5r7r
r
r
rrMsrcB�s��4IdH�WdQIdHRX��4IdH�}WdQIdHRX��4IdH�
\}}WdQIdHRX��4IdH�!��4IdH�WdQIdHRXWdQIdHRX��4IdH�%}��4IdH�}WdQIdHRXWdQIdHRX��4IdH�#}��4IdH�WdQIdHRXWdQIdHRX��dS)Nr
)r	r-)r-rr
rr�Ss $"z)GrammarTests.test_async_with.<locals>.foo)r2rr3)rr�r
)r-rr�test_async_withJs
zGrammarTests.test_async_withN)3r9r:r;r=r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��unittestZ
skipUnless�	__debug__r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrr,r4r8r
r
r
rr<�sZ�	$

#?#!r<�__main__)
Ztest.supportrr+r9rZTestCaserr<r9�mainr
r
r
r�<module>s
�����