
    wiI                       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	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 )    )annotationsN)
GraphProto
ModelProtoOperatorSetIdProtoTensorProtocheckerhelperc                      e Zd Zd}d	Zd~dZd~dZd~dZd~dZd~dZd~dZ	d~dZ
d~dZd~dZd~dZd~dZd~dZd~dZd~dZd~dZd~dZd~dZd~dZd~dZd~dZd~dZd~d Zd~d!Zd~d"Zd~d#Zd~d$Zd~d%Zd~d&Zd~d'Z d~d(Z!d~d)Z"d~d*Z#d~d+Z$d~d,Z%d~d-Z&d~d.Z'd~d/Z(d~d0Z)d~d1Z*d~d2Z+d~d3Z,d~d4Z-d~d5Z.d~d6Z/d~d7Z0d~d8Z1d~d9Z2d~d:Z3ddd>Z4ddd?Z5d~d@Z6d~dAZ7d~dBZ8d~dCZ9d~dDZ:d~dEZ;d~dFZ<d~dGZ=d~dHZ>d~dIZ?d~dJZ@d~dKZAd~dLZBd~dMZCd~dNZDd~dOZEd~dPZFd~dQZGd~dRZHd~dSZId~dTZJdU ZKd~dVZLd~dWZMeNjN        O                    dXdYdZd[d[d[ePjQ        d\fd]dYd^d_d[d[ePjQ        d\fd`dYd^d_dad[ePjQ        d\fdbdYdZd_dcd[ePjQ        d;fdddYd^d_dcd[ePjQ        d;fdedYdfdadgd[ePjQ        d;fdhdidjdcdgd[ePjQ        d;fdkdYd^d_d[ePjR        d[d;fdldYd^d_d[d[ePjS        d;fg	          ddx            ZTeNjN        O                    g dy          dd{            ZUd~d|ZVd[S )TestVersionConvertergraphr   initial_versionr   target_versionintreturnr   c                    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         p/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/onnx/test/version_converter_test.py
_convertedzTestVersionConverter._converted   s]     &_<M
 
 

 0@@
 
 	O,,,    Nonec                J     d fd}                      t          |           d S )Nr   r   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   r   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/      r1   r   r	   r3   r4   r5   r   r6   r   r7   r   nodeop_typeopset_importversionr   r9   r   r   s       r   test_backwards_compatiblez.TestVersionConverter.test_backwards_compatibleB       !%$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   r   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/   r0      r2   r8   s     r   r*   z7TestVersionConverter.test_non_existent_op.<locals>.testT   s    %ecUSE::;E%.sK4EtLLM.sK4EtLLM	 E OOE6#<R#C#CQGGGGGr   r:   r;   r>   s   ` r   test_non_existent_opz)TestVersionConverter.test_non_existent_opS   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"   rA   rB   r)   r*   r+   r-   r/   r0   r,   r   rD   rI   s       r   test_add_8_5z!TestVersionConverter.test_add_8_5a   rK   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"   rA   rB   r)   r*   r+   r-   r/   r,   r0   r   rD   rI   s       r   test_add_5_8z!TestVersionConverter.test_add_5_8r   rK   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"   rA   rB   r)   r   r.   )axis	broadcastr*   )r,   r1   r+   r/   r,   r0   	UnsqueezerD   rI   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MulrA   rB   r)   r*   r+   r-   r/   r0   r,   r   rD   rI   s       r   test_mul_8_5z!TestVersionConverter.test_mul_8_5   rK   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[   rA   rB   r)   r*   r+   r-   r/   r,   r0   r   rD   rI   s       r   test_mul_5_8z!TestVersionConverter.test_mul_5_8   rK   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,   rb   rc   r/   r.   r0   r   rD   rI   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`   ra   r)   r*   r(   rd   rb   rc   r/   r0   r.   r   rD   rI   s       r   test_gemm_downz#TestVersionConverter.test_gemm_down   rf   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   rD   rI   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 )
Nrj   r'   r)   r*   r+   r/   rk   r,   r   rD   rI   s       r   test_relu_7_5z"TestVersionConverter.test_relu_7_5%  rm   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'   scalerb   meanvarr)   r*   r'   r+   rs   r-   rb   rt   ru   r/   r0   r,   r   rD   rI   s       r   test_batch_normalization_8_5z1TestVersionConverter.test_batch_normalization_8_53  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 )Nrq   rr   r)   r*   r'   r+   rs   r-   rb   rt   ru   r/   r,   r0   r   rD   rI   s       r   test_batch_normalization_5_8z1TestVersionConverter.test_batch_normalization_5_8K  rw   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rA   rB   X3X4X5r)   r*   rA   r-   rB   r}   r~   r   r+   r/   rC   r,   r   rD   rI   s       r   test_concat_3_5z$TestVersionConverter.test_concat_3_5c  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 )Nr{   r|   r)   r   rV   r*   rA   r-   rB   r}   r~   r   r+   r/   r,   rC   rD   rI   s       r   test_concat_5_3z$TestVersionConverter.test_concat_5_3w  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+   rO      r   r	   r3   make_tensorr   INT64r4   r5   r6   r   r7   r   rE   rF   rG   rH   rI   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   rO   r   r   r.   rD   rI   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/   rk   r0   r   rD   rI   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,   rk   r   rD   rI   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/   r0   r,   r   rD   rI   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/   r0   r   rD   rI   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   rD   rI   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*   rd   r/   r0   r   rD   rI   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*   rd   r/   r0   r.   r   rD   rI   s       r   test_dropout_downz&TestVersionConverter.test_dropout_down6  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 )Nrk   r0   r1   rC   r   Maxr'   r)   inputsoutputstest_maxr/   r   r   r6   r   r	   r3   r4   r5   r   r7   r   rE   rF   r   typetensor_type	elem_typerG   rH   r   
from_opsetto_opset	data_type
data_shaper9   r   r   s           r   test_max_7_8z!TestVersionConverter.test_max_7_8V     
%	
&&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 )Nrk   r0   r   Minr'   r)   r   test_minr/   r   r   r   s           r   test_min_7_8z!TestVersionConverter.test_min_7_8n  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 )Nrk   r0   rC   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/   r0   r   rD   rI   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 )NrO   rk   Upsampler'   r)   nearest      @       @)r   r   modewidth_scaleheight_scaletest_upsample_6_7r.   r.   r1   r1   r.   r.   r   rO   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   r6   r   r	   r3   r4   r5   r   r7   lenr   rE   rF   	attributerG   rH   )r   r   r   r   r9   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   rD   rI   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 )Nr0   	   rq   )xsbiasrt   ru   yr   )r.   r1   r.   rC   r   r   r.   r   rt   ru   test_batchnormalization_8_9r/   r   )r   r6   r	   r3   r5   r4   r   r7   r   rE   rF   rG   rH   r   r   r   r   r9   input_shaper   rs   rb   rt   ru   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   r0   rq   rr   r)   r   )r1   rC   r   r,   r'   rs   r.   rb   rt   ru   test_batchnormalizationr/   r   )r   r6   r   r	   r3   r5   r4   r   r7   r   rE   rF   rG   rH   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 )Nr0   r   r      r   r)   r/   r   r   r   test_constantr   )r   r6   nparanger	   r3   r   r4   r   r5   r   r7   r   rE   rF   r   r   r   r   rG   rH   	r   r   r   r   output_shapeoutput_valuer9   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   r0   r   r   r   r)   r/   r   r   r   )r   UINT64r   r   r	   r3   r   r4   r   r5   r   r7   r   rE   rF   r   r   r   r   rG   rH   r   s	            r   test_constant_9_8z&TestVersionConverter.test_constant_9_8C  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 )Nr0   r   Flattenr'   r)   r.   r   r   rV   test_flattenr   r1      r/   r   r   r   r   r   r   r9   r   r   s          r   test_flatten_8_9z%TestVersionConverter.test_flatten_8_9d  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   r0   r  r'   r)   r.   r  r  r   r1   r  r/   r   r   r   r   r	   r3   r4   r5   r   r7   r   rE   rF   r   r   r   r   rG   rH   r  s          r   test_flatten_9_8z%TestVersionConverter.test_flatten_9_8{  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 )Nr0   r   PRelur'   Sloper)   r   r   
test_prelur/   r   r   r   r   r   r   r9   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   r0   r  r'   r  r)   r   r   r  r/   r1   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 )Nr0   r   GreaterrA   rB   r)   r   r   test_greaterr/   r   r   r6   r   r	   r3   r4   r5   BOOLr   r7   r   rE   rF   r   r   r   r   rG   rH   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   r0   r  rA   rB   r)   r   r   r  r/   r1   r   r   r   r   r	   r3   r4   r5   r  r   r7   r   rE   rF   r   r   r   r   rG   rH   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 )Nr0   r   LessrA   rB   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   r0   r  rA   rB   r)   r   r   r  r/   r1   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 )Nr0   r   MatMulrA   rB   r)   r   test_matmulrC   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   r0   r$  rA   rB   r)   r   r%  rC   r   r/   r1   r   r
  r  s          r   test_matmul_9_8z$TestVersionConverter.test_matmul_9_8Z  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 )Nr0   r   r`   rA   rB   r}   r)   r   	test_gemmrA   rC   r   rB   r}   r/   r   r   r  s          r   test_gemm_8_9z"TestVersionConverter.test_gemm_8_9t  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   r0   r`   r*  r)   r   r+  rA   rC   r   rB   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 )Nr0   r   r   r'   r)   r         ?r1  r   r   )r   r   r   r   test_upsample_8_9r   r   r/   r1   r   r   r.   r   )r   r6   r   r	   r3   r4   r5   r   r7   r   r   rE   rF   r   r   rG   rH   r  s          r   r2  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_scaleboolc                   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   r0   r   r'   Scalesr)   r   r   r   r   r0  r   4ftest_upsampler   r   r/   r   r1   r.   r   )r   r6   r   r	   r3   r   bytesstructpackr4   r5   r   r7   r   rE   rF   r   initializerr   r   rG   rH   )
r   r3  r   r   r   r9   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   r0   r0  const_valuer   r8  r   Constant_Outputr   r   r'   r)   r   r7  r9  r   r   )
value_infor/   r.   r   r1   r   )r   r6   r   r	   r   r:  r;  r<  r3   r4   r5   r   r7   r   r   rE   rF   r   r   rG   rH   )
r   r3  r   r   r   r>  r?  r9   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r3  rE  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 rG  )r@  rJ  s    r   "test_upsample_with_initializer_9_8z7TestVersionConverter.test_upsample_with_initializer_9_8,  s    --->>>>>r   c                2    |                      d           d S NTrH  rI  rJ  s    r   &test_upsample_with_raw_initializer_9_8z;TestVersionConverter.test_upsample_with_raw_initializer_9_80      **T*:::::r   c                2    |                      d           d S rO  rI  rJ  s    r   (test_upsample_with_raw_constant_node_9_8z=TestVersionConverter.test_upsample_with_raw_constant_node_9_84  rQ  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 )Nr0   r   r"   sum_innextsum_outr   Identityscan_out	scan_bodyr1   r/   Scaninitialr   r   zr.   )r   r   bodynum_scan_inputs)r.   rC   r1   test_scan_8_9r   )r   r6   r   r	   r3   r4   r5   r   r7   r   rE   rF   rG   rH   )r   r   r   r   node1node2gno_sequence_lensr9   r\  r   r   r]  r   r   s                  r   r`  z"TestVersionConverter.test_scan_8_98  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 )Nr0   r   Castr'   r)   )r   r   to	test_castr1   rC   r/   r   )r   r6   UINT32r   r	   r3   r4   r5   r   r7   r   rE   rF   r   r   r   r   rG   rH   )r   r   r   data_type_fromdata_type_tor9   r   r   s           r   test_cast_8_9z"TestVersionConverter.test_cast_8_9n  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/   r1   rC   r   Splitr'   Y1Y2r*   r+   r1   r      r  r   r   rI   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                8   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          }|                     |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 d S )Nro  r'   rp  rq  r.   r   test_split_optional_input)rO   r   r/   r     r   r1   )r	   r3   r4   r5   r   r6   r   r7   r   rE   rF   rG   rH   r   r   rI   s       r   test_split_with_optional_inputz3TestVersionConverter.test_split_with_optional_input  s   !'C54,QGGGH!'*30A4HHI-dK4EtLL-dK4EtLL	
 
 //%1J2r1R1RTVWW$)!,4????+A.6"<<<<?(-a0788A======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 )Nro  r'   rp  rq  r1   rC   )rn  r*   r+   rr  r   r/   r  rs  r   r   r.   rD   rI   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*   rd   r.   r,   rs  r  r   rI   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 )Nr}  r'   r)   r   )r|  r*   rd   r~  r/   r  rs  r   rD   rI   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.   rC   
   )r|  startsendsr*   )   r  r,   )rC   r  r,   r/   r   r   r1   r   )r	   r3   r4   r5   r   r6   r   r7   r   rE   rF   rG   rH   r   inputr   rI   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 )Nrs     r.   r1   rC   r,   RNNr'   r#   Rr/   Y_hr   r   hidden_sizetest_rnnr'   r#   r  rb   r   layoutr   r6   r   r	   r3   r4   r5   r   r7   r   rE   rF   rG   rH   r   r   r   r   r   r   r   
seq_length
batch_size
input_sizenum_directionsr  r9   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 )Nrs  r  r.   r1   rC   r,   GRUr  r/   r  r  test_grur'   r#   r  rb   rO   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 )Nrs  r  r.   r1   rC   r,   LSTMr  r/   r  r  	test_lstmr'   r#   r   r  rb   r0   r   r  r  r  s               r   test_lstm_13_14z$TestVersionConverter.test_lstm_13_14p  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  rs  r.   r1   rC   r,   r  r  r/   r  r   r   r   r  r  r  r'   r#   r  rb   r   r6   r   r	   r3   r4   r5   r   r7   r   rE   rF   rG   rH   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  rs  r.   r1   rC   r,   r  r  r/   r  r   r  r  r'   r#   r  rb   rO   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  rs  r.   r1   rC   r,   r  r  r/   r  r   r  r  r'   r#   r   r  rb   r0   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.   r1   r   r1   r.   Padr'   r)   )padsr*   r.   r1   r1   r.   r,   r,   r/   r     r.   r   rD   r   r  r9   r   r   s        r   test_pad_10_11z#TestVersionConverter.test_pad_10_11H  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)   r1  )r  r   r*   r  r  r/   r  r  r.   r   rD   r  s        r   test_pad_with_value_10_11z.TestVersionConverter.test_pad_with_value_10_11W  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  r1   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   r6   r   r	   r3   r5   r4   r  r   r   r7   r   rE   rF   rG   rH   r   rc  r   )r   r   r   r   r   
subg1_nodesubg1_inputsubg1_outputsubg1
subg2_nodesubg2_inputsubg2_outputsubg2rE   r  r   initr   	converteds                      r   test_if_subgraph_10_11z+TestVersionConverter.test_if_subgraph_10_11g  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 )Nrq   rr   r)   g?g
ףp=
?rs   r1   g333333?gHzG?rb   gzG?g?rt   g)\(?g{Gz?ru   r*   r'   )r.   r1   r1   rC   r/   r  r  r   )r	   r3   r   r   r   r6   r4   r5   r   r7   r   rE   rF   rG   rH   )r   r9   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.   r1   rC   r/   r  rs  Shaper.   r  rV   r1   rC   r&   r	   r3   r4   r5   r   r6   r   r7   r   rE   rF   r   r   irG   rH   r   rV   r9   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   c           
     H   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         j        dk    sJ |j        j	        d         j        d         j        dk    sJ |j        d         j        d
k    sJ d S )Nr  r  r'   r)   r   r*   r  r/   rs  r  r   rV   r1   r  r  s        r   test_softmax_13_12z'TestVersionConverter.test_softmax_13_12  s#   !)cUSEEEEF!*30A9MMN*30A9MMN	
 
 //%1J2r1R1RTVWW$)!,4	AAAA$)!,6q9>&HHHH$)!,6q9;q@@@@+A.6"<<<<<<r   
per_tensor   rC   r-   NTper_axis_none_block_shaper  r.   per_axis_zero_block_shaper   per_tensor_positive_block_shaper1   per_axis_positive_block_shape
blocked_2dr   rC   r   
blocked_3dr   rC       r   rC   r0   per_axis_output_dtypeper_axis_unsupported_type_strx_shapetuple[int, ...]scale_shaperV   
block_sizeoutput_dtype
int | None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   r   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)   )rV   r  r  ZPr   r*   r/      r  )
r	   r3   r5   r   r6   appendr  r4   r   r7   )r   r  rV   r  r  r  r9   r   output_type_r   r  r   s              r   r*   z6TestVersionConverter.test_quantize_21_20.<locals>.test8  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   r:   
contextlibnullcontextr<   r=   )r   r  r  r  rV   r  r  r  r  r*   context_managers   `          r   test_quantize_21_20z(TestVersionConverter.test_quantize_21_20  s    \	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.   r1   F)r  r  r  r.   r1   F)r  r  r  r   r   F)r  r  r  r1   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   r   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)   )rV   r  r*   r'   r  r  r/   r   r  )	r	   r3   r4   r5   r   INT8r6   r   r7   )r   r  rV   r  r9   r   r  r   s          r   r*   z8TestVersionConverter.test_dequantize_21_20.<locals>.testq  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   r:   r  )	r   r  r  r  rV   r  r  r*   r  s	   `        r   test_dequantize_21_20z*TestVersionConverter.test_dequantize_21_20]  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c                R   t          j                    5 }d}t          j        j        |                     t          j                  }t          j        	                    dt          j
        j        t          |          |d          }t          j        	                    dt          j
        j        g dg          }t          j                            dddgd	g
          }t          j                            d|gg t          j                            d	t          j
        j        t          |                    g||g          }t           j                            |d          }d}	t          j                            dd          g}
t          j                            ||
          }d|_        t          j        ||dd|	dd           t          j                            t          j        |d          d          }|                     t7          |j        j                  d           d |j        j        D             }|                     d|           |d         }|                     |j        t          j                    |                     t7          |j!                  d           d |j!        D             }|                     |d         |	           |                     |d         d           |                     |d         d            d d d            d S # 1 swxY w Y   d S )!N)r1   rC   initializer_tensorT)r   r   dimsvalsrawinitializer_scalarr1  )r   r   r  r  r"   
sum_outputr   SimpleAddition)r   r9   r   r   r=  ztest_simple_add.onnxztest_simple_add.onnx.datar/   r  )r   r  r   F)save_as_external_dataall_tensors_to_one_filelocationsize_thresholdconvert_attribute)load_external_datar   r1   c                    i | ]
}|j         |S r   r   )r   r  s     r   
<dictcomp>zNTestVersionConverter.test_external_data_version_conversion.<locals>.<dictcomp>  s    UUU4ty$UUUr   rC   c                (    i | ]}|j         |j        S r   )keyr   )r   eds     r   r  zNTestVersionConverter.test_external_data_version_conversion.<locals>.<dictcomp>  s    !X!X!Xr"&"(!X!X!Xr   r  offset0length24)"tempfileTemporaryDirectoryr   randomrandastypefloat32r   r	   r   r   r6   listr3   r4   r5   ospathjoinmake_opsetidr   
ir_version
save_modelr   r   loadassertEqualr   r   r=  assertIndata_locationEXTERNALexternal_data)r   temp_dirr%   random_datar  r  add_node	graph_defmodel_filenamedata_filenamer   	model_defr   tensorslarge_tensorexternal_data_dicts                   r   %test_external_data_version_conversionz:TestVersionConverter.test_external_data_version_conversion  sy   (** F	AhE).%077
CCK!%!8!8)*0%[[  "9 " " "&!8!8)*0U	 "9 " " {,,,.BC% -  H ..%jK66$d&6&<d5kk 
 01CD / 
 
I  W\\(4JKKN7M![55b"==>M..y.VVI#%I O&*(,& "'    #4DD	.UCCCR O S!6!BCCQGGG VU?3H3TUUUGMM.888"#78L\79MNNNS!;<<a@@@ "Y!X\=W!X!X!X/
;]KKK/93???/94@@@MF	A F	A F	A F	A F	A F	A F	A F	A F	A F	A F	A F	A F	A F	A F	A F	A F	A F	As   K;LL #L )r   r   r   r   r   r   r   r   r:   )F)r3  r4  r   r   )r  r  r  r  r  r  rV   r   r  r   r  r  r  r  r  r4  r   r   )r  r  r  r  r  r  rV   r   r  r   r  r4  r   r   )W__name__
__module____qualname__r   r?   rJ   rP   rR   rT   rY   r\   r^   re   rh   rl   ro   rv   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r   r"  r&  r(  r,  r.  r2  r@  rE  rK  rM  rP  rS  r`  rl  rt  rx  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  parameterizedexpandr   r  FLOAT8E4M3FNUINT16r  r  rB  r   r   r   r   r      sO          ". . . .,< < < <". . . .< < < <"< < < <"< < < <$< < < <"< < < <"-< -< -< -<`-< -< -< -<`< < < << < < << < < <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 'C 'CT+C +C +C +C +C\< < < <? ? ? ?; ; ; ;; ; ; ;3C 3C 3C 3ClC C C C<= = = =0> > > >&= = = =$= = = =,= = = =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 .YGB BF.Y`  ''	
 	
 	

 
#9 #9 #9
 
#9JGA GA GA GA GA GAr   r   __main__)
__future__r   r  r,  r;  r%  unittestnumpyr   rF  onnx.version_converterr   r   r   r   r   r   r	   TestCaser   rC  mainr   r   r   <module>rQ     s"   # " " " " "     				                              z"A z"A z"A z"A z"A8, z"A z"A z"AzE zHMOOOOO r   