
    
Ng7                        d dl Z d dlZd dlZd dlmZm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                     dS dS )    N)OptionalTuple)
GraphProto
ModelProtoOperatorSetIdProtoTensorProtocheckerhelperc                      e Zd ZdedededefdZdrdZdrdZ	drd	Z
drd
ZdrdZdrdZdrdZdrdZdrdZdrdZdrdZdrdZdrdZdrdZdrdZdrdZdrdZdrdZdrdZdrdZdrdZdrdZdrdZdrdZdrdZ drd Z!drd!Z"drd"Z#drd#Z$drd$Z%drd%Z&drd&Z'drd'Z(drd(Z)drd)Z*drd*Z+drd+Z,drd,Z-drd-Z.drd.Z/drd/Z0drd0Z1drd1Z2drd2Z3drd3Z4drd4Z5drd5Z6drd6Z7dsd8e8ddfd9Z9dsd8e8ddfd:Z:drd;Z;drd<Z<drd=Z=drd>Z>drd?Z?drd@Z@drdAZAdrdBZBdrdCZCdrdDZDdrdEZEdrdFZFdrdGZGdrdHZHdrdIZIdrdJZJdrdKZKdrdLZLdrdMZMdrdNZNdO ZOdrdPZPeQjQ        R                    dQdRdSdddeSjT        dTfdUdRdVdWddeSjT        dTfdXdRdVdWdYdeSjT        dTfdZdRdSdWd[deSjT        d7fd\dRdVdWd[deSjT        d7fd]dRd^dYd_deSjT        d7fd`dadbd[d_deSjT        d7fdcdRdVdWdeSjU        dd7fdddRdVdWddeSjV        d7fg	          deeWdfeXedgf         dheXedgf         diedjedkeYe         dleYe         dme8ddfdn            ZZeQjQ        R                    g do          deeWdpeXedgf         dheXedgf         diedjedme8ddfdq            Z[dS )tTestVersionConvertergraphinitial_versiontarget_versionreturnc                     t          j        |d|g          }t          j                            ||          }t          j        |           |S )Nz	onnx-test)producer_nameopset_imports)r
   
make_modelonnxversion_converterconvert_versionr	   check_model)selfr   r   r   
orig_modelconverted_models         \/var/www/html/ai-engine/env/lib/python3.11/site-packages/onnx/test/version_converter_test.py
_convertedzTestVersionConverter._converted   s]     &_<M
 
 

 0@@
 
 	O,,,    Nc                 J     d fd}                      t          |           d S )Nr   c                     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          }                    |t          j        dd          d           d S )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B c
SE::E
 %1#{7H$OO1#{7H$OO1#{7H$OO
 .sK4EtLLM	 	E OOE6#<R#C#CQGGGGGr   r   NassertRaisesRuntimeErrorr   r)   s   ` r   test_backwards_incompatiblez0TestVersionConverter.test_backwards_incompatible*   sE    	H 	H 	H 	H 	H 	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          }|                     |t          j        dd          d	          }|j        j	        d
         j
        dk    sJ |j        d
         j        d	k    sJ d S )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_compatiblez.TestVersionConverter.test_backwards_compatible@       !%$u==>!-dK4EtLL-dK4EtLL *30A4HHI
 
 //%1J2q1Q1QSTUU$)!,4====+A.6!;;;;;;r   c                 J     d fd}                      t          |           d S )Nr   c            
      8   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          }                    |t          j        dd          d           d S )	NCosr&   r(   r)   r*   r.   r/      r1   r7   s     r   r)   z7TestVersionConverter.test_non_existent_op.<locals>.testR   s    %ecUSE::;E%.sK4EtLLM.sK4EtLLM	 E OOE6#<R#C#CQGGGGGr   r9   r:   r=   s   ` r   test_non_existent_opz)TestVersionConverter.test_non_existent_opQ   sE    	H 	H 	H 	H 	H 	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          }|                     |t          j        dd	          d
          }|j        j	        d         j
        dk    sJ |j        d         j        d
k    sJ d S )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          }|                     |t          j        dd	          d
          }|j        j	        d         j
        dk    sJ |j        d         j        d
k    sJ d S )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           
          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          }|                     |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 d S )Nr!   r@   rA   r(   r   r-   )axis	broadcastr)   )r+   r0   r*   r.   r+   r/   	UnsqueezerC   rH   s       r   test_add_5_8_with_unsqueezez0TestVersionConverter.test_add_5_8_with_unsqueeze   s   !%$u1PQRRRS!-dK4EvNN-dK4EtLL *30A4HHI
 
 //%1J2q1Q1QSTUU$)!,4CCCC$)!,4====+A.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          }|                     |t          j        dd	          d
          }|j        j	        d         j
        dk    sJ |j        d         j        d
k    sJ d S )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          }|                     |t          j        dd	          d
          }|j        j	        d         j
        dk    sJ |j        d         j        d
k    sJ d S )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                    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          }|                     |t          j        d	d
          d          }|j        j	        d         j
        dk    sJ |j        d         j        dk    sJ d S )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AB!-%  -%  -% #6 -% 	;'
 '
P //%1J2q1Q1QSTUU$)!,4>>>>+A.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          gt          j        dt          j        d          g          }|                     |t          j        d	d
          d          }|j        j	        d         j
        dk    sJ |j        d         j        dk    sJ d S )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          }|                     |t          j        dd          d          }|j        j	        d	         j
        dk    sJ |j        d	         j        dk    sJ d S )
NRelur&   r(   r)   r*   r.   r+      r   rC   rH   s       r   test_relu_5_7z"TestVersionConverter.test_relu_5_7      !&3%#778!*30A4HHI*30A4HHI	
 
 //%1J2q1Q1QSTUU$)!,4>>>>+A.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          }|                     |t          j        dd          d          }|j        j	        d	         j
        dk    sJ |j        d	         j        dk    sJ d S )
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          }|                     |t          j        dd          d          }|j        j	        d         j
        dk    sJ |j        d         j        dk    sJ d S )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  2   $&H&H&H3% 

 !-c;3DdKK-g{7H$OO-c;3DdKK-fk6GNN-e[5FMM *30A4HHI
 
 //%1J2q1Q1QSTUU$)!,48LLLLL+A.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          }|                     |t          j        dd          d          }|j        j	        d         j
        dk    sJ |j        d         j        dk    sJ d S )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          }|                     |t          j        dd          d          }|j        j	        d         j
        dk    sJ |j        d         j        dk    sJ d S )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  s(   !(,J,J,JSERRS!-dK4EtLL-dK4EtLL-dK4EtLL-dK4EtLL-dK4EtLL *30A4HHI
 
 //%1J2q1Q1QSTUU$)!,4@@@@+A.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          }|                     |t          j        dd          d          }|j        j	        d         j
        dk    sJ |j        d         j        dk    sJ d S )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  s2   X'E'E'EuSTUUU
 !-dK4EtLL-dK4EtLL-dK4EtLL-dK4EtLL-dK4EtLL *30A4HHI
 
 //%1J2q1Q1QSTUU$)!,4@@@@+A.6!;;;;;;r   c                    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          }|                     |t          j	        dd          d          }|j
        j        d         j        dk    sJ |j        d         j        dk    sJ d S )NConstantr$   r.   r-   r+   valuer%   r&   r(   r)   r*   rN      r   r
   r2   make_tensorr   INT64r3   r4   r5   r   r6   r   rD   rE   rF   rG   rH   s       r   test_reshape_6_4z%TestVersionConverter.test_reshape_6_4  s   	([->aSII	   Yg>>
 !*30A4HHI*30A4HHI	
 
 //%1J2q1Q1QSTUU$)!,4	AAAA+A.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          }|                     |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 d S )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EEF!*30A4HHI*30A4HHI	
 
 //%1J2q1Q1QSTUU$)!,4
BBBB$)!,4	AAAA+A.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          }|                     |t          j        dd          d          }|j        j	        d         j
        dk    sJ |j        d         j        dk    sJ d S )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  1   IIIE7 

 !-h8I4PP-h8I4PP-h8I4PP-h8I4PP-h8I4PP *5+2CTJJK
 
 //%1J2q1Q1QSTUU$)!,4====+A.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          }|                     |t          j        dd          d          }|j        j	        d         j
        dk    sJ |j        d         j        dk    sJ d S )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          }|                     |t          j        dd          d          }|j        j	        d         j
        dk    sJ |j        d         j        dk    sJ d S )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          }|                     |t          j        dd          d	          }|j        j	        d
         j
        dk    sJ |j        d
         j        d	k    sJ d S 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SST!*30A<PPQ*30A<PPQ	
 
 //%1J2q1Q1QSTUU$)!,4EEEE+A.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          }|                     |t          j        dd	          d          }|j        j	        d
         j
        dk    sJ |j        d
         j        dk    sJ d S 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          }|                     |t          j        dd          d	          }|j        j	        d
         j
        dk    sJ |j        d
         j        d	k    sJ d S )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MMN!-% 	 -% 	
 
0 //%1J2q1Q1QSTUU$)!,4	AAAA+A.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          }|                     |t          j        dd          d          }|j        j	        d	         j
        dk    sJ |j        d	         j        dk    sJ d S )
Nr   r   r   r)   rc   r.   r/   r-   r   rC   rH   s       r   test_dropout_downz&TestVersionConverter.test_dropout_down4  s    !)fXzBBC!-% 	 -% 	
 
0 //%1J2q1Q1QSTUU$)!,4	AAAA+A.6!;;;;;;r   c           
      .   d}d}t           j        }d}t          j                            ddgdg          g}t          j        |dt          j                            d||          gt          j                            d||          g          }|                     |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 d S )Nrj   r/   r0   rB   r   Maxr&   r(   inputsoutputstest_maxr.   r   r   r5   r   r
   r2   r3   r4   r   r6   r   rD   rE   r   typetensor_type	elem_typerF   rG   r   
from_opsetto_opset	data_type
data_shaper8   r   r   s           r   test_max_7_8z!TestVersionConverter.test_max_7_8T     
%	
&&ucUSE&JJK![//Y
KKL[//Y
KKL	
 
 //6,R<<h
 
 $)!,4====$+A.3?IYVVVV+A.6(BBBBBBr   c           
      .   d}d}t           j        }d}t          j                            ddgdg          g}t          j        |dt          j                            d||          gt          j                            d||          g          }|                     |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 d S )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                            ddgdg          g}t          j        |dt          j                            d||          gt          j                            d||          g          }|                     |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 d S )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KL![//Y
KKL[//Y
KKL	
 
 //6,R<<h
 
 $)!,4>>>>$+A.3?IYVVVV+A.6(BBB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          }|                     |t          j        dd          d	          }|j        j	        d
         j
        dk    sJ |j        d
         j        d	k    sJ d S NMaxPoolr&   r(   r-   r   r)   r   r.   r/   r   rC   rH   s       r   test_maxpool_upz$TestVersionConverter.test_maxpool_up      !)cUSEAOOOP!*30A<PPQ*30A<PPQ	
 
 //%1J2q1Q1QSTUU$)!,4	AAAA+A.6!;;;;;;r   c                    d}d}t           j        }t          j                            ddgdgddd	          g}t          j        |d
t          j                            d|g d          gt          j                            d|g d          g          }|                     |t          j        d|          |          }t          |j
        j                  dk    sJ |j
        j        d         j        dk    sJ d |j
        j        d         j        D             }d|v sJ d|vsJ d|vsJ |j        d         j        |k    sJ d S )NrN   rj   Upsampler&   r(   nearest      @       @)r   r   modewidth_scaleheight_scaletest_upsample_6_7r-   r-   r0   r0   r-   r-   r   rN   r.   r-   r   c                     g | ]	}|j         
S  )name).0attrs     r   
<listcomp>z:TestVersionConverter.test_upsample_6_7.<locals>.<listcomp>  s'     
 
 
DI
 
 
r   scalesr   r   )r   r5   r   r
   r2   r3   r4   r   r6   lenr   rD   rE   	attributerF   rG   )r   r   r   r   r8   r   r   attribute_namess           r   r   z&TestVersionConverter.test_upsample_6_7  s   
%	 K!!u  "  	
 ![//YMMN[//YMMN	
 
 //6,R<<h
 
 ?(-..!3333$)!,4
BBBB
 
"1"7"<Q"?"I
 
 
 ?****O3333_4444+A.6(BBB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          }|                     |t          j        dd	          d          }|j        j	        d
         j
        dk    sJ |j        d
         j        dk    sJ d S 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          }|                     |t          j        d|          |          }|j        j	        d         j
        dk    sJ |j        d         j        |k    sJ d S )Nr/   	   rp   )xsbiasrs   rt   yr   )r-   r0   r-   rB   r   r   r-   r   rs   rt   test_batchnormalization_8_9r.   r   )r   r5   r
   r2   r4   r3   r   r6   r   rD   rE   rF   rG   r   r   r   r   r8   input_shaper   rr   ra   rs   rt   r   r   r   s                 r   test_batch_normalization_8_9z1TestVersionConverter.test_batch_normalization_8_9  st   
%	 $888  
 #)#y+FF-c9{1~>NOO)&)k!n=MNN,VYQ@PQQ+E9{1~>NOO)#y+FF!01eQc2JQC
 
 //6,R<<h
 
 $)!,48LLLLL+A.6(BBBBBBr   c           	      H   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          }|                     |t          j        d|          |          }|j	        j
        d         j        dk    sJ |j        d         j        |k    sJ d S )Nr   r/   rp   rq   r(   r   )r0   rB   r   r+   r&   rr   r-   ra   rs   rt   test_batchnormalizationr.   r   )r   r5   r   r
   r2   r4   r3   r   r6   r   rD   rE   rF   rG   r   s                 r   test_batchnormalization_9_8z0TestVersionConverter.test_batchnormalization_9_8  s   
%	 K!!$999 "  
 #K..sI{KK227ITUGWXXK..sIA?OPP{11&)kRSnEUVVk00	KPQNCSTTK..sI{KK&&,q%D#.F
 
 //6,R<<h
 
 $)!,48LLLLL+A.6(BBB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        	                    d||          g          }| 
                    |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 d S )Nr/   r   r      r   r(   r.   r   r   r   test_constantr   )r   r5   nparanger
   r2   r   r3   r   r4   r   r6   r   rD   rE   r   r   r   r   rF   rG   	r   r   r   r   output_shapeoutput_valuer8   r   r   s	            r   test_constant_8_9z&TestVersionConverter.test_constant_8_9   s/   
%	 yyy}} (YlSS	  
 ![//YMMN	
 
 //6,R<<h
 
 $)!,4
BBBB$+A.3?IYVVVV+A.6(BBB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        	                    d||          g          }| 
                    |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 d S )Nr   r/   r   r   r   r(   r.   r   r   r   )r   UINT64r   r   r
   r2   r   r3   r   r4   r   r6   r   rD   rE   r   r   r   r   rF   rG   r   s	            r   test_constant_9_8z&TestVersionConverter.test_constant_9_8A  s/   
&	 yyy}} (YlSS	  
 ![//YMMN	
 
 //6,R<<h
 
 $)!,4
BBBB$+A.3?IYVVVV+A.6(BBBBBBr   c                 4   d}d}t           j        }t          j                            ddgdgd          g}t          j        |dt          j                            d|g d	          gt          j                            d|d
dg          g          }|                     |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 d S )Nr/   r   Flattenr&   r(   r-   r   r   rU   test_flattenr   r0      r.   r   r   r   r   r   r   r8   r   r   s          r   test_flatten_8_9z%TestVersionConverter.test_flatten_8_9b  s   
%	&&y#TU&VVW![//Y			JJK[//YBHHI	
 
 //6,R<<h
 
 $)!,4	AAAA$+A.3?IYVVVV+A.6(BBBBBBr   c                 4   d}d}t           j        }t          j                            ddgdgd          g}t          j        |dt          j                            d|g d	          gt          j                            d|d
dg          g          }|                     |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 d S )Nr   r/   r  r&   r(   r-   r  r  r   r0   r  r.   r   r   r   r   r
   r2   r3   r4   r   r6   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VW![//Y			JJK[//YBHHI	
 
 //6,R<<h
 
 $)!,4	AAAA$+A.3?IYVVVV+A.6(BBBBBBr   c           
      t   d}d}t           j        }t          j                            dddgdg          g}g d}t          j        |d	t          j                            d||          t          j                            d||          gt          j                            d||          g          }|                     |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 d S )Nr/   r   PRelur&   Sloper(   r   r   
test_prelur.   r   r   r   r   r   r   r8   r   r   r   s           r   test_prelu_8_9z#TestVersionConverter.test_prelu_8_9  s;   
%	&&wW~PSu&UUVii!223	;OO227I{SS [//YLLM
 
 //6,R<<h
 
 $)!,4????$+A.3?IYVVVV+A.6(BBBBBBr   c           
      t   d}d}t           j        }t          j                            dddgdg          g}g d}t          j        |d	t          j                            d||          t          j                            d||          gt          j                            d||          g          }|                     |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 d S )Nr   r/   r  r&   r  r(   r   r   r  r.   r0   r   r  r  s           r   test_prelu_9_8z#TestVersionConverter.test_prelu_9_8  s;   
&	&&wW~PSu&UUVii!223	;OO227I{SS [//YLLM
 
 //6,R<<h
 
 $)!,4????$+A.3?IYVVVV+A.6(BBBBBBr   c           
         d}d}t           j        }t          j                            dddgdg          g}g d}t          j        |d	t          j                            d||          t          j                            d||          gt          j                            dt           j        |          g          }|                     |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 d S )Nr/   r   Greaterr@   rA   r(   r   r   test_greaterr.   r   r   r5   r   r
   r2   r3   r4   BOOLr   r6   r   rD   rE   r   r   r   r   rF   rG   r  s           r   test_greater_8_9z%TestVersionConverter.test_greater_8_9  sL   
%	&&y$PSu&UUVii!224KPP224KPP [//[5E{SST
 
 //6,R<<h
 
 $)!,4	AAAA!(+0<F        +A.6(BBBBBBr   c           
         d}d}t           j        }t          j                            dddgdg          g}g d}t          j        |d	t          j                            d||          t          j                            d||          gt          j                            dt           j        |          g          }|                     |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 d S )Nr   r/   r  r@   rA   r(   r   r   r  r.   r0   r   r   r   r   r
   r2   r3   r4   r  r   r6   r   rD   rE   r   r   r   r   rF   rG   r  s           r   test_greater_9_8z%TestVersionConverter.test_greater_9_8  sL   
&	&&y$PSu&UUVii!224KPP224KPP [//[5E{SST
 
 //6,R<<h
 
 $)!,4	AAAA!(+0<F        +A.6(BBBBBBr   c           
         d}d}t           j        }t          j                            dddgdg          g}g d}t          j        |d	t          j                            d||          t          j                            d||          gt          j                            dt           j        |          g          }|                     |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 d S )Nr/   r   Lessr@   rA   r(   r   r   	test_lessr.   r   r  r  s           r   test_less_8_9z"TestVersionConverter.test_less_8_9  sK   
%	&&vtTlSE&RRSii!224KPP224KPP [//[5E{SST
 
 //6,R<<h
 
 $)!,4>>>>!(+0<F        +A.6(BBBBBBr   c           
         d}d}t           j        }t          j                            dddgdg          g}g d}t          j        |d	t          j                            d||          t          j                            d||          gt          j                            dt           j        |          g          }|                     |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 d S )Nr   r/   r  r@   rA   r(   r   r   r  r.   r0   r   r  r  s           r   test_less_9_8z"TestVersionConverter.test_less_9_8   sK   
&	&&vtTlSE&RRSii!224KPP224KPP [//[5E{SST
 
 //6,R<<h
 
 $)!,4>>>>!(+0<F        +A.6(BBBBBBr   c                 x   d}d}t           j        }t          j                            dddgdg          g}t          j        |dt          j                            d|d	d
g          t          j                            d|d
d	g          gt          j                            d|d	d	g          g          }|                     |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 d S )Nr/   r   MatMulr@   rA   r(   r   test_matmulrB   r   r.   r   r   r  s          r   test_matmul_8_9z$TestVersionConverter.test_matmul_8_9>  s=   
%	&&xtse&TTU!224QFKK224QFKK [//YAGGH
 
 //6,R<<h
 
 $)!,4@@@@$+A.3?IYVVVV+A.6(BBBBBBr   c                 x   d}d}t           j        }t          j                            dddgdg          g}t          j        |dt          j                            d|d	d
g          t          j                            d|d
d	g          gt          j                            d|d	d	g          g          }|                     |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 d S )Nr   r/   r"  r@   rA   r(   r   r#  rB   r   r.   r0   r   r  r  s          r   test_matmul_9_8z$TestVersionConverter.test_matmul_9_8X  s=   
&	&&xtse&TTU!224QFKK224QFKK [//YAGGH
 
 //6,R<<h
 
 $)!,4@@@@$+A.3?IYVVVV+A.6(BBBBBBr   c                    d}d}t           j        }t          j                            dg ddg          g}t          j        |dt          j                            d|d	d
g          t          j                            d|d
d	g          t          j                            d|d	d	g          gt          j                            d|d	d	g          g          }|                     |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 d S )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   
%	 K!!&1C1C1CcU!SS
 !224QFKK224QFKK224QFKK
 [//YAGGH	
 	
 //6,R<<h
 
 $)!,4>>>>$+A.3?IYVVVV+A.6(BBBBBBr   c                    d}d}t           j        }t          j                            dg ddg          g}t          j        |dt          j                            d|d	d
g          t          j                            d|d
d	g          t          j                            d|d	d	g          gt          j                            d|d	d	g          g          }|                     |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 d S )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   
&	 K!!&1C1C1CcU!SS
 !224QFKK224QFKK224QFKK
 [//YAGGH	
 	
 //6,R<<h
 
 $)!,4>>>>$+A.3?IYVVVV+A.6(BBBBBBr   c                    d}d}t           j        }t          j                            ddgdgdg d          g}t          j        |d	t          j                            d|g d
          gt          j                            d|g d          g          }|                     |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 d S )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   r5   r   r
   r2   r3   r4   r   r6   r   r   rD   rE   r   r   rF   rG   r  s          r   r0  z&TestVersionConverter.test_upsample_8_9  s   
%	 K!!u+++ "  
 ![//YMMN[//YMMN	
 
 //6,R<<h
 
 ?(-..!3333$)!,4
BBBB$)!,4
BBBB?(-a0:;;q@@@@$)!,6q9>&HHHH+A.6(BBBBBBr   F	raw_scalec                    d}d}t           j        }t          j                            dddgdgd          g}g d	}t          j                            dt          j         j        d
g|rt          t          j        dg|R            n||          }t          j	        |dt          j        
                    d|g d          t          j        
                    d|d
g          gt          j        
                    d|g d          g|g          }|                     |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 d S )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   rD   rE   r   initializerr   r   rF   rG   )
r   r1  r   r   r   r8   scale_valuescale_tensorr   r   s
             r    helper_upsample_with_initializerz5TestVersionConverter.helper_upsample_with_initializer  s   
%	 K!!C?SE	 "  
 +**{.."C6?PE&+d1[111222[
 
 !223	<<<PP228YLL [//YMMNN	
 	
 //6,R<<h
 
 $)!,4
BBBB?(455::::?(-a0:;;q@@@@$)!,6q9>(JJJJ+A.6(BBBBBBr   c                    d}d}t           j        }g d}t          j                            dt          j         j        dg|rt          t          j        dg|R            n||          }t          j                            dg dg|	          t          j                            d
ddgdgd          g}t          j	        |dt          j        
                    d|g d          gt          j        
                    d|g d          gt          j        
                    d|dg          g          }|                     |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 d S )Nr   r/   r.  const_valuer   r5  r   Constant_Outputr   r   r&   r(   r   r4  r6  r   r   )
value_infor.   r-   r   r0   r   )r   r5   r   r
   r   r7  r8  r9  r2   r3   r4   r   r6   r   r   rD   rE   r   r   rF   rG   )
r   r1  r   r   r   r;  r<  r8   r   r   s
             r   helper_upsample_with_constantz2TestVersionConverter.helper_upsample_with_constant  s&   
%	***{.."C6?PE&+d1[111222[
 
 K!!20A/B, "   K!!./	 "  	

 ![//YMMN[//YMMN223DiRSQTUU
 
 
 //6,R<<h
 
 ?(-..!3333$)!,4
BBBB?(-a0:;;q@@@@$)!,6q9>(JJJJ+A.6(BBBBBBr   c                 2    |                      d           d S NFr1  rB  r   s    r   $test_upsample_with_constant_node_9_8z9TestVersionConverter.test_upsample_with_constant_node_9_8&  s    **U*;;;;;r   c                 2    |                      d           d S rD  )r=  rG  s    r   "test_upsample_with_initializer_9_8z7TestVersionConverter.test_upsample_with_initializer_9_8*  s    --->>>>>r   c                 2    |                      d           d S NTrE  rF  rG  s    r   &test_upsample_with_raw_initializer_9_8z;TestVersionConverter.test_upsample_with_raw_initializer_9_8.      **T*:::::r   c                 2    |                      d           d S rL  rF  rG  s    r   (test_upsample_with_raw_constant_node_9_8z=TestVersionConverter.test_upsample_with_raw_constant_node_9_82  rN  r   c                    d}d}t           j        }t          j                            dddgdg          }t          j                            ddgd	g          }t          j                            ||gd
t          j                            d|dg          t          j                            d|dg          gt          j                            d|dg          t          j                            d	|dg          g          }d}t          j                            d|ddgddg|d          g}t          j                            d|ddg          }	t          j                            d|g d          }
t          j                            d|ddg          }t          j                            d|g d          }t          j                            |d|	|
g||g          }|                     |t          j        d|          |          }|j	        j
        d         j        dk    sJ |j        d         j        |k    sJ d S )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-   rB   r0   test_scan_8_9r   )r   r5   r   r
   r2   r3   r4   r   r6   r   rD   rE   rF   rG   )r   r   r   r   node1node2gno_sequence_lensr8   rY  r   r   rZ  r   r   s                  r   r]  z"TestVersionConverter.test_scan_8_96  sE   
%	%%f%K & 
 

 %%;L & 
 

 K""EN228YLL2269qcJJ
 229i!MM22:y1#NN
 
 K!!()S9c
 ! "  
 +44Y	Aq6RRK..sIyyyIIK..sI1vFFK..sIyyyII&&uo|aQRVTT//6,R<<h
 
 $)!,4>>>>+A.6(BBBBBBr   c                 `   d}d}t           j        }t           j        }t          j                            ddgdgt           j                  g}t	          j        |dt          j                            d|dd	g          gt          j                            d|dd	g          g          }|                     |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 d S )Nr/   r   Castr&   r(   )r   r   to	test_castr0   rB   r.   r   )r   r5   UINT32r   r
   r2   r3   r4   r   r6   r   rD   rE   r   r   r   r   rF   rG   )r   r   r   data_type_fromdata_type_tor8   r   r   s           r   test_cast_8_9z"TestVersionConverter.test_cast_8_9l  s6   
$*") K!!use8J "  
 ![//^aVLLM[//\Aq6JJK	
 
 //6,R<<h
 
 $)!,4>>>>!(+0<F,VVVV+A.6(BBBBBBr   c                 V   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          }|                     |t          j	        dd          d          }|j
        j        d         j        dk    sJ |j        d         j        dk    sJ d S )Nr   splitr.   r0   rB   r   Splitr&   Y1Y2r)   r*   r0   r      r  r   r   rH   s       r   test_split_13_12z%TestVersionConverter.test_split_13_12  s)   	([->aVLL	   WsGntTlCC
 !*30A4HHI-dK4EtLL-dK4EtLL	
 
 //%1J2r1R1RTVWW$)!,4????+A.6"<<<<<<r   c                 "   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          }|                     |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 d S )Nrl  r&   rm  rn  r0   rB   )rk  r)   r*   ro  r   r.   r  rp  r   r   r-   rC   rH   s       r   test_split_12_13z%TestVersionConverter.test_split_12_13  s   !'C54,q!fMMMN!*30A4HHI-dK4EtLL-dK4EtLL	
 
 //%1J2r1R1RTVWW$)!,4
BBBB$)!,4????+A.6"<<<<<<r   c                    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          }|                     |t          j	        dd          d          }|j
        j        d         j        dk    sJ |j        d         j        dk    sJ d S )Nr   axesr.   r-   r   r   	ReduceSumr&   r(   r)   rc   r-   r+   rp  r  r   rH   s       r   test_axes_input_to_attr_13_12z2TestVersionConverter.test_axes_input_to_attr_13_12  s   ([->aSII	   [3-#??
 !*30A6JJK*30A6JJK	
 
 //%1J2r1R1RTVWW$)!,4CCCC+A.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          }|                     |t          j        d	d
          d          }|j        j	        d         j
        dk    sJ |j        d         j        dk    sJ d S )Nrv  r&   r(   r   )ru  r)   rc   rw  r.   r  rp  r   rC   rH   s       r   test_axes_attr_to_input_12_13z2TestVersionConverter.test_axes_attr_to_input_12_13  s    !+use1#FFFG!*30A6JJK*30A6JJK	
 
 //%1J2r1R1RTVWW$)!,4
BBBB+A.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          }|                     |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 d S )NSlicer&   r(   r   r-   rB   
   )ru  startsendsr)   )   r}  r+   )rB   r}  r+   r.   r   r   r0   r   )r
   r2   r3   r4   r   r5   r   r6   r   rD   rE   rF   rG   r   inputr   rH   s       r   test_slice_9_10z$TestVersionConverter.test_slice_9_10  s   #QFAq6B  

 !*30A;OOP*30A:NNO	
 
 //%1J2q1Q1QSUVV$)!,4
BBBB$)!,4
BBBB$)!,4
BBBB$)!,4????+A.6"<<<<?(-a06771<<<<?(-a0:;;q@@@@@@r   c                 |   d}d}t           j        }d}d}d}d}d}t          j                            dg dd	d
g|          g}	t          j        |	dt          j                            d||||g          t          j                            d||||g          t          j                            d||||g          t          j                            d||d|z  g          gt          j                            d
||||g          g          }
|                     |
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 d S )Nrp     r-   r0   rB   r+   RNNr&   r"   Rr.   Y_hr   r   hidden_sizetest_rnnr&   r"   r  ra   r   layoutr   r5   r   r
   r2   r3   r4   r   r6   r   rD   rE   rF   rG   r   r   r   r   r   r   r   
seq_length
batch_size
input_sizenum_directionsr  r8   r   r   s               r   test_rnn_13_14z#TestVersionConverter.test_rnn_13_14  s   
%	


 K!!&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====+A.6(BBBB?(-a0:;;q@@@@$)!,6q9>(JJJJJJr   c                    d}d}t           j        }d}d}d}d}d}t          j                            dg dd	d
g|          g}	t          j        |	dt          j                            d||||g          t          j                            d||d|z  |g          t          j                            d||d|z  |g          t          j                            d||d|z  g          gt          j                            d
||||g          g          }
|                     |
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 d S )Nrp  r  r-   r0   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_14&  s   
%	


 K!!&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====+A.6(BBBB?(-a0:;;q@@@@$)!,6q9>(JJJJJJr   c                    d}d}t           j        }d}d}d}d}d}t          j                            dg dd	d
g|          g}	t          j        |	dt          j                            d||||g          t          j                            d||d|z  |g          t          j                            d||d|z  |g          t          j                            d||d|z  g          gt          j                            d
||||g          g          }
|                     |
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 d S )Nrp  r  r-   r0   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_14\  s   
%	


 K!!&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>>>>+A.6(BBBB?(-a0:;;q@@@@$)!,6q9>(JJJJJJr   c                 .   d}d}t           j        }d}d}d}d}d}t          j                            dg dd	d
g|d          g}	t          j        |	dt          j                            d||||g          t          j                            d||||g          t          j                            d||||g          t          j                            d||d|z  g          gt          j                            d
||||g          g          }
|                     |
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 d S )Nr  rp  r-   r0   rB   r+   r  r  r.   r  r   r   r   r  r  r  r&   r"   r  ra   r   r5   r   r
   r2   r3   r4   r   r6   r   rD   rE   rF   rG   r   r   r  s               r   test_rnn_14_13z#TestVersionConverter.test_rnn_14_13  s   
%	


 K!!&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====+A.6(BBBB?(-a0:;;q@@@@@@r   c                 :   d}d}t           j        }d}d}d}d}d}t          j                            dg dd	d
g|d          g}	t          j        |	dt          j                            d||||g          t          j                            d||d|z  |g          t          j                            d||d|z  |g          t          j                            d||d|z  g          gt          j                            d
||||g          g          }
|                     |
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 d S )Nr  rp  r-   r0   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   
%	


 K!!&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====+A.6(BBBB?(-a0:;;q@@@@@@r   c                 :   d}d}t           j        }d}d}d}d}d}t          j                            dg dd	d
g|d          g}	t          j        |	dt          j                            d||||g          t          j                            d||d|z  |g          t          j                            d||d|z  |g          t          j                            d||d|z  g          gt          j                            d
||||g          g          }
|                     |
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 d S )Nr  rp  r-   r0   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   
%	


 K!!&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>>>>+A.6(B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          }|                     |t          j        d	d
          d          }|j        j	        d         j
        dk    sJ |j        d         j        dk    sJ d S )Nr   r-   r0   r   r0   r-   Padr&   r(   )padsr)   r-   r0   r0   r-   r+   r+   r.   r}     r-   r   rC   r   r  r8   r   r   s        r   test_pad_10_11z#TestVersionConverter.test_pad_10_114  s    !!%#DAAAB!*30A9MMN*30A9MMN	
 
 //%1J2r1R1RTVWW $)!,4====+A.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          }|                     |t          j        d
d          d          }|j        j	        d         j
        dk    sJ |j        d         j        dk    sJ d S )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_11C  s    !!%#DLLLM!*30A9MMN*30A9MMN	
 
 //%1J2r1R1RTVWW $)!,4====+A.6"<<<<<<r   c                 4   d}d}t           j        }dg}t          j                            ddgdgdd	          g}t          j                            d||          g}t          j                            d||          g}t          j        |d
||          }t          j                            ddgdgdd	          g}	t          j                            d||          g}
t          j                            d||          g}t          j        |	d
|
|          }t          j                            ddgdg||          g}t          j                            dt           j        g           g}t          j                            d||          g}t          j        d||ddg          g}t          j        |d|||          }| 	                    |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 d S )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   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_11S  s   
%	S
 K!!zI;CS "  

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

 K..xJOO
 K..y)ZPP
 !*h\RR K!!x!! "  
 33FK<LbQQR+44UIzRRS"8Y
S#JOOP!$(8%NNOO6,R<<h
 
	 #A&.$6666%a(0H<<<<#A&035:1=EOOOO9?'*4Q79>qAKLLPQQQQQ#A&035:1=EOOOO9?'*4Q79>qAKLLPQQQQQQQr   c           
      \   t          j        dg ddg          g}ddg}t          j                             dt          j        j        dg|          }dd	g}t          j                             d
t          j        j        dg|          }ddg}t          j                             dt          j        j        dg|          }ddg}t          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          }
|                     |
t          j	        dd          d          }|j
        j        d         j        dk    sJ |j        d         j        dk    sJ d S )Nrp   rq   r(   g?g
ףp=
?rr   r0   g333333?gHzG?ra   gzG?g?rs   g)\(?g{Gz?rt   r)   r&   )r-   r0   r0   rB   r.   r  r  r   )r
   r2   r   r   r   r5   r3   r4   r   r6   r   rD   rE   rF   rG   )r   r8   r;  r<  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   $&H&H&H3% 
 Tl{..T%+aS+
 
 ,;**30@0FWUUD\
k--D$*QC
 
 4L	[,,4#)A3	
 

 !*30A<PPQ*30A<PPQ8[*=
 
 //%1J2r1R1RTVWW$)!,48LLLLL+A.6"<<<<<<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          }|                     |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 d S )Nr   Softmaxr&   r(   r   r)   )r-   r0   rB   r.   r  rp  Shaper-   r  rU   r0   rB   r%   )r
   r2   r3   r4   r   r5   r   r6   r   rD   rE   r   r   irF   rG   )r   rU   r8   r   r   s        r   test_softmax_12_13z'TestVersionConverter.test_softmax_12_13  s   !)cUSEEEEF!*30A9MMN*30A9MMN	
 
 //%1J2r1R1RTVWW$)!,4????$)!,4	AAAA$)!,6q9>&HHHH$)!,6q9;tCCCC$)!,4	AAAA$)!,6q9>&HHHH$)!,6q9;rAAAA$)!,4	AAAA+A.6"<<<<<<r   
per_tensor   rB   r,   Tper_axis_none_block_shaper  r-   per_axis_zero_block_shaper   per_tensor_positive_block_shaper0   per_axis_positive_block_shape
blocked_2dr   rB   r   
blocked_3dr   rB       r   rB   r/   per_axis_output_dtypeper_axis_unsupported_type_x_shape.scale_shaperU   
block_sizeoutput_dtypezero_point_dtype
compatiblec	           	           	 	 d fd}	|rt          j                    n                     t                    }
|
5   |	||||||           d d d            d S # 1 swxY w Y   d S )Nr   c           
         t          j        dddgdg|||          g}t          j        dt          j        |           t          j        dt          j        |          g}|rI|                    t          j        d||                     |d         j                            d           |p|}t          j        |d|t          j        d||           g          }	                    |	t          j	        d	d
          d          }
d S )NQuantizeLinearr&   Sr(   )rU   r  r  ZPr   r)   r.      r  )
r
   r2   r4   r   r5   appendr  r3   r   r6   )r   r  rU   r  r  r  r8   r   output_type_r   r  r   s              r   r)   z6TestVersionConverter.test_quantize_21_20.<locals>.test  s     $#JE)!-  	E -c;3DkRR-c;3DkRRF   ,1$8H+VV   a%%d+++';+;L%.sL+NNO	 E v'@R'H'H"MMAAAr   r9   
contextlibnullcontextr;   r<   )r   r  r  r  rU   r  r  r  r  r)   context_managers   `          r   test_quantize_21_20z(TestVersionConverter.test_quantize_21_20  s    \	N	N 	N 	N 	N 	N 	N@ )3WJ"$$$8I8I,8W8W 	  	Y 	YD+tZGWXXX	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Ys   AA A))r  r  r,   NNT)r  r  r  r-   NT)r  r  r  r-   r   T)r  r  r,   r-   r0   F)r  r  r  r-   r0   F)r  r  r  r   r   F)r  r  r  r0   r   Fy_shapec                      d fd}|rt          j                    n                     t                    }|5   |||||           d d d            d S # 1 swxY w Y   d S )Nr   c                    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          }                    |t          j        d	d
          d          }d S )NDequantizeLinear)r&   r  r  r(   )rU   r  r)   r&   r  r  r.   r  r  )	r
   r2   r3   r4   r   INT8r5   r   r6   )r   r  rU   r  r8   r   r  r   s          r   r)   z8TestVersionConverter.test_dequantize_21_20.<locals>.testM  s     &$$$E)  E %1#{7GUU1#{7H+VV1$8H+VV
 .sK4E{SST	 	E v'@R'H'H"MMAAAr   r9   r  )	r   r  r  r  rU   r  r  r)   r  s	   `        r   test_dequantize_21_20z*TestVersionConverter.test_dequantize_21_209  s    (	N 	N 	N 	N 	N 	N. )3WJ"$$$8I8I,8W8W 	  	9 	9D+tZ888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s   AAAr9   )F)\__name__
__module____qualname__r   r   intr   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,  r0  boolr=  rB  rH  rJ  rM  rP  r]  ri  rq  rs  rx  rz  r  r  r  r  r  r  r  r  r  r  r  r  parameterizedexpandr   r  FLOAT8E4M3FNUINT16strr   r   r  r  r   r   r   r   r      s	        , 	
 
   ". . . .,< < < <". . . .< < < <"< < < <"< < < <$< < < <"< < < <"-< -< -< -<`-< -< -< -<`< < < << < < << < < <0< < < <0< < < <(< < < <,< < < <,< < < << < < <0< < < <0< < < <0< < < << < < << < < <@< < < <@C C C C0C C C C0C C C C0< < < <#C #C #C #CL< < < <C C C CBC C C CBC C C CBC C C CBC C C C.C C C C.C C C C6C C C C6C C C C<C C C C<C C C C<C C C C<C C C C4C C C C4C C C C:C C C C:C C C CD'C 'C$ 'C4 'C 'C 'C 'CT+C +Ct +C +C +C +C +C\< < < <? ? ? ?; ; ; ;; ; ; ;3C 3C 3C 3ClC C C C<= = = =2= = = =$= = = =,= = = =A A A A.3K 3K 3K 3Kl3K 3K 3K 3Kl3K 3K 3K 3Kl3A 3A 3A 3Al3A 3A 3A 3Al3A 3A 3A 3Al= = = == = = = 7R 7R 7R 7Rv!= != !=F= = = =*  ''7D$dK<LdS+ 	 , 	 2 	 0 	 7FAq$8H%P:y!Qk>NPUV'(	 ,"	m@	
B BF.Y.Y sCx.Y 38_	.Y
 .Y .Y sm.Y #3-.Y .Y 
.Y .Y .YGB BF.Y`  ''	
 	
 	

 
#9#9 sCx#9 38_	#9
 #9 #9 #9 
#9 #9 #9
 
#9 #9 #9r   r   __main__)r  r8  unittesttypingr   r   numpyr   r  onnx.version_converterr   r   r   r   r   r	   r
   TestCaser   r  mainr   r   r   <module>r     s  
       " " " " " " " "                           O!9 O!9 O!9 O!9 O!98, O!9 O!9 O!9dB zHMOOOOO r   