
    bIg:                       d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZ	d dl	m
Z
mZmZmZmZmZ  G d dej                         Zedk(  r ej&                          yy)    )annotationsN)
GraphProto
ModelProtoOperatorSetIdProtoTensorProtocheckerhelperc                     e Zd Z	 	 	 	 	 	 	 	 dddZdedZdedZdedZdedZdedZdedZ	dedZ
ded	Zded
ZdedZdedZdedZdedZdedZdedZdedZdedZdedZdedZdedZdedZdedZdedZdedZdedZdedZdedZdedZdedZ dedZ!ded Z"ded!Z#ded"Z$ded#Z%ded$Z&ded%Z'ded&Z(ded'Z)ded(Z*ded)Z+ded*Z,ded+Z-ded,Z.ded-Z/ded.Z0ded/Z1ded0Z2ded1Z3dfdgd3Z4dfdgd4Z5ded5Z6ded6Z7ded7Z8ded8Z9ded9Z:ded:Z;ded;Z<ded<Z=ded=Z>ded>Z?ded?Z@ded@ZAdedAZBdedBZCdedCZDdedDZEdedEZFdedFZGdedGZHdedHZIdedIZJdJ ZKdedKZLeMj                  j                  dLdMdNdOdOdOeOj                  dPfdQdMdRdSdOdOeOj                  dPfdTdMdRdSdUdOeOj                  dPfdVdMdNdSdWdOeOj                  d2fdXdMdRdSdWdOeOj                  d2fdYdMdZdUd[dOeOj                  d2fd\d]d^dWd[dOeOj                  d2fd_dMdRdSdOeOj                  dOd2fd`dMdRdSdOdOeOj                  d2fg	      	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dhda       ZSeMj                  j                  g db      	 	 	 	 	 	 	 	 	 	 	 	 	 	 didc       ZTyO)jTestVersionConverterc                    t        j                  |d|g      }t        j                  j	                  ||      }t        j                  |       |S )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/answerous/venv/lib/python3.12/site-packages/onnx/test/version_converter_test.py
_convertedzTestVersionConverter._converted   sQ     &&_<M

 00@@
 	O,    c                >     d fd} j                  t        |       y )Nc                 >   t        j                  dddgdg      t        j                  dddgdg      t        j                  dddgdg      g} t        j                  | d	t        j                  dt        j
                  d
      t        j                  dt        j
                  d      t        j                  dt        j
                  d      gt        j                  dt        j
                  d
      g      }j                  |t        j                  dd      d       y )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'   z>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_incompatiblez0TestVersionConverter.test_backwards_incompatible*   s    	H$ 	,-r   c           
        t        j                  dddgdg      g}t        j                  |dt        j                  dt        j
                  d      t        j                  dt        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  dd      d	      }|j                  j                  d
   j                  dk(  sJ |j                  d
   j                  d	k(  sJ y )Nr   X1X2r&   r'   r(   r,      r.   r   r	   r0   r1   r2   r   r3   r   r4   r   nodeop_typeopset_importversionr   r6   r   r   s       r   test_backwards_compatiblez.TestVersionConverter.test_backwards_compatible@       !!%$u=>!!--dK4E4EtL--dK4E4EtL **30A0A4HI
 //%1J1J2q1QSTU$$))!,44===++A.66!;;;r   c                >     d fd} j                  t        |       y )Nc            
     H   t        j                  ddgdg      g} t        j                  | dt        j                  dt        j
                  d      gt        j                  dt        j
                  d      g      }j                  |t        j                  dd      d       y )	NCosr$   r&   r'   r(   r,   r-      r/   r5   s     r   r'   z7TestVersionConverter.test_non_existent_op.<locals>.testR   s    %%ecUSE:;E%%..sK4E4EtLM..sK4E4EtLM	E OOE6#<#<R#CQGr   r7   r:   r=   s   ` r   test_non_existent_opz)TestVersionConverter.test_non_existent_opQ   s    	H 	,-r   c           
        t        j                  dddgdg      g}t        j                  |dt        j                  dt        j
                  d      t        j                  dt        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  dd	      d
      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  d
k(  sJ y )Nr   r@   rA   r&   r'   r(   r*   r,   r-   r)   r   rC   rH   s       r   test_add_8_5z!TestVersionConverter.test_add_8_5_   rJ   r   c           
        t        j                  dddgdg      g}t        j                  |dt        j                  dt        j
                  d      t        j                  dt        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  dd	      d
      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  d
k(  sJ y )Nr   r@   rA   r&   r'   r(   r*   r,   r)   r-   r   rC   rH   s       r   test_add_5_8z!TestVersionConverter.test_add_5_8p   rJ   r   c           
     r   t        j                  dddgdgdd      g}t        j                  |dt        j                  dt        j
                  d	      t        j                  dt        j
                  d
      gt        j                  dt        j
                  d
      g      }| j                  |t        j                  dd      d      }|j                  j                  d   j                  dk(  sJ |j                  j                  d   j                  dk(  sJ |j                  d   j                  dk(  sJ y )Nr   r@   rA   r&   r   r+   )axis	broadcastr'   )r)   r.   r(   r,   r)   r-   	UnsqueezerC   rH   s       r   test_add_5_8_with_unsqueezez0TestVersionConverter.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           
        t        j                  dddgdg      g}t        j                  |dt        j                  dt        j
                  d      t        j                  dt        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  dd	      d
      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  d
k(  sJ y )NMulr@   rA   r&   r'   r(   r*   r,   r-   r)   r   rC   rH   s       r   test_mul_8_5z!TestVersionConverter.test_mul_8_5   rJ   r   c           
        t        j                  dddgdg      g}t        j                  |dt        j                  dt        j
                  d      t        j                  dt        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  dd	      d
      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  d
k(  sJ y )NrZ   r@   rA   r&   r'   r(   r*   r,   r)   r-   r   rC   rH   s       r   test_mul_5_8z!TestVersionConverter.test_mul_5_8   rJ   r   c                d   t        j                  dg ddg      g}t        j                  |dt        j                  dt        j
                  d      t        j                  dt        j
                  d      t        j                  dt        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  d	d
      d      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  dk(  sJ y )NGemmr%   BCr&   r'   r%   r)   r)   ra   rb   r,   r+   r-   r   rC   rH   s       r   test_gemm_upz!TestVersionConverter.test_gemm_up   $   !!&/C5AB!!--%% --%% --%%#6 --%%	;'
P //%1J1J2q1QSTU$$))!,44>>>++A.66!;;;r   c                d   t        j                  dg ddg      g}t        j                  |dt        j                  dt        j
                  d      t        j                  dt        j
                  d      t        j                  dt        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  d	d
      d      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  dk(  sJ y )Nr_   r`   r&   r'   r%   rc   ra   rb   r,   r-   r+   r   rC   rH   s       r   test_gemm_downz#TestVersionConverter.test_gemm_down   re   r   c           
        t        j                  ddgdg      g}t        j                  |dt        j                  dt        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  dd      d      }|j                  j                  d	   j                  dk(  sJ |j                  d	   j                  dk(  sJ y )
NRelur$   r&   r'   r(   r,   r)      r   rC   rH   s       r   test_relu_5_7z"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           
        t        j                  ddgdg      g}t        j                  |dt        j                  dt        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  dd      d      }|j                  j                  d	   j                  dk(  sJ |j                  d	   j                  dk(  sJ y )
Nri   r$   r&   r'   r(   r,   rj   r)   r   rC   rH   s       r   test_relu_7_5z"TestVersionConverter.test_relu_7_5#  rl   r   c                   t        j                  dg ddg      g}t        j                  |dt        j                  dt        j
                  d      t        j                  dt        j
                  d      t        j                  d	t        j
                  d      t        j                  d
t        j
                  d      t        j                  dt        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  dd      d      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  dk(  sJ y )NBatchNormalizationr$   scalera   meanvarr&   r'   r$   r(   rr   r*   ra   rs   rt   r,   r-   r)   r   rC   rH   s       r   test_batch_normalization_8_5z1TestVersionConverter.test_batch_normalization_8_51  :   $&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                   t        j                  dg ddg      g}t        j                  |dt        j                  dt        j
                  d      t        j                  dt        j
                  d      t        j                  d	t        j
                  d      t        j                  d
t        j
                  d      t        j                  dt        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  dd      d      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  dk(  sJ y )Nrp   rq   r&   r'   r$   r(   rr   r*   ra   rs   rt   r,   r)   r-   r   rC   rH   s       r   test_batch_normalization_5_8z1TestVersionConverter.test_batch_normalization_5_8I  rv   r   c                   t        j                  dg ddg      g}t        j                  |dt        j                  dt        j
                  d      t        j                  dt        j
                  d      t        j                  dt        j
                  d      t        j                  d	t        j
                  d      t        j                  d
t        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  dd      d      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  dk(  sJ y )NConcatr@   rA   X3X4X5r&   r'   r@   r*   rA   r|   r}   r~   r(   r,   rB   r)   r   rC   rH   s       r   test_concat_3_5z$TestVersionConverter.test_concat_3_5a  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                   t        j                  dg ddgd      g}t        j                  |dt        j                  dt        j
                  d      t        j                  d	t        j
                  d      t        j                  d
t        j
                  d      t        j                  dt        j
                  d      t        j                  dt        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  dd      d      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  dk(  sJ y )Nrz   r{   r&   r   rU   r'   r@   r*   rA   r|   r}   r~   r(   r,   r)   rB   rC   rH   s       r   test_concat_5_3z$TestVersionConverter.test_concat_5_3u  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   t        j                  dg dgt        j                  dt        j                  dgdg            t        j                  dddgd	g      g}t        j
                  |d
t        j                  dt        j                  d      gt        j                  d	t        j                  d      g      }| j                  |t        j                  dd      d      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  dk(  sJ y )NConstantr"   r,   r+   r)   valuer#   r$   r&   r'   r(   rN      r   r	   r0   make_tensorr   INT64r1   r2   r3   r   r4   r   rD   rE   rF   rG   rH   s       r   test_reshape_6_4z%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           
     (   t        j                  ddgdgdg      g}t        j                  |dt        j                  dt        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  dd	      d
      }|j                  j                  d   j                  dk(  sJ |j                  j                  d   j                  dk(  sJ |j                  d   j                  d
k(  sJ y )Nr#   r$   r&   r)   )r"   r'   r(   r,   r   rN   r   r   r+   rC   rH   s       r   test_reshape_4_6z%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                   t        j                  dg ddg      g}t        j                  |dt        j                  dt        j
                  d      t        j                  dt        j
                  d      t        j                  dt        j
                  d      t        j                  d	t        j
                  d      t        j                  d
t        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  dd      d      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  dk(  sJ y )NSumdata_0data_1data_2data_3data_4sumr'   r   r(   r   r   r   r   r,   rj   r-   r   rC   rH   s       r   test_sum_7_8z!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                   t        j                  dg ddg      g}t        j                  |dt        j                  dt        j
                  d      t        j                  dt        j
                  d      t        j                  dt        j
                  d      t        j                  d	t        j
                  d      t        j                  d
t        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  dd      d      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  dk(  sJ y )Nr   r   r   r'   r   r(   r   r   r   r   r,   r)   rj   r   rC   rH   s       r   test_sum_5_8z!TestVersionConverter.test_sum_5_8  r   r   c                   t        j                  dg ddg      g}t        j                  |dt        j                  dt        j
                  d      t        j                  dt        j
                  d      t        j                  dt        j
                  d      t        j                  d	t        j
                  d      t        j                  d
t        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  dd      d      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  dk(  sJ y )Nr   r   r   r'   r   r(   r   r   r   r   r,   r-   r)   r   rC   rH   s       r   test_sum_8_5z!TestVersionConverter.test_sum_8_5  r   r   c           
        t        j                  ddgdgddg      g}t        j                  |dt        j                  dt        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  dd      d	      }|j                  j                  d
   j                  dk(  sJ |j                  d
   j                  d	k(  sJ y NAveragePoolr$   r&   r+   kernel_shaper'   r)   r)   r)   r)   r,   r-   r   rC   rH   s       r   test_averagepool_upz(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           
        t        j                  ddgdgddg      g}t        j                  |dt        j                  dt        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  dd	      d      }|j                  j                  d
   j                  dk(  sJ |j                  d
   j                  dk(  sJ y r   rC   rH   s       r   test_averagepool_downz*TestVersionConverter.test_averagepool_down  r   r   c           
        t        j                  ddgdgd      g}t        j                  |dt        j                  dt        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  dd      d	      }|j                  j                  d
   j                  dk(  sJ |j                  d
   j                  d	k(  sJ y )NDropoutdataoutputr+   )is_testr'   rc   r,   r-   r   rC   rH   s       r   test_dropout_upz$TestVersionConverter.test_dropout_up  s    !!)fXz1MN!!--%%	 --%%	
0 //%1J1J2q1QSTU$$))!,44	AAA++A.66!;;;r   c           
        t        j                  ddgdg      g}t        j                  |dt        j                  dt        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  dd      d      }|j                  j                  d	   j                  dk(  sJ |j                  d	   j                  dk(  sJ y )
Nr   r   r   r'   rc   r,   r-   r+   r   rC   rH   s       r   test_dropout_downz&TestVersionConverter.test_dropout_down4  s    !!)fXzBC!!--%%	 --%%	
0 //%1J1J2q1QSTU$$))!,44	AAA++A.66!;;;r   c           
     |   d}d}t         j                  }d}t        j                  j	                  ddgdg      g}t        j
                  |dt        j                  j                  d||      gt        j                  j                  d||      g      }| j                  |t        j                  d	|      |      }|j                  j                  d
   j                  dk(  sJ |j                  j                  d
   j                  j                  j                  |k(  sJ |j                   d
   j"                  |k(  sJ y )Nrj   r-   r.   rB   r   Maxr$   r&   inputsoutputstest_maxr,   r   r   r3   r   r	   r0   r1   r2   r   r4   r   rD   rE   r   typetensor_type	elem_typerF   rG   r   
from_opsetto_opset	data_type
data_shaper6   r   r   s           r   test_max_7_8z!TestVersionConverter.test_max_7_8T  !   
%%	
&&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           
     |   d}d}t         j                  }d}t        j                  j	                  ddgdg      g}t        j
                  |dt        j                  j                  d||      gt        j                  j                  d||      g      }| j                  |t        j                  d	|      |      }|j                  j                  d
   j                  dk(  sJ |j                  j                  d
   j                  j                  j                  |k(  sJ |j                   d
   j"                  |k(  sJ y )Nrj   r-   r   Minr$   r&   r   test_minr,   r   r   r   s           r   test_min_7_8z!TestVersionConverter.test_min_7_8l  r   r   c           
     |   d}d}t         j                  }d}t        j                  j	                  ddgdg      g}t        j
                  |dt        j                  j                  d||      gt        j                  j                  d||      g      }| j                  |t        j                  d	|      |      }|j                  j                  d
   j                  dk(  sJ |j                  j                  d
   j                  j                  j                  |k(  sJ |j                   d
   j"                  |k(  sJ y )Nrj   r-   rB   Meanr$   r&   r   	test_meanr,   r   r   r   s           r   test_mean_7_8z"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           
        t        j                  ddgdgddg      g}t        j                  |dt        j                  dt        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  dd      d	      }|j                  j                  d
   j                  dk(  sJ |j                  d
   j                  d	k(  sJ y NMaxPoolr$   r&   r+   r   r'   r   r,   r-   r   rC   rH   s       r   test_maxpool_upz$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                   d}d}t         j                  }t        j                  j	                  ddgdgddd	      g}t        j
                  |d
t        j                  j                  d|g d      gt        j                  j                  d|g d      g      }| j                  |t        j                  d|      |      }t        |j                  j                        dk(  sJ |j                  j                  d   j                  dk(  sJ |j                  j                  d   j                  D cg c]  }|j                   }}d|v sJ d|vsJ d|vsJ |j                  d   j                   |k(  sJ y c c}w )NrN   rj   Upsampler$   r&   nearest      @       @)r   r   modewidth_scaleheight_scaletest_upsample_6_7r+   r+   r.   r.   r+   r+   r   rN   r,   r+   r   scalesr   r   r   r3   r   r	   r0   r1   r2   r   r4   lenr   rD   rE   	attributenamerF   rG   )	r   r   r   r   r6   r   r   attrattribute_namess	            r   r   z&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
DII
 
 ?***O333_444++A.66(BBB
s   1E7c           
        t        j                  ddgdgddg      g}t        j                  |dt        j                  dt        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  dd	      d      }|j                  j                  d
   j                  dk(  sJ |j                  d
   j                  dk(  sJ y r   rC   rH   s       r   test_maxpool_downz&TestVersionConverter.test_maxpool_down  r   r   c           	        d}d}t         j                  }t        j                  dg ddg      g}d}t        j                  d||      }t        j                  d	||d
   g      }t        j                  d||d
   g      }t        j                  d||d
   g      }	t        j                  d||d
   g      }
t        j                  d||      }t        j
                  |d||||	|
g|g      }| j                  |t        j                  d|      |      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  |k(  sJ y )Nr-   	   rp   )xsbiasrs   rt   yr   )r+   r.   r+   rB   r   r   r+   r   rs   rt   test_batchnormalization_8_9r,   r   )r   r3   r	   r0   r2   r1   r   r4   r   rD   rE   rF   rG   r   r   r   r   r6   input_shaper   rr   ra   rs   rt   r   r   r   s                 r   test_batch_normalization_8_9z1TestVersionConverter.test_batch_normalization_8_9  sf   
%%	 $8
 #))#y+F--c9{1~>NO))&)k!n=MN,,VYQ@PQ++E9{1~>NO))#y+F!!01eQc2JQC
 //6,,R<h
 $$))!,448LLLL++A.66(BBBr   c           	     R   d}d}t         j                  }t        j                  j	                  dg ddg      g}d}t        j                  j                  d||      }t        j                  j                  d	||d
   g      }t        j                  j                  d||d
   g      }t        j                  j                  d||d
   g      }	t        j                  j                  d||d
   g      }
t        j                  j                  d||      }t        j                  j                  |d||||	|
g|g      }| j                  |t        j                  d|      |      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  |k(  sJ y )Nr   r-   rp   rq   r&   r   )r.   rB   r   r)   r$   rr   r+   ra   rs   rt   test_batchnormalizationr,   r   )r   r3   r   r	   r0   r2   r1   r   r4   r   rD   rE   rF   rG   r   s                 r   test_batchnormalization_9_8z0TestVersionConverter.test_batchnormalization_9_8  s   
%%	 KK!!$9 " 
 #KK..sI{K227ITUGWXKK..sIA?OP{{11&)kRSnEUVkk00	KPQNCSTKK..sI{K&&,q%D#.F
 //6,,R<h
 $$))!,448LLLL++A.66(BBBr   c                   d}d}t         j                  }g d}t        j                  d      }t	        j
                  dg dgt	        j                  d|||            g}t	        j                  |d	g t        j                  j                  d||      g      }| j                  |t	        j                  d|      |      }|j                  j                  d
   j                  dk(  sJ |j                  j                  d
   j                   j"                  j$                  |k(  sJ |j&                  d
   j(                  |k(  sJ y )Nr-   r   r      r   r&   r,   r   r   r   test_constantr   )r   r3   nparanger	   r0   r   r1   r   r2   r   r4   r   rD   rE   r   r   r   r   rF   rG   	r   r   r   r   output_shapeoutput_valuer6   r   r   s	            r   test_constant_8_9z&TestVersionConverter.test_constant_8_9   s.   
%%	 yy} ((Yl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                   d}d}t         j                  }g d}t        j                  d      }t	        j
                  dg dgt	        j                  d|||            g}t	        j                  |d	g t        j                  j                  d||      g      }| j                  |t	        j                  d|      |      }|j                  j                  d
   j                  dk(  sJ |j                  j                  d
   j                   j"                  j$                  |k(  sJ |j&                  d
   j(                  |k(  sJ y )Nr   r-   r   r   r   r&   r,   r   r   r   )r   UINT64r   r   r	   r0   r   r1   r   r2   r   r4   r   rD   rE   r   r   r   r   rF   rG   r   s	            r   test_constant_9_8z&TestVersionConverter.test_constant_9_8A  s.   
&&	 yy} ((Yl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                   d}d}t         j                  }t        j                  j	                  ddgdgd      g}t        j
                  |dt        j                  j                  d|g d	      gt        j                  j                  d|d
dg      g      }| j                  |t        j                  d|      |      }|j                  j                  d   j                  dk(  sJ |j                  j                  d   j                  j                  j                  |k(  sJ |j                   d   j"                  |k(  sJ y )Nr-   r   Flattenr$   r&   r+   r   r   rU   test_flattenr   r.      r,   r   r   r   r   r   r   r6   r   r   s          r   test_flatten_8_9z%TestVersionConverter.test_flatten_8_9b  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                   d}d}t         j                  }t        j                  j	                  ddgdgd      g}t        j
                  |dt        j                  j                  d|g d	      gt        j                  j                  d|d
dg      g      }| j                  |t        j                  d|      |      }|j                  j                  d   j                  dk(  sJ |j                  j                  d   j                  j                  j                  |k(  sJ |j                   d   j"                  |k(  sJ y )Nr   r-   r   r$   r&   r+   r   r   r   r.   r  r,   r   r   r   r   r	   r0   r1   r2   r   r4   r   rD   rE   r   r   r   r   rF   rG   r  s          r   test_flatten_9_8z%TestVersionConverter.test_flatten_9_8y  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           
        d}d}t         j                  }t        j                  j	                  dddgdg      g}g d}t        j
                  |d	t        j                  j                  d||      t        j                  j                  d||      gt        j                  j                  d||      g      }| j                  |t        j                  d
|      |      }|j                  j                  d   j                  dk(  sJ |j                  j                  d   j                  j                  j                  |k(  sJ |j                   d   j"                  |k(  sJ y )Nr-   r   PRelur$   Sloper&   r   r   
test_prelur,   r   r   r   r   r   r   r6   r   r   r   s           r   test_prelu_8_9z#TestVersionConverter.test_prelu_8_9  s>   
%%	&&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           
        d}d}t         j                  }t        j                  j	                  dddgdg      g}g d}t        j
                  |d	t        j                  j                  d||      t        j                  j                  d||      gt        j                  j                  d||      g      }| j                  |t        j                  d
|      |      }|j                  j                  d   j                  dk(  sJ |j                  j                  d   j                  j                  j                  |k(  sJ |j                   d   j"                  |k(  sJ y )Nr   r-   r  r$   r	  r&   r   r   r
  r,   r.   r   r  r  s           r   test_prelu_9_8z#TestVersionConverter.test_prelu_9_8  s>   
&&	&&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           
        d}d}t         j                  }t        j                  j	                  dddgdg      g}g d}t        j
                  |d	t        j                  j                  d||      t        j                  j                  d||      gt        j                  j                  dt         j                  |      g      }| j                  |t        j                  d
|      |      }|j                  j                  d   j                  dk(  sJ |j                  j                  d   j                  j                  j                   t         j                  k(  sJ |j"                  d   j$                  |k(  sJ y )Nr-   r   Greaterr@   rA   r&   r   r   test_greaterr,   r   r   r3   r   r	   r0   r1   r2   BOOLr   r4   r   rD   rE   r   r   r   r   rF   rG   r  s           r   test_greater_8_9z%TestVersionConverter.test_greater_8_9  sS   
%%	&&y$PSu&UV!!224KP224KP [[//[5E5E{ST
 //6,,R<h
 $$))!,44	AAA!!((+00<<FF 	
  ++A.66(BBBr   c           
        d}d}t         j                  }t        j                  j	                  dddgdg      g}g d}t        j
                  |d	t        j                  j                  d||      t        j                  j                  d||      gt        j                  j                  dt         j                  |      g      }| j                  |t        j                  d
|      |      }|j                  j                  d   j                  dk(  sJ |j                  j                  d   j                  j                  j                   t         j                  k(  sJ |j"                  d   j$                  |k(  sJ y )Nr   r-   r  r@   rA   r&   r   r   r  r,   r.   r   r   r   r   r	   r0   r1   r2   r  r   r4   r   rD   rE   r   r   r   r   rF   rG   r  s           r   test_greater_9_8z%TestVersionConverter.test_greater_9_8  sS   
&&	&&y$PSu&UV!!224KP224KP [[//[5E5E{ST
 //6,,R<h
 $$))!,44	AAA!!((+00<<FF 	
  ++A.66(BBBr   c           
        d}d}t         j                  }t        j                  j	                  dddgdg      g}g d}t        j
                  |d	t        j                  j                  d||      t        j                  j                  d||      gt        j                  j                  dt         j                  |      g      }| j                  |t        j                  d
|      |      }|j                  j                  d   j                  dk(  sJ |j                  j                  d   j                  j                  j                   t         j                  k(  sJ |j"                  d   j$                  |k(  sJ y )Nr-   r   Lessr@   rA   r&   r   r   	test_lessr,   r   r  r  s           r   test_less_8_9z"TestVersionConverter.test_less_8_9  sR   
%%	&&vtTlSE&RS!!224KP224KP [[//[5E5E{ST
 //6,,R<h
 $$))!,44>>>!!((+00<<FF 	
  ++A.66(BBBr   c           
        d}d}t         j                  }t        j                  j	                  dddgdg      g}g d}t        j
                  |d	t        j                  j                  d||      t        j                  j                  d||      gt        j                  j                  dt         j                  |      g      }| j                  |t        j                  d
|      |      }|j                  j                  d   j                  dk(  sJ |j                  j                  d   j                  j                  j                   t         j                  k(  sJ |j"                  d   j$                  |k(  sJ y )Nr   r-   r  r@   rA   r&   r   r   r  r,   r.   r   r  r  s           r   test_less_9_8z"TestVersionConverter.test_less_9_8   sR   
&&	&&vtTlSE&RS!!224KP224KP [[//[5E5E{ST
 //6,,R<h
 $$))!,44>>>!!((+00<<FF 	
  ++A.66(BBBr   c                   d}d}t         j                  }t        j                  j	                  dddgdg      g}t        j
                  |dt        j                  j                  d|d	d
g      t        j                  j                  d|d
d	g      gt        j                  j                  d|d	d	g      g      }| j                  |t        j                  d|      |      }|j                  j                  d   j                  dk(  sJ |j                  j                  d   j                  j                  j                  |k(  sJ |j                   d   j"                  |k(  sJ y )Nr-   r   MatMulr@   rA   r&   r   test_matmulrB   r   r,   r   r   r  s          r   test_matmul_8_9z$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                   d}d}t         j                  }t        j                  j	                  dddgdg      g}t        j
                  |dt        j                  j                  d|d	d
g      t        j                  j                  d|d
d	g      gt        j                  j                  d|d	d	g      g      }| j                  |t        j                  d|      |      }|j                  j                  d   j                  dk(  sJ |j                  j                  d   j                  j                  j                  |k(  sJ |j                   d   j"                  |k(  sJ y )Nr   r-   r  r@   rA   r&   r   r   rB   r   r,   r.   r   r  r  s          r   test_matmul_9_8z$TestVersionConverter.test_matmul_9_8X  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                
   d}d}t         j                  }t        j                  j	                  dg ddg      g}t        j
                  |dt        j                  j                  d|d	d
g      t        j                  j                  d|d
d	g      t        j                  j                  d|d	d	g      gt        j                  j                  d|d	d	g      g      }| j                  |t        j                  d|      |      }|j                  j                  d   j                  dk(  sJ |j                  j                  d   j                  j                  j                  |k(  sJ |j                   d   j"                  |k(  sJ y )Nr-   r   r_   r@   rA   r|   r&   r   	test_gemmr@   rB   r   rA   r|   r,   r   r   r  s          r   test_gemm_8_9z"TestVersionConverter.test_gemm_8_9r  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                
   d}d}t         j                  }t        j                  j	                  dg ddg      g}t        j
                  |dt        j                  j                  d|d	d
g      t        j                  j                  d|d
d	g      t        j                  j                  d|d	d	g      gt        j                  j                  d|d	d	g      g      }| j                  |t        j                  d|      |      }|j                  j                  d	   j                  dk(  sJ |j                  j                  d   j                  j                  j                  |k(  sJ |j                   d   j"                  |k(  sJ y )Nr   r-   r_   r%  r&   r   r&  r@   rB   r   rA   r|   r,   r   r  r  s          r   test_gemm_9_8z"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                t   d}d}t         j                  }t        j                  j	                  ddgdgdg d      g}t        j
                  |d	t        j                  j                  d|g d
      gt        j                  j                  d|g d      g      }| j                  |t        j                  d|      |      }t        |j                  j                        dk(  sJ |j                  j                  d   j                  dk(  sJ |j                  j                  d   j                  dk(  sJ t        |j                  j                  d   j                        dk(  sJ |j                  j                  d   j                  d   j                  dk(  sJ |j                  d   j                   |k(  sJ y )Nr-   r   r   r$   r&   r         ?r,  r   r   )r   r   r   r   test_upsample_8_9r   r   r,   r.   r   r   r+   r   r   r  s          r   r-  z&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                (   d}d}t         j                  }t        j                  j	                  dddgdgd      g}g d	}t        j                  j                  dt        j                   j                  d
g|rt        t        j                  dg|       n||      }t        j                  |dt        j                  j                  d|g d      t        j                  j                  d|d
g      gt        j                  j                  d|g d      g|g      }| j                  |t        j                  d|      |      }	|	j                  j                  d   j                  dk(  sJ t!        |	j                  j"                        dk(  sJ t!        |	j                  j                  d   j$                        dk(  sJ |	j                  j                  d   j$                  d   j&                  dk(  sJ |	j(                  d   j*                  |k(  sJ y )Nr   r-   r   r$   Scalesr&   r   r   r   r   r+  r   4ftest_upsampler   r   r,   r   r.   r+   r   )r   r3   r   r	   r0   r   bytesstructpackr1   r2   r   r4   r   rD   rE   r   initializerr   r   rF   rG   )
r   	raw_scaler   r   r   r6   scale_valuescale_tensorr   r   s
             r    helper_upsample_with_initializerz5TestVersionConverter.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                n   d}d}t         j                  }g d}t        j                  j	                  dt        j                   j                  dg|rt        t        j                  dg|       n||      }t        j                  j                  dg dg|	      t        j                  j                  d
ddgdgd      g}t        j                  |dt        j                  j                  d|g d      gt        j                  j                  d|g d      gt        j                  j                  d|dg      g      }| j                  |t        j                  d|      |      }	t        |	j                  j                        dk(  sJ |	j                  j                  d   j                   d
k(  sJ t        |	j                  j                  d   j"                        dk(  sJ |	j                  j                  d   j"                  d   j$                  dk(  sJ |	j&                  d   j(                  |k(  sJ y )Nr   r-   r+  const_valuer   r1  r   Constant_Outputr   r   r$   r&   r   r0  r2  r   r   )
value_infor,   r+   r   r.   r   )r   r3   r   r	   r   r3  r4  r5  r0   r1   r2   r   r4   r   r   rD   rE   r   r   rF   rG   )
r   r7  r   r   r   r8  r9  r6   r   r   s
             r   helper_upsample_with_constantz2TestVersionConverter.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                (    | j                  d       y NFr7  r?  r   s    r   $test_upsample_with_constant_node_9_8z9TestVersionConverter.test_upsample_with_constant_node_9_8&  s    **U*;r   c                (    | j                  d       y rA  )r:  rD  s    r   "test_upsample_with_initializer_9_8z7TestVersionConverter.test_upsample_with_initializer_9_8*  s    --->r   c                (    | j                  d       y NTrB  rC  rD  s    r   &test_upsample_with_raw_initializer_9_8z;TestVersionConverter.test_upsample_with_raw_initializer_9_8.      **T*:r   c                (    | j                  d       y rI  rC  rD  s    r   (test_upsample_with_raw_constant_node_9_8z=TestVersionConverter.test_upsample_with_raw_constant_node_9_82  rK  r   c                   d}d}t         j                  }t        j                  j	                  dddgdg      }t        j                  j	                  ddgd	g      }t        j                  j                  ||gd
t        j                  j                  d|dg      t        j                  j                  d|dg      gt        j                  j                  d|dg      t        j                  j                  d	|dg      g      }d}t        j                  j	                  d|ddgddg|d      g}t        j                  j                  d|ddg      }	t        j                  j                  d|g d      }
t        j                  j                  d|ddg      }t        j                  j                  d|g d      }t        j                  j                  |d|	|
g||g      }| j                  |t        j                  d|      |      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  |k(  sJ y )Nr-   r   r   sum_innextsum_outr   Identityscan_out	scan_bodyr.   r,   Scaninitialr   r   zr+   )r   r   bodynum_scan_inputs)r+   rB   r.   test_scan_8_9r   )r   r3   r   r	   r0   r1   r2   r   r4   r   rD   rE   rF   rG   )r   r   r   r   node1node2gno_sequence_lensr6   rV  r   r   rW  r   r   s                  r   rZ  z"TestVersionConverter.test_scan_8_96  s)   
%%	%%f%K & 

 %%;L & 

 KK""EN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|aQRVT//6,,R<h
 $$))!,44>>>++A.66(BBBr   c                   d}d}t         j                  }t         j                  }t        j                  j                  ddgdgt         j                        g}t	        j                  |dt        j                  j                  d|dd	g      gt        j                  j                  d|dd	g      g      }| j                  |t	        j                  d
|      |      }|j                  j                  d   j                  dk(  sJ |j                  j                  d   j                  j                  j                   |k(  sJ |j"                  d   j$                  |k(  sJ y )Nr-   r   Castr$   r&   )r   r   to	test_castr.   rB   r,   r   )r   r3   UINT32r   r	   r0   r1   r2   r   r4   r   rD   rE   r   r   r   r   rF   rG   )r   r   r   data_type_fromdata_type_tor6   r   r   s           r   test_cast_8_9z"TestVersionConverter.test_cast_8_9l  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                   t        j                  dg dgt        j                  dt        j                  dgddg            t        j                  dddgd	d
g      g}t        j
                  |dt        j                  dt        j                  d      gt        j                  d	t        j                  d      t        j                  d
t        j                  d      g      }| j                  |t        j                  dd      d      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  dk(  sJ y )Nr   splitr,   r.   rB   r   Splitr$   Y1Y2r'   r(   r.   r      r  r   r   rH   s       r   test_split_13_12z%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                   t        j                  ddgddgd      g}t        j                  |dt        j                  dt        j
                  d      gt        j                  dt        j
                  d	      t        j                  dt        j
                  d	      g      }| j                  |t        j                  d
d      d      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  dk(  sJ t        |j                  j                  d   j                        dk(  sJ y )Nri  r$   rj  rk  r+   r   test_split_optional_input)rN   r   r,   r     r   r.   )r	   r0   r1   r2   r   r3   r   r4   r   rD   rE   rF   rG   r   r   rH   s       r   test_split_with_optional_inputz3TestVersionConverter.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                t   t        j                  ddgddgddg      g}t        j                  |dt        j                  dt        j
                  d	      gt        j                  dt        j
                  d
      t        j                  dt        j
                  d      g      }| j                  |t        j                  dd      d      }|j                  j                  d   j                  dk(  sJ |j                  j                  d   j                  dk(  sJ |j                  d   j                  dk(  sJ y )Nri  r$   rj  rk  r.   rB   )rh  r'   r(   rl  r   r,   r  rm  r   r   r+   rC   rH   s       r   test_split_12_13z%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   t        j                  dg dgt        j                  dt        j                  dgdg            t        j                  dddgd	g      g}t        j
                  |d
t        j                  dt        j                  d      gt        j                  d	t        j                  d      g      }| j                  |t        j                  dd      d      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  dk(  sJ y )Nr   axesr,   r+   r   r   	ReduceSumr$   r&   r'   rc   r+   r)   rm  r  r   rH   s       r   test_axes_input_to_attr_13_12z2TestVersionConverter.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           
        t        j                  ddgdgdg      g}t        j                  |dt        j                  dt        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  d	d
      d      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  dk(  sJ y )Nrw  r$   r&   r   )rv  r'   rc   rx  r,   r  rm  r   rC   rH   s       r   test_axes_attr_to_input_12_13z2TestVersionConverter.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           
        t        j                  ddgdgddgddgddg      g}t        j                  |d	t        j                  dt        j
                  d
      gt        j                  dt        j
                  d      g      }| j                  |t        j                  dd      d      }|j                  j                  d   j                  dk(  sJ |j                  j                  d   j                  dk(  sJ |j                  j                  d   j                  dk(  sJ |j                  j                  d   j                  dk(  sJ |j                  d   j                  dk(  sJ t        |j                  j                  d   j                        dk(  sJ t        |j                  j                  d   j                        dk(  sJ y )NSlicer$   r&   r   r+   rB   
   )rv  startsendsr'   )   r~  r)   )rB   r~  r)   r,   r   r   r.   r   )r	   r0   r1   r2   r   r3   r   r4   r   rD   rE   rF   rG   r   inputr   rH   s       r   test_slice_9_10z$TestVersionConverter.test_slice_9_10  s   #QFAq6B

 !!**30A0A;OP**30A0A:NO	
 //%1J1J2q1QSUV$$))!,44
BBB$$))!,44
BBB$$))!,44
BBB$$))!,44???++A.66"<<<?((--a06671<<<?((--a0::;q@@@r   c                   d}d}t         j                  }d}d}d}d}d}t        j                  j	                  dg dd	d
g|      g}	t        j
                  |	dt        j                  j                  d||||g      t        j                  j                  d||||g      t        j                  j                  d||||g      t        j                  j                  d||d|z  g      gt        j                  j                  d
||||g      g      }
| j                  |
t        j                  d	|      |      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  |k(  sJ t        |j                  j                  d   j                        dk(  sJ |j                  j                  d   j                  d   j                   dk(  sJ y )Nrm     r+   r.   rB   r)   RNNr$   r    Rr,   Y_hr   r   hidden_sizetest_rnnr$   r    r  ra   r   layoutr   r3   r   r	   r0   r1   r2   r   r4   r   rD   rE   rF   rG   r   r   r   r   r   r   r   
seq_length
batch_size
input_sizenum_directionsr  r6   r   r   s               r   test_rnn_13_14z#TestVersionConverter.test_rnn_13_14  s   
%%	


 KK!!&U'	 " 
 !!22ZZ$H 22^[*$M 22^[+$N 22^Q_$E 229~z;&O#
0 //6,,R<h
 $$))!,44===++A.66(BBB?((--a0::;q@@@$$))!,66q9>>(JJJr   c                   d}d}t         j                  }d}d}d}d}d}t        j                  j	                  dg dd	d
g|      g}	t        j
                  |	dt        j                  j                  d||||g      t        j                  j                  d||d|z  |g      t        j                  j                  d||d|z  |g      t        j                  j                  d||d|z  g      gt        j                  j                  d
||||g      g      }
| j                  |
t        j                  d	|      |      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  |k(  sJ t        |j                  j                  d   j                        dk(  sJ |j                  j                  d   j                  d   j                   dk(  sJ y )Nrm  r  r+   r.   rB   r)   GRUr  r,   r  r  test_grur$   r    r  ra   rN   r   r  r  r  s               r   test_gru_13_14z#TestVersionConverter.test_gru_13_149  s   
%%	


 KK!!&U'	 " 
 !!22ZZ$H 22^Q_j$Q 22^Q_k$R 22^Q_$E 229~z;&O#
0 //6,,R<h
 $$))!,44===++A.66(BBB?((--a0::;q@@@$$))!,66q9>>(JJJr   c                   d}d}t         j                  }d}d}d}d}d}t        j                  j	                  dg dd	d
g|      g}	t        j
                  |	dt        j                  j                  d||||g      t        j                  j                  d||d|z  |g      t        j                  j                  d||d|z  |g      t        j                  j                  d||d|z  g      gt        j                  j                  d
||||g      g      }
| j                  |
t        j                  d	|      |      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  |k(  sJ t        |j                  j                  d   j                        dk(  sJ |j                  j                  d   j                  d   j                   dk(  sJ y )Nrm  r  r+   r.   rB   r)   LSTMr  r,   r  r  	test_lstmr$   r    r   r  ra   r-   r   r  r  r  s               r   test_lstm_13_14z$TestVersionConverter.test_lstm_13_14o  s   
%%	


 KK!!&U'	 " 
 !!22ZZ$H 22^Q_j$Q 22^Q_k$R 22^Q_$E 229~z;&O#
0 //6,,R<h
 $$))!,44>>>++A.66(BBB?((--a0::;q@@@$$))!,66q9>>(JJJr   c                `   d}d}t         j                  }d}d}d}d}d}t        j                  j	                  dg dd	d
g|d      g}	t        j
                  |	dt        j                  j                  d||||g      t        j                  j                  d||||g      t        j                  j                  d||||g      t        j                  j                  d||d|z  g      gt        j                  j                  d
||||g      g      }
| j                  |
t        j                  d	|      |      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  |k(  sJ t        |j                  j                  d   j                        dk(  sJ y )Nr  rm  r+   r.   rB   r)   r  r  r,   r  r   r   r   r  r  r  r$   r    r  ra   r   r3   r   r	   r0   r1   r2   r   r4   r   rD   rE   rF   rG   r   r   r  s               r   test_rnn_14_13z#TestVersionConverter.test_rnn_14_13  s   
%%	


 KK!!&U' " 
 !!22ZZ$H 22^[*$M 22^[+$N 22^Q_$E 229~z;&O#
0 //6,,R<h
 $$))!,44===++A.66(BBB?((--a0::;q@@@r   c                l   d}d}t         j                  }d}d}d}d}d}t        j                  j	                  dg dd	d
g|d      g}	t        j
                  |	dt        j                  j                  d||||g      t        j                  j                  d||d|z  |g      t        j                  j                  d||d|z  |g      t        j                  j                  d||d|z  g      gt        j                  j                  d
||||g      g      }
| j                  |
t        j                  d	|      |      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  |k(  sJ t        |j                  j                  d   j                        dk(  sJ y )Nr  rm  r+   r.   rB   r)   r  r  r,   r  r   r  r  r$   r    r  ra   rN   r  r  s               r   test_gru_14_13z#TestVersionConverter.test_gru_14_13  s   
%%	


 KK!!&U' " 
 !!22ZZ$H 22^Q_j$Q 22^Q_k$R 22^Q_$E 229~z;&O#
0 //6,,R<h
 $$))!,44===++A.66(BBB?((--a0::;q@@@r   c                l   d}d}t         j                  }d}d}d}d}d}t        j                  j	                  dg dd	d
g|d      g}	t        j
                  |	dt        j                  j                  d||||g      t        j                  j                  d||d|z  |g      t        j                  j                  d||d|z  |g      t        j                  j                  d||d|z  g      gt        j                  j                  d
||||g      g      }
| j                  |
t        j                  d	|      |      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  |k(  sJ t        |j                  j                  d   j                        dk(  sJ y )Nr  rm  r+   r.   rB   r)   r  r  r,   r  r   r  r  r$   r    r   r  ra   r-   r  r  s               r   test_lstm_14_13z$TestVersionConverter.test_lstm_14_13  s   
%%	


 KK!!&U' " 
 !!22ZZ$H 22^Q_j$Q 22^Q_k$R 22^Q_$E 229~z;&O#
0 //6,,R<h
 $$))!,44>>>++A.66(BBB?((--a0::;q@@@r   c           
        d}t        j                  ddgdg|      g}t        j                  |dt        j                  dt        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  d	d
      d      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  dk(  sJ y )Nr   r+   r.   r   r.   r+   Padr$   r&   )padsr'   r+   r.   r.   r+   r)   r)   r,   r~     r+   r   rC   r   r  r6   r   r   s        r   test_pad_10_11z#TestVersionConverter.test_pad_10_11G  s    !!!%#DAB!!**30A0A9MN**30A0A9MN	
 //%1J1J2r1RTVW $$))!,44===++A.66"<<<r   c           
        d}t        j                  ddgdg|d      g}t        j                  |dt        j                  dt        j
                  d      gt        j                  dt        j
                  d	      g      }| j                  |t        j                  d
d      d      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  dk(  sJ y )Nr  r  r$   r&   r,  )r  r   r'   r  r  r,   r~  r  r+   r   rC   r  s        r   test_pad_with_value_10_11z.TestVersionConverter.test_pad_with_value_10_11V  s    !!!%#DLM!!**30A0A9MN**30A0A9MN	
 //%1J1J2r1RTVW $$))!,44===++A.66"<<<r   c                   d}d}t         j                  }dg}t        j                  j	                  ddgdgdd	      g}t        j                  j                  d||      g}t        j                  j                  d||      g}t        j                  |d
||      }t        j                  j	                  ddgdgdd	      g}	t        j                  j                  d||      g}
t        j                  j                  d||      g}t        j                  |	d
|
|      }t        j                  j	                  ddgdg||      g}t        j                  j                  dt         j                  g       g}t        j                  j                  d||      g}t        j                  d||ddg      g}t        j                  |d|||      }| j                  |t        j                  d|      |      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  |k(  sJ |j                  j                  d   j                   d   j"                  j                  d   j                  dk(  sJ t%        |j                  j                  d   j                   d   j"                  j                  d   j                         dk(  sJ |j                  j                  d   j                   d   j"                  j                  d   j                  dk(  sJ t%        |j                  j                  d   j                   d   j"                  j                  d   j                         dk(  sJ y )Nr~  r  r.   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   r3   r   r	   r0   r2   r1   r  r   r   r4   r   rD   rE   rF   rG   r   r]  r   )r   r   r   r   r   
subg1_nodesubg1_inputsubg1_outputsubg1
subg2_nodesubg2_inputsubg2_outputsubg2rD   r  r   initr   	converteds                      r   test_if_subgraph_10_11z+TestVersionConverter.test_if_subgraph_10_11f  s=   
%%	S
 KK!!zI;CS " 

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

 KK..xJO
 KK..y)ZP
 !!*h\R KK!!x!! " 
 33FK<L<LbQR++44UIzRS""8Y
S#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           
        t        j                  dg ddg      g}ddg}t        j                   j                  dt        j                  j
                  dg|      }dd	g}t        j                   j                  d
t        j                  j
                  dg|      }ddg}t        j                   j                  dt        j                  j
                  dg|      }ddg}t        j                   j                  dt        j                  j
                  dg|      }	t        j                  |dt        j                  dt        j
                  d      gt        j                  dt        j
                  d      g||||	g      }
| j                  |
t        j                  dd      d      }|j                  j                  d   j                  dk(  sJ |j                  d   j                  dk(  sJ y )Nrp   rq   r&   g?g
ףp=
?rr   r.   g333333?gHzG?ra   gzG?g?rs   g)\(?g{Gz?rt   r'   r$   )r+   r.   r.   rB   r,   r  r  r   )r	   r0   r   r   r   r3   r1   r2   r   r4   r   rD   rE   rF   rG   )r   r6   r8  r9  b_valueb_tensor
mean_valuemean_tensor	var_value
var_tensorr   r   s               r   'test_initializer_not_in_input_above_ir4z<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8[*=
 //%1J1J2r1RTVW$$))!,448LLLL++A.66"<<<r   c           
     r   d}t        j                  ddgdg|      g}t        j                  |dt        j                  dt        j
                  d      gt        j                  dt        j
                  d      g      }| j                  |t        j                  dd	      d
      }|j                  j                  d   j                  dk(  sJ |j                  j                  d   j                  dk(  sJ |j                  j                  d   j                  d   j                  dk(  sJ |j                  j                  d   j                  d   j                  |k(  sJ |j                  j                  d   j                  dk(  sJ |j                  j                  d   j                  d   j                  dk(  sJ |j                  j                  d   j                  d   j                  dk(  sJ |j                  j                  d   j                  dk(  sJ |j                  d   j                  d
k(  sJ y )Nr   Softmaxr$   r&   r   r'   )r+   r.   rB   r,   r  rm  Shaper+   r   rU   r.   rB   r#   )r	   r0   r1   r2   r   r3   r   r4   r   rD   rE   r   r   irF   rG   )r   rU   r6   r   r   s        r   test_softmax_12_13z'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   
per_tensor   rB   r*   NTper_axis_none_block_shaper  r+   per_axis_zero_block_shaper   per_tensor_positive_block_shaper.   per_axis_positive_block_shape
blocked_2dr   rB   r   
blocked_3dr   rB       r   rB   r-   per_axis_output_dtypeper_axis_unsupported_typec	           	          	 	 d fd}	|rt        j                         n j                  t              }
|
5   |	||||||       d d d        y # 1 sw Y   y xY w)Nc           
        t        j                  dddgdg|||      g}t        j                  dt        j                  |       t        j                  dt        j                  |      g}|rD|j                  t        j                  d||             |d   j                  j                  d       |xs |}t        j                  |d|t        j                  d||       g      }	j                  |	t        j                  d	d
      d      }
y )NQuantizeLinearr$   Sr&   )rU   
block_sizeoutput_dtypeZPr   r'   r,      r  )
r	   r0   r2   r   r3   appendr  r1   r   r4   )r   scale_shaperU   r  r  zero_point_dtyper6   r   output_type_r   _r   s              r   r'   z6TestVersionConverter.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   r7   
contextlibnullcontextr;   r<   )r   r  x_shaper  rU   r  r  r  
compatibler'   context_managers   `          r   test_quantize_21_20z(TestVersionConverter.test_quantize_21_20  sg    \	N	N@ )3J""$8I8I,8W 	  	Y+tZGWX	Y 	Y 	Ys   AA))r  r  r*   NNT)r  r  r  r+   NT)r  r  r  r+   r   T)r  r  r*   r+   r.   F)r  r  r  r+   r.   F)r  r  r  r   r   F)r  r  r  r.   r   Fc                     d fd}|rt        j                         n j                  t              }|5   |||||       d d d        y # 1 sw Y   y xY w)Nc                   t        j                  dg ddg||      g}t        j                  |dt        j                  dt        j
                  |       t        j                  dt        j                  |      t        j                  dt        j
                  |      gt        j                  dt        j                  |       g      }j                  |t        j                  d	d
      d      }y )NDequantizeLinear)r$   r  r  r&   )rU   r  r'   r$   r  r  r,   r  r  )	r	   r0   r1   r2   r   INT8r3   r   r4   )r   r  rU   r  r6   r   r  r   s          r   r'   z8TestVersionConverter.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   r7   r  )	r   r  y_shaper  rU   r  r  r'   r  s	   `        r   test_dequantize_21_20z*TestVersionConverter.test_dequantize_21_20L  sS    (	N. )3J""$8I8I,8W 	  	9+tZ8	9 	9 	9s   A

A)r   r   r   r   r   intr8   r   r7   )F)r7  boolr8   r9   )r  strr  tuple[int, ...]r  r  rU   r   r  r   r  
int | Noner  r  r  r  r8   r9   )r  r  r  r  r  r  rU   r   r  r   r  r  r8   r9   )U__name__
__module____qualname__r   r>   rI   rO   rQ   rS   rX   r[   r]   rd   rg   rk   rn   ru   rx   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  r  r  r  r!  r#  r'  r)  r-  r:  r?  rE  rG  rJ  rM  rZ  rf  rn  rr  rt  ry  r{  r  r  r  r  r  r  r  r  r  r  r  r  parameterizedexpandr   r  FLOAT8E4M3FNUINT16r  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
#9r   r   __main__)
__future__r   r  r4  unittestnumpyr   r  onnx.version_converterr   r   r   r   r   r   r	   TestCaser   r  mainr  r   r   <module>r     sV    #       b!98,, b!9JC zHMMO r   