
    h!                        S SK r S SKrS SKrS SKrS SKJrJrJrJ	r	J
r
Jr   " S S\R                  5      r\S:X  a  \R                  " 5         gg)    N)
GraphProto
ModelProtoOperatorSetIdProtoTensorProtocheckerhelperc                      \ rS rSrS\S\S\S\4S jrSRS jr	SRS	 jr
SRS
 jrSRS jrSRS jrSRS jrSRS jrSRS jrSRS jrSRS jrSRS jrSRS jrSRS jrSRS jrSRS jrSRS jrSRS jrSRS jrSRS jrSRS jrSRS jrSRS jrSRS jrSRS jr SRS  jr!SRS! jr"SRS" jr#SRS# jr$SRS$ jr%SRS% jr&SRS& jr'SRS' jr(SRS( jr)SRS) jr*SRS* jr+SRS+ jr,SRS, jr-SRS- jr.SRS. jr/SRS/ jr0SRS0 jr1SRS1 jr2SRS2 jr3SRS3 jr4SRS4 jr5SRS5 jr6SRS6 jr7SRS7 jr8SSS8\9SS4S9 jjr:SSS8\9SS4S: jjr;SRS; jr<SRS< jr=SRS= jr>SRS> jr?SRS? jr@SRS@ jrASRSA jrBSRSB jrCSRSC jrDSRSD jrESRSE jrFSRSF jrGSRSG jrHSRSH jrISRSI jrJSRSJ jrKSRSK jrLSRSL jrMSRSM jrNSRSN jrOSO rPSRSP jrQSQrRg)TTestVersionConverter   graphinitial_versiontarget_versionreturnc                     [         R                  " USU/S9n[        R                  R	                  XC5      n[
        R                  " U5        U$ )Nz	onnx-test)producer_nameopset_imports)r   
make_modelonnxversion_converterconvert_versionr   check_model)selfr   r   r   
orig_modelconverted_models         Z/var/www/fran/franai/venv/lib/python3.13/site-packages/onnx/test/version_converter_test.py
_convertedTestVersionConverter._converted   sO     &&_<M

 00@@
 	O,    Nc                 B   ^  SU 4S jjnT R                  [        U5        g )Nc                  P  > [         R                  " SSS/S/5      [         R                  " SSS/S/5      [         R                  " SSS/S/5      /n [         R                  " U S	[         R                  " S[        R
                  S
5      [         R                  " S[        R
                  S5      [         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S
5      /5      nTR                  U[         R                  " SS5      S5        g )NAddWZshapeReshapeXAYtest             r   	make_node
make_graphmake_tensor_value_infor   FLOATr   make_operatorsetidnodesr   r   s     r   r)   >TestVersionConverter.test_backwards_incompatible.<locals>.test(   s      c
WI>  S'NSEB  c
SE:E
 %%11#{7H7H$O11#{7H7H$O11#{7H7H$O
 ..sK4E4EtLM	E OOE6#<#<R#CQGr   r   NassertRaisesRuntimeErrorr   r)   s   ` r   test_backwards_incompatible0TestVersionConverter.test_backwards_incompatible'   s    	H$ 	,-r   c           
      ,   [         R                  " SSS/S/5      /n[         R                  " US[         R                  " S[        R
                  S5      [         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " SS5      S	5      nUR                  R                  S
   R                  S:X  d   eUR                  S
   R                  S	:X  d   eg )Nr!   X1X2r(   r)   r*   r.      r0   r   r   r2   r3   r4   r   r5   r   r6   r   nodeop_typeopset_importversionr   r8   r   r   s       r   test_backwards_compatible.TestVersionConverter.test_backwards_compatible=       !!%$u=>!!--dK4E4EtL--dK4E4EtL **30A0A4HI
 //%1J1J2q1QSTU$$))!,44===++A.66!;;;r   c                 B   ^  SU 4S jjnT R                  [        U5        g )Nc            
      R  > [         R                  " SS/S/5      /n [         R                  " U S[         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nTR                  U[         R                  " SS5      S5        g )	NCosr&   r(   r)   r*   r.   r/      r1   r7   s     r   r)   7TestVersionConverter.test_non_existent_op.<locals>.testO   s    %%ecUSE:;E%%..sK4E4EtLM..sK4E4EtLM	E OOE6#<#<R#CQGr   r:   r;   r>   s   ` r   test_non_existent_op)TestVersionConverter.test_non_existent_opN   s    	H 	,-r   c           
      ,   [         R                  " SSS/S/5      /n[         R                  " US[         R                  " S[        R
                  S5      [         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " SS	5      S
5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  S
:X  d   eg )Nr!   rB   rC   r(   r)   r*   r,   r.   r/   r+   r   rE   rJ   s       r   test_add_8_5!TestVersionConverter.test_add_8_5\   rM   r   c           
      ,   [         R                  " SSS/S/5      /n[         R                  " US[         R                  " S[        R
                  S5      [         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " SS	5      S
5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  S
:X  d   eg )Nr!   rB   rC   r(   r)   r*   r,   r.   r+   r/   r   rE   rJ   s       r   test_add_5_8!TestVersionConverter.test_add_5_8m   rM   r   c           
      ~   [         R                  " SSS/S/SSS9/n[         R                  " US[         R                  " S[        R
                  S	5      [         R                  " S[        R
                  S
5      /[         R                  " S[        R
                  S
5      /5      nU R                  U[         R                  " SS5      S5      nUR                  R                  S   R                  S:X  d   eUR                  R                  S   R                  S:X  d   eUR                  S   R                  S:X  d   eg )Nr!   rB   rC   r(   r   r-   )axis	broadcastr)   )r+   r0   r*   r.   r+   r/   	UnsqueezerE   rJ   s       r   test_add_5_8_with_unsqueeze0TestVersionConverter.test_add_5_8_with_unsqueeze~   s   !!%$u1PQRS!!--dK4E4EvN--dK4E4EtL **30A0A4HI
 //%1J1J2q1QSTU$$))!,44CCC$$))!,44===++A.66!;;;r   c           
      ,   [         R                  " SSS/S/5      /n[         R                  " US[         R                  " S[        R
                  S5      [         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " SS	5      S
5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  S
:X  d   eg )NMulrB   rC   r(   r)   r*   r,   r.   r/   r+   r   rE   rJ   s       r   test_mul_8_5!TestVersionConverter.test_mul_8_5   rM   r   c           
      ,   [         R                  " SSS/S/5      /n[         R                  " US[         R                  " S[        R
                  S5      [         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " SS	5      S
5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  S
:X  d   eg )Nrb   rB   rC   r(   r)   r*   r,   r.   r+   r/   r   rE   rJ   s       r   test_mul_5_8!TestVersionConverter.test_mul_5_8   rM   r   c                 v   [         R                  " S/ SQS/5      /n[         R                  " US[         R                  " S[        R
                  S5      [         R                  " S[        R
                  S5      [         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " S	S
5      S5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  S:X  d   eg )NGemmr'   BCr(   r)   r'   r+   r+   rk   rl   r.   r-   r/   r   rE   rJ   s       r   test_gemm_up!TestVersionConverter.test_gemm_up   $   !!&/C5AB!!--%% --%% --%%#6 --%%	;'
P //%1J1J2q1QSTU$$))!,44>>>++A.66!;;;r   c                 v   [         R                  " S/ SQS/5      /n[         R                  " US[         R                  " S[        R
                  S5      [         R                  " S[        R
                  S5      [         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " S	S
5      S5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  S:X  d   eg )Nri   rj   r(   r)   r'   rm   rk   rl   r.   r/   r-   r   rE   rJ   s       r   test_gemm_down#TestVersionConverter.test_gemm_down   rp   r   c           
         [         R                  " SS/S/5      /n[         R                  " US[         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " SS5      S5      nUR                  R                  S	   R                  S:X  d   eUR                  S	   R                  S:X  d   eg )
NRelur&   r(   r)   r*   r.   r+      r   rE   rJ   s       r   test_relu_5_7"TestVersionConverter.test_relu_5_7      !!&3%#78!!**30A0A4HI**30A0A4HI	
 //%1J1J2q1QSTU$$))!,44>>>++A.66!;;;r   c           
         [         R                  " SS/S/5      /n[         R                  " US[         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " SS5      S5      nUR                  R                  S	   R                  S:X  d   eUR                  S	   R                  S:X  d   eg )
Nru   r&   r(   r)   r*   r.   rv   r+   r   rE   rJ   s       r   test_relu_7_5"TestVersionConverter.test_relu_7_5   ry   r   c                 
   [         R                  " S/ SQS/5      /n[         R                  " US[         R                  " S[        R
                  S5      [         R                  " S[        R
                  S5      [         R                  " S	[        R
                  S5      [         R                  " S
[        R
                  S5      [         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " SS5      S5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  S:X  d   eg )NBatchNormalizationr&   scalerk   meanvarr(   r)   r&   r*   r   r,   rk   r   r   r.   r/   r+   r   rE   rJ   s       r   test_batch_normalization_8_51TestVersionConverter.test_batch_normalization_8_5.  :   $&H3%

 !!--c;3D3DdK--g{7H7H$O--c;3D3DdK--fk6G6GN--e[5F5FM **30A0A4HI
 //%1J1J2q1QSTU$$))!,448LLLL++A.66!;;;r   c                 
   [         R                  " S/ SQS/5      /n[         R                  " US[         R                  " S[        R
                  S5      [         R                  " S[        R
                  S5      [         R                  " S	[        R
                  S5      [         R                  " S
[        R
                  S5      [         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " SS5      S5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  S:X  d   eg )Nr~   r   r(   r)   r&   r*   r   r,   rk   r   r   r.   r+   r/   r   rE   rJ   s       r   test_batch_normalization_5_81TestVersionConverter.test_batch_normalization_5_8F  r   r   c                 
   [         R                  " S/ SQS/5      /n[         R                  " US[         R                  " S[        R
                  S5      [         R                  " S[        R
                  S5      [         R                  " S[        R
                  S5      [         R                  " S	[        R
                  S5      [         R                  " S
[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " SS5      S5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  S:X  d   eg )NConcatrB   rC   X3X4X5r(   r)   rB   r,   rC   r   r   r   r*   r.   rD   r+   r   rE   rJ   s       r   test_concat_3_5$TestVersionConverter.test_concat_3_5^  s2   !!(,JSERS!!--dK4E4EtL--dK4E4EtL--dK4E4EtL--dK4E4EtL--dK4E4EtL **30A0A4HI
 //%1J1J2q1QSTU$$))!,44@@@++A.66!;;;r   c                    [         R                  " S/ SQS/SS9/n[         R                  " US[         R                  " S[        R
                  S5      [         R                  " S	[        R
                  S5      [         R                  " S
[        R
                  S5      [         R                  " S[        R
                  S5      [         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " SS5      S5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  S:X  d   eg )Nr   r   r(   r   r\   r)   rB   r,   rC   r   r   r   r*   r.   r+   rD   rE   rJ   s       r   test_concat_5_3$TestVersionConverter.test_concat_5_3r  s9   X'EuSTU
 !!--dK4E4EtL--dK4E4EtL--dK4E4EtL--dK4E4EtL--dK4E4EtL **30A0A4HI
 //%1J1J2q1QSTU$$))!,44@@@++A.66!;;;r   c                 ^   [         R                  " S/ S/[         R                  " S[        R                  S/S/5      S9[         R                  " SSS/S	/5      /n[         R
                  " US
[         R                  " S[        R                  S5      /[         R                  " S	[        R                  S5      /5      nU R                  U[         R                  " SS5      S5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  S:X  d   eg )NConstantr$   r.   r-   r+   valuer%   r&   r(   r)   r*   rQ      r   r   r2   make_tensorr   INT64r3   r4   r5   r   r6   r   rF   rG   rH   rI   rJ   s       r   test_reshape_6_4%TestVersionConverter.test_reshape_6_4  s   	(([->->aSI	 Yg>
 !!**30A0A4HI**30A0A4HI	
 //%1J1J2q1QSTU$$))!,44	AAA++A.66!;;;r   c           
      2   [         R                  " SS/S/S/S9/n[         R                  " US[         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " SS	5      S
5      nUR                  R                  S   R                  S:X  d   eUR                  R                  S   R                  S:X  d   eUR                  S   R                  S
:X  d   eg )Nr%   r&   r(   r+   )r$   r)   r*   r.   r   rQ   r   r   r-   rE   rJ   s       r   test_reshape_4_6%TestVersionConverter.test_reshape_4_6  s    !!)cUSE!EF!!**30A0A4HI**30A0A4HI	
 //%1J1J2q1QSTU$$))!,44
BBB$$))!,44	AAA++A.66!;;;r   c                 
   [         R                  " S/ SQS/5      /n[         R                  " US[         R                  " S[        R
                  S5      [         R                  " S[        R
                  S5      [         R                  " S[        R
                  S5      [         R                  " S	[        R
                  S5      [         R                  " S
[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " SS5      S5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  S:X  d   eg )NSumdata_0data_1data_2data_3data_4sumr)   r   r*   r   r   r   r   r.   rv   r/   r   rE   rJ   s       r   test_sum_7_8!TestVersionConverter.test_sum_7_8  9   IE7

 !!--h8I8I4P--h8I8I4P--h8I8I4P--h8I8I4P--h8I8I4P **5+2C2CTJK
 //%1J1J2q1QSTU$$))!,44===++A.66!;;;r   c                 
   [         R                  " S/ SQS/5      /n[         R                  " US[         R                  " S[        R
                  S5      [         R                  " S[        R
                  S5      [         R                  " S[        R
                  S5      [         R                  " S	[        R
                  S5      [         R                  " S
[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " SS5      S5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  S:X  d   eg )Nr   r   r   r)   r   r*   r   r   r   r   r.   r+   rv   r   rE   rJ   s       r   test_sum_5_8!TestVersionConverter.test_sum_5_8  r   r   c                 
   [         R                  " S/ SQS/5      /n[         R                  " US[         R                  " S[        R
                  S5      [         R                  " S[        R
                  S5      [         R                  " S[        R
                  S5      [         R                  " S	[        R
                  S5      [         R                  " S
[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " SS5      S5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  S:X  d   eg )Nr   r   r   r)   r   r*   r   r   r   r   r.   r/   r+   r   rE   rJ   s       r   test_sum_8_5!TestVersionConverter.test_sum_8_5  r   r   c           
         [         R                  " SS/S/SS/S9/n[         R                  " US[         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " SS5      S	5      nUR                  R                  S
   R                  S:X  d   eUR                  S
   R                  S	:X  d   eg NAveragePoolr&   r(   r-   kernel_shaper)   r+   r+   r+   r+   r.   r/   r   rE   rJ   s       r   test_averagepool_up(TestVersionConverter.test_averagepool_up      !!-#QPQFST!!**30A0A<PQ**30A0A<PQ	
 //%1J1J2q1QSTU$$))!,44EEE++A.66!;;;r   c           
         [         R                  " SS/S/SS/S9/n[         R                  " US[         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " SS	5      S5      nUR                  R                  S
   R                  S:X  d   eUR                  S
   R                  S:X  d   eg r   rE   rJ   s       r   test_averagepool_down*TestVersionConverter.test_averagepool_down  r   r   c           
         [         R                  " SS/S/SS9/n[         R                  " US[         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " SS5      S	5      nUR                  R                  S
   R                  S:X  d   eUR                  S
   R                  S	:X  d   eg )NDropoutdataoutputr-   )is_testr)   rm   r.   r/   r   rE   rJ   s       r   test_dropout_up$TestVersionConverter.test_dropout_up  s    !!)fXz1MN!!--%%	 --%%	
0 //%1J1J2q1QSTU$$))!,44	AAA++A.66!;;;r   c           
         [         R                  " SS/S/5      /n[         R                  " US[         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " SS5      S5      nUR                  R                  S	   R                  S:X  d   eUR                  S	   R                  S:X  d   eg )
Nr   r   r   r)   rm   r.   r/   r-   r   rE   rJ   s       r   test_dropout_down&TestVersionConverter.test_dropout_down1  s    !!)fXzBC!!--%%	 --%%	
0 //%1J1J2q1QSTU$$))!,44	AAA++A.66!;;;r   c           
      |   SnSn[         R                  nSn[        R                  R	                  SS/S/S9/n[        R
                  " US[        R                  R                  SX45      /[        R                  R                  SX45      /5      nU R                  U[        R                  " S	U5      U5      nUR                  R                  S
   R                  S:X  d   eUR                  R                  S
   R                  R                  R                  U:X  d   eUR                   S
   R"                  U:X  d   eg )Nrv   r/   r0   rD   r   Maxr&   r(   inputsoutputstest_maxr.   r   r   r5   r   r   r2   r3   r4   r   r6   r   rF   rG   r   typetensor_type	elem_typerH   rI   r   
from_opsetto_opset	data_type
data_shaper8   r   r   s           r   test_max_7_8!TestVersionConverter.test_max_7_8Q     
%%	
&&ucUSE&JK!![[//YKL[[//YKL	
 //6,,R<h
 $$))!,44===$$++A.33??IIYVVV++A.66(BBBr   c           
      |   SnSn[         R                  nSn[        R                  R	                  SS/S/S9/n[        R
                  " US[        R                  R                  SX45      /[        R                  R                  SX45      /5      nU R                  U[        R                  " S	U5      U5      nUR                  R                  S
   R                  S:X  d   eUR                  R                  S
   R                  R                  R                  U:X  d   eUR                   S
   R"                  U:X  d   eg )Nrv   r/   r   Minr&   r(   r   test_minr.   r   r   r   s           r   test_min_7_8!TestVersionConverter.test_min_7_8i  r   r   c           
      |   SnSn[         R                  nSn[        R                  R	                  SS/S/S9/n[        R
                  " US[        R                  R                  SX45      /[        R                  R                  SX45      /5      nU R                  U[        R                  " S	U5      U5      nUR                  R                  S
   R                  S:X  d   eUR                  R                  S
   R                  R                  R                  U:X  d   eUR                   S
   R"                  U:X  d   eg )Nrv   r/   rD   Meanr&   r(   r   	test_meanr.   r   r   r   s           r   test_mean_7_8"TestVersionConverter.test_mean_7_8  s   
%%	
&&vsecU&KL!![[//YKL[[//YKL	
 //6,,R<h
 $$))!,44>>>$$++A.33??IIYVVV++A.66(BBBr   c           
         [         R                  " SS/S/SS/S9/n[         R                  " US[         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " SS5      S	5      nUR                  R                  S
   R                  S:X  d   eUR                  S
   R                  S	:X  d   eg NMaxPoolr&   r(   r-   r   r)   r   r.   r/   r   rE   rJ   s       r   test_maxpool_up$TestVersionConverter.test_maxpool_up      !!)cUSEAOP!!**30A0A<PQ**30A0A<PQ	
 //%1J1J2q1QSTU$$))!,44	AAA++A.66!;;;r   c                    SnSn[         R                  n[        R                  R	                  SS/S/SSSS	9/n[        R
                  " US
[        R                  R                  SU/ SQ5      /[        R                  R                  SU/ SQ5      /5      nU R                  U[        R                  " SU5      U5      n[        UR                  R                  5      S:X  d   eUR                  R                  S   R                  S:X  d   eUR                  R                  S   R                   Vs/ s H  owR                  PM     nnSU;   d   eSU;  d   eSU;  d   eUR                  S   R                   U:X  d   eg s  snf )NrQ   rv   Upsampler&   r(   nearest      @       @)r   r   modewidth_scaleheight_scaletest_upsample_6_7r-   r-   r0   r0   r-   r-   r   rQ   r.   r-   r   scalesr   r   r   r5   r   r   r2   r3   r4   r   r6   lenr   rF   rG   	attributenamerH   rI   )	r   r   r   r   r8   r   r   attrattribute_namess	            r   r   &TestVersionConverter.test_upsample_6_7  s   
%%	 KK!!u  " 	
 !![[//YMN[[//YMN	
 //6,,R<h
 ?((--.!333$$))!,44
BBB"1"7"7"<"<Q"?"I"I
"I$II"I 	 
 ?***O333_444++A.66(BBB
s   2Fc           
         [         R                  " SS/S/SS/S9/n[         R                  " US[         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " SS	5      S5      nUR                  R                  S
   R                  S:X  d   eUR                  S
   R                  S:X  d   eg r   rE   rJ   s       r   test_maxpool_down&TestVersionConverter.test_maxpool_down  r   r   c           	         SnSn[         R                  n[        R                  " S/ SQS/S9/nSn[        R                  " SX55      n[        R                  " S	X5S
   /5      n[        R                  " SX5S
   /5      n[        R                  " SX5S
   /5      n	[        R                  " SX5S
   /5      n
[        R                  " SX55      n[        R
                  " USXgXU
/U/5      nU R                  U[        R                  " SU5      U5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  U:X  d   eg )Nr/   	   r~   )xsbiasr   r   yr   )r-   r0   r-   rD   r  r  r-   r  r   r   test_batchnormalization_8_9r.   r   )r   r5   r   r2   r4   r3   r   r6   r   rF   rG   rH   rI   r   r   r   r   r8   input_shaper  r   rk   r   r   r	  r   r   s                 r   test_batch_normalization_8_91TestVersionConverter.test_batch_normalization_8_9  sV   
%%	 $8
 #))#yF--c91~>NO))&)!n=MN,,VYQ@PQ++E91~>NO))#yF!!01Qc2JQC
 //6,,R<h
 $$))!,448LLLL++A.66(BBBr   c           	      B   SnSn[         R                  n[        R                  R	                  S/ SQS/S9/nSn[        R                  R                  SX55      n[        R                  R                  S	X5S
   /5      n[        R                  R                  SX5S
   /5      n[        R                  R                  SX5S
   /5      n	[        R                  R                  SX5S
   /5      n
[        R                  R                  SX55      n[        R                  R                  USXgXU
/U/5      nU R                  U[        R                  " SU5      U5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  U:X  d   eg )Nr  r/   r~   r   r(   r   )r0   rD   r   r+   r&   r   r-   rk   r   r   test_batchnormalizationr.   r   )r   r5   r   r   r2   r4   r3   r   r6   r   rF   rG   rH   rI   r  s                 r   test_batchnormalization_9_80TestVersionConverter.test_batchnormalization_9_8  s~   
%%	 KK!!$9 " 
 #KK..sIK227ITUGWXKK..sIA?OP{{11&)RSnEUVkk00	PQNCSTKK..sIK&&,q#.F
 //6,,R<h
 $$))!,448LLLL++A.66(BBBr   c                    SnSn[         R                  n/ SQn[        R                  " S5      n[        R
                  " S/ S/[        R                  " SX4U5      S9/n[        R                  " US	/ [        R                  R                  SX45      /5      nU R                  U[        R                  " SU5      U5      nUR                  R                  S
   R                  S:X  d   eUR                  R                  S
   R                   R"                  R$                  U:X  d   eUR&                  S
   R(                  U:X  d   eg )Nr/   r  r      r   r(   r.   r   r   r   test_constantr   )r   r5   nparanger   r2   r   r3   r   r4   r   r6   r   rF   rG   r   r   r   r   rH   rI   	r   r   r   r   output_shapeoutput_valuer8   r   r   s	            r   test_constant_8_9&TestVersionConverter.test_constant_8_9  s*   
%%	 yy} ((YlS	
 !![[//YMN	
 //6,,R<h
 $$))!,44
BBB$$++A.33??IIYVVV++A.66(BBBr   c                    SnSn[         R                  n/ SQn[        R                  " S5      n[        R
                  " S/ S/[        R                  " SX4U5      S9/n[        R                  " US	/ [        R                  R                  SX45      /5      nU R                  U[        R                  " SU5      U5      nUR                  R                  S
   R                  S:X  d   eUR                  R                  S
   R                   R"                  R$                  U:X  d   eUR&                  S
   R(                  U:X  d   eg )Nr  r/   r   r  r   r(   r.   r  r  r   )r   UINT64r  r  r   r2   r   r3   r   r4   r   r6   r   rF   rG   r   r   r   r   rH   rI   r  s	            r   test_constant_9_8&TestVersionConverter.test_constant_9_8>  s*   
&&	 yy} ((YlS	
 !![[//YMN	
 //6,,R<h
 $$))!,44
BBB$$++A.33??IIYVVV++A.66(BBBr   c                    SnSn[         R                  n[        R                  R	                  SS/S/SS9/n[        R
                  " US[        R                  R                  SU/ S	Q5      /[        R                  R                  SUS
S/5      /5      nU R                  U[        R                  " SU5      U5      nUR                  R                  S   R                  S:X  d   eUR                  R                  S   R                  R                  R                  U:X  d   eUR                   S   R"                  U:X  d   eg )Nr/   r  Flattenr&   r(   r-   r   r   r\   test_flattenr   r0      r.   r   r   r   r   r   r   r8   r   r   s          r   test_flatten_8_9%TestVersionConverter.test_flatten_8_9_  s#   
%%	&&y#TU&VW!![[//Y	JK[[//YBHI	
 //6,,R<h
 $$))!,44	AAA$$++A.33??IIYVVV++A.66(BBBr   c                    SnSn[         R                  n[        R                  R	                  SS/S/SS9/n[        R
                  " US[        R                  R                  SU/ S	Q5      /[        R                  R                  SUS
S/5      /5      nU R                  U[        R                  " SU5      U5      nUR                  R                  S   R                  S:X  d   eUR                  R                  S   R                  R                  R                  U:X  d   eUR                   S   R"                  U:X  d   eg )Nr  r/   r#  r&   r(   r-   r$  r%  r   r0   r&  r.   r   r   r  r   r   r2   r3   r4   r   r6   r   rF   rG   r   r   r   r   rH   rI   r'  s          r   test_flatten_9_8%TestVersionConverter.test_flatten_9_8v  s#   
&&	&&y#TU&VW!![[//Y	JK[[//YBHI	
 //6,,R<h
 $$))!,44	AAA$$++A.33??IIYVVV++A.66(BBBr   c           
         SnSn[         R                  n[        R                  R	                  SSS/S/S9/n/ SQn[        R
                  " US	[        R                  R                  SX55      [        R                  R                  SX55      /[        R                  R                  SX55      /5      nU R                  U[        R                  " S
U5      U5      nUR                  R                  S   R                  S:X  d   eUR                  R                  S   R                  R                  R                  U:X  d   eUR                   S   R"                  U:X  d   eg )Nr/   r  PRelur&   Sloper(   r   r   
test_prelur.   r   r   r   r   r   r   r8   r  r   r   s           r   test_prelu_8_9#TestVersionConverter.test_prelu_8_9  s8   
%%	&&wW~PSu&UV!!223	O227IS [[//YLM
 //6,,R<h
 $$))!,44???$$++A.33??IIYVVV++A.66(BBBr   c           
         SnSn[         R                  n[        R                  R	                  SSS/S/S9/n/ SQn[        R
                  " US	[        R                  R                  SX55      [        R                  R                  SX55      /[        R                  R                  SX55      /5      nU R                  U[        R                  " S
U5      U5      nUR                  R                  S   R                  S:X  d   eUR                  R                  S   R                  R                  R                  U:X  d   eUR                   S   R"                  U:X  d   eg )Nr  r/   r/  r&   r0  r(   r   r   r1  r.   r0   r   r+  r2  s           r   test_prelu_9_8#TestVersionConverter.test_prelu_9_8  s8   
&&	&&wW~PSu&UV!!223	O227IS [[//YLM
 //6,,R<h
 $$))!,44???$$++A.33??IIYVVV++A.66(BBBr   c           
         SnSn[         R                  n[        R                  R	                  SSS/S/S9/n/ SQn[        R
                  " US	[        R                  R                  SX55      [        R                  R                  SX55      /[        R                  R                  S[         R                  U5      /5      nU R                  U[        R                  " S
U5      U5      nUR                  R                  S   R                  S:X  d   eUR                  R                  S   R                  R                  R                   [         R                  :X  d   eUR"                  S   R$                  U:X  d   eg )Nr/   r  GreaterrB   rC   r(   r   r   test_greaterr.   r   r   r5   r   r   r2   r3   r4   BOOLr   r6   r   rF   rG   r   r   r   r   rH   rI   r2  s           r   test_greater_8_9%TestVersionConverter.test_greater_8_9  sO   
%%	&&y$PSu&UV!!224P224P [[//[5E5E{ST
 //6,,R<h
 $$))!,44	AAA!!((+00<<FF 	
  ++A.66(BBBr   c           
         SnSn[         R                  n[        R                  R	                  SSS/S/S9/n/ SQn[        R
                  " US	[        R                  R                  SX55      [        R                  R                  SX55      /[        R                  R                  S[         R                  U5      /5      nU R                  U[        R                  " S
U5      U5      nUR                  R                  S   R                  S:X  d   eUR                  R                  S   R                  R                  R                   [         R                  :X  d   eUR"                  S   R$                  U:X  d   eg )Nr  r/   r9  rB   rC   r(   r   r   r:  r.   r0   r   r   r  r   r   r2   r3   r4   r<  r   r6   r   rF   rG   r   r   r   r   rH   rI   r2  s           r   test_greater_9_8%TestVersionConverter.test_greater_9_8  sO   
&&	&&y$PSu&UV!!224P224P [[//[5E5E{ST
 //6,,R<h
 $$))!,44	AAA!!((+00<<FF 	
  ++A.66(BBBr   c           
         SnSn[         R                  n[        R                  R	                  SSS/S/S9/n/ SQn[        R
                  " US	[        R                  R                  SX55      [        R                  R                  SX55      /[        R                  R                  S[         R                  U5      /5      nU R                  U[        R                  " S
U5      U5      nUR                  R                  S   R                  S:X  d   eUR                  R                  S   R                  R                  R                   [         R                  :X  d   eUR"                  S   R$                  U:X  d   eg )Nr/   r  LessrB   rC   r(   r   r   	test_lessr.   r   r;  r2  s           r   test_less_8_9"TestVersionConverter.test_less_8_9  sN   
%%	&&vtTlSE&RS!!224P224P [[//[5E5E{ST
 //6,,R<h
 $$))!,44>>>!!((+00<<FF 	
  ++A.66(BBBr   c           
         SnSn[         R                  n[        R                  R	                  SSS/S/S9/n/ SQn[        R
                  " US	[        R                  R                  SX55      [        R                  R                  SX55      /[        R                  R                  S[         R                  U5      /5      nU R                  U[        R                  " S
U5      U5      nUR                  R                  S   R                  S:X  d   eUR                  R                  S   R                  R                  R                   [         R                  :X  d   eUR"                  S   R$                  U:X  d   eg )Nr  r/   rD  rB   rC   r(   r   r   rE  r.   r0   r   r@  r2  s           r   test_less_9_8"TestVersionConverter.test_less_9_8  sN   
&&	&&vtTlSE&RS!!224P224P [[//[5E5E{ST
 //6,,R<h
 $$))!,44>>>!!((+00<<FF 	
  ++A.66(BBBr   c                    SnSn[         R                  n[        R                  R	                  SSS/S/S9/n[        R
                  " US[        R                  R                  SUS	S
/5      [        R                  R                  SUS
S	/5      /[        R                  R                  SUS	S	/5      /5      nU R                  U[        R                  " SU5      U5      nUR                  R                  S   R                  S:X  d   eUR                  R                  S   R                  R                  R                  U:X  d   eUR                   S   R"                  U:X  d   eg )Nr/   r  MatMulrB   rC   r(   r   test_matmulrD   r   r.   r   r   r'  s          r   test_matmul_8_9$TestVersionConverter.test_matmul_8_9;  sD   
%%	&&xtse&TU!!224QFK224QFK [[//YAGH
 //6,,R<h
 $$))!,44@@@$$++A.33??IIYVVV++A.66(BBBr   c                    SnSn[         R                  n[        R                  R	                  SSS/S/S9/n[        R
                  " US[        R                  R                  SUS	S
/5      [        R                  R                  SUS
S	/5      /[        R                  R                  SUS	S	/5      /5      nU R                  U[        R                  " SU5      U5      nUR                  R                  S   R                  S:X  d   eUR                  R                  S   R                  R                  R                  U:X  d   eUR                   S   R"                  U:X  d   eg )Nr  r/   rL  rB   rC   r(   r   rM  rD   r   r.   r0   r   r+  r'  s          r   test_matmul_9_8$TestVersionConverter.test_matmul_9_8U  sD   
&&	&&xtse&TU!!224QFK224QFK [[//YAGH
 //6,,R<h
 $$))!,44@@@$$++A.33??IIYVVV++A.66(BBBr   c                    SnSn[         R                  n[        R                  R	                  S/ SQS/S9/n[        R
                  " US[        R                  R                  SUS	S
/5      [        R                  R                  SUS
S	/5      [        R                  R                  SUS	S	/5      /[        R                  R                  SUS	S	/5      /5      nU R                  U[        R                  " SU5      U5      nUR                  R                  S   R                  S:X  d   eUR                  R                  S   R                  R                  R                  U:X  d   eUR                   S   R"                  U:X  d   eg )Nr/   r  ri   rB   rC   r   r(   r   	test_gemmrB   rD   r   rC   r   r.   r   r   r'  s          r   test_gemm_8_9"TestVersionConverter.test_gemm_8_9o  sa   
%%	 KK!!&1CcU!S
 !!224QFK224QFK224QFK
 [[//YAGH	
 //6,,R<h
 $$))!,44>>>$$++A.33??IIYVVV++A.66(BBBr   c                    SnSn[         R                  n[        R                  R	                  S/ SQS/S9/n[        R
                  " US[        R                  R                  SUS	S
/5      [        R                  R                  SUS
S	/5      [        R                  R                  SUS	S	/5      /[        R                  R                  SUS	S	/5      /5      nU R                  U[        R                  " SU5      U5      nUR                  R                  S	   R                  S:X  d   eUR                  R                  S   R                  R                  R                  U:X  d   eUR                   S   R"                  U:X  d   eg )Nr  r/   ri   rT  r(   r   rU  rB   rD   r   rC   r   r.   r   r+  r'  s          r   test_gemm_9_8"TestVersionConverter.test_gemm_9_8  sa   
&&	 KK!!&1CcU!S
 !!224QFK224QFK224QFK
 [[//YAGH	
 //6,,R<h
 $$))!,44>>>$$++A.33??IIYVVV++A.66(BBBr   c                 ~   SnSn[         R                  n[        R                  R	                  SS/S/S/ SQS9/n[        R
                  " US	[        R                  R                  SU/ S
Q5      /[        R                  R                  SU/ SQ5      /5      nU R                  U[        R                  " SU5      U5      n[        UR                  R                  5      S:X  d   eUR                  R                  S   R                  S:X  d   eUR                  R                  S   R                  S:X  d   e[        UR                  R                  S   R                  5      S:X  d   eUR                  R                  S   R                  S   R                  S:X  d   eUR                  S   R                   U:X  d   eg )Nr/   r  r   r&   r(   r         ?r]  r   r   )r   r   r   r   test_upsample_8_9r   r   r.   r0   r   r   r-   r   r   r'  s          r   r^  &TestVersionConverter.test_upsample_8_9  s   
%%	 KK!!u+ " 
 !![[//YMN[[//YMN	
 //6,,R<h
 ?((--.!333$$))!,44
BBB$$))!,44
BBB?((--a0::;q@@@$$))!,66q9>>&HHH++A.66(BBBr   	raw_scalec                 <   SnSn[         R                  n[        R                  R	                  SSS/S/SS9/n/ S	Qn[        R                  R                  S[        R                   R                  S
/U(       a   [        [        R                  " S/UQ76 5      OUU5      n[        R                  " US[        R                  R                  SU/ SQ5      [        R                  R                  SUS
/5      /[        R                  R                  SU/ SQ5      /U/5      nU R                  U[        R                  " SU5      U5      n	U	R                  R                  S   R                  S:X  d   e[!        U	R                  R"                  5      S:X  d   e[!        U	R                  R                  S   R$                  5      S:X  d   eU	R                  R                  S   R$                  S   R&                  S:X  d   eU	R(                  S   R*                  U:X  d   eg )Nr  r/   r   r&   Scalesr(   r   r   r   r   r\  r   4ftest_upsampler   r   r.   r   r0   r-   r   )r   r5   r   r   r2   r   bytesstructpackr3   r4   r   r6   r   rF   rG   r   initializerr   r   rH   rI   )
r   r`  r   r   r   r8   scale_valuescale_tensorr   r   s
             r    helper_upsample_with_initializer5TestVersionConverter.helper_upsample_with_initializer  s   
%%	 KK!!C?SE	 " 
 +{{..""C6?E&++d1[12[
 !!223	<P228YL [[//YMNN	
 //6,,R<h
 $$))!,44
BBB?((445:::?((--a0::;q@@@$$))!,66q9>>(JJJ++A.66(BBBr   c                 v   SnSn[         R                  n/ SQn[        R                  R	                  S[        R                   R                  S/U(       a   [        [        R                  " S/UQ76 5      OUU5      n[        R                  R                  S/ S/US	9[        R                  R                  S
SS/S/SS9/n[        R                  " US[        R                  R                  SU/ SQ5      /[        R                  R                  SU/ SQ5      /[        R                  R                  SUS/5      /S9nU R                  U[        R                  " SU5      U5      n	[        U	R                  R                  5      S:X  d   eU	R                  R                  S   R                   S
:X  d   e[        U	R                  R                  S   R"                  5      S:X  d   eU	R                  R                  S   R"                  S   R$                  S:X  d   eU	R&                  S   R(                  U:X  d   eg )Nr  r/   r\  const_valuer   rd  r   Constant_Outputr  r   r&   r(   r   rc  re  r   r   )
value_infor.   r-   r   r0   r   )r   r5   r   r   r   rf  rg  rh  r2   r3   r4   r   r6   r   r   rF   rG   r   r   rH   rI   )
r   r`  r   r   r   rj  rk  r8   r   r   s
             r   helper_upsample_with_constant2TestVersionConverter.helper_upsample_with_constant  s   
%%	*{{..""C6?E&++d1[12[
 KK!!20A/B, "  KK!!./	 " 	

 !![[//YMN[[//YMN223DiRSQTU
 //6,,R<h
 ?((--.!333$$))!,44
BBB?((--a0::;q@@@$$))!,66q9>>(JJJ++A.66(BBBr   c                 "    U R                  SS9  g NFr`  rr  r   s    r   $test_upsample_with_constant_node_9_89TestVersionConverter.test_upsample_with_constant_node_9_8#  s    **U*;r   c                 "    U R                  SS9  g ru  )rl  rx  s    r   "test_upsample_with_initializer_9_87TestVersionConverter.test_upsample_with_initializer_9_8'  s    --->r   c                 "    U R                  SS9  g NTrv  rw  rx  s    r   &test_upsample_with_raw_initializer_9_8;TestVersionConverter.test_upsample_with_raw_initializer_9_8+      **T*:r   c                 "    U R                  SS9  g r  rw  rx  s    r   (test_upsample_with_raw_constant_node_9_8=TestVersionConverter.test_upsample_with_raw_constant_node_9_8/  r  r   c                    SnSn[         R                  n[        R                  R	                  SSS/S/S9n[        R                  R	                  SS/S	/S9n[        R                  R                  XE/S
[        R                  R                  SUS/5      [        R                  R                  SUS/5      /[        R                  R                  SUS/5      [        R                  R                  S	US/5      /5      nSn[        R                  R	                  SUSS/SS/USS9/n[        R                  R                  SUSS/5      n	[        R                  R                  SU/ SQ5      n
[        R                  R                  SUSS/5      n[        R                  R                  SU/ SQ5      n[        R                  R                  USX/X/5      nU R                  U[        R                  " SU5      U5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  U:X  d   eg )Nr/   r  r!   sum_innextsum_outr   Identityscan_out	scan_bodyr0   r.   Scaninitialr  r	  zr-   )r   r   bodynum_scan_inputs)r-   rD   r0   test_scan_8_9r   )r   r5   r   r   r2   r3   r4   r   r6   r   rF   rG   rH   rI   )r   r   r   r   node1node2gno_sequence_lensr8   r  r  r	  r  r   r   s                  r   r  "TestVersionConverter.test_scan_8_93  s"   
%%	%%f%K & 

 %%;L & 

 KK""N228YL2269qcJ
 229i!M22:y1#N
 KK!!()S9c
 ! " 
 ++44Y	Aq6RKK..sIyIKK..sI1vFKK..sIyI&&uo|aVT//6,,R<h
 $$))!,44>>>++A.66(BBBr   c                    SnSn[         R                  n[         R                  n[        R                  R                  SS/S/[         R                  S9/n[        R                  " US[        R                  R                  SUSS	/5      /[        R                  R                  SUSS	/5      /5      nU R                  U[        R                  " S
U5      U5      nUR                  R                  S   R                  S:X  d   eUR                  R                  S   R                  R                  R                   U:X  d   eUR"                  S   R$                  U:X  d   eg )Nr/   r  Castr&   r(   )r   r   to	test_castr0   rD   r.   r   )r   r5   UINT32r   r   r2   r3   r4   r   r6   r   rF   rG   r   r   r   r   rH   rI   )r   r   r   data_type_fromdata_type_tor8   r   r   s           r   test_cast_8_9"TestVersionConverter.test_cast_8_9i  sD   
$**")) KK!!use8J8J " 
 !![[//^aVLM[[//\Aq6JK	
 //6,,R<h
 $$))!,44>>>!!((+00<<FF,V	
V++A.66(BBBr   c                    [         R                  " S/ S/[         R                  " S[        R                  S/SS/5      S9[         R                  " SSS/S	S
/5      /n[         R
                  " US[         R                  " S[        R                  S5      /[         R                  " S	[        R                  S5      [         R                  " S
[        R                  S5      /5      nU R                  U[         R                  " SS5      S5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  S:X  d   eg )Nr   splitr.   r0   rD   r   Splitr&   Y1Y2r)   r*   r0   r      r&  r   r   rJ   s       r   test_split_13_12%TestVersionConverter.test_split_13_12  s,   	(([->->aVL	 WsGntTlC
 !!**30A0A4HI--dK4E4EtL--dK4E4EtL	
 //%1J1J2r1RTVW$$))!,44???++A.66"<<<r   c                    [         R                  " SS/SS/SS/S9/n[         R                  " US[         R                  " S[        R
                  S	5      /[         R                  " S[        R
                  S
5      [         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " SS5      S5      nUR                  R                  S   R                  S:X  d   eUR                  R                  S   R                  S:X  d   eUR                  S   R                  S:X  d   eg )Nr  r&   r  r  r0   rD   )r  r)   r*   r  r   r.   r&  r  r   r   r-   rE   rJ   s       r   test_split_12_13%TestVersionConverter.test_split_12_13  s   !!'C54,q!fMN!!**30A0A4HI--dK4E4EtL--dK4E4EtL	
 //%1J1J2r1RTVW$$))!,44
BBB$$))!,44???++A.66"<<<r   c                 ^   [         R                  " S/ S/[         R                  " S[        R                  S/S/5      S9[         R                  " SSS/S	/5      /n[         R
                  " US
[         R                  " S[        R                  S5      /[         R                  " S	[        R                  S5      /5      nU R                  U[         R                  " SS5      S5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  S:X  d   eg )Nr   axesr.   r-   r   r   	ReduceSumr&   r(   r)   rm   r-   r+   r  r&  r   rJ   s       r   test_axes_input_to_attr_13_122TestVersionConverter.test_axes_input_to_attr_13_12  s   (([->->aSI	 [3-#?
 !!**30A0A6JK**30A0A6JK	
 //%1J1J2r1RTVW$$))!,44CCC++A.66"<<<r   c           
         [         R                  " SS/S/S/S9/n[         R                  " US[         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " S	S
5      S5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  S:X  d   eg )Nr  r&   r(   r   )r  r)   rm   r  r.   r&  r  r   rE   rJ   s       r   test_axes_attr_to_input_12_132TestVersionConverter.test_axes_attr_to_input_12_13  s    !!+use1#FG!!**30A0A6JK**30A0A6JK	
 //%1J1J2r1RTVW$$))!,44
BBB++A.66"<<<r   c           
         [         R                  " SS/S/SS/SS/SS/S9/n[         R                  " US	[         R                  " S[        R
                  S
5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " SS5      S5      nUR                  R                  S   R                  S:X  d   eUR                  R                  S   R                  S:X  d   eUR                  R                  S   R                  S:X  d   eUR                  R                  S   R                  S:X  d   eUR                  S   R                  S:X  d   e[        UR                  R                  S   R                  5      S:X  d   e[        UR                  R                  S   R                  5      S:X  d   eg )NSlicer&   r(   r   r-   rD   
   )r  startsendsr)   )   r  r+   )rD   r  r+   r.   r  r   r0   r   )r   r2   r3   r4   r   r5   r   r6   r   rF   rG   rH   rI   r   inputr   rJ   s       r   test_slice_9_10$TestVersionConverter.test_slice_9_10  s   #QFAq6B

 !!**30A0A;OP**30A0A:NO	
 //%1J1J2q1QSUV$$))!,44
BBB$$))!,44
BBB$$))!,44
BBB$$))!,44???++A.66"<<<?((--a06671<<<?((--a0::;q@@@r   c                    SnSn[         R                  nSnSnSnSnSn[        R                  R	                  S/ SQS	S
/US9/n	[        R
                  " U	S[        R                  R                  SX4XV/5      [        R                  R                  SX7X/5      [        R                  R                  SX7X/5      [        R                  R                  SX7SU-  /5      /[        R                  R                  S
X7XX/5      /5      n
U R                  U
[        R                  " S	U5      U5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  U:X  d   e[        UR                  R                  S   R                  5      S:X  d   eUR                  R                  S   R                  S   R                   S:X  d   eg )Nr     r-   r0   rD   r+   RNNr&   r"   Rr.   Y_hr   r   hidden_sizetest_rnnr&   r"   r  rk   r   layoutr   r5   r   r   r2   r3   r4   r   r6   r   rF   rG   rH   rI   r   r   r   r   r   r   r   
seq_length
batch_size
input_sizenum_directionsr  r8   r   r   s               r   test_rnn_13_14#TestVersionConverter.test_rnn_13_14  s   
%%	


 KK!!&U'	 " 
 !!22$H 22[$M 22[$N 22Q_$E 229z&O#
0 //6,,R<h
 $$))!,44===++A.66(BBB?((--a0::;q@@@$$))!,66q9>>(JJJr   c                    SnSn[         R                  nSnSnSnSnSn[        R                  R	                  S/ SQS	S
/US9/n	[        R
                  " U	S[        R                  R                  SX4XV/5      [        R                  R                  SX7SU-  U/5      [        R                  R                  SX7SU-  U/5      [        R                  R                  SX7SU-  /5      /[        R                  R                  S
X7XX/5      /5      n
U R                  U
[        R                  " S	U5      U5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  U:X  d   e[        UR                  R                  S   R                  5      S:X  d   eUR                  R                  S   R                  S   R                   S:X  d   eg )Nr  r  r-   r0   rD   r+   GRUr  r.   r  r  test_grur&   r"   r  rk   rQ   r   r  r  r  s               r   test_gru_13_14#TestVersionConverter.test_gru_13_14#  s   
%%	


 KK!!&U'	 " 
 !!22$H 22Q_j$Q 22Q_k$R 22Q_$E 229z&O#
0 //6,,R<h
 $$))!,44===++A.66(BBB?((--a0::;q@@@$$))!,66q9>>(JJJr   c                    SnSn[         R                  nSnSnSnSnSn[        R                  R	                  S/ SQS	S
/US9/n	[        R
                  " U	S[        R                  R                  SX4XV/5      [        R                  R                  SX7SU-  U/5      [        R                  R                  SX7SU-  U/5      [        R                  R                  SX7SU-  /5      /[        R                  R                  S
X7XX/5      /5      n
U R                  U
[        R                  " S	U5      U5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  U:X  d   e[        UR                  R                  S   R                  5      S:X  d   eUR                  R                  S   R                  S   R                   S:X  d   eg )Nr  r  r-   r0   rD   r+   LSTMr  r.   r  r  	test_lstmr&   r"   r   r  rk   r/   r   r  r  r  s               r   test_lstm_13_14$TestVersionConverter.test_lstm_13_14Y  s   
%%	


 KK!!&U'	 " 
 !!22$H 22Q_j$Q 22Q_k$R 22Q_$E 229z&O#
0 //6,,R<h
 $$))!,44>>>++A.66(BBB?((--a0::;q@@@$$))!,66q9>>(JJJr   c                 R   SnSn[         R                  nSnSnSnSnSn[        R                  R	                  S/ SQS	S
/USS9/n	[        R
                  " U	S[        R                  R                  SX4XV/5      [        R                  R                  SX7X/5      [        R                  R                  SX7X/5      [        R                  R                  SX7SU-  /5      /[        R                  R                  S
X7XX/5      /5      n
U R                  U
[        R                  " S	U5      U5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  U:X  d   e[        UR                  R                  S   R                  5      S:X  d   eg )Nr  r  r-   r0   rD   r+   r  r  r.   r  r   r   r   r  r  r  r&   r"   r  rk   r   r5   r   r   r2   r3   r4   r   r6   r   rF   rG   rH   rI   r   r   r  s               r   test_rnn_14_13#TestVersionConverter.test_rnn_14_13  s   
%%	


 KK!!&U' " 
 !!22$H 22[$M 22[$N 22Q_$E 229z&O#
0 //6,,R<h
 $$))!,44===++A.66(BBB?((--a0::;q@@@r   c                 b   SnSn[         R                  nSnSnSnSnSn[        R                  R	                  S/ SQS	S
/USS9/n	[        R
                  " U	S[        R                  R                  SX4XV/5      [        R                  R                  SX7SU-  U/5      [        R                  R                  SX7SU-  U/5      [        R                  R                  SX7SU-  /5      /[        R                  R                  S
X7XX/5      /5      n
U R                  U
[        R                  " S	U5      U5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  U:X  d   e[        UR                  R                  S   R                  5      S:X  d   eg )Nr  r  r-   r0   rD   r+   r  r  r.   r  r   r  r  r&   r"   r  rk   rQ   r  r  s               r   test_gru_14_13#TestVersionConverter.test_gru_14_13  s   
%%	


 KK!!&U' " 
 !!22$H 22Q_j$Q 22Q_k$R 22Q_$E 229z&O#
0 //6,,R<h
 $$))!,44===++A.66(BBB?((--a0::;q@@@r   c                 b   SnSn[         R                  nSnSnSnSnSn[        R                  R	                  S/ SQS	S
/USS9/n	[        R
                  " U	S[        R                  R                  SX4XV/5      [        R                  R                  SX7SU-  U/5      [        R                  R                  SX7SU-  U/5      [        R                  R                  SX7SU-  /5      /[        R                  R                  S
X7XX/5      /5      n
U R                  U
[        R                  " S	U5      U5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  U:X  d   e[        UR                  R                  S   R                  5      S:X  d   eg )Nr  r  r-   r0   rD   r+   r  r  r.   r  r   r  r  r&   r"   r   r  rk   r/   r  r  s               r   test_lstm_14_13$TestVersionConverter.test_lstm_14_13  s   
%%	


 KK!!&U' " 
 !!22$H 22Q_j$Q 22Q_k$R 22Q_$E 229z&O#
0 //6,,R<h
 $$))!,44>>>++A.66(BBB?((--a0::;q@@@r   c           
         Sn[         R                  " SS/S/US9/n[         R                  " US[         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " S	S
5      S5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  S:X  d   eg )Nr   r-   r0   r   r0   r-   Padr&   r(   )padsr)   r-   r0   r0   r-   r+   r+   r.   r     r-   r   rE   r   r  r8   r   r   s        r   test_pad_10_11#TestVersionConverter.test_pad_10_111  s    !!!%#DAB!!**30A0A9MN**30A0A9MN	
 //%1J1J2r1RTVW $$))!,44===++A.66"<<<r   c           
         Sn[         R                  " SS/S/USS9/n[         R                  " US[         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S	5      /5      nU R                  U[         R                  " S
S5      S5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  S:X  d   eg )Nr  r  r&   r(   r]  )r  r   r)   r  r  r.   r  r  r-   r   rE   r  s        r   test_pad_with_value_10_11.TestVersionConverter.test_pad_with_value_10_11@  s    !!!%#DLM!!**30A0A9MN**30A0A9MN	
 //%1J1J2r1RTVW $$))!,44===++A.66"<<<r   c                    SnSn[         R                  nS/n[        R                  R	                  SS/S/SSS	9/n[        R                  R                  SX45      /n[        R                  R                  SX45      /n[        R                  " US
Xg5      n[        R                  R	                  SS/S/SSS	9/n	[        R                  R                  SX45      /n
[        R                  R                  SX45      /n[        R                  " U	S
X5      n[        R                  R	                  SS/S/UUS9/n[        R                  R                  S[         R                  / 5      /n[        R                  R                  SX45      /n[        R                  " SX4SS/5      /n[        R                  " USXU5      nU R                  U[        R                  " SU5      U5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  U:X  d   eUR                  R                  S   R                   S   R"                  R                  S   R                  S:X  d   e[%        UR                  R                  S   R                   S   R"                  R                  S   R                   5      S:X  d   eUR                  R                  S   R                   S   R"                  R                  S   R                  S:X  d   e[%        UR                  R                  S   R                   S   R"                  R                  S   R                   5      S:X  d   eg )Nr  r  r0   Clipsub_insub_outr   r   )r   r   minmaxthen_gIfcondout)r   r   then_branchelse_branchg      @g      @test_subgraphsr.   r   r-   )r   r5   r   r   r2   r4   r3   r<  r   r   r6   r   rF   rG   rH   rI   r   r  r   )r   r   r   r   r   
subg1_nodesubg1_inputsubg1_outputsubg1
subg2_nodesubg2_inputsubg2_outputsubg2rF   r  r   initr   	converteds                      r   test_if_subgraph_10_11+TestVersionConverter.test_if_subgraph_10_11P  s+   
%%	S
 KK!!zI;CS " 

 KK..xO
 KK..y)P
 !!*hR KK!!zI;CS " 

 KK..xO
 KK..y)P
 !!*hR KK!!x!! " 
 33FK<L<LbQR++44UIRS""8YS#JOP!!$(8%NOO6,,R<h
	 ##A&..$666%%a(00H<<<##A&00355::1=EEOOO9??''*44Q799>>qAKKLPQQQQ##A&00355::1=EEOOO9??''*44Q799>>qAKKLPQQQQr   c           
         [         R                  " S/ SQS/5      /nSS/n[        R                   R                  S[        R                  R
                  S/U5      nSS	/n[        R                   R                  S
[        R                  R
                  S/U5      nSS/n[        R                   R                  S[        R                  R
                  S/U5      nSS/n[        R                   R                  S[        R                  R
                  S/U5      n	[         R                  " US[         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S5      /X5Xy/5      n
U R                  U
[         R                  " SS5      S5      nUR                  R                  S   R                  S:X  d   eUR                  S   R                  S:X  d   eg )Nr~   r   r(   g?g
ףp=
?r   r0   g333333?gHzG?rk   gzG?g?r   g)\(?g{Gz?r   r)   r&   )r-   r0   r0   rD   r.   r  r&  r   )r   r2   r   r   r   r5   r3   r4   r   r6   r   rF   rG   rH   rI   )r   r8   rj  rk  b_valueb_tensor
mean_valuemean_tensor	var_value
var_tensorr   r   s               r   'test_initializer_not_in_input_above_ir4<TestVersionConverter.test_initializer_not_in_input_above_ir4  s   $&H3%
 Tl{{..T%%++aS+
 ,;;**30@0@0F0FWUD\
kk--D$$**QC
 4L	[[,,4##))A3	

 !!**30A0A<PQ**30A0A<PQ[=
 //%1J1J2r1RTVW$$))!,448LLLL++A.66"<<<r   c           
         Sn[         R                  " SS/S/US9/n[         R                  " US[         R                  " S[        R
                  S5      /[         R                  " S[        R
                  S5      /5      nU R                  U[         R                  " SS	5      S
5      nUR                  R                  S   R                  S:X  d   eUR                  R                  S   R                  S:X  d   eUR                  R                  S   R                  S   R                  S:X  d   eUR                  R                  S   R                  S   R                  U:X  d   eUR                  R                  S   R                  S:X  d   eUR                  R                  S   R                  S   R                  S:X  d   eUR                  R                  S   R                  S   R                  S:X  d   eUR                  R                  S   R                  S:X  d   eUR                  S   R                  S
:X  d   eg )Nr   Softmaxr&   r(   r   r)   )r-   r0   rD   r.   r  r  Shaper-   r#  r\   r0   rD   r%   )r   r2   r3   r4   r   r5   r   r6   r   rF   rG   r   r   irH   rI   )r   r\   r8   r   r   s        r   test_softmax_12_13'TestVersionConverter.test_softmax_12_13  s   !!)cUSEEF!!**30A0A9MN**30A0A9MN	
 //%1J1J2r1RTVW$$))!,44???$$))!,44	AAA$$))!,66q9>>&HHH$$))!,66q9;;tCCC$$))!,44	AAA$$))!,66q9>>&HHH$$))!,66q9;;rAAA$$))!,44	AAA++A.66"<<<r    r:   )F)S__name__
__module____qualname____firstlineno__r   r   intr   r   r?   rK   rS   rV   rY   r_   rc   rf   rn   rr   rw   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r   r(  r,  r3  r6  r=  rA  rF  rI  rN  rQ  rV  rY  r^  boolrl  rr  ry  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  __static_attributes__r  r   r   r
   r
      s    , 	
 
".,<".<"<"<$<"<"-<`-<`<<<0<0<(<,<,<<0<0<0<<<@<@C0C0C0<#CL<CBCBCBCBC.C.C6C6C<C<C<C<C4C4C:C:CD'C$ 'C4 'CT+Ct +C +C\<?;;3ClC<=2=$=,=A.3Kl3Kl3Kl3Al3Al3Al== 7Rv!=F=r   r
   __main__)rg  unittestnumpyr  onnx.version_converterr   r   r   r   r   r   r   TestCaser
   r  mainr  r   r   <module>r*     sJ   
     l=8,, l=^= zMMO r   