
    Si5                        S SK Jr  S SKrS SKrS SKJr  S SKrS SKJrJ	r	J
r
  S SKJr  S SKJr  S SKJr  S SKJr   " S	 S
\R&                  5      r\S:X  a  \R,                  " SS9  gg)    )annotationsN)assert_allclose)TensorProtohelpernumpy_helper)onnx_opset_version)ReferenceEvaluator)update_model_dims)(replace_initializer_by_constant_of_shapec                  H    \ rS rSrSS jrS rS rS rS rS r	S r
S	 rS
rg)TestToolsFunctions   c                   [         R                  " SSS/S/SS/SS/S9n[         R                  " U/S[         R                  " S[        R
                  / S	Q5      [         R                  " S[        R
                  / S
Q5      /[         R                  " S[        R
                  / SQ5      /5      n[         R                  " USS9n[        R                  " U/ SQ/ S
QS.S/ SQ05      n[        R                  R                  U5        U R                  UR                  R                  S   R                  R                   R"                  R$                  S   R&                  S5        U R                  UR                  R                  S   R                  R                   R"                  R$                  S   R&                  S5        U R                  UR                  R(                  S   R                  R                   R"                  R$                  S   R&                  S5        U R                  UR                  R(                  S   R                  R                   R"                  R$                  S   R&                  S5        g )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        S/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/onnx/test/tools_test.pytest_update_inputs_outputs_dim1TestToolsFunctions.test_update_inputs_outputs_dim   s   ##:EQF
 %%J--c;3D3DlS--c;3D3DlS **30A0A<PQ
	 %%ivF	'BB%!
 ^	
 	  -##A&++77==AA!DNNPT	
 	##A&++77==AA!DNNPU	
 	$$Q',,88>>BB1EOOQV	
 	$$Q',,88>>BB1EOOQV	
    c                f   [         R                  n[         R                  R                  SS5      R	                  U5      n[
        R                  " USS9n[         R                  " S/US9n[
        R                  " USS9n[        R                  " S[        R                  S S /5      n[        R                  " S	[        R                  S /5      n[        R                  " S
SS/S/5      n[        R                  " SSS/S	/5      n[        R                  " Xx/SU/U/X4/5      n	[        R                  " U	5      n
[         R                  " / SQ5      R	                  [         R                  5      R                  S5      n[!        U
5      nUR#                  S SU05      S   n[%        U
5      nUR&                  R(                   Vs1 s H  oR*                  iM     nnU R-                  SU5        [!        U5      nSUS S 2S S 24'   SUSS S 24'   UR#                  S SU05      S   n[/        UU5        g s  snf )Nr   d   Anamer   dtypeCXYMatMulAXSublrr   r      r   r   rM   r   r   r   ConstantOfShape      @      ?npfloat32randomrandnastyper   
from_arrayarrayr   r%   r   r&   r#   r$   r'   reshaper	   runr   r-   nodeop_typeassertInr   )r5   rD   valuer@   rE   rF   rG   node1node2r-   r8   r   oinf1y1repln
node_typesoinf2y2s                      r:   test_replace_initializer+TestToolsFunctions.test_replace_initializer>   s   

		3'..u5##E4!E*##E4))#{/@/@4,O))#{/@/@4&I  C:v>  scU;!!5.$aS1&I%%e,	HH'(//

;CCFK"9-YYtc1X&q)7	B)-9Aii
9'4"4(1a41a4YYtc1X&q)B :s   H.c                   [         R                  n[         R                  R                  SS5      R	                  U5      n[
        R                  " USS9n[         R                  " S/US9n[
        R                  " USS9n[        R                  " S[        R                  S S /5      n[        R                  " S	[        R                  S /5      n[        R                  " S
/ S/US9n[        R                  " SSS/S/5      n[        R                  " SSS/S	/5      n	[        R                  " XxU	/SU/U/U/5      n
[        R                  " U
5      n[         R                  " / SQ5      R	                  [         R                  5      R                  S5      n[!        U5      nUR#                  S SU05      S   n[%        U5      nUR&                  R(                   Vs1 s H  nUR*                  iM     nnU R-                  SU5        [!        U5      nSUS S 2S S 24'   SUSS S 24'   UR#                  S SU05      S   n[/        UU5        g s  snf )Nr   r?   r@   rA   r   rC   rE   rF   rG   Constantr_   rH   rI   rJ   rK   rL   rN   r   rO   rP   rQ   rR   r5   rD   r_   r@   rE   rF   rG   node0r`   ra   r-   r8   r   rb   rc   rd   re   rf   rg   rh   s                       r:   test_replace_constant(TestToolsFunctions.test_replace_constantX   s   

		3'..u5##E4!E*##E4))#{/@/@4,O))#{/@/@4&I  R#a@  C:v>  scU;!!5"7sQC!M%%e,	HH'(//

;CCFK"9-YYtc1X&q)7	B)-9Aaii
9'4"4(1a41a4YYtc1X&q)B :s   Ic                   [         R                  n[         R                  R                  SS5      R	                  U5      n[
        R                  " USS9n[         R                  " S/US9n[
        R                  " USS9n[        R                  " S[        R                  S S /5      n[        R                  " S	[        R                  S /5      n[        R                  " S
/ S/US9n[        R                  " SSS/S/5      n[        R                  " SSS/S	/5      n	[        R                  " XxU	/SU/U/U/5      n
[        R                  " U
5      n[         R                  " / SQ5      R	                  [         R                  5      R                  S5      n[!        U5      nUR#                  S SU05      S   n[%        USS9nUR&                  R(                   Vs1 s H  nUR*                  iM     nnU R-                  SU5        U R/                  SU5        [!        U5      nUR#                  S SU05      S   n[1        UR2                  UR2                  5        g s  snf )Nr   r?   r@   rA   r   rC   rE   rF   rG   rl   rm   rH   rI   rJ   rK   rL   rN   r   T	use_rangeRangerO   )rS   rT   rU   rV   rW   r   rX   rY   r   r%   r   r&   r#   r$   r'   rZ   r	   r[   r   r-   r\   r]   r^   assertNotInr   r1   rn   s                       r:   test_replace_range%TestToolsFunctions.test_replace_ranges   s   

		3'..u5##E4!E*##E4))#{/@/@4,O))#{/@/@4&I  R#a@  C:v>  scU;!!5"7sQC!M%%e,	HH'(//

;CCFK"9-YYtc1X&q)7	TR)-9Aaii
9gz**J7"4(YYtc1X&q)"((+ :s   Ic           
        [         R                  n[         R                  R                  SS5      R	                  U5      n[
        R                  " USS9n[         R                  " S/US9n[
        R                  " USS9n[        R                  " S[        R                  S S /5      n[        R                  " S	[        R                  S /5      n[        R                  " S
/ S/US9n[        R                  " S
/ S/US9n[        R                  " SSS/S/5      n	[        R                  " SSS/S	/5      n
[        R                  " S[        5       5      [        R                  " SS5      /n[        R                  " SSS/S	/XxX/U5      n[        R                  " SS/S	/SS9n[        R                   " U/SU/U/U/5      n[        R"                  " X/US9n[         R                  " / SQ5      R	                  [         R                  5      R%                  S5      n['        U5      nUR)                  S SU05      S   n[+        U5      nUR,                  S   R.                   Vs1 s H  nUR0                  iM     nnU R3                  SU5        ['        U5      nSUS S 2S S 24'   SUSS S 24'   UR)                  S SU05      S   n[5        UU5        g s  snf )Nr   r?   r@   rA   r   rC   rE   rF   rG   rl   rm   rH   rI   rJ    customunittestdomainrK   	functionsopset_importsrL   rN   r   rO   rP   rQ   )rS   rT   rU   rV   rW   r   rX   rY   r   r%   r   r&   r#   make_opsetidr   make_functionr$   r'   rZ   r	   r[   r   r   r\   r]   r^   r   r5   rD   r_   r@   rE   rF   rG   nodeCro   r`   ra   r   fctr\   r-   r8   r   rb   rc   rd   re   rf   rg   rh   s                           r:   test_replace_constant_function1TestToolsFunctions.test_replace_constant_function   s   

		3'..u5##E4!E*##E4))#{/@/@4,O))#{/@/@4&I  R#a@  R#a@  C:v>  scU;$6$89!,
 ""EE5(
 
SEC5J!!4&$aS1#>%%U-
	 HH'(//

;CCFK"9-YYtc1X&q)7	B)-):)?)?@)?Aaii)?
@'4"4(1a41a4YYtc1X&q)B As   #Kc           
        [         R                  n[         R                  R                  SS5      R	                  U5      n[
        R                  " USS9n[         R                  " S/US9n[
        R                  " USS9n[        R                  " S[        R                  S S /5      n[        R                  " S	[        R                  S /5      n[        R                  " S
/ S/US9n[        R                  " S
/ S/US9n[        R                  " SSS/S/5      n	[        R                  " SSS/S	/5      n
[        R                  " S[        5       5      [        R                  " SS5      /n[        R                  " SSS/S	/XxX/U5      n[        R                  " SS/S	/SS9n[        R                   " U/SU/U/U/5      n[        R"                  " X/US9n[         R                  " / SQ5      R	                  [         R                  5      R%                  S5      n['        U5      nUR)                  S SU05      S   n[+        USS9nUR,                  S   R.                   Vs1 s H  nUR0                  iM     nnU R3                  SU5        U R5                  SU5        ['        U5      nUR)                  S SU05      S   n[7        UR8                  UR8                  5        g s  snf )Nr   r?   r@   rA   r   rC   rE   rF   rG   rl   rm   rH   rI   rJ   rz   r{   r|   r}   rK   r   rL   rN   r   Trs   ru   rO   )rS   rT   rU   rV   rW   r   rX   rY   r   r%   r   r&   r#   r   r   r   r$   r'   rZ   r	   r[   r   r   r\   r]   r^   rv   r   r1   r   s                           r:   test_replace_range_function.TestToolsFunctions.test_replace_range_function   s   

		3'..u5##E4!E*##E4))#{/@/@4,O))#{/@/@4&I  R#a@  R#a@  C:v>  scU;$6$89!,
 ""EE5(
 
SEC5J!!4&$aS1#>%%U-
	 HH'(//

;CCFK"9-YYtc1X&q)7	TR)-):)?)?@)?Aaii)?
@gz**J7"4(YYtc1X&q)"((+ As   "K!c                   [         R                  " S/[         R                  S9n[        R                  " USS9n[
        R                  " S[        R                  R                  S S /5      n[
        R                  " S[        R                  R                  S /5      n[
        R                  " SS/S/5      n[
        R                  " S	SS/S
/5      n[
        R                  " S[        R                  R                  S 5      n[        R                  " [         R                  " S/S-  5      R                  [         R                  5      5      n[
        R                  " S/ S/USS9n	[
        R                  " U	/S/ U/5      n
[
        R                  " S[        R                  R                  S 5      n[        R                  " [         R                  " S/S-  5      R                  [         R                  5      5      n[
        R                  " S/ S/USS9n[
        R                  " U/S/ U/5      n[        R
                  R                  SS
/S/XS9n[
        R                  " XVU/SU/U/U/5      n[
        R                  " U[
        R                  " S[        5       5      /S9nU R!                  S[#        U5      5        [         R$                  " S[         R                  S9n['        U5      nUR)                  S SU05      S   n[+        U5      nU R-                  S[#        U5      5        ['        U5      nUR)                  S SU05      S   nUR/                  5       nSUS S & [1        UU5        g )Nr   rC   zerorA   rF   rG   	ReduceSumrsumGreatercondthen_outr      rl   cst1r   r   r_   rB   	then_bodyelse_outr   cst2	else_bodyIfthen_branchelse_branchifrz   r   rO   rN   rQ   )rS   rY   rT   r   rX   r   r%   r)   r   r&   r#   rW   r$   r'   r   r   rv   stronesr	   r[   r   r^   copyr   r5   r_   r   rF   rG   r   r   r   then_cstthen_const_noder   r   else_cstelse_const_noder   if_noder-   
onnx_modelr   rb   rc   rd   rg   rh   s                           r:   test_replace_constant_graph.TestToolsFunctions.test_replace_constant_graph   s   !BJJ/&&u6:))#t/?/?/E/Ed|T))#t/?/?/E/EvNcUVH=	FF+;fXF00((..
  **288QC#I+>+E+Ebjj+QR **rJ<xf
 %%&7b8*U	00((..
  **288RD3J+?+F+Frzz+RS **rJ<xf
 %%&7b8*U	++''6(SEy ( 
 !!4w"7sQC$P&&&"5"5b:L:N"O!P

 	*C
O<GGF"**-":.YYtc1X&q)7
C'T3"4(YYtc1X&q)WWY1Br=   c                   [         R                  " S/[         R                  S9n[        R                  " USS9n[
        R                  " S[        R                  R                  S S /5      n[
        R                  " S[        R                  R                  S /5      n[
        R                  " SS/S/5      n[
        R                  " S	SS/S
/5      n[
        R                  " S[        R                  R                  S 5      n[        R                  " [         R                  " S/S-  5      R                  [         R                  5      5      n[
        R                  " S/ S/USS9n	[
        R                  " U	/S/ U/5      n
[
        R                  " S[        R                  R                  S 5      n[        R                  " [         R                  " S/S-  5      R                  [         R                  5      5      n[
        R                  " S/ S/USS9n[
        R                  " U/S/ U/5      n[        R
                  R                  SS
/S/XS9n[
        R                  " XVU/SU/U/U/5      n[
        R                  " U[
        R                  " S[        5       5      /S9nU R!                  S[#        U5      5        [         R$                  " S[         R                  S9n['        U5      nUR)                  S SU05      S   n[+        USS9nU R!                  S[#        U5      5        U R-                  S[#        U5      5        ['        U5      nUR)                  S SU05      S   n[/        UR0                  UR0                  5        g ) Nr   rC   r   rA   rF   rG   r   r   r   r   r   r   r   rl   r   r   r   r   r   r   r   r   r   r   rz   r   rO   rN   Trs   ru   )rS   rY   rT   r   rX   r   r%   r)   r   r&   r#   rW   r$   r'   r   r   rv   r   r   r	   r[   r   r^   r   r1   r   s                           r:   test_replace_range_graph+TestToolsFunctions.test_replace_range_graph  s   !BJJ/&&u6:))#t/?/?/E/Ed|T))#t/?/?/E/EvNcUVH=	FF+;fXF00((..
  **288QC#I+>+E+Ebjj+QR **rJ<xf
 %%&7b8*U	00((..
  **288RD3J+?+F+Frzz+RS **rJ<xf
 %%&7b8*U	++''6(SEy ( 
 !!4w"7sQC$P&&&"5"5b:L:N"O!P

 	*C
O<GGF"**-":.YYtc1X&q)7
dS*CI6gs4y)"4(YYtc1X&q)"((+r=    N)returnNone)__name__
__module____qualname____firstlineno__r;   ri   rp   rw   r   r   r   r   __static_attributes__r   r=   r:   r   r      s.    (
T 4 6,4* X),V/ b.,r=   r   __main__r   )	verbosity)
__future__r   r|   numpyrS   numpy.testingr   r)   r   r   r   	onnx.defsr   onnx.referencer	   
onnx.toolsr
   onnx.tools.replace_constantsr   TestCaser   r   mainr   r=   r:   <module>r      sX    #   )  2 2 ( - ( Qp,** p,f	 zMMA r=   