
    i0                     j    S SK r S SKrS SKrS SKrS SKJrJr  S SKJr   " S S\R                  5      r
g)    N)extract_out_argumentsget_schema_for_operators)add_cursor_to_graphc                   2    \ rS rSrSS jrSS jrSS jrSrg)TestExirCommon   Nc                     / SQn[        U5      n[        R                  " S5      nUR                  5        H*  u  pEU R	                  [        R
                  " X55      5        M,     g )N)z"torch.ops._caffe2.RoIAlign.defaultztorch.ops.aten.add.Tensorz!torch.ops.aten.batch_norm.defaultztorch.ops.aten.cat.defaultztorch.ops.aten.clamp.defaultz[^\(]+\([^\)]+\) -> )r   recompileitemsassertIsNotNonematch)selfop_listschemaspat_op_nameschemas         `/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/executorch/exir/tests/test_common.pytest_get_schema_for_operators,TestExirCommon.test_get_schema_for_operators   sN    
 +73jj01 'H  #!67 !0    c                    [         R                  R                  S5      n[         R                  R                  S5      n[        US[         R                  " S5      05      n[        US[         R                  " S5      [         R                  " S5      /05      nUu  pVU R                  US5        Uu  pvU R                  US5        g )Nz@aten::absolute.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)zXsplit_copy.Tensor_out(Tensor self, int split_size, int dim=0, *, Tensor(a!)[] out) -> ()out   )torch_Cparse_schemar   onesassertEqual)r   schema1schema2
out_args_1
out_args_2out_arg_name_1_out_arg_name_2s           r   test_get_out_args TestExirCommon.test_get_out_args"   s    ((''N
 ((''f
 +7UEJJqM4JK
*eejjmUZZ];<

 '/&/r   c                 D    " S S[         R                  R                  5      nU" 5       nSSKJn  U" U5      n[        UR                  [        UR                  R                  5      S   5      nU R                  UR                  S5      S   R                  S5      5        g )	Nc                   .   ^  \ rS rSrU 4S jrS rSrU =r$ )0TestExirCommon.test_add_cursor.<locals>.MyModule6   c                    > [         TU ]  5         [        R                  R	                  [        R
                  " SS5      5      U l        [        R                  R                  SS5      U l        g )N      r   )	super__init__r   nn	ParameterrandparamLinearlinear)r   	__class__s    r   r2   9TestExirCommon.test_add_cursor.<locals>.MyModule.__init__7   sE     ""XX//

1a0@A
#hhooa3r   c                 X    U R                  XR                  -   5      R                  SSS9$ )Ng        g      ?)minmax)r8   r6   clamp)r   xs     r   forward8TestExirCommon.test_add_cursor.<locals>.MyModule.forward<   s'    {{1zz>288Sc8JJr   )r8   r6   )__name__
__module____qualname____firstlineno__r2   r@   __static_attributes____classcell__)r9   s   @r   MyModuler,   6   s    4
K Kr   rH   r   )symbolic_tracer/   
r0   z-->)r   r3   Moduletorch.fxrI   r   graphlistnodes
assertTruesplit
startswith)r   rH   modulerI   symbolic_traced
actual_strs         r   test_add_cursorTestExirCommon.test_add_cursor5   s    	Kuxx 	K +(0 )!!4(=(=(C(C#DQ#G

 	
((.q1<<UCDr    )returnN)rB   rC   rD   rE   r   r(   rV   rF   rX   r   r   r   r      s    80&Er   r   )r
   unittestr   rL   executorch.exir.commonr   r   executorch.exir.print_programr   TestCaser   rX   r   r   <module>r^      s-    
    R =>EX&& >Er   