
    Ph                     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    rC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\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   s2    +0959a/9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59a/9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   s}    +0959a/957r
F1IN
)/0A_Q0

 	*%,4 6 1s
   
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>3   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48a/847q	6!9M
mALLO :&a&&)+0848a/8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   