
    VhQ                     N    d dl Z ddlmZmZmZmZ  G d de j                        Zy)    N   )inplace_wrapperPassManager"these_before_those_pass_constraint this_before_that_pass_constraintc                   ,    e Zd ZddZddZddZddZy)TestPassManagerNc                 v    t        d      D cg c]  }d  }}t        |      }|j                          y c c}w )N
   c                     d| z  S Nr    xs    W/home/dcms/DCMS/lib/python3.12/site-packages/torch/fx/passes/tests/test_pass_manager.py<lambda>z;TestPassManager.test_pass_manager_builder.<locals>.<lambda>   
    AE     )ranger   validateself_passespms       r   test_pass_manager_builderz)TestPassManager.test_pass_manager_builder   s1    +095a/55 
 6s   
6c                     t        d      D cg c]  }d  }}t        |      }|j                  t        |d   |d                | j	                  t
        |j                         y c c}w )Nr   c                     d| z  S r   r   r   s    r   r   zGTestPassManager.test_this_before_that_pass_constraint.<locals>.<lambda>   r   r   r   )r   r   add_constraintr   assertRaisesRuntimeErrorr   r   s       r   %test_this_before_that_pass_constraintz5TestPassManager.test_this_before_that_pass_constraint   s\    +095a/55  	:6":vayQR,4 6s   
A'c                    t        d      D cg c]  }d  }}t        |d   |d         }t        |D cg c]  }t        |       c}      }|j	                  |       | j                  t        |j                         y c c}w c c}w )Nr   c                     d| z  S r   r   r   s    r   r   zITestPassManager.test_these_before_those_pass_constraint.<locals>.<lambda>   r   r   r   r   )r   r   r   r   r    r!   r"   r   )r   r   r   
constraintpr   s         r   'test_these_before_those_pass_constraintz7TestPassManager.test_these_before_those_pass_constraint   ss    +095a/557r
F1IN
f=/!,=> 	*%,4 6=s
   
B Bc                    t        d      D cg c]  }d  }}t        |d   |d         }t               }|D ]  }|j                  |        |j	                  |        |d      }| j                  |d       t        d      D cg c]  }d  }}t        |d   |d         }t               }|D ]  }|j                  |        |j	                  |        |d      }| j                  |d       yc c}w c c}w )	z]Make sure we can construct the PassManager twice and not share any
        state between them   c                     d| z  S r   r   r   s    r   r   z8TestPassManager.test_two_pass_managers.<locals>.<lambda>(   r   r   r         c                     d| z  S )Nr*   r   r   s    r   r   z8TestPassManager.test_two_pass_managers.<locals>.<lambda>1   r   r      N)r   r   r   add_passr    assertEqual)	r   r   r   r&   pm1r'   output1pm2output2s	            r   test_two_pass_managersz&TestPassManager.test_two_pass_managers$   s     ,184a/447q	6!9M
m 	ALLO	:&a&$'+084a/447q	6!9M
m 	ALLO	:&a&$'! 5 5s   
C2
C7)returnN)__name__
__module____qualname__r   r#   r(   r6   r   r   r   r	   r	      s    
55(r   r	   )unittestpass_managerr   r   r   r   TestCaser	   r   r   r   <module>r>      s$     -(h'' -(r   