Your IP : 216.73.216.213


Current Path : /proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/test_grammar.cpython-34.pyo

�
f f$��@s�ddlmZmZddlZddlZddlTGdd�dej�ZGdd�dej�Zdd	�Ze	d
kr�e�ndS)�)�run_unittest�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/python34/lib64/python3.4/test/test_grammar.py�test_backslash
s
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)r	r�sr
rrr�test_plain_integerss>



zTokenTests.test_plain_integerscCs4d}d}d}d}d}d}d}d}dS)Nrl����l���?l�
~��l!]cll�����r)r	r
rrr�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)r	r
rrr�test_floatsEszTokenTests.test_floatscCsI|jdndd�|jdr(dndd�|jttd�dS)Nrrz0 if 1Else 0)rrrr)r	rrr� test_float_exponent_tokenizationSsz+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)r	r
�yrrr�test_string_literalsYs0%77%%zTokenTests.test_string_literalscCs0d}|j|tk�|jttd�dS)N.z.. .)r�Ellipsisrrr)r	r
rrr�
test_ellipsis�szTokenTests.test_ellipsiscCs\d}xO|D]G}|jt��}t|dd�WdQX|jdt|j��q
WdS)N�def foo(�	
def foo(�	def foo(
z<test>�execzunexpected EOF)r2r3r4)rr�compileZassertIn�strZ	exception)r	Zsamplesr!�cmrrr�test_eof_error�s

zTokenTests.test_eof_errorN)�__name__�
__module__�__qualname__r
r"r#r$r%r/r1r9rrrrrs
$
(rc@seZdZdd�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.dTS)U�GrammarTestscCstd�}dS)Nz	1, 0 or 1)r)r	r
rrr�test_eval_input�szGrammarTests.test_eval_inputcs7dd�}|�|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�|	idd 6�|	idd 6pDi�dd!d"�}
|
d�|
dd�|
didd#6�dd$d%�}|dd�|ddd�|dddf�|dddf�|dddf�|ddidd&6�ddd'd(�}|�|d�|dd�|ddf�|ddf�|didd#6�|idd 6dd#6�ddd)d*�}
|
d�|
dd�|
ddd�ddd+d,�}|dd�|ddd�|dddd�dd-d.�}|�|d�|dd�|ddddf�|df�|idd 6�dd/d0�}|d�|dd�|ddd�dd1d2�}|dd�|ddd�|dddd�|ddddf�|ddidd&6�ddd3d4�}|�|d�|dd�|ddd�|ddddf�|idd 6dd#6�ddd5d6�}|d�|dd�|ddd�|dddd�|ddddf�|dddddf�|ddfidd&6�ddd7d8�}|dd�|ddd�|dddd�|ddddd�|ddddf�|dddddf�|dddfidd96�ytd:idd;6�Wntk
r�YnX|jd<�d=d>�}|d?d@�dAd@dBdC�}|dddDd@�|dddDd@dAdE�|dddAd@dDdE�dDd@dFdG�}|dddAd@dHd@dIdE�|dddHd@dIdEdAd@�dJdK�}|j|dd:ddLdddg�dddfidd:6ddL6f�|jttdM�|jttdN�t	dOdPdK��}|j|j
it	dQ6�tdRdSdK��}|j|j
itd:6�tdRdTdK��}|j|j
itd:6�tdRdUdK��}|j|j
itd:6�dddVdWdK��}|j|j
iddL6�dddXdYdK��}|j|j
idd#6dd&6�dddddddZd[dK��}|j|j
idd#6dd&6dd\6dd]6�ddd^dd_d`dddddddadbdcdddK�	�}|j|j
idd#6dd&6dd\6dd]6dde6dd_6dadf6dbdQ6�Gdgdh�dh�}Gdidj�dj|�}|j|j
j
iddk6�|j|j
j
iddk6�dldm�}|t	dOdndK���}|j|j
it	dQ6�d��fdodK�}d�fdpdK�}dfd�fdqdK�}tdO�fdrdK��}t|ds�t|dt�dS)�NcSsdS)Nrrrrr�f1�sz%GrammarTests.test_funcdef.<locals>.f1cSsdS)Nr)�one_argumentrrr�f2�sz%GrammarTests.test_funcdef.<locals>.f2cSsdS)Nr)�two�	argumentsrrr�f3�sz%GrammarTests.test_funcdef.<locals>.f3r@rBrCcSsdS)Nr)Zone_argrrr�a1�sz%GrammarTests.test_funcdef.<locals>.a1cSsdS)Nr)rB�argsrrr�a2�sz%GrammarTests.test_funcdef.<locals>.a2cWsdS)Nr)�restrrr�v0�sz%GrammarTests.test_funcdef.<locals>.v0cWsdS)Nr)�arHrrr�v1�sz%GrammarTests.test_funcdef.<locals>.v1cWsdS)Nr)rJ�brHrrr�v2�sz%GrammarTests.test_funcdef.<locals>.v2rr������rrcSsdS)Nr)rJrrr�d01�sz&GrammarTests.test_funcdef.<locals>.d01rJcSsdS)Nr)rJrLrrr�d11�sz&GrammarTests.test_funcdef.<locals>.d11rLcSsdS)Nr)rJrL�crrr�d21�sz&GrammarTests.test_funcdef.<locals>.d21rVcSsdS)Nr)rJrLrrr�d02�sz&GrammarTests.test_funcdef.<locals>.d02cSsdS)Nr)rJrLrVrrr�d12�sz&GrammarTests.test_funcdef.<locals>.d12cSsdS)Nr)rJrLrV�drrr�d22�sz&GrammarTests.test_funcdef.<locals>.d22cWsdS)Nr)rJrHrrr�d01v�sz'GrammarTests.test_funcdef.<locals>.d01vcWsdS)Nr)rJrLrHrrr�d11v�sz'GrammarTests.test_funcdef.<locals>.d11vcWsdS)Nr)rJrLrVrHrrr�d21v�sz'GrammarTests.test_funcdef.<locals>.d21vcWsdS)Nr)rJrLrHrrr�d02v�sz'GrammarTests.test_funcdef.<locals>.d02vcWsdS)Nr)rJrLrVrHrrr�d12vsz'GrammarTests.test_funcdef.<locals>.d12vcWsdS)Nr)rJrLrVrZrHrrr�d22v
sz'GrammarTests.test_funcdef.<locals>.d22vrZr
sfooz/Bytes should not work as keyword argument namescSs|S)Nr)�keyrrr�pos0key1sz+GrammarTests.test_funcdef.<locals>.pos0key1rb�d�k2cSs||||fS)Nr)�p1�p2�k1rerrr�pos2key2 sz+GrammarTests.test_funcdef.<locals>.pos2key2rh��c[s|||||fS)Nr)rfrgrhreZkwargrrr�pos2key2dict$sz/GrammarTests.test_funcdef.<locals>.pos2key2dictZtokwarg1Ztokwarg2c_s
||fS)Nr)rF�kwargsrrr�f)sz$GrammarTests.test_funcdef.<locals>.fr.zf(1, *(2,3), 4)zf(1, x=2, *(3,4), x=5))�returncSsdS)Nr)r
rrrrm1srn)r
cSsdS)Nr)r
rrrrm3scWsdS)Nr)r
rrrrm5sc[sdS)Nr)r
rrrrm7s)r.cSsdS)Nr)r
r.rrrrm9s)rLrVcSsdS)Nr)rJrLrVrZrrrrm;s)rLrV�e�gcWsdS)Nr)rJrLrVrZrormrprrrrm=srorp�i�j�
��)rLrVrorp�hrr�krnc_sdS)Nr)rJrLrVrZrormrvrqrrrprwrrrrm@srvrwc@s%eZdZdddd��ZdS)z'GrammarTests.test_funcdef.<locals>.Spamr)z	_Spam__kwcSsdS)Nr)r	�	_Spam__kwrrrrmGsz)GrammarTests.test_funcdef.<locals>.Spam.fN)r:r;r<rmrrrr�SpamFsryc@seZdZdS)z&GrammarTests.test_funcdef.<locals>.HamN)r:r;r<rrrr�HamIsrzrxcSs|S)Nr)r
rrr�nullMsz'GrammarTests.test_funcdef.<locals>.nullcSsdS)Nr)r
rrrrmNscs�S)Nrr)�closurerrrmTscs�S)Nr)r
)r|rrrmUscs�S)Nr)rw)r|rrrmVscs�S)Nrr)r|rrrmWsz
f(*g(1=2))zf(**g(1=2)))zone_argument)ztwoz	arguments)r)rrrN)rrN)rN)rr)r)rrrNrO)r)rrrNrO)rrNrO)rrrNrO)rNrOrP)r)rrrNrO)rNrOrP)rrN)rrNrOrN)r�__code__�co_varnamesr7�	TypeErrorr rrr�list�__annotations__�int�floatrmr)r	r?rArDrErGrIrKrMrTrUrWrXrYr[r\r]r^r_r`rarcrirkrmryrzr{r)r|r�test_funcdef�s@









%


%
%























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)Nrrrrrr�<lambda>_sz+GrammarTests.test_lambdef.<locals>.<lambda>rcSsttS)N)rJrZrrrrr�ascSsdd�dddgD�S)NcSsg|]}d|k�qS)rr)�.0r
rrr�
<listcomp>bs	z?GrammarTests.test_lambdef.<locals>.<lambda>.<locals>.<listcomp>rrNr���rrrrrr�bsrcSs|S)Nr)�zrrrr�dscSs|�S)Nr)r.rrrr�dscSs|�S)Nr)r
rrrr�dsrcSs|||S)Nr)r
r.r�rrrr�fsrPrNrQzlambda x: x = 2zlambda (None,): Nonerw�cSs|||S)Nr)r
r.rwrrrr�ksrsrN�rN�
)rr)r	�l1�l2�l3�l4�l5�l6rrr�test_lambdef]s!

zGrammarTests.test_lambdefcCs d}~dd�}|�dS)NrcSs
d}~dS)Nrr)r
rrr�foovsz*GrammarTests.test_simple_stmt.<locals>.foor)r	r
r�rrr�test_simple_stmtsszGrammarTests.test_simple_stmtc	Csodd}d}d	}}}d
\}}}d}\}}}\}}}}t|d�t|d�dS)
NrrrNrOz	x + 1 = 1z
a + 1 = b + 2)rrrN)rrrN)rrrN)rrrN�rNrO)rrr�)r)	r	r
r.r��abcrJrLrV�xyzrrr�test_expr_stmt~s$
zGrammarTests.test_expr_stmtcCs�d}ddddddg}x�|D]�}d	j|�}x�|D]�}|j|�}|jd
|��(|jt|��t|�WdQXWdQX|jdd�}|jd
|��(|jtd
��t|�WdQXWdQXqAWq%WdS)N�printr5z{} fooz{} {{1:foo}}zif 1: {} foozif 1: {} {{1:foo}}zif 1:
    {} foozif 1:
    {} {{1:foo}}zcall to '{}'�sourcer�z(foo.)zinvalid syntax)zprintzexec)�formatZsubTestZassertRaisesRegexrr5�replace)r	�keywordsZcases�keywordZ
custom_msgZcaser�rrr�(test_former_statements_refer_to_builtins�s$	

z5GrammarTests.test_former_statements_refer_to_builtinscCs@dddg}|\}}}|||f}~~~~~dS)NrrrNr)r	r�r
r.r�r�rrr�
test_del_stmt�s
zGrammarTests.test_del_stmtcCsdS)Nr)r	rrr�test_pass_stmt�szGrammarTests.test_pass_stmtcCsxPqWdS)Nr)r	rrr�test_break_stmt�szGrammarTests.test_break_stmtc
Cs�d}x|rd}q	q	Wd}x.|sRd}y
w%d}Wq%d}Yq%Xq%W|dkro|j|�nd}x!|s�d}zwxWdd}XqxW|dkr�|j|�ndS)Nrrr&�okz&continue failed to continue inside tryz'continue inside try called except blockzfinally block not called)r )r	rq�msgrrr�test_continue_stmt�s,		
	zGrammarTests.test_continue_stmtcs#dd�fdd�}|�dS)Nrrc	s�d}xS|r[|d7}y1|r<|dkr<|d8}Pn|d8}w	Wq	�Yq	Xq	W|dkst|dkr��jd�ndS)Nrrz1continue then break in try/except in loop broken!)r )Zextra_burning_oil�countZ	big_hippo)r	rr�
test_inner�s	


z9GrammarTests.test_break_continue_loop.<locals>.test_innerr)r	r�r)r	r�test_break_continue_loop�s
z%GrammarTests.test_break_continue_loopcCs9dd�}dd�}|�|�}t|d�dS)NcSsdS)Nrrrrr�g1�sz$GrammarTests.test_return.<locals>.g1cSsdS)Nrrrrrr�g2�sz$GrammarTests.test_return.<locals>.g2zclass foo:return 1)r)r	r�r�r
rrr�test_return�s
	zGrammarTests.test_returncCs0dd�}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�dS)Ncss	dVdS)Nrrrrrrrp�sz"GrammarTests.test_yield.<locals>.gcss
fDdHdS)Nrrrrrrp�scssdV}dS)Nrr)r
rrrrp�scssfDdH}dS)Nr)r
rrrrp�scss	dVdS)Nr)rrrrrrrrp�scssdV}dS)Nr)rrr)r
rrrrp�szdef g(): yield from (), 1zdef g(): x = yield from (), 1cssddVfdS)NrrrrrrrpscssdfDdHfdS)Nrrrrrrrpszdef g(): 1, yield 1zdef g(): 1, yield from ()csstdV�dS)Nr)rmrrrrrpscsstdVd�dS)Nr)rmrrrrrpscsstfDdH�dS)N)rmrrrrrp	scsstfDdHd�dS)Nr)rmrrrrrp
szdef 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 ())r)r	rprrr�
test_yield�s0










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


zGrammarTests.test_raisecCs�ddl}ddl}ddl}ddlm}ddlm}ddlm}m}ddlm}m}ddlm}m}dS)Nr)�time)�path�argv)rr�r�r�)r	rr�r�r�rrr�test_importszGrammarTests.test_importcCsdS)Nr)r	rrr�test_global+szGrammarTests.test_globalcs%d�d���fdd�}dS)NrcsdS)Nrr)r
r.rrrm5sz%GrammarTests.test_nonlocal.<locals>.fr)r	rmr)r
r.r�
test_nonlocal1szGrammarTests.test_nonlocalcCsvyWn2tk
r8}z|jd�WYdd}~XnXyWn2tk
rq}z|jd�WYdd}~XnXdS)Nz6'assert True' should not have raised an AssertionErrorz;'assert True, msg' should not have raised an AssertionError)�AssertionErrorr )r	rorrr�test_assert9s zGrammarTests.test_assertz Won't work if __debug__ is FalsecCs�yWn<tk
rB}z|j|jdd�WYdd}~XnX|jd�yWn>tk
r�}z|jt|j�d�WYdd}~XnX|jd�dS)Nrr�z%AssertionError not raised by assert 0z+AssertionError not raised by 'assert False')r�rrFr r,)r	rorrr�testAssert2Ls*
,zGrammarTests.testAssert2cCsdS)Nr)r	rrr�test_if`szGrammarTests.test_ifcCs d}d}|j|d�dS)Nrr)r)r	r
rrr�
test_whilemszGrammarTests.test_whilecCs�xd
D]}qWxfD]\}}}qWGdd�d�}d}x|d�D]}||}qQW|dkr�|jd	�ng}x'ddd
gD]\}|j|�q�W|j|dddg�dS)NrrrNc@s4eZdZdd�Zdd�Zdd�ZdS)z&GrammarTests.test_for.<locals>.SquarescSs||_g|_dS)N)�max�sofar)r	r�rrr�__init__�s	z/GrammarTests.test_for.<locals>.Squares.__init__cSs
t|j�S)N)r,r�)r	rrr�__len__�sz.GrammarTests.test_for.<locals>.Squares.__len__cSssd|ko|jkns(t�nt|j�}x.||krg|jj||�|d}q:W|j|S)Nrr)r��
IndexErrorr,r��append)r	rq�nrrr�__getitem__�s	z2GrammarTests.test_for.<locals>.Squares.__getitem__N)r:r;r<r�r�r�rrrr�Squares�sr�rrsizfor over growing sequence)rrrN)r)r)rN)r r�r)r	rqrrrwr�r�r
�resultrrr�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�EOFErrorrr�)r	r�rrr�test_try�s2

zGrammarTests.test_trycCsdS)Nr)r	rrr�
test_suite�szGrammarTests.test_suitecCszds	ndrdrnds'dr'nds2ndrHdrHdrHndrTdsvdrfdrfdsvdrvdrvndS)Nrr)r	rrr�	test_test�s+zGrammarTests.test_testcCsddk}ddkrnddkr*nddkr9nddkrHnddkrWnddkrfnddkrunddk	r�ndfkr�ndfkr�nddkodkodkodkodkodkodkodkodkodk	nrndS)Nrr)r	r
rrr�test_comparison�s.tzGrammarTests.test_comparisoncCsd}d}d}dS)Nrrrrr)r	r
rrr�test_binary_mask_ops�sz!GrammarTests.test_binary_mask_opscCsd}d}d}dS)Nrrrrrr)r	r
rrr�test_shift_ops�szGrammarTests.test_shift_opscCsd}d}d}d}dS)	Nrrrr�rrrrr)r	r
rrr�test_additive_ops�szGrammarTests.test_additive_opscCsd}d}d}d}dS)Nrrg�?rg�?g�?gr)r	r
rrr�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)r	r
rrr�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�Z01234rrPrOrNrrbcSst|t�r|SfS)N)�
isinstance�tuple)r
rrrr�sz-GrammarTests.test_selectors.<locals>.<lambda>z[1, (1,), (1, 2), (1, 2, 3)]r����r�������)r)rr)rrrN)rr�r��modulesr��sortrr7)	r	rr�rVr
rJr!rZ�Lrrr�test_selectors�s,






zGrammarTests.test_selectorscCsRd}dpdpd}dp'dp'dddf}g}dg}dpQdpQdg}dpfdpfdddg}g}i}idd6}idd6}idp�ddp�d6}idd6dd6}idd6dd6}idd6dd6dd6dd6d	d
6dd6}dh}ddh}dddh}dddh}|}d
}d}dS)NrrrNZonerBZthreerOZfourrPZfiverQZsixr
�{r)r	r
rrr�
test_atomss,	

0	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)r:r;r<rrrr�B9sr�c@seZdZdS)z&GrammarTests.test_classdef.<locals>.B2N)r:r;r<rrrr�B2:sr�c@seZdZdS)z&GrammarTests.test_classdef.<locals>.C1N)r:r;r<rrrr�C1;sr�c@seZdZdS)z&GrammarTests.test_classdef.<locals>.C2N)r:r;r<rrrr�C2<sr�c@seZdZdS)z%GrammarTests.test_classdef.<locals>.DN)r:r;r<rrrr�D=sr�c@s4eZdZdd�Zdd�Zdd�ZdS)z%GrammarTests.test_classdef.<locals>.CcSsdS)Nr)r	rrr�meth1?sz+GrammarTests.test_classdef.<locals>.C.meth1cSsdS)Nr)r	�argrrr�meth2@sz+GrammarTests.test_classdef.<locals>.C.meth2cSsdS)Nr)r	rErGrrr�meth3Asz+GrammarTests.test_classdef.<locals>.C.meth3N)r:r;r<r�r�r�rrrr�C>sr�cSs|S)Nr)r
rrr�class_decoratorFsz3GrammarTests.test_classdef.<locals>.class_decoratorc@seZdZdS)z%GrammarTests.test_classdef.<locals>.GN)r:r;r<rrrr�GGsr�r)	r	r�r�r�r�r�r�r�r�rrr�
test_classdef7szGrammarTests.test_classdefcCsEdddg}|jdd�|D�idd6dd6dd6�dS)NrrrNcSsi|]}|d|�qS)rr)r�rqrrr�
<dictcomp>Os	z/GrammarTests.test_dictcomps.<locals>.<dictcomp>rO)r)r	�numsrrr�test_dictcompsJszGrammarTests.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)TNrrrNrOrP�Apple�Banana�Coconutz  Applez Banana zCoco  nut  cSsg|]}|j��qSr)�strip)r�r!rrrr�Ws	z/GrammarTests.test_listcomps.<locals>.<listcomp>z	Coco  nutcSsg|]}d|�qS)rNr)r�r
rrrr�Xs	rQrru�cSs"g|]}|dkr|�qS)rr)r�r
rrrr�Ys	cs)g|]}�D]}||f�qqSrr)r�rqr!)�strsrrr�Zs	cs6g|],}dd��D�D]}||f�qqS)cSs"g|]}d|kr|�qS)r�r)r�rmrrrr�`s	z:GrammarTests.test_listcomps.<locals>.<listcomp>.<listcomp>r)r�rqr!)r�rrr�`s	cSs"g|]}dd�|��qS)cs!�fdd�t�d�D�S)Ncsg|]}�|�qSrr)r�rq)rJrrr�ds	zLGrammarTests.test_listcomps.<locals>.<listcomp>.<lambda>.<locals>.<listcomp>r)�range)rJr)rJrr�dsz8GrammarTests.test_listcomps.<locals>.<listcomp>.<lambda>r)r�rrrrrr�ds	���@�cSsdd�|D�S)NcSs8g|].}|dkrd|ko/dkn�qS)rrrNr)r�r
rrrr�hs	zEGrammarTests.test_listcomps.<locals>.test_in_func.<locals>.<listcomp>r)�lrrr�test_in_funcgsz1GrammarTests.test_listcomps.<locals>.test_in_funcFcsE�jdd�dddgD�ddgddgddgg�dS)	NcSs-g|]#}dd�||dgD��qS)cSsg|]}|�qSrr)r�r.rrrr�ms	zUGrammarTests.test_listcomps.<locals>.test_nested_front.<locals>.<listcomp>.<listcomp>rr)r�r
rrrr�ms	zJGrammarTests.test_listcomps.<locals>.test_nested_front.<locals>.<listcomp>rrNrPrrOrQ)rr)r	rr�test_nested_frontlsz6GrammarTests.test_listcomps.<locals>.test_nested_frontz"[i, s for i in nums for s in strs]z[x if y]�Boeing�Ford�
Macdonaldsrs�Airlinerr��Engine��Cheeseburgercs`g|]V\}}�D]C\}}�D]0\}}||kr&||kr&||f�q&qqSrr)r�ZsnoZsnameZpnoZpnameZsp_snoZsp_pno)�parts�suppartrrr��s		)rr�)rr�)rr�)rr�)rr�)rr�)rNr�)rNr�)rNr�)rOr�)rOr�)rOr�)rPr�)rPr�)rPr�)rr�)rr�)rr�)rr�)rNr�)rNr�)rOr�)rOr�)rPr�)rPr�)rr�)rr�)rNr�)rsr)r�r)rr)rrs)rr�)rr�)rNr)r�r)r�r)r�r)r�r)rr�r)r	r�Zspcsr�r�Z	suppliersr
r)rr	r�rr�test_listcompsQsF&,&				
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|]}|�qSrr)r�r
rrrr��s	z7GrammarTests.test_genexps.<locals>.<genexpr>.<listcomp>rsN)r�)r�r
rrr�	<genexpr>�sz,GrammarTests.test_genexps.<locals>.<genexpr>rcSsg|]}|�qSrr)r�r
rrrr��s	z-GrammarTests.test_genexps.<locals>.<listcomp>rsz&should produce StopIteration exceptionc3s|]}�VqdS)Nr)r�rZ)rJrrr�szshould produce TypeErrorcss(|]}dD]}||fVq
qdS)�abcdNr)r�r
r.rrrr�srcSs)g|]}dD]}||f�qqS)rr)r�r
r.rrrr��s	css(|]}dD]}||fVq
qdS)�xyNr)r�r
r.rrrr�sZabcSs)g|]}dD]}||f�qqS)r	r)r�r
r.rrrr��s	cSsg|]}|�qSrr)r�r
rrrr��s	css|]}|VqdS)Nr)r�r
rrrr�scss|]}|VqdS)Nr)r�r.rrrr�scSsg|]}|�qSrr)r�r
rrrr��s	css|]}|dVqdS)rNr)r�r
rrrr�scSsg|]}|d�qS)rr)r�r
rrrr��s	css#|]}|dr||VqdS)rNr)r�r
rrrr�scSs$g|]}|dr||�qS)rr)r�r
rrrr��s	css|]}|VqdS)Nr)r�r
rrrr�scss|]}|VqdS)Nr)r�r.rrrr�scSsg|]}|�qSrr)r�r
rrrr��s	css|]}|VqdS)Nr)r�r
rrrr�scss|]}|VqdS)Nr)r�r.rrrr�scss|]}|VqdS)Nr)r�r�rrrr�scSsg|]}|�qSrr)r�r
rrrr��s	css|]}|VqdS)Nr)r�r
rrrr�scSsg|]}|�qSrr)r�r.rrrr��s	css|]}|VqdS)Nr)r�r�rrrr�scSsg|]}|�qSrr)r�r
rrrr��s	css|]}|VqdS)TNr)r�r
rrrr�scss|]}|VqdS)Nr)r�r.rrrr�scss|]}|VqdS)TNr)r�r�rrrr�scSsg|]}|�qSrr)r�r
rrrr��s	css|]}|VqdS)TNr)r�r
rrrr�scss|]}dr|VqdS)FNr)r�r.rrrr�scss|]}|VqdS)TNr)r�r�rrrr�srzfoo(x for x in range(10), 100)zfoo(100, x for x in range(10)))	r�r�nextr �
StopIterationrr��sumr)r	rprLr)rJr�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)Nrscss|]}|VqdS)Nr)r�rqrrrr�sz;GrammarTests.test_comprehension_specials.<locals>.<genexpr>rPFc3s4|]*}�rt��D]}||fVqqdS)N)r�)r�rqrr)�tr
rrr�sTcSs/g|]%}td�D]}||f�qqS)rP)r�)r�rqrrrrrr��s	z<GrammarTests.test_comprehension_specials.<locals>.<listcomp>cSs*g|] }|dr|dr|�qS)rrNr)r�r
rrrr��s	rrRcss)|]}|dr|dr|VqdS)rrNNr)r�r
rrrr�scSsg|]\}|�qSrr)r�r
rrrr��s	rOrQcss|]\}|VqdS)Nr)r�r
rrrr�srSr)rO)rP)rQ)rR)rS)r)r�rr,r�)r	rpr)rr
r�test_comprehension_specials�s"),2/z(GrammarTests.test_comprehension_specialsc9Cs�Gdd�dt�}|��WdQX|��}WdQX|��
\}}WdQX|��|��WdQXWdQX|��}|��}WdQXWdQX|��}|��WdQXWdQXdS)Nc@s(eZdZdd�Zdd�ZdS)z1GrammarTests.test_with_statement.<locals>.managercSsdS)Nrr)rrr)r	rrr�	__enter__�sz;GrammarTests.test_with_statement.<locals>.manager.__enter__cWsdS)Nr)r	rFrrr�__exit__�sz:GrammarTests.test_with_statement.<locals>.manager.__exit__N)r:r;r<rrrrrr�manager�sr)�object)r	rr
r.rrr�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) NcSstt�|S)z@helper to check that evaluation of expressions is done correctly)r�r
)r�Zretrrr�
_checkeval�s
z2GrammarTests.test_if_else_expr.<locals>._checkevalcSs"g|]}|�r|��qSrr)r�r
rrrr��s	z2GrammarTests.test_if_else_expr.<locals>.<listcomp>cSsdS)NTrrrrrr��sz0GrammarTests.test_if_else_expr.<locals>.<lambda>cSsdS)NFrrrrrr��sTcSs(g|]}|d�r|d��qS)Fr)r�r
rrrr��s	cSs|r
dSdS)NFTr)r
rrrr��scSs|r
dSdS)NTFr)r
rrrr��srrPzcheck 1rzcheck 2rQzcheck 3rrNzcheck 4zcheck 5zcheck 6FrRrOrurRrPrug@)r)r	rrrr�test_if_else_expr�s$22%""+.%zGrammarTests.test_if_else_exprcCs�|jdd�|jd
d�|jdd�|jdddkk�|jddkdk�|jddkodkn�dS)
Nr�rOrrSFrNrrSrOrrOr)rrZassertFalse)r	rrr�test_paren_evaluation�sz"GrammarTests.test_paren_evaluationN)/r:r;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
rrrrrrrrr=�sR�	#

#?#r=cCsttt�dS)N)rrr=rrrr�	test_main�sr�__main__)
Ztest.supportrrrrZTestCaserr=rr:rrrr�<module>s
����t