
    Sip                       S SK Jr  S SKrS SKrS SKrS SKr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)    )annotationsN)
GraphProto
ModelProtoOperatorSetIdProtoTensorProtocheckerhelperc                  V   \ rS rSr        SzS jrS{S jrS{S jrS{S jrS{S jrS{S jr	S{S jr
S{S	 jrS{S
 jrS{S jrS{S jrS{S jrS{S jrS{S jrS{S jrS{S jrS{S jrS{S jrS{S jrS{S jrS{S jrS{S jrS{S jrS{S jrS{S jrS{S jrS{S jrS{S jrS{S jr S{S jr!S{S  jr"S{S! jr#S{S" jr$S{S# jr%S{S$ jr&S{S% jr'S{S& jr(S{S' jr)S{S( jr*S{S) jr+S{S* jr,S{S+ jr-S{S, jr.S{S- jr/S{S. jr0S{S/ jr1S{S0 jr2S{S1 jr3S{S2 jr4S|S}S4 jjr5S|S}S5 jjr6S{S6 jr7S{S7 jr8S{S8 jr9S{S9 jr:S{S: jr;S{S; jr<S{S< jr=S{S= jr>S{S> jr?S{S? jr@S{S@ jrAS{SA jrBS{SB jrCS{SC jrDS{SD jrES{SE jrFS{SF jrGS{SG jrHS{SH jrIS{SI jrJS{SJ jrKS{SK jrLS{SL jrMS{SM jrNS{SN jrOS{SO jrPSP rQS{SQ jrRS{SR jrS\TR                  R                  SSSTSUSVSVSV\VR                  SW4SXSTSYSZSVSV\VR                  SW4S[STSYSZS\SV\VR                  SW4S]STSUSZS^SV\VR                  S34S_STSYSZS^SV\VR                  S34S`STSaS\SbSV\VR                  S34ScSdSeS^SbSV\VR                  S34SfSTSYSZSV\VR                  SVS34SgSTSYSZSVSV\VR                  S34/	5                        S~Sh j5       rZ\TR                  R                  / SiQ5                    SSj j5       r[S{Sk jr\S{Sl jr]S{Sm jr^\VR                  SV4       SSn jjr`\TR                  R                  SoSp/5      SSq j5       ra\TR                  R                  SoSp/5      SSr j5       rb\TR                  R                  / SsQ5            SSt j5       rc\TR                  R                  / SuQ5            SSv j5       rd\TR                  R                  / SwQ5            SSx j5       reSyrfgV)TestVersionConverter   c                    [         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)selfgraphinitial_versiontarget_version
orig_modelconverted_models         _/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/onnx/test/version_converter_test.py
_convertedTestVersionConverter._converted   sO     &&_<M

 00@@
 	O,    c                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   returnNone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_compatibleB       !!%$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>.testT   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_opS   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!   rD   rE   r(   r)   r*   r,   r.   r/   r+   r   rG   rL   s       r   test_add_8_5!TestVersionConverter.test_add_8_5a   rO   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!   rD   rE   r(   r)   r*   r,   r.   r+   r/   r   rG   rL   s       r   test_add_5_8!TestVersionConverter.test_add_5_8r   rO   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!   rD   rE   r(   r   r-   )axis	broadcastr)   )r+   r0   r*   r.   r+   r/   	UnsqueezerG   rL   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MulrD   rE   r(   r)   r*   r,   r.   r/   r+   r   rG   rL   s       r   test_mul_8_5!TestVersionConverter.test_mul_8_5   rO   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 )Nrd   rD   rE   r(   r)   r*   r,   r.   r+   r/   r   rG   rL   s       r   test_mul_5_8!TestVersionConverter.test_mul_5_8   rO   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+   rm   rn   r.   r-   r/   r   rG   rL   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 )Nrk   rl   r(   r)   r'   ro   rm   rn   r.   r/   r-   r   rG   rL   s       r   test_gemm_down#TestVersionConverter.test_gemm_down   rr   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   rG   rL   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 )
Nrw   r&   r(   r)   r*   r.   rx   r+   r   rG   rL   s       r   test_relu_7_5"TestVersionConverter.test_relu_7_5%  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BatchNormalizationr&   scalerm   meanvarr(   r)   r&   r*   r   r,   rm   r   r   r.   r/   r+   r   rG   rL   s       r   test_batch_normalization_8_51TestVersionConverter.test_batch_normalization_8_53  :   $&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,   rm   r   r   r.   r+   r/   r   rG   rL   s       r   test_batch_normalization_5_81TestVersionConverter.test_batch_normalization_5_8K  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rD   rE   X3X4X5r(   r)   rD   r,   rE   r   r   r   r*   r.   rF   r+   r   rG   rL   s       r   test_concat_3_5$TestVersionConverter.test_concat_3_5c  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)   rD   r,   rE   r   r   r   r*   r.   r+   rF   rG   rL   s       r   test_concat_5_3$TestVersionConverter.test_concat_5_3w  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*   rS      r   r	   r2   make_tensorr   INT64r3   r4   r5   r   r6   r   rH   rI   rJ   rK   rL   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   rS   r   r   r-   rG   rL   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.   rx   r/   r   rG   rL   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+   rx   r   rG   rL   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   rG   rL   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   rG   rL   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   rG   rL   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)   ro   r.   r/   r   rG   rL   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)   ro   r.   r/   r-   r   rG   rL   s       r   test_dropout_down&TestVersionConverter.test_dropout_down6  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 )Nrx   r/   r0   rF   r   Maxr&   r(   inputsoutputstest_maxr.   r   r   r5   r   r	   r2   r3   r4   r   r6   r   rH   rI   r   typetensor_type	elem_typerJ   rK   r   
from_opsetto_opset	data_type
data_shaper8   r   r   s           r   test_max_7_8!TestVersionConverter.test_max_7_8V     
%%	
&&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 )Nrx   r/   r   Minr&   r(   r   test_minr.   r   r   r   s           r   test_min_7_8!TestVersionConverter.test_min_7_8n  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 )Nrx   r/   rF   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   rG   rL   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 )NrS   rx   Upsampler&   r(   nearest      @       @)r   r   modewidth_scaleheight_scaletest_upsample_6_7r-   r-   r0   r0   r-   r-   r   rS   r.   r-   r   scalesr   r   r   r5   r   r	   r2   r3   r4   r   r6   lenr   rH   rI   	attributenamerJ   rK   )	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   rG   rL   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-   rF   r	  r
  r-   r  r   r   test_batchnormalization_8_9r.   r   )r   r5   r	   r2   r4   r3   r   r6   r   rH   rI   rJ   rK   r   r   r   r   r8   input_shaper	  r   rm   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   rF   r   r+   r&   r   r-   rm   r   r   test_batchnormalizationr.   r   )r   r5   r   r	   r2   r4   r3   r   r6   r   rH   rI   rJ   rK   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   rH   rI   r   r   r   r   rJ   rK   	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   rH   rI   r   r   r   r   rJ   rK   r  s	            r   test_constant_9_8&TestVersionConverter.test_constant_9_8C  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_9d  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   rH   rI   r   r   r   r   rJ   rK   r*  s          r   test_flatten_9_8%TestVersionConverter.test_flatten_9_8{  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/   r2  r&   r3  r(   r   r   r4  r.   r0   r   r.  r5  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  GreaterrD   rE   r(   r   r   test_greaterr.   r   r   r5   r   r	   r2   r3   r4   BOOLr   r6   r   rH   rI   r   r   r   r   rJ   rK   r5  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/   r<  rD   rE   r(   r   r   r=  r.   r0   r   r   r"  r   r	   r2   r3   r4   r?  r   r6   r   rH   rI   r   r   r   r   rJ   rK   r5  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  LessrD   rE   r(   r   r   	test_lessr.   r   r>  r5  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/   rG  rD   rE   r(   r   r   rH  r.   r0   r   rC  r5  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  MatMulrD   rE   r(   r   test_matmulrF   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/   rO  rD   rE   r(   r   rP  rF   r   r.   r0   r   r.  r*  s          r   test_matmul_9_8$TestVersionConverter.test_matmul_9_8Z  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  rk   rD   rE   r   r(   r   	test_gemmrD   rF   r   rE   r   r.   r   r   r*  s          r   test_gemm_8_9"TestVersionConverter.test_gemm_8_9t  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/   rk   rW  r(   r   rX  rD   rF   r   rE   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   ra  &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   Fc                <   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   rH   rI   r   initializerr   r   rJ   rK   )
r   	raw_scaler   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   rf  r   Constant_Outputr  r   r&   r(   r   re  rg  r   r   )
value_infor.   r-   r   r0   r   )r   r5   r   r	   r   rh  ri  rj  r2   r3   r4   r   r6   r   r   rH   rI   r   r   rJ   rK   )
r   rl  r   r   r   rm  rn  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rl  ru  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 rx  )ro  r{  s    r   "test_upsample_with_initializer_9_87TestVersionConverter.test_upsample_with_initializer_9_8,  s    --->r   c                "    U R                  SS9  g NTry  rz  r{  s    r   &test_upsample_with_raw_initializer_9_8;TestVersionConverter.test_upsample_with_raw_initializer_9_80      **T*:r   c                "    U R                  SS9  g r  rz  r{  s    r   (test_upsample_with_raw_constant_node_9_8=TestVersionConverter.test_upsample_with_raw_constant_node_9_84  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-   rF   r0   test_scan_8_9r   )r   r5   r   r	   r2   r3   r4   r   r6   r   rH   rI   rJ   rK   )r   r   r   r   node1node2gno_sequence_lensr8   r  r	  r  r  r   r   s                  r   r  "TestVersionConverter.test_scan_8_98  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   rF   r.   r   )r   r5   UINT32r   r	   r2   r3   r4   r   r6   r   rH   rI   r   r   r   r   rJ   rK   )r   r   r   data_type_fromdata_type_tor8   r   r   s           r   test_cast_8_9"TestVersionConverter.test_cast_8_9n  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   rF   r   Splitr&   Y1Y2r)   r*   r0   r      r)  r   r   rL   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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                  S   R                  S:X  d   e[        UR                  R                  S   R                  5      S:X  d   eg )Nr  r&   r  r  r-   r   test_split_optional_input)rS   r   r.   r)     r   r0   )r	   r2   r3   r4   r   r5   r   r6   r   rH   rI   rJ   rK   r   r   rL   s       r   test_split_with_optional_input3TestVersionConverter.test_split_with_optional_input  s   !!'C54,QGH!!'**30A0A4HI--dK4E4EtL--dK4E4EtL	
 //%1J1J2r1RTVW$$))!,44???++A.66"<<<?((--a0778A===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   rF   )r  r)   r*   r  r   r.   r)  r  r   r   r-   rG   rL   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/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                  S   R                  S:X  d   eg)z7Test Split 13->12 conversion with optional split input.r  r&   r  r  r   r   test_split_13_12_optional
   r*   r.   r  r)  NrG   rL   s       r   test_split_13_12_optional_input4TestVersionConverter.test_split_13_12_optional_input  s    !!'C54,QGH!!'**30A0A5IJ--dK4E4EtL--dK4E4EtL	
 //%1J1J2r1RTVW$$))!,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)   ro   r-   r+   r  r)  r   rL   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)   ro   r  r.   r)  r  r   rG   rL   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/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)z8Test Squeeze 13->11 conversion with optional axes input.Squeezer&   r(   test_squeeze_13_11_optional)r-   r  r-   r  r.   r     r   NrG   rL   s       r    test_squeeze_13_11_optional_axes5TestVersionConverter.test_squeeze_13_11_optional_axes  s    !!)cUSE:;!!)**30A0A:NO**30A0A5IJ	
 //%1J1J2r1RTVW$$))!,44	AAA++A.66"<<<r   c           
     4   [         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                  R                  S   R                  S:X  d   eUR                  S   R                  S:X  d   eg)zFTest Reshape 4->5 conversion - shape in attribute should become input.r%   r&   r(   r0   r+   r   test_reshape_4_5r  r0   r+   r.   r   r   r   r-   NrG   rL   s       r   test_reshape_4_5_optional_shape4TestVersionConverter.test_reshape_4_5_optional_shape  s    !!)cUSE!QHI!!**30A0A5IJ**30A0A6JK	
 //%1J1J2q1QSTU$$))!,44
BBB$$))!,44	AAA++A.66!;;;r   c                   [         R                  " S/ S/[         R                  " S[        R                  S// SQ5      S9[         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                  S   R                  S:X  d   eg)z:Test Resize 10->11 conversion with proper bounds checking.r   r   r.   r   )r`  r`  r   r   r   Resizer&   r(   r   )r   test_resize_10_11r   )r-   r-   r   r   r  r  r   N)r	   r2   r   r   r5   r3   r4   r   r6   rJ   rK   rL   s       r   test_resize_10_11_bounds_check3TestVersionConverter.test_resize_10_11_bounds_check  s     
(())A30D	 XXIN

 !!**30A0A<PQ**30A0A<PQ	
 //%1J1J2r1RTVW++A.66"<<<r   c                t   [         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      /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)z;Test Scatter 10->11 conversion with proper bounds checking.Scatterr   indicesupdatesr(   r   r   test_scatter_10_11r   r   r  r  r  r.   r  r  ScatterElementsN)r	   r2   r3   r4   r   r5   r   r   r6   r   rH   rI   rJ   rK   rL   s       r   test_scatter_10_11_bounds_check4TestVersionConverter.test_scatter_10_11_bounds_check5  s    Y(FTUV
 !! --fk6G6GN--i9J9JDQ--i9J9JDQ
 **30A0A4HI	
 //%1J1J2r1RTVW$$))!,448IIII++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-   rF   r  )r  startsendsr)   )   r  r+   )rF   r  r+   r.   r  r   r0   r   )r	   r2   r3   r4   r   r5   r   r6   r   rH   rI   rJ   rK   r   inputr   rL   s       r   test_slice_9_10$TestVersionConverter.test_slice_9_10I  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   rF   r+   RNNr&   r"   Rr.   Y_hr   r   hidden_sizetest_rnnr&   r"   r  rm   r   layoutr   r5   r   r	   r2   r3   r4   r   r6   r   rH   rI   rJ   rK   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   rF   r+   GRUr  r.   r  r  test_grur&   r"   r  rm   rS   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   rF   r+   LSTMr  r.   r  r  	test_lstmr&   r"   r   r  rm   r/   r   r  r  r  s               r   test_lstm_13_14$TestVersionConverter.test_lstm_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                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   rF   r+   r  r  r.   r  r   r   r   r  r  r  r&   r"   r  rm   r   r5   r   r	   r2   r3   r4   r   r6   r   rH   rI   rJ   rK   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   rF   r+   r  r  r.   r  r   r  r  r&   r"   r  rm   rS   r  r  s               r   test_gru_14_13#TestVersionConverter.test_gru_14_138  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   rF   r+   r  r  r.   r  r   r  r  r&   r"   r   r  rm   r/   r  r  s               r   test_lstm_14_13$TestVersionConverter.test_lstm_14_13n  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-   r   rG   r   r  r8   r   r   s        r   test_pad_10_11#TestVersionConverter.test_pad_10_11  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   rG   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   rH   rI   rJ   rK   r   r  r   )r   r   r   r   r   
subg1_nodesubg1_inputsubg1_outputsubg1
subg2_nodesubg2_inputsubg2_outputsubg2rH   r  r   initr   	converteds                      r   test_if_subgraph_10_11+TestVersionConverter.test_if_subgraph_10_11  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?rm   gzG?g?r   g)\(?g{Gz?r   r)   r&   )r-   r0   r0   rF   r.   r  r)  r   )r	   r2   r   r   r   r5   r3   r4   r   r6   r   rH   rI   rJ   rK   )r   r8   rm  rn  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   rF   r.   r  r  Shaper-   r&  r^   r0   rF   r%   r	   r2   r3   r4   r   r5   r   r6   r   rH   rI   r   r   irJ   rK   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   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   R                  S:X  d   eUR                  R                  S   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^   r0   r?  rA  s        r   test_softmax_13_12'TestVersionConverter.test_softmax_13_126  s6   !!)cUSEEF!!**30A0A9MN**30A0A9MN	
 //%1J1J2r1RTVW$$))!,44	AAA$$))!,66q9>>&HHH$$))!,66q9;;q@@@++A.66"<<<r   
per_tensor   rF   r,   NTper_axis_none_block_shaperI  r-   per_axis_zero_block_shaper   per_tensor_positive_block_shaper0   per_axis_positive_block_shape
blocked_2dr   rF   r   
blocked_3dr   rF       r   rF   r/   per_axis_output_dtypeper_axis_unsupported_typec	           	        ^    SU 4S jjn	U(       a  [         R                  " 5       OT R                  [        5      n
U
   U	" X#XEXg5        S S S 5        g ! , (       d  f       g = f)Nc           
     2  > [         R                  " SSS/S/UUUS9/n[         R                  " S[        R                  U 5      [         R                  " S[        R                  U5      /nU(       aD  UR                  [         R                  " SXQ5      5        US   R                  R                  S5        U=(       d    Un[         R                  " USU[         R                  " SX5      /5      n	TR                  U	[         R                  " S	S
5      S5      n
g )NQuantizeLinearr&   Sr(   )r^   
block_sizeoutput_dtypeZPr   r)   r.      r  )
r	   r2   r4   r   r5   appendr  r3   r   r6   )r  scale_shaper^   r[  r\  zero_point_dtyper8   r   output_type_r   _r   s              r   r)   6TestVersionConverter.test_quantize_21_20.<locals>.test  s       $#JE)!-	E --c;3D3DkR--c;3D3DkRF  11$8HV a%%d+';+;L%%..sLNO	E v'@'@R'H"MAr   r:   
contextlibnullcontextr>   r?   )r   rc  x_shaper`  r^   r[  r\  ra  
compatibler)   context_managers   `          r   test_quantize_21_20(TestVersionConverter.test_quantize_21_20F  sQ    \	N	N@ )3J""$8I8I,8W 	 tX __s   A
A!))rG  rH  r,   NNT)rJ  rH  rK  r-   NT)rL  rH  rK  r-   r   T)rM  rH  r,   r-   r0   F)rN  rH  rK  r-   r0   F)rO  rH  rP  r   r   F)rQ  rR  rT  r0   r   Fc                   ^  SU 4S jjnU(       a  [         R                  " 5       OT R                  [        5      nU   U" X#XE5        S S S 5        g ! , (       d  f       g = f)Nc                  > [         R                  " S/ SQS/UUS9/n[         R                  " US[         R                  " S[        R
                  U 5      [         R                  " S[        R                  U5      [         R                  " S[        R
                  U5      /[         R                  " S[        R                  U 5      /5      nTR                  U[         R                  " S	S
5      S5      ng )NDequantizeLinear)r&   rZ  r]  r(   )r^   r[  r)   r&   rZ  r]  r.   r^  r  )	r	   r2   r3   r4   r   INT8r5   r   r6   )r  r`  r^   r[  r8   r   rc  r   s          r   r)   8TestVersionConverter.test_dequantize_21_20.<locals>.test  s      &$E)E %%11#{7G7GU11#{7H7H+V11$8H8H+V
 ..sK4E4E{ST	E v'@'@R'H"MAr   r:   re  )	r   rc  y_shaper`  r^   r[  ri  r)   rj  s	   `        r   test_dequantize_21_20*TestVersionConverter.test_dequantize_21_20  sD    (	N. )3J""$8I8I,8W 	 t8 __s   
A
Ac                   [         R                  " 5        nSn[        R                  R                  " U6 R                  [        R                  5      n[        R                  R                  S[        R                  R                  [        U5      USS9n[        R                  R                  S[        R                  R                  / S/S9n[        R                  R                  SSS/S	/S
9n[        R                  R                  SU// [        R                  R                  S	[        R                  R                  [        U5      5      /XE/S9n[         R"                  R%                  US5      nSn	[        R                  R'                  SS5      /n
[        R                  R)                  XzS9nSUl        [        R,                  " UUSSU	SSS9  [        R.                  R1                  [        R2                  " USS9S5      nU R5                  [7        UR8                  R:                  5      S5        UR8                  R:                   Vs0 s H  oR<                  U_M     nnU R?                  SU5        US   nU R5                  UR@                  [        RB                  5        U R5                  [7        URD                  5      S5        URD                   Vs0 s H  nURF                  URH                  _M     nnU R5                  US   U	5        U R5                  US   S5        U R5                  US   S5        S S S 5        g s  snf s  snf ! , (       d  f       g = f)Nr0   rF   initializer_tensorT)r   r   dimsvalsrawinitializer_scalarr`  )r   r   rx  ry  r!   
sum_outputr   SimpleAddition)r   r8   r   r   rk  ztest_simple_add.onnxztest_simple_add.onnx.datar.   r  )r   r  r   F)save_as_external_dataall_tensors_to_one_filelocationsize_thresholdconvert_attribute)load_external_datar^  r0   rF   r  offset0length24)%tempfileTemporaryDirectoryr  randomrandastypefloat32r   r	   r   r   r5   listr2   r3   r4   ospathjoinmake_opsetidr   
ir_version
save_modelr   r   loadassertEqualr   r   rk  r   assertIndata_locationEXTERNALexternal_datakeyr   )r   temp_dirr$   random_datarw  r{  add_node	graph_defmodel_filenamedata_filenamer   	model_defr   r-  tensorslarge_tensoredexternal_data_dicts                     r   %test_external_data_version_conversion:TestVersionConverter.test_external_data_version_conversion  s   ((*hE))..%077

CK!%!8!8)**00%[  "9 " "&!8!8)**00U	 "9 " {{,,,.BC% - H ..%jKK66$d&6&6&<&<d5k
 0D / 
I  WW\\(4JKN7M![[55b"=>M..y.VI#%I OO&*(,& "' #44DD		.UCRO S!6!6!B!BCQG 4C3H3H3T3TU3T4yy$3TGUMM.8"#78L\779M9MNS!;!;<a@ >J=W=W!X=Wr"&&"(("2=W!X/
;]K/93?/94@M +*x V "YG +*s,   H9MM%A6M!M<AM
M
M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      /5      nU R                  U[         R                  " S	S
5      S5      nUR                  S   R                  S:X  d   eg )NWherer   r	  r  r!  wherer   rv  r	  r  r.   rI     r   )r	   r2   r3   r4   r   r?  r5   r   r6   rJ   rK   )r   r8   r   r.  s       r   test_where_16_15_success-TestVersionConverter.test_where_16_15_success3	  s    !!'+=wGH!!--fk6F6FO--c;3D3DfM--c;3D3DfM
 **5+2C2CVLM	
 OOE6+D+DR+LbQ	%%a(00B666r   c                B   ^  SU 4S jjnT R                  [        U5        g )Nc                   > [         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TR                  U[         R                  " S	S
5      S5        g )Nr  r  r!  
where_bf16r   rv  r	  r  r.   rI  r  )	r	   r2   r3   r4   r   r?  BFLOAT16r   r6   r7   s     r   r)   BTestVersionConverter.test_where_bfloat16_16_15_fails.<locals>.testC	  s    %%g/AE7KLE%%11&+:J:JFS11#{7K7KVT11#{7K7KVT
 ..uk6J6JFST	E OOE6#<#<R#DbIr   r:   r=   r@   s   ` r   test_where_bfloat16_16_15_fails4TestVersionConverter.test_where_bfloat16_16_15_failsB	  s    	J 	,-r   c                   SSSSS04SSS0 4S.nXA   u  pVpx[        U5      nUb  X8S'   [        R                  " U/ S	QS
/40 UD6/n	[        R                  " U	UR	                  5       [        R
                  " SX%5      [        R
                  " S[        R                  U5      [        R
                  " SX'5      /[        R
                  " S
X%5      /5      $ )zIBuild a graph for ScatterElements or ScatterND with standard test shapes.rv  r^   r   )r   r+   )r0   r-   r  )r  	ScatterND	reductionr  r!  r   r  r  )dictr	   r2   r3   lowerr4   r   r   )
r   op_namedtyper  scatter_graph_configdata_s	indices_s	updates_sattrsr8   s
             r   _make_scatter_graph(TestVersionConverter._make_scatter_graphS	  s     !'D &&"5 
 /C.K+9U !*+W&DugWQVW
   MMO--feD--i9J9JIV--iJ
 **5%@A	
 		
r   )r  )r  c                    U R                  U[        R                  S5      nU R                  U[        R
                  " SS5      S5      nUR                  S   R                  S:X  d   eg )Nnoner.   rI  r  r   )r  r   r5   r   r	   r6   rJ   rK   )r   r  r   r.  s       r   test_scatter_16_15_success/TestVersionConverter.test_scatter_16_15_successq	  sZ    ((+2C2CVLOOE6+D+DR+LbQ	%%a(00B666r   c                F   ^ ^ SUU 4S jjnT R                  [        U5        g )Nc                    > TR                  T[        R                  5      n TR                  U [        R
                  " SS5      S5        g Nr.   rI  r  )r  r   r  r   r	   r6   )r   r  r   s    r   r)   DTestVersionConverter.test_scatter_16_15_bfloat16_fails.<locals>.testy	  s8    ,,Wk6J6JKEOOE6#<#<R#DbIr   r:   r=   )r   r  r)   s   `` r   !test_scatter_16_15_bfloat16_fails6TestVersionConverter.test_scatter_16_15_bfloat16_failsw	  s!    	J 	J 	,-r   )r  addr  mulr  r  r  r  c                J   ^ ^^ SUUU 4S jjnT R                  [        U5        g )Nc                    > TR                  T[        R                  T5      n TR                  U [        R
                  " SS5      S5        g r  r  r   r5   r   r	   r6   r   r  r  r   s    r   r)   MTestVersionConverter.test_scatter_16_15_reduction_add_mul_fails.<locals>.test	  :    ,,Wk6G6GSEOOE6#<#<R#DbIr   r:   r=   r   r  r  r)   s   ``` r   *test_scatter_16_15_reduction_add_mul_fails?TestVersionConverter.test_scatter_16_15_reduction_add_mul_fails	  !    	J 	J 	,-r   ))r  r  )r  r  )r  r  )r  r  c                J   ^ ^^ SUUU 4S jjnT R                  [        U5        g )Nc                    > TR                  T[        R                  T5      n TR                  U [        R
                  " SS5      S5        g Nr.   r     r  r  s    r   r)   MTestVersionConverter.test_scatter_18_17_reduction_max_min_fails.<locals>.test	  r  r   r:   r=   r  s   ``` r   *test_scatter_18_17_reduction_max_min_fails?TestVersionConverter.test_scatter_18_17_reduction_max_min_fails	  r  r   ))r  N)r  r  r  r  )r  N)r  r  r  r  c                    U R                  U[        R                  U5      nU R                  U[        R
                  " SS5      S5      n[        R                  " U5        g r  )r  r   r5   r   r	   r6   r   r   )r   r  r  r   r.  s        r   -test_scatter_18_17_allowed_reductions_successBTestVersionConverter.test_scatter_18_17_allowed_reductions_success	  sK     ((+2C2CYOOOE6+D+DR+LbQ	I&r    )r   r   r   r   r   intr;   r   r:   )F)rl  boolr;   r<   )rc  strrh  tuple[int, ...]r`  r  r^   r  r[  r  r\  
int | Nonera  r  ri  r  r;   r<   )rc  r  rr  r  r`  r  r^   r  r[  r  ri  r  r;   r<   )r  r  r  r  r  
str | Noner;   r   )r  r  r;   r<   )r  r  r  r  r;   r<   )r  r  r  r  r;   r<   )g__name__
__module____qualname____firstlineno__r   rA   rM   rU   rX   r[   ra   re   rh   rp   rt   ry   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/  r6  r9  r@  rD  rI  rL  rQ  rT  rY  r\  ra  ro  ru  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/  r8  rB  rE  parameterizedexpandr   rp  FLOAT8E4M3FNUINT16rk  rs  r  r  r  r5   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T+C\<?;;3ClC<=0>&=$=$=,==< =.=(A.3Kl3Kl3Kl3Al3Al3Al== 7Rv!=F=*=    ''7D$dK<L<LdS+  	 ,  	 2  	 0  	 7FAq$8H8H%P:y!Qk>N>NPUV'((	 ,""	m@	
BF.Y.Y !.Y %	.Y
 .Y .Y !.Y %.Y .Y 
.YGBF.Y`   ''	

#9#9 !#9 %	#9
 #9 #9 #9 
#9
#9JGAT7.( !&& $	

 
 	

 

<   '')=~(NO7 P7
   '')=~(NO. P.   ''	
..'*.	..   ''	
..'*.	..   ''		
'''1'	''r   r   __main__)
__future__r   rf  r  ri  r  unittestnumpyr  r  onnx.version_converterr   r   r   r   r   r   r	   TestCaser   r  mainr  r   r   <module>r      sZ    #  	       Z&'8,, Z&'zL zMMO r   