
    wi5                        d dl mZ d dlZd dlZd dlmZ d dlZd dlmZm	Z	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZ  G d	 d
ej                  Zedk    r ej        d           dS dS )    )annotationsN)assert_allclose)TensorProtohelpernumpy_helper)onnx_opset_version)ReferenceEvaluator)update_model_dims)(replace_initializer_by_constant_of_shapec                  @    e Zd ZddZd Zd Zd Zd Zd Zd	 Z	d
 Z
dS )TestToolsFunctionsreturnNonec                   t          j        dddgdgddgddg          }t          j        |gdt          j        dt          j        g d	          t          j        dt          j        g d
          gt          j        dt          j        g d          g          }t          j        |d          }t          j        |g dg d
ddg di          }t          j
                            |           |                     |j        j        d         j        j        j        j        d         j        d           |                     |j        j        d         j        j        j        j        d         j        d           |                     |j        j        d         j        j        j        j        d         j        d           |                     |j        j        d         j        j        j        j        d         j        d           d S )NConvxWy      )inputsoutputskernel_shapestridestest)   r      r   )r   r   r   r   )r   r   r   r   )producer_name)r   r   x1)r   r   )r   r   r    r    r   r   x_3y_2y_3)r   	make_node
make_graphmake_tensor_value_infor   FLOAT
make_modelr
   update_inputs_outputs_dimsonnxcheckercheck_modelassertEqualgraphinputtypetensor_typeshapedim	dim_paramoutput)selfnode_def	graph_def	model_defupdated_defs        d/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/onnx/test/tools_test.pytest_update_inputs_outputs_dimz1TestToolsFunctions.test_update_inputs_outputs_dim   s   #:EQF
 
 
 %J-c;3DlllSS-c;3DlllSS *30A<<<PPQ
 
	 %ivFFF	'B%%%!\\ 
 ^^^	
 	
 	  ---#A&+7=A!DNPT	
 	
 	
 	#A&+7=A!DNPU	
 	
 	
 	$Q',8>B1EOQV	
 	
 	
 	$Q',8>B1EOQV	
 	
 	
 	
 	
    c                V   t           j        }t           j                            dd                              |          }t          j        |d          }t          j        dg|          }t          j        |d          }t          j	        dt          j        d d g          }t          j	        d	t          j        d g          }t          j        d
ddgdg          }t          j        dddgd	g          }t          j        ||gd|g|g||g          }	t          j        |	          }
t          j        g d                              t           j                                      d          }t!          |
          }|                    d d|i          d         }t%          |
          }d |j        j        D             }|                     d|           t!          |          }d|d d d d f<   d|dd d f<   |                    d d|i          d         }t-          ||           d S )Nr   d   Anamer   dtypeCXYMatMulAXSublrr   r      r   r   rM   r   r   r   c                    h | ]	}|j         
S  op_type.0ns     r;   	<setcomp>z>TestToolsFunctions.test_replace_initializer.<locals>.<setcomp>P       999Aai999r=   ConstantOfShape      @      ?npfloat32randomrandnastyper   
from_arrayarrayr   r&   r   r'   r$   r%   r(   reshaper	   runr   r.   nodeassertInr   )r6   rD   valuer@   rE   rF   rG   node1node2r.   r9   r   oinf1y1repl
node_typesoinf2y2s                     r;   test_replace_initializerz+TestToolsFunctions.test_replace_initializer>   s   
	3''..u55#E444!E***#E444)#{/@4,OO)#{/@4&II C:v>> scU;;!5%.$aS1a&II%e,,	H'''((//
;;CCFKK"9--YYtc1X&&q)7	BB99999
'444"4((111aaa41aaa4YYtc1X&&q)Br=   c                   t           j        }t           j                            dd                              |          }t          j        |d          }t          j        dg|          }t          j        |d          }t          j	        dt          j        d d g          }t          j	        d	t          j        d g          }t          j        d
g dg|          }t          j        dddgdg          }t          j        dddgd	g          }	t          j        |||	gd|g|g|g          }
t          j        |
          }t          j        g d                              t           j                                      d          }t!          |          }|                    d d|i          d         }t%          |          }d |j        j        D             }|                     d|           t!          |          }d|d d d d f<   d|dd d f<   |                    d d|i          d         }t-          ||           d S )Nr   r?   r@   rA   r   rC   rE   rF   rG   Constantrg   rH   rI   rJ   rK   rL   rN   r   c                    h | ]	}|j         
S rP   rQ   rS   s     r;   rV   z;TestToolsFunctions.test_replace_constant.<locals>.<setcomp>k   rW   r=   rX   rY   rZ   r[   r6   rD   rg   r@   rE   rF   rG   node0rh   ri   r.   r9   r   rj   rk   rl   rm   rn   ro   s                      r;   test_replace_constantz(TestToolsFunctions.test_replace_constantX   s   
	3''..u55#E444!E***#E444)#{/@4,OO)#{/@4&II R#a@@@ C:v>> scU;;!5%"7sQC!MM%e,,	H'''((//
;;CCFKK"9--YYtc1X&&q)7	BB99999
'444"4((111aaa41aaa4YYtc1X&&q)Br=   c                   t           j        }t           j                            dd                              |          }t          j        |d          }t          j        dg|          }t          j        |d          }t          j	        dt          j        d d g          }t          j	        d	t          j        d g          }t          j        d
g dg|          }t          j        dddgdg          }t          j        dddgd	g          }	t          j        |||	gd|g|g|g          }
t          j        |
          }t          j        g d                              t           j                                      d          }t!          |          }|                    d d|i          d         }t%          |d          }d |j        j        D             }|                     d|           |                     d|           t!          |          }|                    d d|i          d         }t/          |j        |j                   d S )Nr   r?   r@   rA   r   rC   rE   rF   rG   rr   rs   rH   rI   rJ   rK   rL   rN   r   T	use_rangec                    h | ]	}|j         
S rP   rQ   rS   s     r;   rV   z8TestToolsFunctions.test_replace_range.<locals>.<setcomp>   rW   r=   RangerX   )r\   r]   r^   r_   r`   r   ra   rb   r   r&   r   r'   r$   r%   r(   rc   r	   rd   r   r.   re   rf   assertNotInr   r2   ru   s                      r;   test_replace_rangez%TestToolsFunctions.test_replace_ranges   s   
	3''..u55#E444!E***#E444)#{/@4,OO)#{/@4&II R#a@@@ C:v>> scU;;!5%"7sQC!MM%e,,	H'''((//
;;CCFKK"9--YYtc1X&&q)7	TRRR99999
gz****J777"4((YYtc1X&&q)"(+++++r=   c           
        t           j        }t           j                            dd                              |          }t          j        |d          }t          j        dg|          }t          j        |d          }t          j	        dt          j        d d g          }t          j	        d	t          j        d g          }t          j        d
g dg|          }t          j        d
g dg|          }t          j        dddgdg          }	t          j        dddgd	g          }
t          j        dt                                t          j        dd          g}t          j        dddgd	g|||	|
g|          }t          j        ddgd	gd          }t          j        |gd|g|g|g          }t          j        ||g|          }t          j        g d                              t           j                                      d          }t'          |          }|                    d d|i          d         }t+          |          }d |j        d         j        D             }|                     d|           t'          |          }d|d d d d f<   d|dd d f<   |                    d d|i          d         }t3          ||           d S )Nr   r?   r@   rA   r   rC   rE   rF   rG   rr   rs   rH   rI   rJ    customunittestdomainrK   	functionsopset_importsrL   rN   r   c                    h | ]	}|j         
S rP   rQ   rS   s     r;   rV   zDTestToolsFunctions.test_replace_constant_function.<locals>.<setcomp>       @@@Aai@@@r=   rX   rY   rZ   )r\   r]   r^   r_   r`   r   ra   rb   r   r&   r   r'   r$   make_opsetidr   make_functionr%   r(   rc   r	   rd   r   r   re   rf   r   r6   rD   rg   r@   rE   rF   rG   nodeCrv   rh   ri   r   fctre   r.   r9   r   rj   rk   rl   rm   rn   ro   s                          r;   test_replace_constant_functionz1TestToolsFunctions.test_replace_constant_function   s   
	3''..u55#E444!E***#E444)#{/@4,OO)#{/@4&II R#a@@@ R#a@@@ C:v>> scU;;$6$8$899!,,
 "EEE5%(
 
 
SEC5JJJ!4&$aS1#>>%cU-
 
 
	 H'''((//
;;CCFKK"9--YYtc1X&&q)7	BB@@):)?@@@
'444"4((111aaa41aaa4YYtc1X&&q)Br=   c           
        t           j        }t           j                            dd                              |          }t          j        |d          }t          j        dg|          }t          j        |d          }t          j	        dt          j        d d g          }t          j	        d	t          j        d g          }t          j        d
g dg|          }t          j        d
g dg|          }t          j        dddgdg          }	t          j        dddgd	g          }
t          j        dt                                t          j        dd          g}t          j        dddgd	g|||	|
g|          }t          j        ddgd	gd          }t          j        |gd|g|g|g          }t          j        ||g|          }t          j        g d                              t           j                                      d          }t'          |          }|                    d d|i          d         }t+          |d          }d |j        d         j        D             }|                     d|           |                     d|           t'          |          }|                    d d|i          d         }t5          |j        |j                   d S )Nr   r?   r@   rA   r   rC   rE   rF   rG   rr   rs   rH   rI   rJ   r   r   r   r   rK   r   rL   rN   r   Try   c                    h | ]	}|j         
S rP   rQ   rS   s     r;   rV   zATestToolsFunctions.test_replace_range_function.<locals>.<setcomp>   r   r=   r|   rX   )r\   r]   r^   r_   r`   r   ra   rb   r   r&   r   r'   r$   r   r   r   r%   r(   rc   r	   rd   r   r   re   rf   r}   r   r2   r   s                          r;   test_replace_range_functionz.TestToolsFunctions.test_replace_range_function   s   
	3''..u55#E444!E***#E444)#{/@4,OO)#{/@4&II R#a@@@ R#a@@@ C:v>> scU;;$6$8$899!,,
 "EEE5%(
 
 
SEC5JJJ!4&$aS1#>>%cU-
 
 
	 H'''((//
;;CCFKK"9--YYtc1X&&q)7	TRRR@@):)?@@@
gz****J777"4((YYtc1X&&q)"(+++++r=   c                   t          j        dgt           j                  }t          j        |d          }t          j        dt          j        j	        d d g          }t          j        dt          j        j	        d g          }t          j
        ddgdg          }t          j
        d	ddgd
g          }t          j        dt          j        j	        d           }t          j        t          j        dgdz                                t           j                            }t          j
        dg dg|d          }	t          j        |	gdg |g          }
t          j        dt          j        j	        d           }t          j        t          j        dgdz                                t           j                            }t          j
        dg dg|d          }t          j        |gdg |g          }t          j        
                    dd
gdg|
|          }t          j        |||gd|g|g|g          }t          j        |t          j        dt                                g          }|                     dt#          |                     t          j        dt           j                  }t'          |          }|                    d d|i          d         }t+          |          }|                     dt#          |                     t'          |          }|                    d d|i          d         }|                                }d|d d <   t1          ||           d S )Nr   rC   zerorA   rF   rG   	ReduceSumrsumGreatercondthen_outr      rr   cst1r   r   rg   rB   	then_bodyelse_outr    cst2	else_bodyIfthen_branchelse_branchifr   r   rX   rN   rZ   )r\   rb   r]   r   ra   r   r&   r*   r   r'   r$   r`   r%   r(   r   r   r}   stronesr	   rd   r   rf   copyr   r6   rg   r   rF   rG   r   r   r   then_cstthen_const_noder   r   else_cstelse_const_noder   if_noder.   
onnx_modelr   rj   rk   rl   rn   ro   s                           r;   test_replace_constant_graphz.TestToolsFunctions.test_replace_constant_graph   s$   !BJ///&u6:::)#t/?/Ed|TT)#t/?/EvNNcUVH==	FF+;fXFF0(.
 
  *28QC#I+>+>+E+Ebj+Q+QRR *rJ<xf
 
 
 %&7b8*UU	0(.
 
  *28RD3J+?+?+F+Frz+R+RSS *rJ<xf
 
 
 %&7b8*UU	+''6(SEyi ( 
 
 !4w"7sQC$PP&&"5b:L:N:N"O"O!P
 
 

 	*C
OO<<<GF"*---":..YYtc1X&&q)7
CC'T333"4((YYtc1X&&q)WWYY111Br=   c                   t          j        dgt           j                  }t          j        |d          }t          j        dt          j        j	        d d g          }t          j        dt          j        j	        d g          }t          j
        ddgdg          }t          j
        d	ddgd
g          }t          j        dt          j        j	        d           }t          j        t          j        dgdz                                t           j                            }t          j
        dg dg|d          }	t          j        |	gdg |g          }
t          j        dt          j        j	        d           }t          j        t          j        dgdz                                t           j                            }t          j
        dg dg|d          }t          j        |gdg |g          }t          j        
                    dd
gdg|
|          }t          j        |||gd|g|g|g          }t          j        |t          j        dt                                g          }|                     dt#          |                     t          j        dt           j                  }t'          |          }|                    d d|i          d         }t+          |d          }|                     dt#          |                     |                     dt#          |                     t'          |          }|                    d d|i          d         }t/          |j        |j                   d S ) Nr   rC   r   rA   rF   rG   r   r   r   r   r   r   r   rr   r   r   r   r   r    r   r   r   r   r   r   r   rX   rN   Try   r|   )r\   rb   r]   r   ra   r   r&   r*   r   r'   r$   r`   r%   r(   r   r   r}   r   r   r	   rd   r   rf   r   r2   r   s                           r;   test_replace_range_graphz+TestToolsFunctions.test_replace_range_graph  s/   !BJ///&u6:::)#t/?/Ed|TT)#t/?/EvNNcUVH==	FF+;fXFF0(.
 
  *28QC#I+>+>+E+Ebj+Q+QRR *rJ<xf
 
 
 %&7b8*UU	0(.
 
  *28RD3J+?+?+F+Frz+R+RSS *rJ<xf
 
 
 %&7b8*UU	+''6(SEyi ( 
 
 !4w"7sQC$PP&&"5b:L:N:N"O"O!P
 
 

 	*C
OO<<<GF"*---":..YYtc1X&&q)7
dSSS*CII666gs4yy)))"4((YYtc1X&&q)"(+++++r=   N)r   r   )__name__
__module____qualname__r<   rp   rw   r~   r   r   r   r   rP   r=   r;   r   r      s        (
 (
 (
 (
T     4     6, , ,4*  *  * X), ), ),V/  /  / b., ., ., ., .,r=   r   __main__r   )	verbosity)
__future__r   r   numpyr\   numpy.testingr   r*   r   r   r   	onnx.defsr   onnx.referencer	   
onnx.toolsr
   onnx.tools.replace_constantsr   TestCaser   r   mainrP   r=   r;   <module>r      s   # " " " " "      ) ) ) ) ) )  2 2 2 2 2 2 2 2 2 2 ( ( ( ( ( ( - - - - - - ( ( ( ( ( ( Q Q Q Q Q Qp, p, p, p, p,* p, p, p,f	 zHMA r=   