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_peepholer.cpython-35.opt-2.pyc



���]R1�@s�ddlZddlZddlZddlmZddlZddlmZddlm	Z	Gdd�de	�Z
Gdd�dej�Ze
d	kr�ej�dS)
�N)�StringIO)�copysign)�BytecodeTestCasec@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#S)$�
TestTranformscCs@dd�}|j|d�|j|d�|j|d�dS)NcSs|dks~dS)N��)�xrr�3/opt/alt/python35/lib64/python3.5/test_peepholer.py�unotsz%TestTranforms.test_unot.<locals>.unotZ	UNARY_NOT�POP_JUMP_IF_FALSEZPOP_JUMP_IF_TRUE)�assertNotInBytecode�assertInBytecode)�selfr
rrr	�	test_unotszTestTranforms.test_unotcCs@x9dD]1\}}t|d	d
�}|j|d|�qWdS)N�
not a is b�is not�
not a in b�not in�not a is not b�is�not a not in b�in��singleZ
COMPARE_OP�rr�rr�rr�rr)rrrr)�compiler
)r�lineZcmp_op�coderrr	�test_elim_inversion_of_is_or_insz-TestTranforms.test_elim_inversion_of_is_or_incCs�dd�}dd�}dd�}xR|df|df|dffD]/\}}|j|d	�|j|d
|�qFWdd�}|j|d	�|j|d
d�dS)NcSsdd|S)Nr)rrrr	�f!sz0TestTranforms.test_global_as_constant.<locals>.fcSsd|S)NTr)rrrr	�g%sz0TestTranforms.test_global_as_constant.<locals>.gcSsd|S)NFr)rrrr	�h(sz0TestTranforms.test_global_as_constant.<locals>.hTFZLOAD_GLOBAL�
LOAD_CONSTcSsdS)Nrrrrr	r".s)rr
)rr"r#r$�func�elemrrr	�test_global_as_constants.z%TestTranforms.test_global_as_constantcCsRdd�}xdD]}|j||�qWxdD]}|j||�q4WdS)NcSsxqWtS)N)�listrrrr	r"6sz'TestTranforms.test_while_one.<locals>.fr%r�
JUMP_ABSOLUTE)r%r)r*)rr
)rr"r'rrr	�test_while_one4s


zTestTranforms.test_while_onecCs]xVdD]N\}}t|dd�}|j||�|j|d	�|j|d
�qWdS)N�a, = a,r%�a, b = a, b�ROT_TWO�a, b, c = a, b, c�	ROT_THREErr�BUILD_TUPLEZUNPACK_TUPLE�r,r%�r-r.�r/r0)r2r3r4)rr
r)rrr'r rrr	�test_pack_unpack?szTestTranforms.test_pack_unpackcCs�xId!D]A\}}t|d
d�}|j|d|�|j|d�qWttttd���d
d�}|j|d�dd�tj|�D�}|jt	|�d�dd�}dS)"N�	a = 1,2,3�r��
("a","b","c")�a�b�c�
a,b,c = 1,2,3�(None, 1, None)�((1, 2), 3, 4)�rrr%r1i'cSs%g|]}|jdkr|�qS)r%)�opname)�.0�instrrrr	�
<listcomp>Zs	zETestTranforms.test_folding_of_tuples_of_constants.<locals>.<listcomp>cdSs8ddddddddd	d
ddddddddd	d
ddddddddd	d
ddddddddd	d
ddddddddd	d
ddddddddd	d
ddddddddd	d
ddddddddd	d
ddddddddd	d
ddddddddd	d
gdfdS)Nrr7rr8r@�����	rrrrr	�crateraszATestTranforms.test_folding_of_tuples_of_constants.<locals>.crater�r7rr8�r6rK�r:r;r<�r9rM�r7rr8�r=rO�Nr7N�r>rQ�r7r�rSr8r@�r?rT)rLrNrPrRrU)
rr
r�repr�tuple�range�dis�get_instructions�assertEqual�len)rrr'r Zload_constsrJrrr	�#test_folding_of_tuples_of_constantsJs$z1TestTranforms.test_folding_of_tuples_of_constantscCsPxIdD]A\}}t|dd
�}|j|d|�|j|d�qWdS)N�a in [1,2,3]r7rr8�a not in ["a","b","c"]r:r;r<�a in [None, 1, None]�a not in [(1, 2), 3, 4]r@rrr%Z
BUILD_LIST�r7rr8�r^rb�r:r;r<�r_rd�Nr7N�r`rf�r7r�rhr8r@�rari)rcrergrj)rr
r)rrr'r rrr	�"test_folding_of_lists_of_constantsosz0TestTranforms.test_folding_of_lists_of_constantsc	Cs+x�dtdddh�fdtdddh�fd	tddh�fd
tdddh�fdtdddh�ffD]A\}}t|d
d�}|j|d�|j|d|�q|Wdd�}dd�}|j|d��|j|d��|j|d��|j|d��dS)Nza in {1,2,3}r7rr8za not in {"a","b","c"}r:r<r;za in {None, 1, None}za not in {(1, 2), 3, 4}r@za in {1, 2, 3, 3, 2, 1}rrZ	BUILD_SETr%cSs
|dkS)Nr7rr8>r7rr8r)r:rrr	r"�sz:TestTranforms.test_folding_of_sets_of_constants.<locals>.fcSs
|dkS)Nr7rr8>r7rr8r)r:rrr	r#�sz:TestTranforms.test_folding_of_sets_of_constants.<locals>.g)r7r)�	frozensetrrr
Z
assertTrue)rrr'r r"r#rrr	�!test_folding_of_sets_of_constants{s(z/TestTranforms.test_folding_of_sets_of_constantscCs�xld3D]d\}}t|dd�}|j|d|�x0tj|�D]}|j|jjd��qHWqWtd dd�}|j|dd�|j|dd!�td"dd�}|j|dd#�dS)4N�	a = 2+3+4rI�"@"*4�@@@@�a="abc" + "def"�abcdef�a = 3**4�Q�a = 3*4��	a = 13//4r8�a = 14%4r�a = 2+3rE�a = 13-4�a = (12,13)[1]�
�a = 13 << 2�4�a = 13 >> 2�
a = 13 & 7�
a = 13 ^ 7�
�
a = 13 | 7�rrr%�BINARY_za=2+"b"r;z
a="x"*1000i��rnrI�rorp�rqrr�rsrt�rurv�rwr8�rxr�ryrE�rzrI�r{r|�r}r~�rr8�r�rE�r�r��r�r�)r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�)rr
rYrZ�assertFalserA�
startswith)rrr'r rCrrr	�#test_folding_of_binops_on_constants�s2!z1TestTranforms.test_folding_of_binops_on_constantscCs�tddd�}|j|dd�|j|d�tddd�}|j|dd�|j|d�td	dd�}|j|dd
�|j|d�tddd�}|j|d�dS)Nz"foo"[0]rrr%r"Z
BINARY_SUBSCRu	"a￿"[1]u￿u	"𒍅"[0]u𒍅z	"fuu"[10])rr
r)rr rrr	�test_binary_subscr_on_unicode�sz+TestTranforms.test_binary_subscr_on_unicodecCsxldD]d\}}t|dd�}|j|d
|�x0tj|�D]}|j|jjd��qHWqWdd�}x0tj|�D]}|j|jjd��q�WxLd"D]D\}}}t|dd�}|j|d
|�|j||�q�WdS)#N�-0.5g�?�-0.0g�
-(1.0-1.0)�-0r�~-2r7�+1rrr%�UNARY_cSsdS)Ng�?gg�rrrrr	�negzero�szDTestTranforms.test_folding_of_unaryops_on_constants.<locals>.negzero�-"abc"�abc�UNARY_NEGATIVE�~"abc"�UNARY_INVERT�࿩r�r����r�r����r�r��r�r�r�r7�r�r7)r�r�r�r�r�r��r�r�r��r�r�r�)r�r�)rr
rYrZr�rAr�)rrr'r rCr�rArrr	�%test_folding_of_unaryops_on_constants�s(!z3TestTranforms.test_folding_of_unaryops_on_constantscCsUdd�}|j|dd�dd�tj|�D�}|jt|�d�dS)NcSs|S)Nr)rrrr	r"�sz/TestTranforms.test_elim_extra_return.<locals>.fr%cSs%g|]}|jdkr|�qS)�RETURN_VALUE)rA)rBrCrrr	rD�s	z8TestTranforms.test_elim_extra_return.<locals>.<listcomp>r7)rrYrZr[r\)rr"�returnsrrr	�test_elim_extra_return�sz$TestTranforms.test_elim_extra_returncCsbdd�}|j|d�|j|d�dd�tj|�D�}|jt|�d�dS)NcSs|r
|S|S)Nr)ZcondZ
true_valueZfalse_valuerrr	r"�sz1TestTranforms.test_elim_jump_to_return.<locals>.f�JUMP_FORWARDr*cSs%g|]}|jdkr|�qS)r�)rA)rBrCrrr	rD�s	z:TestTranforms.test_elim_jump_to_return.<locals>.<listcomp>r)rrYrZr[r\)rr"r�rrr	�test_elim_jump_to_return�s
z&TestTranforms.test_elim_jump_to_returncCsbdd�}|j|d�|j|d�dd�tj|�D�}|jt|�d�dS)NcSs2|r
dS|rdSxdSWx|r)dSdSWdS)Nr7rr8r@rErFr)�cond1�cond2rrr	r"�sz5TestTranforms.test_elim_jump_after_return1.<locals>.fr�r*cSs%g|]}|jdkr|�qS)r�)rA)rBrCrrr	rDs	z>TestTranforms.test_elim_jump_after_return1.<locals>.<listcomp>rF)rrYrZr[r\)rr"r�rrr	�test_elim_jump_after_return1�s
	z*TestTranforms.test_elim_jump_after_return1cCs�dd�}|j|d�dd�tj|�D�}|jt|�d�dd�tj|�D�}|jt|�d�dS)	NcSsx|rdSqWdS)Nr@r)r�r�rrr	r"
sz5TestTranforms.test_elim_jump_after_return2.<locals>.fr�cSs%g|]}|jdkr|�qS)r*)rA)rBrCrrr	rDs	z>TestTranforms.test_elim_jump_after_return2.<locals>.<listcomp>r7cSs%g|]}|jdkr|�qS)r�)rA)rBrCrrr	rDs	r)rrYrZr[r\)rr"r�rrr	�test_elim_jump_after_return2sz*TestTranforms.test_elim_jump_after_return2cCs dd�}|j|d�dS)NcSsdddd��}|S)Nr7)�returncSsdS)Nrrrrr	r#szBTestTranforms.test_make_function_doesnt_bail.<locals>.f.<locals>.grr)r#rrr	r"sz7TestTranforms.test_make_function_doesnt_bail.<locals>.fZ
BINARY_ADD)r)rr"rrr	�test_make_function_doesnt_bailsz,TestTranforms.test_make_function_doesnt_bailc	Cs�ddddddddd	g	}x�|D]}}t|d
d�}xbtj|�D]Q}|j|jjd��|j|jjd
��|j|jjd��qPWq(WdS)Nz3 * -5z-3 * 5z2 * (3 * 4)z(2 * 3) * 4z
(-1, 2, 3)z
(1, -2, 3)z
(1, 2, -3)z(1, 2, -3) * 6z:lambda x: x in {(3 * -5) + (-1 - 6), (1, -2, 3) * 2, None}rrr�r�ZBUILD_)rrYrZr�rAr�)rZexprs�er rCrrr	�test_constant_folding s	
z#TestTranforms.test_constant_foldingN)�__name__�
__module__�__qualname__rr!r(r+r5r]rkrmr�r�r�r�r�r�r�r�r�rrrr	r
s"	
% 	
rc@seZdZdd�ZdS)�TestBugletsc	Cs.dd�}|jt��|�WdQRXdS)NcSsddh\}}||fS)Nr7r)r�yrrr	r";sz%TestBuglets.test_bug_11510.<locals>.f)ZassertRaises�
ValueError)rr"rrr	�test_bug_115107szTestBuglets.test_bug_11510N)r�r�r�r�rrrr	r�5sr��__main__)rY�re�sys�iorZunittest�mathrZtest.bytecode_helperrrZTestCaser�r��mainrrrr	�<module>s�,