Your IP : 216.73.216.213


Current Path : /opt/alt/python36/lib64/python3.6/lib2to3/tests/data/__pycache__/
Upload File :
Current File : //opt/alt/python36/lib64/python3.6/lib2to3/tests/data/__pycache__/py3_test_grammar.cpython-36.pyc

3

� f9x�@sfddlmZmZddlZddlZddlTGdd�dej�ZGdd�dej�Zdd	�Ze	d
krbe�dS)�)�run_unittest�check_syntax_errorN)�*c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�
TokenTestscCs(d}|j|dd�d}|j|dd�dS)N��zbackslash for line continuationrzbackslash ending commentr)�assertEquals)�self�x�r�H/opt/alt/python36/lib64/python3.6/lib2to3/tests/data/py3_test_grammar.py�
testBackslashs
zTokenTests.testBackslashcCsr|jtd�td��|jdd�|jdd�|jdd�|jdd�|jttd�ddlm}|dkr�|jdd�|jd	dk�|jd	dk�|jddk�x�dD]4}yt|�}Wq�tk
r�|j	d|�Yq�Xq�Wn�|dk�r`|jdd�|jddk�|jddk�|jddk�xPdD]8}yt|�}Wn$tk
�rV|j	d|�YnX�q"Wn|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�assert_�
OverflowError�fail)r	r�sr
rrr�testPlainIntegerss>
zTokenTests.testPlainIntegerscCs$d}d}d}d}d}d}d}d}dS)Nrl����l���?l�
~��l!]cll�����r)r	r
rrr�testLongIntegersAszTokenTests.testLongIntegerscCsHd}d}d}d}d}d}d}d}d}d}d}d	}d
}d
}d}d}d
}dS)N�
i�[lE#�Wi#���
iw	gffffff?@g?@gףp=
��?g��Q�	@g��
�BgIae
�Hg���#;�7r)r	r
rrr�testUnderscoresInNumbersKs"z#TokenTests.testUnderscoresInNumberscCs0d}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�
testFloatsaszTokenTests.testFloatscCs
d}d}|jt|�dko||k�d}d}|jt|�dkoL||koLt|�dk�d}d}|jt|�dkoz||kozt|�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�testStringLiteralsos0&&zTokenTests.testStringLiteralscCs$d}|j|tk�|jttd�dS)N.z.. .)r�Ellipsisrrr)r	r
rrr�testEllipsis�szTokenTests.testEllipsisN)
�__name__�
__module__�__qualname__r
r"r#r&r'r1r3rrrrrs
$
(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$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Zd;d<�Z d=d>�Z!d?d@�Z"dAdB�Z#dCdD�Z$dEdF�Z%dGdH�Z&dIdJ�Z'dKdL�Z(dMS)N�GrammarTestscCstd�}dS)Nz	1, 0 or 1)r)r	r
rrr�
testEvalInput�szGrammarTests.testEvalInputcs dd�}|�|f�|fi�dd�}dd�}|j|jjdp�|j|jjdq�d
d�}dd
�}dd�}dd�}dd�}|�|d�|d�|dd�|dd�|�|d�|d�|dd�|dddddddddd�
|d�|d�|dd�|ddd�|dddddddddd�
|dd�|ddd�|dddd�|dddddddddd�
drdd�}	|	�|	d�|	ds�|	fd di�dtd!d"�}
|
d�|
dd�|
dud#di�dvd$d%�}|dd�|ddd�|dw�|dxdy��|dzd{��|d|d&di�d}d'd(�}|�|d�|dd�|d~�|dd���|d�d#di�|fddd)��d�d*d+�}
|
d�|
dd�|
ddd�d�d,d-�}|dd�|ddd�|dddd�d�d.d/�}|�|d�|dd�|d��|d��|fd di�d�d0d1�}|d�|dd�|ddd�d�d2d3�}|dd�|ddd�|dddd�|d��|d�d&di�d�d4d5�}|�|d�|dd�|ddd�|d�d���|fddd)��d�d6d7�}|d�|dd�|ddd�|dddd�|d��|d�d���|d�d��d&di�d�d8d9�}|dd�|ddd�|dddd�|ddddd�|d��|d�d���|d�d��d:di�ytd�d<di�Wntk
�r�YnX|jd=�d>d?�}|d@dA�d@dB�dCdD�}|ddd@dE�|ddd@dFdG�|ddd@dFdH�d@dE�dIdJ�}|ddd@d@dFdK�|ddd@dFd@dL�dMdN�}|j|d�ddg�dddO��d�dddO�f�|jttdP�|jttdQ�t	dR�dSdN�}|j|j
dTt	i�tdU�dVdN�}|j|j
d;ti�tdU�dWdN�}|j|j
d;ti�tdU�dXdN�}|j|j
d;ti�d�dY�dZdN�}|j|j
d[di�ddd\�d]dN�}|j|j
ddd\��d�ddddd^�d_dN�}|j|j
ddddd^��d�dd`da�dddddddbdcdd�dedN�}|j|j
dddddddbdcdd��dfdg�}|t	dR�dhdN��}|j|j
dTt	i�d��fdidN�}d��fdjdN�	}ddk��fdldN�
}tdR��fdmdN�}t
|dn�t
|do�dS)�NcSsdS)Nrrrrr�f1�sz$GrammarTests.testFuncdef.<locals>.f1cSsdS)Nr)�one_argumentrrr�f2�sz$GrammarTests.testFuncdef.<locals>.f2cSsdS)Nr)�two�	argumentsrrr�f3�sz$GrammarTests.testFuncdef.<locals>.f3r:r<r=cSsdS)Nr)Zone_argrrr�a1�sz$GrammarTests.testFuncdef.<locals>.a1cSsdS)Nr)r<�argsrrr�a2�sz$GrammarTests.testFuncdef.<locals>.a2cWsdS)Nr)�restrrr�v0�sz$GrammarTests.testFuncdef.<locals>.v0cWsdS)Nr)�arBrrr�v1�sz$GrammarTests.testFuncdef.<locals>.v1cWsdS)Nr)rD�brBrrr�v2�sz$GrammarTests.testFuncdef.<locals>.v2rr������rrcSsdS)Nr)rDrrr�d01�sz%GrammarTests.testFuncdef.<locals>.d01rDcSsdS)Nr)rDrFrrr�d11�sz%GrammarTests.testFuncdef.<locals>.d11rFcSsdS)Nr)rDrF�crrr�d21�sz%GrammarTests.testFuncdef.<locals>.d21rPcSsdS)Nr)rDrFrrr�d02�sz%GrammarTests.testFuncdef.<locals>.d02)rDrFcSsdS)Nr)rDrFrPrrr�d12�sz%GrammarTests.testFuncdef.<locals>.d12cSsdS)Nr)rDrFrP�drrr�d22�sz%GrammarTests.testFuncdef.<locals>.d22cWsdS)Nr)rDrBrrr�d01v�sz&GrammarTests.testFuncdef.<locals>.d01vcWsdS)Nr)rDrFrBrrr�d11vsz&GrammarTests.testFuncdef.<locals>.d11vcWsdS)Nr)rDrFrPrBrrr�d21vsz&GrammarTests.testFuncdef.<locals>.d21vcWsdS)Nr)rDrFrBrrr�d02vsz&GrammarTests.testFuncdef.<locals>.d02vcWsdS)Nr)rDrFrPrBrrr�d12vsz&GrammarTests.testFuncdef.<locals>.d12vcWsdS)Nr)rDrFrPrTrBrrr�d22vsz&GrammarTests.testFuncdef.<locals>.d22vrTr
sfooz/Bytes should not work as keyword argument namescSs|S)Nr)�keyrrr�pos0key1+sz*GrammarTests.testFuncdef.<locals>.pos0key1�d)r\)�k2cSs||||fS)Nr)�p1�p2�k1r_rrr�pos2key2-sz*GrammarTests.testFuncdef.<locals>.pos2key2)rb��)rbr_)r_rbc[s|||||fS)Nr)r`rarbr_Zkwargrrr�pos2key2dict1sz.GrammarTests.testFuncdef.<locals>.pos2key2dict)r_�tokwarg1�tokwarg2)rfrgr_c_s||fS)Nr)r@�kwargsrrr�f6sz#GrammarTests.testFuncdef.<locals>.f)r
r0zf(1, *(2,3), 4)zf(1, x=2, *(3,4), x=5))�returncSsdS)Nr)r
rrrri>srj)r
cSsdS)Nr)r
rrrri@scWsdS)Nr)r
rrrriBsc[sdS)Nr)r
rrrriDs)r0cSsdS)Nr)r
r0rrrriFsr0)rFrPcSsdS)Nr)rDrFrPrTrrrriHs)rFrP�e�gcWsdS)Nr)rDrFrPrTrkrirlrrrriJsr$)�i�j��)rFrPrkrl�hrn�krjc_sdS)Nr)rDrFrPrTrkrirqrmrnrlrrrrrriMscSs|S)Nr)r
rrr�nullSsz&GrammarTests.testFuncdef.<locals>.nullcSsdS)Nr)r
rrrriTscs�S)Nrr)�closurerrriZscs�S)Nr)r
)rtrrri[s)rrcs�S)Nr)rr)rtrrri\scs�S)Nrr)rtrrri]sz
f(*g(1=2))zf(**g(1=2)))r:)r<r=)r)r)r)r)r)rrrH)r)rrH)rr)rH)rr)rr)rr)r)r)r)rr)rr)r)rrrHrI)r)r)r)rrrHrI)rr)rr)r)rrHrI)rr)rrrHrI)rr)rHrIrJ)r)r)rr)rrrHrI)rr)rHrIrJ)r)rrH)r
)r)rrHrIrH)rIrJ)rIrJ)r)r�__code__�co_varnames�str�	TypeErrorr rrr�list�__annotations__�int�floatr)r	r9r;r>r?rArCrErGrNrOrQrRrSrUrVrWrXrYrZr[r]rcrerirsr)rtr�testFuncdef�s4
































zGrammarTests.testFuncdefcCs�dd�}|j|�d�dd�}dd�}|j|�dddg�ddd�fdd�fd	d�}|j|�d�ddd�}|j|dd
�d�|j|dd
d
�d�t|d�t|d�dd�dd�}|j|dd
�d�|j|dd
dd�d�dS)NcSsdS)Nrrrrrr�<lambda>esz*GrammarTests.testLambdef.<locals>.<lambda>rcSsttS)N)rDrTrrrrr~gscSsdd�dD�S)NcSsg|]}d|k�qS)rr)�.0r
rrr�
<listcomp>hsz>GrammarTests.testLambdef.<locals>.<lambda>.<locals>.<listcomp>rrHr���)r�rHrrrrrrr~hsrcSs|S)Nr)�zrrrr~jscSs|�S)Nr)r0rrrr~jscSs|�S)Nr)r
rrrr~jsrcSs|||S)Nr)r
r0r�rrrr~lsrJrHrKzlambda x: x = 2zlambda (None,): None�)rrcSs|||S)Nr)r
r0rrrrrr~qsr$)r)rrH�rHr%)rr)r	�l1�l2�l3�l4�l5�l6rrr�testLambdefcs


zGrammarTests.testLambdefcCsd}~dd�}|�dS)NrcSs
d}~dS)Nrr)r
rrr�foo|sz(GrammarTests.testSimpleStmt.<locals>.foor)r	r
r�rrr�testSimpleStmtyszGrammarTests.testSimpleStmtc	CsVdd}d}d	}}}d
\}}}d}\}}}\}}}}t|d�t|d�dS)
NrrrHrIz	x + 1 = 1z
a + 1 = b + 2)rrrH)rrrH)rrrH)rrrH�rHrI)rrr�)r)	r	r
r0r��abcrDrFrP�xyzrrr�testExprStmt�s

zGrammarTests.testExprStmtcCs,dddg}|\}}}|||f}~~~~~dS)NrrrHr)r	r�r
r0r�r�rrr�testDelStmt�s



zGrammarTests.testDelStmtcCsdS)Nr)r	rrr�testPassStmt�szGrammarTests.testPassStmtcCsxPqWdS)Nr)r	rrr�
testBreakStmt�szGrammarTests.testBreakStmtc
Cs�d}x|rd}qqWd}x(|s@d}y
wd}Wqd}YqXqW|dkrT|j|�d}x|srd}zwZWdd}XqZW|dkr�|j|�dS)Nrrr(�okz&continue failed to continue inside tryz'continue inside try called except blockzfinally block not called)r )r	rm�msgrrr�testContinueStmt�s,

zGrammarTests.testContinueStmtcsd�fdd�	}|�dS)Nrrc	shd}xD|rH|d7}y$|r*|dkr*|d8}P|d8}wWq�YqXqW|dksZ|dkrd�jd�dS)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_inner)rrr)r	r�r)r	r�test_break_continue_loop�s
z%GrammarTests.test_break_continue_loopcCs*dd�}dd�}|�|�}t|d�dS)NcSsdS)Nrrrrr�g1�sz#GrammarTests.testReturn.<locals>.g1cSsdS)Nrrrrrr�g2�sz#GrammarTests.testReturn.<locals>.g2zclass foo:return 1)r)r	r�r�r
rrr�
testReturn�s
zGrammarTests.testReturncCst|d�dS)Nzclass foo:yield 1)r)r	rrr�	testYield�szGrammarTests.testYieldcCsDytd��Wntk
r YnXyt�Wntk
r>YnXdS)Nzjust testing)�RuntimeError�KeyboardInterrupt)r	rrr�	testRaise�szGrammarTests.testRaisecCsdddl}ddl}ddl}ddlm}ddlm}ddlm}m}ddlm}m}ddlm}m}dS)Nr)�time)�path�argv)rr�r�r�)r	rr�r�r�rrr�
testImport�szGrammarTests.testImportcCsdS)Nr)r	rrr�
testGlobal�szGrammarTests.testGlobalcsd�d���fdd�}dS)NrcsdS)Nrr)r
r0rrrisz$GrammarTests.testNonlocal.<locals>.fr)r	rir)r
r0r�testNonlocal�szGrammarTests.testNonlocalcCs�dst�dstd��dd�s t�ds0tdd���yds>td��Wn4tk
rt}z|j|jdd�WYdd}~XnX|jd�dS)NrcSs|S)Nr)r
rrrr~
sz)GrammarTests.testAssert.<locals>.<lambda>cSs|dS)Nrr)r
rrrr~srr�z%AssertionError not raised by assert 0)�AssertionErrorrr@r )r	rkrrr�
testAsserts$zGrammarTests.testAssertcCsdS)Nr)r	rrr�testIfszGrammarTests.testIfcCsd}d}|j|d�dS)Nrr)r)r	r
rrr�	testWhile$szGrammarTests.testWhilecCs�xd
D]}qWxfD]
\}}}qWGdd�d�}d}x|d�D]}||}q>W|dkr`|jd	�g}xdD]\}|j|�qjW|j|dddg�dS)NrrrHc@s$eZdZdd�Zdd�Zdd�ZdS)z%GrammarTests.testFor.<locals>.SquarescSs||_g|_dS)N)�max�sofar)r	r�rrr�__init__9sz.GrammarTests.testFor.<locals>.Squares.__init__cSs
t|j�S)N)r.r�)r	rrr�__len__<sz-GrammarTests.testFor.<locals>.Squares.__len__cSsXd|ko|jknst�t|j�}x$||krL|jj||�|d}q*W|j|S)Nrr)r��
IndexErrorr.r��append)r	rm�nrrr�__getitem__=s

z1GrammarTests.testFor.<locals>.Squares.__getitem__N)r4r5r6r�r�r�rrrr�Squares8sr�rr$izfor over growing sequence)rrrH�r�r�rH)r�r�r�)r r��assertEqual)r	rmrnrrr�r�r
�resultrrr�testFor3s

zGrammarTests.testForc5Cs�yddWntk
r YnXyddWn^tk
rBYnLtk
rb}zWYdd}~Xn,tk
r�}zWYdd}~XnYnXyddWntttfk
r�YnXyddWn(tttfk
r�}zWYdd}~XnXzWdXdS)Nrr)�ZeroDivisionError�EOFErrorrxr�)r	r�rrr�testTryNs2zGrammarTests.testTrycCsdS)Nr)r	rrr�	testSuiteeszGrammarTests.testSuitecCsLdsdrdrdsdrdsdr*dr*dr*dr2dsHdr>dr>dsHdrHdrHdS)Nrr)r	rrr�testTesttszGrammarTests.testTestcCs�ddk}ddkrddkrddkr ddkr(ddkr0ddkr8ddkr@ddk	rHdfkrPdfkrXddko�dko�dko�dko�dko�dko�dko�dko�dko�dk	nr�dS)Nrr)r	r
rrr�testComparisonshzGrammarTests.testComparisoncCsd}d}d}dS)Nrrrrr)r	r
rrr�testBinaryMaskOps�szGrammarTests.testBinaryMaskOpscCsd}d}d}dS)Nrrrrrr)r	r
rrr�testShiftOps�szGrammarTests.testShiftOpscCsd}d}d}d}dS)	Nrrrr�rrrrr)r	r
rrr�testAdditiveOps�szGrammarTests.testAdditiveOpscCsd}d}d}d}dS)Nrrg�?rg�?g�?gr)r	r
rrr�testMultiplicativeOps�sz"GrammarTests.testMultiplicativeOpscCsd}d}d}d}d}dS)Nrrr����r�rr�rr�r�r�r�r�g�rgr�rr�r�g�?r)r	r
rrr�testUnaryOps�s
zGrammarTests.testUnaryOpsc	Cs�ddl}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�Z01234rrJrIrHrcSst|t�r|SfS)N)�
isinstance�tuple)r
rrrr~�sz,GrammarTests.testSelectors.<locals>.<lambda>)r\z[1, (1,), (1, 2), (1, 2, 3)]r����r�������)r)rr)rrrH)rr�r��modulesry�sortrrw)	r	rr�rPr
rDr!rT�Lrrr�
testSelectors�s,
zGrammarTests.testSelectorscCs�d}dpdpd}dpdpdddf}g}dg}dp6dp6dg}dpDdpDdddg}g}i}ddi}ddi}dpjddppdi}ddd�}ddd�}dddddd	d
�}dh}ddh}dddh}dddh}|}d}d
}dS)NrrrH�oner<)r�r<rIrJrK)r�r<�threeZfourZfiveZsixr�r
�{r)r	r
rrr�	testAtoms�s,



zGrammarTests.testAtomsc	Cs|Gdd�d�}Gdd�d�}Gdd�d|�}Gdd�d|�}Gd	d
�d
|||�}Gdd�d�}d
d�}|Gdd�d��}dS)Nc@seZdZdS)z$GrammarTests.testClassdef.<locals>.BN)r4r5r6rrrr�B�sr�c@seZdZdS)z%GrammarTests.testClassdef.<locals>.B2N)r4r5r6rrrr�B2�sr�c@seZdZdS)z%GrammarTests.testClassdef.<locals>.C1N)r4r5r6rrrr�C1�sr�c@seZdZdS)z%GrammarTests.testClassdef.<locals>.C2N)r4r5r6rrrr�C2�sr�c@seZdZdS)z$GrammarTests.testClassdef.<locals>.DN)r4r5r6rrrr�D�sr�c@s$eZdZdd�Zdd�Zdd�ZdS)z$GrammarTests.testClassdef.<locals>.CcSsdS)Nr)r	rrr�meth1�sz*GrammarTests.testClassdef.<locals>.C.meth1cSsdS)Nr)r	�argrrr�meth2�sz*GrammarTests.testClassdef.<locals>.C.meth2cSsdS)Nr)r	r?rArrr�meth3�sz*GrammarTests.testClassdef.<locals>.C.meth3N)r4r5r6r�r�r�rrrr�C�sr�cSs|S)Nr)r
rrr�class_decorator�sz2GrammarTests.testClassdef.<locals>.class_decoratorc@seZdZdS)z$GrammarTests.testClassdef.<locals>.GN)r4r5r6rrrr�G�sr�r)	r	r�r�r�r�r�r�r�r�rrr�testClassdef�szGrammarTests.testClassdefcCs,dddg}|jdd�|D�dddd��dS)NrrrHcSsi|]}|d|�qS)rr)rrmrrr�
<dictcomp>sz.GrammarTests.testDictcomps.<locals>.<dictcomp>rI)rrrH)r�)r	�numsrrr�
testDictcompss
zGrammarTests.testDictcompscs�dddddg}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)TNrrrHrIrJ�Apple�Banana�Coconutz  Applez Banana zCoco  nut  cSsg|]}|j��qSr)�strip)rr!rrrr�sz.GrammarTests.testListcomps.<locals>.<listcomp>z	Coco  nutcSsg|]}d|�qS)rHr)rr
rrrr�srKrrp�cSsg|]}|dkr|�qS)rr)rr
rrrr�scsg|]}�D]}||f�qqSrr)rrmr!)�strsrrr�scs(g|] }dd��D�D]}||f�qqS)cSsg|]}d|kr|�qS)r�r)rrirrrr�sz9GrammarTests.testListcomps.<locals>.<listcomp>.<listcomp>r)rrmr!)r�rrr�scSsg|]}dd�|��qS)cs�fdd�t�d�D�S)Ncsg|]}�|�qSrr)rrm)rDrrr�szKGrammarTests.testListcomps.<locals>.<listcomp>.<lambda>.<locals>.<listcomp>r)�range)rDr)rDrr~sz7GrammarTests.testListcomps.<locals>.<listcomp>.<lambda>r)rrnrrrr�s���@�cSsdd�|D�S)NcSs,g|]$}|dkrd|ko"dkn�qS)rrrHr)rr
rrrr�szDGrammarTests.testListcomps.<locals>.test_in_func.<locals>.<listcomp>r)�lrrr�test_in_funcsz0GrammarTests.testListcomps.<locals>.test_in_funcFcs,�jdd�d	D�ddgddgddgg�dS)
NcSs"g|]}dd�||dgD��qS)cSsg|]}|�qSrr)rr0rrrr�$szTGrammarTests.testListcomps.<locals>.test_nested_front.<locals>.<listcomp>.<listcomp>rr)rr
rrrr�$szIGrammarTests.testListcomps.<locals>.test_nested_front.<locals>.<listcomp>rrHrJrrIrK)rrHrJ)r�r)r	rr�test_nested_front#sz5GrammarTests.testListcomps.<locals>.test_nested_frontz"[i, s for i in nums for s in strs]z[x if y]�Boeing�Ford�
Macdonaldsr$�Airlinerr��Engine��CheeseburgercsDg|]<\}}�D].\}}�D] \}}||kr||kr||f�qqqSrr)rZsnoZsnameZpnoZpnameZsp_snoZsp_pno)�parts�suppartrrr�=s)rr�)rr�)rr�)rr�)rr�)rr�)rHr�)rHr�)rHr�)rIr�)rIr�)rIr�)rJr�)rJr�)rJr�)rr�)rr�)rr�)rr�)rHr�)rHr�)rIr�)rIr�)rJr�)rJr�)rr�)rr�)rHr�)r$r�)r�r�)r�r�)rr$)rr�)rr�)rHr�)r�r�)r�r�)r�r�)r�r�)r�r�r)r	r�Zspcsr�r�Z	suppliersr
r)r�r	r�r�r�
testListcompssF

 
.

zGrammarTests.testListcompscs�dd�td�D�}|jt|�dd�td�D��yt|�|jd�Wntk
rZYnXd�y(�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)rr
rrrr�Isz6GrammarTests.testGenexps.<locals>.<genexpr>.<listcomp>r$N)r�)rr
rrr�	<genexpr>Isz+GrammarTests.testGenexps.<locals>.<genexpr>rcSsg|]}|�qSrr)rr
rrrr�Jsz,GrammarTests.testGenexps.<locals>.<listcomp>r$z&should produce StopIteration exceptionc3s|]
}�VqdS)Nr)rrT)rDrrr�Sszshould produce TypeErrorcss |]}dD]}||fVq
qdS)�abcdNr)rr
r0rrrr�Ysr�cSsg|]}dD]}||f�qqS)r�r)rr
r0rrrr�Yscss |]}dD]}||fVq
qdS)�xyNr)rr
r0rrrr�ZsZabcSsg|]}dD]}||f�qqS)r�r)rr
r0rrrr�ZscSsg|]}|�qSrr)rr
rrrr�\scss|]
}|VqdS)Nr)rr
rrrr�]scss|]
}|VqdS)Nr)rr0rrrr�]scSsg|]}|�qSrr)rr
rrrr�^scss|]}|dVqdS)rNr)rr
rrrr�`scSsg|]}|d�qS)rr)rr
rrrr�`scss|]}|dr||VqdS)rNr)rr
rrrr�ascSsg|]}|dr||�qS)rr)rr
rrrr�ascss|]
}|VqdS)Nr)rr
rrrr�bscss|]
}|VqdS)Nr)rr0rrrr�bscSsg|]}|�qSrr)rr
rrrr�bscss|]
}|VqdS)Nr)rr
rrrr�cscss|]
}|VqdS)Nr)rr0rrrr�cscss|]
}|VqdS)Nr)rr�rrrr�cscSsg|]}|�qSrr)rr
rrrr�cscss|]
}|VqdS)Nr)rr
rrrr�dscSsg|]}|�qSrr)rr0rrrr�dscss|]
}|VqdS)Nr)rr�rrrr�dscSsg|]}|�qSrr)rr
rrrr�dscss|]
}|VqdS)TNr)rr
rrrr�escss|]
}|VqdS)Nr)rr0rrrr�escss|]
}|VqdS)TNr)rr�rrrr�escSsg|]}|�qSrr)rr
rrrr�escss|]
}|VqdS)TNr)rr
rrrr�fscss|]}dr|VqdS)FNr)rr0rrrr�fscss|]
}|VqdS)TNr)rr�rrrr�fsrzfoo(x for x in range(10), 100)zfoo(100, x for x in range(10)))	r�r��nextr �
StopIterationrxry�sumr)r	rlrFr)rDr�testGenexpsGs8$$"00:DDD2
zGrammarTests.testGenexpscs�d�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	�dD�dddg�|jtdd�dD��dddg�dS)Nr$css|]
}|VqdS)Nr)rrmrrrr�lsz9GrammarTests.testComprehensionSpecials.<locals>.<genexpr>rJFc3s(|] }�rt��D]}||fVqqdS)N)r�)rrmrn)�tr
rrr�psTcSs"g|]}td�D]}||f�qqS)rJ)r�)rrmrnrrrr�rsz:GrammarTests.testComprehensionSpecials.<locals>.<listcomp>cSs g|]}|dr|dr|�qS)rrHr)rr
rrrr�vsrrLcss"|]}|dr|dr|VqdS)rrHNr)rr
rrrr�wscSsg|]
\}|�qSrr)rr
rrrr�zsrIrKcss|]\}|VqdS)Nr)rr
rrrr�{srMr�rI�rJ�rK)rrr�rL�rM�r)rrr	)r�r�r.ry)r	rlr)rr
r�testComprehensionSpecialsjs $z&GrammarTests.testComprehensionSpecialscACs�Gdd�dt�}|��WdQRX|��}WdQRX|��
\}}WdQRX|��|��WdQRXWdQRX|��}|��}WdQRXWdQRX|��}|��WdQRXWdQRXdS)Nc@seZdZdd�Zdd�ZdS)z1GrammarTests.test_with_statement.<locals>.managercSsdS)Nrr)rrr)r	rrr�	__enter__sz;GrammarTests.test_with_statement.<locals>.manager.__enter__cWsdS)Nr)r	r@rrr�__exit__�sz:GrammarTests.test_with_statement.<locals>.manager.__exit__N)r4r5r6rrrrrr�manager~sr
)�object)r	r
r
r0rrr�test_with_statement}s


z GrammarTests.test_with_statementcCs�dd�}|jdd�dd�dd�fD�dg�|jd	d�d
d�dd�fD�dg�|jd
n|dd�d
�|jdrx|dd�nd
d
�|jdr�d
o�dndd�|jdr�d
o�dndd�|jd
o�dndd�|jdr�dp�|dd�ndd�|jd�p�|dd�n|dd�d�|jd�pd
n|dd�d
�|jd
ndd�|jd�rBd
ndd�|jdndd�|jdndd
�|jdndd�|jdndd�|jd�r�ddkndd�dS) NcSstt�|S)z@helper to check that evaluation of expressions is done correctly)�printr
)r�Zretrrr�
_checkeval�sz/GrammarTests.testIfElseExpr.<locals>._checkevalcSsg|]}|�r|��qSrr)rr
rrrr��sz/GrammarTests.testIfElseExpr.<locals>.<listcomp>cSsdS)NTrrrrrr~�sz-GrammarTests.testIfElseExpr.<locals>.<lambda>cSsdS)NFrrrrrr~�sTcSsg|]}|d�r|d��qS)Fr)rr
rrrr��scSs|rdSdS)NFTr)r
rrrr~�scSs|rdSdS)NTFr)r
rrrr~�srrJzcheck 1rzcheck 2rKzcheck 3rrHzcheck 4zcheck 5zcheck 6FrLrIrprLrJrpg@)r�)r	rrrr�testIfElseExpr�s$$$"zGrammarTests.testIfElseExprN))r4r5r6r8r}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr
rrrrrrr7�sN9
	

#?#r7cCsttt�dS)N)rrr7rrrr�	test_main�sr�__main__)
Ztest.supportrrZunittestrZTestCaserr7rr4rrrr�<module>s