Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.9/test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.9/test/__pycache__/test_peepholer.cpython-39.opt-1.pyc

a

��g�P�@sZddlZddlZddlmZdd�ZGdd�de�ZGdd�dej�Zed	krVe�	�dS)
�N)�BytecodeTestCasecCs^d}t�|�D]}|j|kr|d7}qt|d�r6|j}|jD]}t|d�r<|t||�7}q<|S)Nr��__code__�co_code)�dis�get_instructions�opname�hasattrr�	co_consts�count_instr_recursively)�fr�count�instr�c�r�//usr/local/lib/python3.9/test/test_peepholer.pyrs




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�Zd9S):�
TestTranformsc
Cs�tt�|��}dd�|D�}|D]�}d|jvr0q ||j}|jdvrl|�|j�d|j�d|j�d|j���|jdvr�|jdkr�|�|j�d|j�d|j�d|j���d|jvr d	|jvr |�|j�d|j�d|j�d|j���q dS)
NcSsi|]}|j|�qSr)�offset��.0rrrr�
<dictcomp>�z4TestTranforms.check_jump_targets.<locals>.<dictcomp>ZJUMP_)�
JUMP_ABSOLUTE�JUMP_FORWARDz at z
 jumps to �RETURN_VALUEZ_OR_POPZJUMP_IF_)�listrrrZargvalZfailr)�self�codeZinstructions�targetsrZtgtrrr�check_jump_targetss4


��
�����z TestTranforms.check_jump_targetscCs^t�|�}tt�|��}tdd�|D��}tdd�|D��}|�|d�|�|t|j	��dS)z0Check that the lnotab byte offsets are sensible.css|]}|dVqdS�rNr�r�trrr�	<genexpr>1rz-TestTranforms.check_lnotab.<locals>.<genexpr>css|]}|dVqdSr rr!rrrr#2rrN)
rZ_get_code_objectrZfindlinestarts�min�maxZassertGreaterEqualZ
assertLess�lenr)rrZlnotabZmin_bytecodeZmax_bytecoderrr�check_lnotab+s
zTestTranforms.check_lnotabcCs:dd�}|�|d�|�|d�|�|d�|�|�dS)NcSs|dks
~dS)N�r��xrrr�unot;sz%TestTranforms.test_unot.<locals>.unotZ	UNARY_NOT�POP_JUMP_IF_FALSE�POP_JUMP_IF_TRUE��assertNotInBytecode�assertInBytecoder')rr+rrr�	test_unot9s
zTestTranforms.test_unotcCs8dD].\}}}t|dd�}|�|||�|�|�qdS)N))z
not a is b�IS_OPr)znot a is not br2r)z
not a in b�CONTAINS_OPr)znot a not in br3r��single)�compiler0r')r�lineZcmp_op�invertrrrr�test_elim_inversion_of_is_or_inCsz-TestTranforms.test_elim_inversion_of_is_or_incCs�dd�}dd�}dd�}|df|df|dffD],\}}|�|d	�|�|d
|�|�|�q.dd�}|�|d	�|�|d
d�|�|�dS)NcSsd}d}|S�Nrr)rrrrPsz0TestTranforms.test_global_as_constant.<locals>.fcSsd}|S)NTrr)rrr�gTsz0TestTranforms.test_global_as_constant.<locals>.gcSsd}|S)NFrr)rrr�hWsz0TestTranforms.test_global_as_constant.<locals>.hTFZLOAD_GLOBAL�
LOAD_CONSTcSsdS)z1Adding a docstring made this test fail in Py2.5.0Nrrrrrr`sr.)rrr;r<�func�elemrrr�test_global_as_constantNsz%TestTranforms.test_global_as_constantcCsBdd�}dD]}|�||�qdD]}|�||�q"|�|�dS)NcSsqtSr:)rrrrrrjsz'TestTranforms.test_while_one.<locals>.f)r=r,�rr.)rrr?rrr�test_while_onehszTestTranforms.test_while_onecCsLdD]B\}}t|dd�}|�||�|�|d�|�|d�|�|�qdS)N))za, = a,r=)za, b = a, bZROT_TWO)za, b, c = a, b, cZ	ROT_THREEr4r5�BUILD_TUPLEZUNPACK_TUPLE�r6r0r/r'�rr7r?rrrr�test_pack_unpacktszTestTranforms.test_pack_unpackcCs�dD]8\}}t|dd�}|�|d|�|�|d�|�|�qttttd���dd�}|�|d�dd�t�|�D�}|�	t
|�d	�|�|�d
d�}|�|�dS)N))z	a = 1,2,3�rr(�)z
("a","b","c")��a�br)z
a,b,c = 1,2,3rG)z(None, 1, None)�NrN)z((1, 2), 3, 4)��rr(rH�r4r5r=rC�'cSsg|]}|jdkr|�qS)r=�rrrrr�
<listcomp>�s
�zETestTranforms.test_folding_of_tuples_of_constants.<locals>.<listcomp>r(cSsgd�fdS)N)drrr(rHrO�����	rrr(rHrOrSrTrUrVrWrrr(rHrOrSrTrUrVrWrrr(rHrOrSrTrUrVrWrrr(rHrOrSrTrUrVrWrrr(rHrOrSrTrUrVrWrrr(rHrOrSrTrUrVrWrrr(rHrOrSrTrUrVrWrrr(rHrOrSrTrUrVrWrrr(rHrOrSrTrUrVrWrrrrr�crater�szATestTranforms.test_folding_of_tuples_of_constants.<locals>.crater)r6r0r/r'�repr�tuple�rangerr�assertEqualr&)rr7r?rZload_constsrXrrr�#test_folding_of_tuples_of_constants�s

z1TestTranforms.test_folding_of_tuples_of_constantscCsBdD]8\}}t|dd�}|�|d|�|�|d�|�|�qdS)N))za in [1,2,3]rG)za not in ["a","b","c"]rI)za in [None, 1, None]rL)za not in [(1, 2), 3, 4]rMr4r5r=�
BUILD_LISTrDrErrr�"test_folding_of_lists_of_constants�s
z0TestTranforms.test_folding_of_lists_of_constantscCs�dthd��fdthd��fdtddh�fdthd��fd	thd��ffD]8\}}t|d
d�}|�|d�|�|d
|�|�|�qJdd�}dd�}|�|d��|�|d��|�|�|�|d��|�|d��|�|�dS)Nza in {1,2,3}�rr(rHza not in {"a","b","c"}>rJrrKza in {None, 1, None}rza not in {(1, 2), 3, 4}>rNrHrOza in {1, 2, 3, 3, 2, 1}r4r5Z	BUILD_SETr=cSs|dvS�Nr`r�rJrrrr�sz:TestTranforms.test_folding_of_sets_of_constants.<locals>.fcSs|dvSrarrbrrrr;�sz:TestTranforms.test_folding_of_sets_of_constants.<locals>.grHrO)�	frozensetr6r/r0r'�
assertTrue)rr7r?rrr;rrr�!test_folding_of_sets_of_constants�s$�
z/TestTranforms.test_folding_of_sets_of_constantscCs,dD]N\}}t|dd�}|�|d|�t�|�D]}|�|j�d��q0|�|�qtddd�}|�|dd�|�|dd�|�|�td	dd�}|�|dd
�|�dd
|j	�|�|�tddd�}|�|dd
�|�dd
>|j	�|�|�tddd�}|�|dd
�|�dd
|j	�|�|�dS)N))z	a = 2+3+4rW)z"@"*4z@@@@)za="abc" + "def"Zabcdef)za = 3**4�Q)za = 3*4�)z	a = 13//4rH)za = 14%4r()za = 2+3rS)za = 13-4rW)za = (12,13)[1]�
)za = 13 << 2�4)za = 13 >> 2rH)z
a = 13 & 7rS)z
a = 13 ^ 7�
)z
a = 13 | 7�r4r5r=�BINARY_za=2+"b"r(rKza="x"*10000rPr*z	a=1<<1000i�rz	a=2**1000)
r6r0rr�assertFalser�
startswithr'ZassertNotInr
)rr7r?rrrrr�#test_folding_of_binops_on_constants�s,


z1TestTranforms.test_folding_of_binops_on_constantscCs�tddd�}|�|dd�|�|d�|�|�tddd�}|�|dd�|�|d�|�|�td	dd�}|�|dd
�|�|d�|�|�tddd�}|�|d�|�|�dS)Nz"foo"[0]r4r5r=rZ
BINARY_SUBSCRu	"a￿"[1]u￿u	"𒍅"[0]u𒍅z	"fuu"[10]rD)rrrrr�test_binary_subscr_on_unicode�s


z+TestTranforms.test_binary_subscr_on_unicodecCs�dD]N\}}t|dd�}|�|d|�t�|�D]}|�|j�d��q0|�|�qdd�}t�|�D]}|�|j�d��qf|�|�dD]:\}}}t|dd�}|�|d|�|�||�|�|�q�dS)	N))z-0.5g�)z-0.0��)z
-(1.0-1.0)rq)z-0r)z~-2r)z+1rr4r5r=�UNARY_cSsdS)Nrqrrrrr�negzero&szDTestTranforms.test_folding_of_unaryops_on_constants.<locals>.negzero))z-"abc"�abcZUNARY_NEGATIVE)z~"abc"rtZUNARY_INVERT)r6r0rrrmrrnr')rr7r?rrrsrrrr�%test_folding_of_unaryops_on_constantss
z3TestTranforms.test_folding_of_unaryops_on_constantscCsHdd�}|�|dd�dd�t�|�D�}|�t|�d�|�|�dS)NcSs|Sr:rr)rrrr9sz/TestTranforms.test_elim_extra_return.<locals>.fr=cSsg|]}|jdkr|�qS�rrQrrrrrR<s
�z8TestTranforms.test_elim_extra_return.<locals>.<listcomp>r)r/rrr\r&r'�rr�returnsrrr�test_elim_extra_return7s
z$TestTranforms.test_elim_extra_returncCs\dd�}|�|�|�|d�|�|d�dd�t�|�D�}|�t|�d�|�|�dS)NcSs|r|S|Sr:r)�condZ
true_valueZfalse_valuerrrrCs�z1TestTranforms.test_elim_jump_to_return.<locals>.frrcSsg|]}|jdkr|�qSrvrQrrrrrRJs
�z:TestTranforms.test_elim_jump_to_return.<locals>.<listcomp>r()rr/rrr\r&r'rwrrr�test_elim_jump_to_returnAs
z&TestTranforms.test_elim_jump_to_returncCs dd�}|�|�|�|�dS)NcSstrtstrt�nt�dSr:)rJr�d�fooZbazrrrrrQs�z6TestTranforms.test_elim_jump_to_uncond_jump.<locals>.f�rr'�rrrrr�test_elim_jump_to_uncond_jumpOs
z+TestTranforms.test_elim_jump_to_uncond_jumpcCs dd�}|�|�|�|�dS)NcSs|rtstrt�}qdSr:)rr|r}rbrrrr^s
�z7TestTranforms.test_elim_jump_to_uncond_jump2.<locals>.fr~rrrr�test_elim_jump_to_uncond_jump2\s
z,TestTranforms.test_elim_jump_to_uncond_jump2cCs�dd�}|�|�|�|�|�t|d�d�dd�}|�|�|�|�|�t|d�d�dd�}|�|�|�|�|�|d�|�|d�|�|d�d	d�}|�|�|�|�|�|d�|�|d�|�|d
�dS)NcSs|o
|o
|Sr:rrIrrrrjs�z7TestTranforms.test_elim_jump_to_uncond_jump3.<locals>.fZJUMP_IF_FALSE_OR_POPr(cSs|p
|p
|Sr:rrIrrrrqs�ZJUMP_IF_TRUE_OR_POPcSs|r|p
|Sr:rrIrrrrxs�r,cSs|s|o
|Sr:rrIrrrr�s�r-)rr'r\rr/r0rrrr�test_elim_jump_to_uncond_jump3gs(







z,TestTranforms.test_elim_jump_to_uncond_jump3cCsRdd�}|�|d�|�|d�dd�t�|�D�}|�t|�d�|�|�dS)NcSs |rdS|rdSdS|rdSdS)Nrr(rHrOrSrTr�Zcond1Zcond2rrrr�sz5TestTranforms.test_elim_jump_after_return1.<locals>.frrcSsg|]}|jdkr|�qSrvrQrrrrrR�s
�z>TestTranforms.test_elim_jump_after_return1.<locals>.<listcomp>rT)r/rr�assertLessEqualr&r'rwrrr�test_elim_jump_after_return1�s	z*TestTranforms.test_elim_jump_after_return1cCsjdd�}|�|d�dd�t�|�D�}|�t|�d�dd�t�|�D�}|�t|�d�|�|�dS)	NcSs|rdSqdS)NrOrr�rrrr�sz5TestTranforms.test_elim_jump_after_return2.<locals>.frcSsg|]}|jdkr|�qSrArQrrrrrR�s
�z>TestTranforms.test_elim_jump_after_return2.<locals>.<listcomp>rcSsg|]}|jdkr|�qSrvrQrrrrrR�s
�r()r/rrr\r&r�r'rwrrr�test_elim_jump_after_return2�sz*TestTranforms.test_elim_jump_after_return2cCs"dd�}|�|d�|�|�dS)NcSsdd�dd�}|S)Nr()�returncSsdSr:rrrrrr;�szBTestTranforms.test_make_function_doesnt_bail.<locals>.f.<locals>.gr)r;rrrr�sz7TestTranforms.test_make_function_doesnt_bail.<locals>.fZ
BINARY_ADD)r/r'rrrr�test_make_function_doesnt_bail�sz,TestTranforms.test_make_function_doesnt_bailcCsrgd�}|D]`}t|dd�}t�|�D]:}|�|j�d��|�|j�d��|�|j�d��q&|�|�qdS)N)	z3 * -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}r4r5rrrlZBUILD_)r6rrrmrrnr')rZexprs�errrrr�test_constant_folding�sz#TestTranforms.test_constant_foldingcCs(dd�}|�t|d�d�|�|�dS)NcSstttfvSr:)r*rJrKrrrr�containtest�sz7TestTranforms.test_in_literal_list.<locals>.containtestr^r�r\rr')rr�rrr�test_in_literal_list�sz"TestTranforms.test_in_literal_listcCs(dd�}|�t|d�d�|�|�dS)NcSsttfD]}qdSr:)rJrKr)rrr�forloop�sz8TestTranforms.test_iterate_literal_list.<locals>.forloopr^rr�)rr�rrr�test_iterate_literal_list�sz'TestTranforms.test_iterate_literal_listcCs$dd�}|�|�d�|�|�dS)NcSsdsdrdSdS)NTFrrrrrrrr�sz=TestTranforms.test_condition_with_binop_with_bools.<locals>.fr)r\r'rrrr�$test_condition_with_binop_with_bools�sz2TestTranforms.test_condition_with_binop_with_boolscCs$dd�}|�|d��|�|�dS)NcSs|rndrdSdS)NTFrr)rrrr�s
z3TestTranforms.test_if_with_if_expression.<locals>.fT)rdr'rrrr�test_if_with_if_expression�sz(TestTranforms.test_if_with_if_expressioncCsdd�}|�|�dS)NcSsdSdS)NrHrSrTrr)rrrr�sz+TestTranforms.test_trailing_nops.<locals>.f)r'rrrr�test_trailing_nops�sz TestTranforms.test_trailing_nopscCsldd�}|�t|d�d�dd�}|�t|d�d�dd�}|�t|d�d�d	d
�}|�t|d�d�dS)NcSsdd�tD�S)NcSsg|]}t|�}|�qSr�r�rr*�yrrrrR�rz[TestTranforms.test_assignment_idiom_in_comprehensions.<locals>.listcomp.<locals>.<listcomp>rbrrrr�listcomp�szGTestTranforms.test_assignment_idiom_in_comprehensions.<locals>.listcompZFOR_ITERrcSsdd�tD�S)NcSsh|]}t|�}|�qSrr�r�rrr�	<setcomp>�rzYTestTranforms.test_assignment_idiom_in_comprehensions.<locals>.setcomp.<locals>.<setcomp>rbrrrr�setcomp�szFTestTranforms.test_assignment_idiom_in_comprehensions.<locals>.setcompcSsdd�tD�S)NcSsi|]}t|�}||�qSrr�r�rrrr�rz[TestTranforms.test_assignment_idiom_in_comprehensions.<locals>.dictcomp.<locals>.<dictcomp>rbrrrr�dictcomp�szGTestTranforms.test_assignment_idiom_in_comprehensions.<locals>.dictcompcSsdd�tD�S)Ncss|]}t|�}|VqdSr:r�r�rrrr#�rzYTestTranforms.test_assignment_idiom_in_comprehensions.<locals>.genexpr.<locals>.<genexpr>rbrrrr�genexpr�szFTestTranforms.test_assignment_idiom_in_comprehensions.<locals>.genexpr)r\r)rr�r�r�r�rrr�'test_assignment_idiom_in_comprehensions�sz5TestTranforms.test_assignment_idiom_in_comprehensionsN)�__name__�
__module__�__qualname__rr'r1r9r@rBrFr]r_rerorpruryr{r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrs8
(
,!

#	rc@seZdZdd�Zdd�ZdS)�TestBugletscCs<dd�}|�t��|�Wd�n1s.0YdS)NcSsddh\}}||fS)Nrr)r*r�rrrrsz%TestBuglets.test_bug_11510.<locals>.f)ZassertRaises�
ValueErrorrrrr�test_bug_11510szTestBuglets.test_bug_11510c	Cs2td�D]$}zt�Wqtpty*Yq0qdS)Nrj)r[�	Exception)r�irrr�test_bpo_42057
s
zTestBuglets.test_bpo_42057N)r�r�r�r�r�rrrrr�s
r��__main__)
rZunittestZtest.support.bytecode_helperrrrZTestCaser�r��mainrrrr�<module>s
p

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists