U
    JºcR  ã                   @   s6   d dl Z ddlmZmZmZmZ G dd„ de jƒZdS )é    Né   )Úinplace_wrapperÚPassManagerÚ"these_before_those_pass_constraintÚ this_before_that_pass_constraintc                   @   s6   e Zd Zddœdd„Zddœdd„Zddœdd„ZdS )	ÚTestPassManagerN)Úreturnc                 C   s&   dd„ t dƒD ƒ}t|ƒ}| ¡  d S )Nc                 S   s   g | ]}d d„ ‘qS )c                 S   s   d|  S ©Nr   © ©Úxr
   r
   úK/tmp/pip-unpacked-wheel-gikjz4vx/torch/fx/passes/tests/test_pass_manager.pyÚ<lambda>   ó    zFTestPassManager.test_pass_manager_builder.<locals>.<listcomp>.<lambda>r
   ©Ú.0Ú_r
   r
   r   Ú
<listcomp>   s     z=TestPassManager.test_pass_manager_builder.<locals>.<listcomp>é
   )Úranger   Úvalidate©ÚselfÚpassesÚpmr
   r
   r   Útest_pass_manager_builder   s    z)TestPassManager.test_pass_manager_builderc                 C   sD   dd„ t dƒD ƒ}t|ƒ}| t|d |d ƒ¡ |  t|j¡ d S )Nc                 S   s   g | ]}d d„ ‘qS )c                 S   s   d|  S r	   r
   r   r
   r
   r   r      r   zRTestPassManager.test_this_before_that_pass_constraint.<locals>.<listcomp>.<lambda>r
   r   r
   r
   r   r      s     zITestPassManager.test_this_before_that_pass_constraint.<locals>.<listcomp>r   éÿÿÿÿr   )r   r   Úadd_constraintr   ÚassertRaisesÚRuntimeErrorr   r   r
   r
   r   Ú%test_this_before_that_pass_constraint   s    z5TestPassManager.test_this_before_that_pass_constraintc                 C   sR   dd„ t dƒD ƒ}t|d |d ƒ}tdd„ |D ƒƒ}| |¡ |  t|j¡ d S )Nc                 S   s   g | ]}d d„ ‘qS )c                 S   s   d|  S r	   r
   r   r
   r
   r   r      r   zTTestPassManager.test_these_before_those_pass_constraint.<locals>.<listcomp>.<lambda>r
   r   r
   r
   r   r      s     zKTestPassManager.test_these_before_those_pass_constraint.<locals>.<listcomp>r   r   r   c                 S   s   g | ]}t |ƒ‘qS r
   )r   )r   Úpr
   r
   r   r      s     )r   r   r   r   r   r   r   )r   r   Ú
constraintr   r
   r
   r   Ú'test_these_before_those_pass_constraint   s    ÿ
z7TestPassManager.test_these_before_those_pass_constraint)Ú__name__Ú
__module__Ú__qualname__r   r    r#   r
   r
   r
   r   r      s   	r   )ZunittestZpass_managerr   r   r   r   ZTestCaser   r
   r
   r
   r   Ú<module>   s   