File: //usr/local/lib/python3.7/test/__pycache__/test_peepholer.cpython-37.opt-1.pyc
B
��g<3 � @ sR d dl Z d dlZd dlmZ G dd� de�ZG dd� dej�ZedkrNe�� dS )� N)�BytecodeTestCasec @ s� e Zd Zdd� Zdd� Zdd� Zdd� Zd d
� Zdd� Zd
d� Z dd� Z
dd� Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd� Zdd � Zd!d"� Zd#d$� Zd%S )&�
TestTranformsc C s0 dd� }| � |d� | � |d� | �|d� d S )Nc S s | dks
~ d S )N� � )�xr r �//usr/local/lib/python3.7/test/test_peepholer.py�unot
s z%TestTranforms.test_unot.<locals>.unotZ UNARY_NOT�POP_JUMP_IF_FALSEZPOP_JUMP_IF_TRUE)�assertNotInBytecode�assertInBytecode)�selfr r r r � test_unot s zTestTranforms.test_unotc C s0 x*dD ]"\}}t |dd�}| �|d|� qW d S )N))z
not a is bzis not)z
not a in bznot in)znot a is not b�is)znot a not in b�in� �singleZ
COMPARE_OP)�compiler )r �lineZcmp_op�coder r r �test_elim_inversion_of_is_or_in s z-TestTranforms.test_elim_inversion_of_is_or_inc C s| dd� }dd� }dd� }x<|d f|df|dffD ]"\}}| � |d � | �|d
|� q0W dd� }| � |d � | �|d
d � d S )Nc S s d } d } | S )Nr )r r r r �f s z0TestTranforms.test_global_as_constant.<locals>.fc S s d} | S )NTr )r r r r �g! s z0TestTranforms.test_global_as_constant.<locals>.gc S s d} | S )NFr )r r r r �h$ s z0TestTranforms.test_global_as_constant.<locals>.hTFZLOAD_GLOBAL�
LOAD_CONSTc S s dS )z1Adding a docstring made this test fail in Py2.5.0Nr r r r r r , s )r
r )r r r r �func�elemr r r �test_global_as_constant s z%TestTranforms.test_global_as_constantc C s@ dd� }xdD ]}| � ||� qW xdD ]}| �||� q(W d S )Nc S s
xqW t S )N)�listr r r r r 5 s z'TestTranforms.test_while_one.<locals>.f)r r )�
JUMP_ABSOLUTE)r
r )r r r r r r �test_while_one3 s
zTestTranforms.test_while_onec C sF x@dD ]8\}}t |dd�}| �||� | �|d� | �|d� qW d S )N))za, = a,r )za, b = a, bZROT_TWO)za, b, c = a, b, cZ ROT_THREEr r �BUILD_TUPLEZUNPACK_TUPLE)r r r
)r r r r r r r �test_pack_unpack>