o
    to™iê  ã                   @  sf   d dl mZ d dlZd dlZd dlZd dlZd dlmZmZ G dd„ dej	ƒZ
edkr1e ¡  dS dS )é    )ÚannotationsN)ÚTensorProtoÚhelperc                   @  s   e Zd Zedd„ ƒZdd„ Zdådd„Zdåd	d
„Zdådd„Zdådd„Z	dådd„Z
dådd„Zdådd„Zdådd„Zdådd„Zdådd„Zdådd„Zdådd„Zdådd „Zdåd!d"„Zdåd#d$„Zdåd%d&„Zdåd'd(„Zdåd)d*„Zdåd+d,„Zdåd-d.„Zdåd/d0„Zdåd1d2„Zdåd3d4„Zdåd5d6„Zdåd7d8„Zdåd9d:„Zdåd;d<„Z dåd=d>„Z!dåd?d@„Z"dådAdB„Z#dådCdD„Z$dådEdF„Z%dådGdH„Z&dådIdJ„Z'dådKdL„Z(dådMdN„Z)dådOdP„Z*dådQdR„Z+dådSdT„Z,dådUdV„Z-dådWdX„Z.dådYdZ„Z/dåd[d\„Z0dåd]d^„Z1dåd_d`„Z2dådadb„Z3dådcdd„Z4dådedf„Z5dådgdh„Z6dådidj„Z7dådkdl„Z8dådmdn„Z9dådodp„Z:dådqdr„Z;dådsdt„Z<dådudv„Z=dådwdx„Z>dådydz„Z?dåd{d|„Z@dåd}d~„ZAdådd€„ZBdådd‚„ZCdådƒd„„ZDdåd…d†„ZEdåd‡dˆ„ZFdåd‰dŠ„ZGdåd‹dŒ„ZHdåddŽ„ZIdådd„ZJdåd‘d’„ZKdåd“d”„ZLdåd•d–„ZMdåd—d˜„ZNdåd™dš„ZOdåd›dœ„ZPdåddž„ZQdådŸd „ZRdåd¡d¢„ZSdåd£d¤„ZTdåd¥d¦„ZUdåd§d¨„ZVdåd©dª„ZWdåd«d¬„ZXdåd­d®„ZYdåd¯d°„ZZdåd±d²„Z[dåd³d´„Z\dådµd¶„Z]dåd·d¸„Z^dåd¹dº„Z_dåd»d¼„Z`dåd½d¾„Zadåd¿dÀ„ZbdådÁdÂ„ZcdådÃdÄ„ZddådÅdÆ„ZedådÇdÈ„ZfdådÉdÊ„ZgdådËdÌ„ZhdådÍdÎ„ZidådÏdÐ„ZjdådÑdÒ„ZkdådÓdÔ„ZldådÕdÖ„Zmdåd×dØ„ZndådÙdÚ„ZodådÛdÜ„ZpdådÝdÞ„Zqdådßdà„Zrdådádâ„Zsdådãdä„Ztdådådæ„Zudådçdè„Zvdådédê„Zwdådëdì„Zxdådídî„Zydådïdð„Zzdådñdò„Z{dådódô„Z|dådõdö„Z}dåd÷dø„Z~dådùdú„Zdådûdü„Z€dådýdþ„Zdådÿd „Z‚dådd„Zƒdådd„Z„dådd„Z…dådd„Z†dåd	d
„Z‡dådd„Zˆdådd„Z‰dådd„ZŠdådd„Z‹dådd„ZŒdådd„Zdådd„ZŽdådd„Zdådd„Zdådd„Z‘dådd „Z’dåd!d"„Z“dåd#d$„Z”dåd%d&„Z•dåd'd(„Z–dåd)d*„Z—dåd+d,„Z˜dåd-d.„Z™dåd/d0„Zšdåd1d2„Z›dåd3d4„Zœdåd5d6„Zdåd7d8„Zždåd9d:„ZŸdåd;d<„Z dåd=d>„Z¡dåd?d@„Z¢dådAdB„Z£dådCdD„Z¤dådEdF„Z¥dådGdH„Z¦dådIdJ„Z§dådKdL„Z¨dådMdN„Z©dådOdP„ZªdådQdR„Z«dådSdT„Z¬dådUdV„Z­dådWdX„Z®dådYdZ„Z¯dåd[d\„Z°dåd]d^„Z±dåd_d`„Z²dådadb„Z³dådcdd„Z´dådedf„Zµdådgdh„Z¶dådidj„Z·dådkdl„Z¸dådmdn„Z¹dådodp„Zºdådqdr„Z»dådsdt„Z¼dådudv„Z½dådwdx„Z¾dådydz„Z¿dåd{d|„ZÀdåd}d~„ZÁdådd€„ZÂdådd‚„ZÃdådƒd„„ZÄdåd…d†„ZÅdåd‡dˆ„ZÆdåd‰dŠ„ZÇdåd‹dŒ„ZÈdåddŽ„ZÉdådd„ZÊdåd‘d’„ZËdåd“d”„ZÌdåd•d–„ZÍdåd—d˜„ZÎdåd™dš„ZÏdåd›dœ„ZÐdåddž„ZÑdådŸd „ZÒdåd¡d¢„ZÓdåd£d¤„ZÔdåd¥d¦„ZÕdåd§d¨„ZÖdåd©dª„Z×dåd«d¬„ZØdåd­d®„ZÙdåd¯d°„ZÚdåd±d²„ZÛdåd³d´„ZÜdådµd¶„ZÝdåd·d¸„ZÞdåd¹dº„Zßdåd»d¼„Zàdæd¿dÀ„ZádådÁdÂ„ZâdådÃdÄ„ZãdådÅdÆ„ZädådÇdÈ„ZådçdÊdË„ZædådÌdÍ„ZçdådÎdÏ„ZèdådÐdÑ„ZédådÒdÓ„ZêdådÔdÕ„ZëdådÖd×„ZìdådØdÙ„ZídådÚdÛ„ZîdådÜdÝ„ZïdådÞdß„Zðdådàdá„Zñdådâdã„ZòdäS (è  ÚTestAutomaticUpgradec                 C  s
   g | _ d S )N)Ú
tested_ops)Úcls© r   úf/home/ubuntu/.local/lib/python3.10/site-packages/onnx/test/version_converter/automatic_upgrade_test.pyÚ
setUpClass   s   
zTestAutomaticUpgrade.setUpClassc                 O  s0   | j  |¡ | j|g|¢R i |¤ddi¤Ž d S )NÚ
is_upgradeT)r   ÚappendÚ_test_op_conversion)ÚselfÚopÚargsÚkwargsr   r   r	   Ú_test_op_upgrade   s   $z%TestAutomaticUpgrade._test_op_upgradeÚreturnÚNonec                 C  ó   | j ddddgid d S )NÚAbsé   Úconsumed_inputsr   ©Úattrs©r   ©r   r   r   r	   Útest_Abs   ó   zTestAutomaticUpgrade.test_Absc                 C  ó   |   dd¡ d S )NÚAcoshé	   r   r   r   r   r	   Ú
test_Acosh    ó   zTestAutomaticUpgrade.test_Acoshc                 C  r   )NÚAcosé   r   r   r   r   r	   Ú	test_Acos#   r#   zTestAutomaticUpgrade.test_Acosc                 C  ó6   |   ddddgddggddggtjtjgtjg¡ d S )NÚAndr%   é   é   ©r   r   ÚBOOLr   r   r   r	   Útest_And&   ó   
úzTestAutomaticUpgrade.test_Andc                 C  r   )NÚAsinhr!   r   r   r   r   r	   Ú
test_Asinh1   r#   zTestAutomaticUpgrade.test_Asinhc                 C  r   )NÚAtanhr!   r   r   r   r   r	   Ú
test_Atanh4   r#   zTestAutomaticUpgrade.test_Atanhc                 C  s(   | j ddg d¢g d¢gddgid d S )NÚAddr   ©r*   é   é   r   r   r   r   r   r   r   r	   Ú
test_Add_17   ó   
ÿzTestAutomaticUpgrade.test_Add_1c                 C  s(   | j ddg d¢dggdgddœd d S )Nr3   r   r4   r6   r   )r   Ú	broadcastr   r   r   r   r   r	   Ú
test_Add_2<   r8   zTestAutomaticUpgrade.test_Add_2c                 C  s*   | j ddg d¢dggdgdddœd d S )Nr3   r   r4   r*   r   )r   r9   Úaxisr   r   r   r   r   r	   Ú
test_Add_3A   s   
üzTestAutomaticUpgrade.test_Add_3c              	   C  s6   d\}}}}|   dd|ddgdgg|||dgg¡ d S )N)r)   r*   r6   é   Ú
AffineGridé   r)   r*   r5   r   )r   ÚNÚ_ÚHÚWr   r   r	   Útest_AffineGrid_2DI   s   *z'TestAutomaticUpgrade.test_AffineGrid_2Dc              
   C  s:   d\}}}}}|   dd|ddgdgg||||dgg¡ d S )N)r)   r*   r5   r6   r=   r>   r?   r*   r5   r6   r   )r   r@   rA   ÚDrB   rC   r   r   r	   Útest_AffineGrid_3DM   s   ,z'TestAutomaticUpgrade.test_AffineGrid_3Dc                 C  ó(   | j ddg d¢gg d¢gtjgd d S )NÚArgMaxr%   ©r)   r*   r5   ©r   r*   r5   ©Úoutput_types©r   r   ÚINT64r   r   r   r	   Útest_ArgMax_1Q   r8   z"TestAutomaticUpgrade.test_ArgMax_1c                 C  ó.   | j ddg d¢gg d¢gtjgddid d S )NrH   r%   rI   ©r)   r   r5   r;   r   ©rL   r   rM   r   r   r   r	   Útest_ArgMax_2V   ó   
úz"TestAutomaticUpgrade.test_ArgMax_2c                 C  rG   )NÚArgMinr%   rI   rJ   rK   rM   r   r   r   r	   Útest_ArgMin_1`   r8   z"TestAutomaticUpgrade.test_ArgMin_1c                 C  rP   )NrU   r%   rI   rQ   r;   r   rR   rM   r   r   r   r	   Útest_ArgMin_2e   rT   z"TestAutomaticUpgrade.test_ArgMin_2c                 C  r   )NÚAsinr%   r   r   r   r   r	   Ú	test_Asino   r#   zTestAutomaticUpgrade.test_Asinc                 C  r   )NÚAtanr%   r   r   r   r   r	   Ú	test_Atanr   r#   zTestAutomaticUpgrade.test_Atanc              	   C  ó@   |   ddg d¢g d¢g d¢gg d¢gtjtjtjgtjg¡ d S )NÚ	Attentioné   ©r)   r*   r5   é   ©r)   r*   r=   r`   ©r   r   ÚFLOATr   r   r   r	   Útest_Attention_1u   ó   úz%TestAutomaticUpgrade.test_Attention_1c              	   C  r\   )Nr]   r^   )r)   r!   r5   r`   ra   rb   r   r   r   r	   Útest_Attention_2   re   z%TestAutomaticUpgrade.test_Attention_2c              	   C  s@   |   ddg d¢g d¢g d¢gg d¢gtjtjtjgtjg¡ d S )Nr]   r^   r_   ra   )r)   r*   r=   é
   )r)   r*   r5   rg   rb   r   r   r   r	   Útest_Attention_3‰   re   z%TestAutomaticUpgrade.test_Attention_3c              	   C  óH   | j ddg d¢g d¢g d¢gg d¢gtjtjtjgtjgddid d S )Nr]   r^   r_   ra   Úscaleç       @r   rb   r   r   r   r	   Útest_Attention_4“   ó   
ùz%TestAutomaticUpgrade.test_Attention_4c              	   C  ri   )Nr]   r^   r_   ra   Ú	is_causalr   r   rb   r   r   r   r	   Útest_Attention_5ž   rm   z%TestAutomaticUpgrade.test_Attention_5c              
   C  sJ   |   ddg d¢g d¢g d¢ddggg d¢gtjtjtjtjgtjg¡ d S ©Nr]   r^   r_   ra   r5   r=   rb   r   r   r   r	   Útest_Attention_6©   ó   üõz%TestAutomaticUpgrade.test_Attention_6c              
   C  sJ   |   ddg d¢g d¢g d¢ddggg d¢gtjtjtjtjgtjg¡ d S rp   ©r   r   rc   r,   r   r   r   r	   Útest_Attention_7¸   s   úz%TestAutomaticUpgrade.test_Attention_7c              	   C  ri   )Nr]   r^   r_   ra   Úsoftcaprk   r   rb   r   r   r   r	   Útest_Attention_8Â   rm   z%TestAutomaticUpgrade.test_Attention_8c                 C  ó,   | j ddg d¢gg d¢gdddgid d S )NÚAveragePoolr   ©r   r   r6   r6   ©r   r   r5   r5   Úkernel_shaper)   r   r   r   r   r   r	   Útest_AveragePoolÍ   ó   

ûz%TestAutomaticUpgrade.test_AveragePoolc                 C  r   )NÚ	Bernoullié   r   r   r   r   r	   Útest_BernoulliÖ   r#   z#TestAutomaticUpgrade.test_Bernoullic              	   C  s>   | j ddddgddggddggtjtjgtjgddid d S )NÚBitShifté   r)   r*   Ú	directionÚRIGHTr   ©r   r   ÚUINT8r   r   r   r	   Útest_BitShiftÙ   ó   

ùz"TestAutomaticUpgrade.test_BitShiftc              	   C  s@   | j ddddgdgdgdgdggddggddgdddœd d S )NÚBatchNormalizationr   r*   )r   Úis_testÚspatialr   r   r   r   r   r	   Útest_BatchNormalization_1ä   s   
ûz.TestAutomaticUpgrade.test_BatchNormalization_1c                 C  s@   | j ddddgdgdgdgdggddgdgdggddid d S )Nr‰   é   r   r*   Útraining_moder   r   r   r   r   r	   Útest_BatchNormalization_2í   s   
ûz.TestAutomaticUpgrade.test_BatchNormalization_2c                 C  s.   | j ddddggddggtjgddid d S )NÚCastr=   r)   r*   Útor   r   rM   r   r   r   r	   Ú	test_Castö   ó    
ÿzTestAutomaticUpgrade.test_Castc                 C  r   )NÚCeilr   r   r   r   r   r   r   r   r	   Ú	test_Ceilü   r   zTestAutomaticUpgrade.test_Ceilc                 C  r   )NÚCelué   r   r   r   r   r	   Ú	test_Celuÿ   r#   zTestAutomaticUpgrade.test_Celuc                 C  r   )NÚClipr   r   r   r   r   r   r   r   r	   Útest_Clip_1  r   z TestAutomaticUpgrade.test_Clip_1c                 C  ó   | j dddgddœd d S )Nr™   r   r   çffffffö¿)r   Úminr   r   r   r   r   r	   Útest_Clip_2  ó   z TestAutomaticUpgrade.test_Clip_2c                 C  r›   )Nr™   r   r   çÍÌÌÌÌÌ@)r   Úmaxr   r   r   r   r   r	   Útest_Clip_3  rŸ   z TestAutomaticUpgrade.test_Clip_3c                 C  s   | j dddgdddœd d S )Nr™   r   r   rœ   r    )r   r   r¡   r   r   r   r   r   r	   Útest_Clip_4  s   
ÿz TestAutomaticUpgrade.test_Clip_4c                 C  ó(   |   ddg d¢dgdggg d¢g¡ d S )NÚCol2Imé   )r   r6   r6   r)   ry   r   r   r   r   r	   Útest_Col2Im_4D  ó   (z#TestAutomaticUpgrade.test_Col2Im_4Dc                 C  r¤   )Nr¥   r¦   )r   rg   r—   r*   )r   r)   r*   r5   r6   r   r   r   r   r	   Útest_Col2Im_5D  r¨   z#TestAutomaticUpgrade.test_Col2Im_5Dc                 C  s2   |   ddddgdggdggtjtjgtjg¡ d S )NÚCompressr!   r=   r%   r*   rs   r   r   r   r	   Útest_Compress  s   
úz"TestAutomaticUpgrade.test_Compressc                 C  s&   |   ddddgddggddgg¡ d S )NÚConcatr   r)   r*   r5   r%   r   r   r   r   r	   Útest_Concat   ó   &z TestAutomaticUpgrade.test_Concatc              	   C  sH   t jdtjg d¢tj ddd¡ tj¡dd}| j	dd	g d
|id d S )NÚValuer4   r*   r5   r6   T©ÚdimsÚvalsÚrawÚConstantr   Úvaluer   ©
r   Úmake_tensorr   rc   ÚnpÚrandomÚrandÚastypeÚfloat32r   )r   rµ   r   r   r	   Útest_constant#  s   ûz"TestAutomaticUpgrade.test_constantc                 C  s   |   dddgg¡ d S )NÚConstantOfShaper!   r*   r   r   r   r   r	   Útest_ConstantOfShape-  s   z)TestAutomaticUpgrade.test_ConstantOfShapec                 C  ó*   |   ddg d¢g d¢dggg d¢g¡ d S ©NÚConvr   ©r   r*   r6   r6   ©r5   r*   r)   r)   r5   ©r   r5   r5   r5   r   r   r   r   r	   Útest_Conv_10  ó   ÿz TestAutomaticUpgrade.test_Conv_1c                 C  rÀ   rÁ   r   r   r   r   r	   Útest_Conv_25  rÇ   z TestAutomaticUpgrade.test_Conv_2c              
   C  sD   | j ddg d¢g d¢dggg d¢gddgdg d	¢ddgd
œd d S )NrÂ   r   rÃ   )r5   r   r)   r)   r5   )r   r5   r*   r%   r)   r*   )r   r   r)   r*   )Ú	dilationsÚgroupÚpadsÚstridesr   r   r   r   r   r	   Útest_Conv_3:  s   ü
ûz TestAutomaticUpgrade.test_Conv_3c              	   C  s>   |   ddg d¢g d¢dggg d¢gtjtjtjgtjg¡ d S )NÚConvIntegerrg   rÃ   rÄ   r5   rÅ   )r   r   r†   ÚINT32r   r   r   r	   Útest_ConvintegerH  s   úz%TestAutomaticUpgrade.test_Convintegerc                 C  ó&   |   ddg d¢g d¢gg d¢g¡ d S )NÚConvTransposer   ry   ©r   r   r*   r*   )r   r   r%   r%   r   r   r   r   r	   Útest_ConvTransposeR  s   ÿz'TestAutomaticUpgrade.test_ConvTransposec                 C  s,   |   ddg d¢g d¢g d¢gg d¢g¡ d S )NÚ
DeformConvé   rÓ   )r   r   r)   r)   )r   r`   r)   r)   r   r   r   r   r	   Útest_DeformConvW  s   üz$TestAutomaticUpgrade.test_DeformConvc                 C  r   )NÚCoshr!   r   r   r   r   r	   Ú	test_Cosh_  r#   zTestAutomaticUpgrade.test_Coshc                 C  r   )NÚCosr%   r   r   r   r   r	   Útest_Cosb  r#   zTestAutomaticUpgrade.test_Cosc                 C  s,   |   ddg d¢g gg d¢gtjtjg¡ d S )NÚCumSumr‚   r4   ©r   r   rc   rN   r   r   r   r	   Útest_Cumsume  s   

ûz TestAutomaticUpgrade.test_Cumsumc                 C  ó(   | j ddg d¢gg d¢gddid d S )NÚDepthToSpacer   )r   r`   r*   r*   )r   r)   r=   r=   Ú	blocksizer)   r   r   r   r   r   r	   Útest_DepthToSpacen  r8   z&TestAutomaticUpgrade.test_DepthToSpacec              	   C  s2   |   ddddgg g gddggtjtjtjg¡ d S )NÚDequantizeLinearrg   r)   r*   )r   r   ÚINT8rc   r   r   r   r	   Útest_DequantizeLinears  s   ûz*TestAutomaticUpgrade.test_DequantizeLinearc                 C  s   |   ddg d¢gdgg¡ d S )NÚDetr‚   )r*   r6   r6   r*   r   r   r   r   r	   Ú
test_Det_1|  ó   zTestAutomaticUpgrade.test_Det_1c                 C  s   |   ddddggg g¡ d S )Nræ   r‚   r6   r   r   r   r   r	   Ú
test_Det_2  rŸ   zTestAutomaticUpgrade.test_Det_2c                 C  s4   | j ddg d¢gg d¢g g gtjtjtjgd d S )NÚDynamicQuantizeLinearr‚   r4   rK   )r   r   r†   rc   r   r   r   r	   Útest_DynamicQuantizeLinear‚  s   
ûz/TestAutomaticUpgrade.test_DynamicQuantizeLinearc                 C  s(   | j ddg d¢g d¢gddgid d S )NÚDivr   r4   )r*   r   r6   r   r   r   r   r   r   r   r	   Útest_Div‹  r8   zTestAutomaticUpgrade.test_Divc                 C  s   | j dddgddœd d S )NÚDropoutr   r   )r   rŠ   r   r   r   r   r   r	   Útest_Dropout  s   
ÿz!TestAutomaticUpgrade.test_Dropoutc                 C  s.   | j ddg d¢g d¢gg d¢gddid d S )	NÚEinsumr—   r4   ©r*   r6   r=   )r*   r5   r=   Úequationzbij, bjk -> bikr   r   r   r   r   r	   Útest_Einsum_1•  ó   
ûz"TestAutomaticUpgrade.test_Einsum_1c                 C  s(   | j ddddggddggddid d S )Nrð   r—   r5   r6   rò   zij->jir   r   r   r   r   r	   Útest_Einsum_2ž  r8   z"TestAutomaticUpgrade.test_Einsum_2c                 C  r   )NÚElur   r   r   r   r   r   r   r   r	   Útest_Elu£  r   zTestAutomaticUpgrade.test_Eluc                 C  ó.   | j ddddgddggddggtjgd d S )NÚEqualr%   r)   r*   rK   r+   r   r   r   r	   Ú
test_Equal¦  r“   zTestAutomaticUpgrade.test_Equalc                 C  r   )NÚErfr!   r   r   r   r   r	   Útest_Erf¬  r#   zTestAutomaticUpgrade.test_Erfc                 C  r   )NÚExpr   r   r   r   r   r   r   r   r	   Útest_Exp¯  r   zTestAutomaticUpgrade.test_Expc                 C  sT   t jdtjdgt g d¢¡d}| jddg d¢dggg d¢gtjtjg|gd d S )	NÚbr5   )r6   r)   r=   r5   ©r±   r²   ÚExpandr`   rQ   ©Úinitializer©r   r·   r   rN   r¸   Úarrayr   rc   )r   Úshaper   r   r	   Útest_Expand²  s   ÿ

úz TestAutomaticUpgrade.test_Expandc                 C  s    |   ddddggddgg¡ d S )NÚEyeLiker!   r5   r6   r   r   r   r   r	   Útest_EyeLike¿  ó    z!TestAutomaticUpgrade.test_EyeLikec                 C  s(   | j ddg d¢gddggddid d S )NÚFlattenr   r4   r*   r?   r;   r   r   r   r   r   r	   Útest_FlattenÂ  r¨   z!TestAutomaticUpgrade.test_Flattenc                 C  r   )NÚFloorr   r   r   r   r   r   r   r   r	   Ú
test_FloorÅ  r   zTestAutomaticUpgrade.test_Floorc                 C  s0   |   ddg d¢ddggg d¢gtjtjg¡ d S )NÚGatherr   r4   r=   r%   )r=   r%   r5   r6   rÝ   r   r   r   r	   Útest_GatherÈ  ó   
ûz TestAutomaticUpgrade.test_Gatherc                 C  s0   |   ddg d¢ddggddggtjtjg¡ d S )NÚGatherElementsr‚   r4   r=   r%   rÝ   r   r   r   r	   Útest_GatherElementsÑ  r  z(TestAutomaticUpgrade.test_GatherElementsc                 C  s&   |   ddg d¢g d¢gddgg¡ d S )NÚGatherNDr‚   ©r   r)   r*   r   r)   r   r   r   r   r	   Útest_GatherNDÚ  r®   z"TestAutomaticUpgrade.test_GatherNDc                 C  ó   | j ddddid d S )NÚGelur?   ÚapproximateÚtanhr   r   r   r   r   r	   Útest_Gelu_approximate_tanhÝ  ó   z/TestAutomaticUpgrade.test_Gelu_approximate_tanhc                 C  r   )Nr  r?   r   r   r   r   r	   Ú	test_Geluà  r#   zTestAutomaticUpgrade.test_Geluc                 C  s*   |   ddddgddgdggddgg¡ d S )NÚGemmr   r6   r5   r*   r   r   r   r   r	   Ú	test_Gemmã  s   *zTestAutomaticUpgrade.test_Gemmc                 C  ó    |   ddg d¢gg d¢g¡ d S )NÚGlobalAveragePoolr   ©r   r*   rg   rg   ©r   r*   r   r   r   r   r   r   r	   Útest_GlobalAveragePoolæ  r
  z+TestAutomaticUpgrade.test_GlobalAveragePoolc                 C  r   )NÚGlobalMaxPoolr   r"  r#  r   r   r   r   r	   Útest_GlobalMaxPoolé  r
  z'TestAutomaticUpgrade.test_GlobalMaxPoolc                 C  r   )NÚGlobalLpPoolr)   r"  r#  r   r   r   r   r	   Útest_GlobalLpPoolì  s    z&TestAutomaticUpgrade.test_GlobalLpPoolc                 C  rø   )NÚGreaterr%   r)   r*   rK   r+   r   r   r   r	   Útest_Greaterð  r“   z!TestAutomaticUpgrade.test_Greaterc                 C  rø   )NÚGreaterOrEqualr—   r)   r*   rK   r+   r   r   r   r	   Útest_GreaterOrEqualö  rô   z(TestAutomaticUpgrade.test_GreaterOrEqualc                 C  sB   | j ddg d¢g d¢gg d¢gtjtjgtjgddddœd	 d S )
NÚ
GridSampleé   rÓ   )r   r*   r*   r)   ÚnearestÚborderr   )ÚmodeÚpadding_modeÚalign_corners©Úinput_typesrL   r   rb   r   r   r   r	   Útest_GridSampleÿ  s   


ùz$TestAutomaticUpgrade.test_GridSamplec                 C  ó:   | j ddg d¢g d¢g d¢gg d¢g d¢gddid	 d S )
NÚGRUr%   ©r6   r*   r5   ©r   r¦   r5   ©r6   r   r*   r=   ©r   r*   r=   Úhidden_sizer=   r   r   r   r   r   r	   Ú
test_GRU_1
  ó   
ûzTestAutomaticUpgrade.test_GRU_1c                 C  ó<   | j ddg d¢g d¢g d¢gg d¢g d¢gddd	œd
 d S )Nr8  r%   r9  )r)   r¦   r5   ©r6   r)   r*   r=   ©r)   r*   r=   r=   Úbidirectional©r=  rƒ   r   r   r   r   r   r	   Ú
test_GRU_2  ó   
ûzTestAutomaticUpgrade.test_GRU_2c                 C  ód   | j ddg d¢g d¢g d¢ddgdgg d¢gg d	¢g d
¢gtjtjtjtjtjtjgddid d S )Nr8  r%   r9  r:  r   é   r6   ©r   r6   r=   r;  r<  r=  r=   r   rÝ   r   r   r   r	   Ú
test_GRU_3  ó   $ú
ózTestAutomaticUpgrade.test_GRU_3c                 C  r   )NÚHardSigmoidr   r   r   r   r   r   r   r   r	   Útest_HardSigmoid0  r   z%TestAutomaticUpgrade.test_HardSigmoidc                 C  r   )NÚ	HardSwishr   r   r   r   r   r	   Útest_HardSwish3  r#   z#TestAutomaticUpgrade.test_HardSwishc                 C  r   )NÚHardmaxr   r   r   r   r   r	   Útest_Hardmax6  r#   z!TestAutomaticUpgrade.test_Hardmaxc                 C  r   )NÚIdentityr   r   r   r   r   r	   Útest_Identity9  r#   z"TestAutomaticUpgrade.test_Identityc              	   C  sð   t  dtjg d¢¡g}t jdtjg d¢tj ddd¡ tj	¡dd}t j
d	g dg|d
}t  |gdg |g ¡}t jdtjg d¢tj ddd¡ tj	¡dd}t j
d	g dg|d
}t  |gdg |g ¡}| jdddggg d¢gtjg||dœd d S )NÚoutr4   r¯   r*   r5   r6   Tr°   r´   )rµ   Ú
then_graphÚ
else_graphÚIfr   r   )Úthen_branchÚelse_branchr   )r   Úmake_tensor_value_infor   rc   r·   r¸   r¹   rº   r»   r¼   Ú	make_nodeÚ
make_graphr   r,   )r   Ú
sub_outputÚthen_tensorÚ	then_noderU  Úelse_tensorÚ	else_noderV  r   r   r	   Útest_If<  s8   ÿûû
úzTestAutomaticUpgrade.test_Ifc                 C  s,   | j ddd ggg d¢gtjgtjgd d S )NÚImageDecoderr?   )NNr*   ©r5  rL   r…   r   r   r   r	   Útest_ImageDecoder[  s   
úz&TestAutomaticUpgrade.test_ImageDecoderc                 C  s2   | j ddddgdgdggddggddgid d S )NÚInstanceNormalizationr   r*   r   r   r   r   r   r   r   r	   Útest_InstanceNormalizatione  ó   
ûz/TestAutomaticUpgrade.test_InstanceNormalizationc                 C  ó(   | j ddddggddggtjgd d S )NÚIsInfrg   r)   r*   rK   r+   r   r   r   r	   Ú
test_IsInfn  r8   zTestAutomaticUpgrade.test_IsInfc                 C  ri  )NÚIsNaNr!   r)   r*   rK   r+   r   r   r   r	   Ú
test_IsNaNs  r8   zTestAutomaticUpgrade.test_IsNaNc                 C  r   )NÚ	LeakyRelur   r   r   r   r   r   r   r   r	   Útest_LeakyRelux  r   z#TestAutomaticUpgrade.test_LeakyReluc                 C  rø   )NÚLessr%   r)   r*   rK   r+   r   r   r   r	   Ú	test_Less{  r“   zTestAutomaticUpgrade.test_Lessc                 C  rø   )NÚLessOrEqualr—   r)   r*   rK   r+   r   r   r   r	   Útest_LessOrEqual  rô   z%TestAutomaticUpgrade.test_LessOrEqualc                 C  r   )NÚLogr   r   r   r   r   r   r   r   r	   Útest_LogŠ  r   zTestAutomaticUpgrade.test_Logc                 C  r   )NÚ
LogSoftmaxr   r   r   r   r   r	   Útest_LogSoftmax  r#   z$TestAutomaticUpgrade.test_LogSoftmaxc                 C  sf  t j dt jjg ¡}t j dt jjg ¡}t j dt jjdg¡}t j dt jjg ¡}t j dt jjdg¡}t j dt jjdg¡}t jjdg d	gt jjd
t jjdgt	 
dg¡ t	j¡ t¡dd}t jjddd	gdgd}t jjddgdgd}	t jjddgdgd}
t j |||	|
gd|||g|||g¡}| jddg ddggdgddggtjtjtjgd|id d S )NÚ
iter_countÚcond_inÚx_inr   Úcond_outÚx_outÚx_scanr´   Úonerµ   )ÚnameÚ	data_typer±   r²   )ÚinputsÚoutputsrµ   r3   ©r  r‚  rR  Ú	loop_bodyÚLoopÚ r6   Úbodyr   )Úonnxr   rZ  r   rN   r,   rc   r[  r·   r¸   r  r»   r¼   Úfloatr\  r   )r   rx  ry  rz  r{  r|  r}  ÚconstÚaddÚid_1Úid_2r„  r   r   r	   Útest_Loop_1  sX   
ÿ
ÿ
ÿÿüü
ÿ
ü

úz TestAutomaticUpgrade.test_Loop_1c           
      C  s  t j dt jjg ¡}t j dt jjg ¡}t j dt jjddg¡}t j dt jjg ¡}t j dt jjddg¡}t jjddgd	gdgd
}t jjdd	gdgdgd
}t jjddgdgd}t j |||gd|||g||g¡}	| j	ddg dddggddggtjtjtjgd|	id d S )Nrx  ry  rz  r)   r   r{  r|  ÚSqueezeÚsqueeze_out)r  r‚  ÚaxesÚ	UnsqueezerR  rƒ  r„  r…  r—   r†  r‡  r   )
rˆ  r   rZ  r   rN   r,   rc   r[  r\  r   )
r   rx  ry  rz  r{  r|  ÚsqueezeÚ	unsqueezeÚidentityr„  r   r   r	   Útest_Loop_2¾  sL   
ÿ
ÿÿ
ÿÿÿÿ
ÿü
úz TestAutomaticUpgrade.test_Loop_2c                 C  r   )NÚLpNormalizationr   r   r   r   r   r	   Útest_LpNormalizationæ  r#   z)TestAutomaticUpgrade.test_LpNormalizationc                 C  s,   | j ddg d¢gg d¢gdddgid d S )NÚLpPoolr)   ry   rz   r{   r   r   r   r   r   r	   Útest_LpPoolé  s   
ÿz TestAutomaticUpgrade.test_LpPoolc                 C  r  )NÚLRNr   Úsizer*   r   r   r   r   r   r	   Ú
test_LRN_1ï  r  zTestAutomaticUpgrade.test_LRN_1c                 C  s(   | j ddg d¢gg d¢gddid d S )Nr›  r   ©r)   r*   r5   r6   rœ  r*   r   r   r   r   r   r	   Ú
test_LRN_2ò  r8   zTestAutomaticUpgrade.test_LRN_2c                 C  s@   | j ddg d¢g d¢g d¢gg d¢g d¢g d¢gddid	 d S )
NÚLSTMr%   r9  ©r   rH  r5   r;  r<  r=  r=   r   r   r   r   r   r	   Útest_LSTM_1÷  s   
ûz TestAutomaticUpgrade.test_LSTM_1c                 C  sB   | j ddg d¢g d¢g d¢gg d¢g d¢g d¢gddd	œd
 d S )Nr   r%   r9  )r)   rH  r5   rA  rB  r=   rC  rD  r   r   r   r   r   r	   Útest_LSTM_2  s   
ûz TestAutomaticUpgrade.test_LSTM_2c                 C  s~   | j ddg d¢g d¢g d¢ddgdgg d¢g d¢dd	ggg d
¢g d¢g d¢gtjtjtjtjtjtjtjtjgddid d S )Nr   r%   r9  r¡  r   é0   r6   rI  r¦   r;  r<  r=  r=   r   rÝ   r   r   r   r	   Útest_LSTM_3  s0   ø
ø

èz TestAutomaticUpgrade.test_LSTM_3c                 C  s&   |   ddddgddggddgg¡ d S )NÚMatMulr   r)   r*   r5   r   r   r   r   r	   Útest_MatMul_1(  r®   z"TestAutomaticUpgrade.test_MatMul_1c                 C  rÑ   )Nr¦  r   )r6   r)   r*   r9  )r6   r)   r5   r   r   r   r   r	   Útest_MatMul_2+  r®   z"TestAutomaticUpgrade.test_MatMul_2c                 C  s6   |   ddddgddggddggtjtjgtjg¡ d S ©NÚMatMulIntegerrg   r)   r*   r5   ©r   r   rä   rÏ   r   r   r   r	   Útest_MatMulInteger_1.  ó   
úz)TestAutomaticUpgrade.test_MatMulInteger_1c              
   C  sB   |   ddddgddgg g gddggtjtjtjtjgtjg¡ d S r©  r«  r   r   r   r	   Útest_MatMulInteger_28  s   úz)TestAutomaticUpgrade.test_MatMulInteger_2c              
   C  sF   |   ddddgddgdgdggddggtjtjtjtjgtjg¡ d S r©  r«  r   r   r   r	   Útest_MatMulInteger_3B  s   úz)TestAutomaticUpgrade.test_MatMulInteger_3c                 C  ó0   | j ddg d¢g d¢gg d¢gddgid d S )NÚMaxr   rI   r   r   r   r   r   r   r   r	   Útest_MaxL  ó   
ûzTestAutomaticUpgrade.test_Maxc                 C  rw   )NÚMaxPoolr   ry   rz   r{   r)   r   r   r   r   r   r	   Útest_MaxPool_1U  s   
ÿz#TestAutomaticUpgrade.test_MaxPool_1c              	   C  s<   | j ddg d¢gg d¢g d¢gtjtjgdddgid d S )Nr´  r`   ry   rz   r{   r)   rR   rÝ   r   r   r   r	   Útest_MaxPool_2Z  s   


úz#TestAutomaticUpgrade.test_MaxPool_2c                 C  s2   | j ddg d¢ddggg d¢gdddgid	 d S )
NÚ
MaxRoiPoolr   ©r)   r*   r?   r?   r5   r6   )r5   r*   r*   r*   Úpooled_shaper*   r   r   r   r   r   r	   Útest_MaxRoiPoold  s   

ûz$TestAutomaticUpgrade.test_MaxRoiPoolc              	   C  s<   | j ddg d¢g d¢gg d¢gtjtjgdddgid d S )NÚ	MaxUnpoolr!   ry   )r   r   r=   r=   r{   r)   r   rÝ   r   r   r   r	   Útest_MaxUnpoolm  s   


úz#TestAutomaticUpgrade.test_MaxUnpoolc                 C  r°  )NÚMeanr   rI   r   r   r   r   r   r   r   r	   Ú	test_Meanw  r³  zTestAutomaticUpgrade.test_Meanc                 C  s   | j dddddgid d S )NÚMeanVarianceNormalizationr!   r‘  r   r)   r   r   r   r   r   r	   Útest_MeanVarianceNormalization€  rŸ   z3TestAutomaticUpgrade.test_MeanVarianceNormalizationc                 C  r°  )NÚMinr   rI   r   r   r   r   r   r   r   r	   Útest_Minƒ  r³  zTestAutomaticUpgrade.test_Minc                 C  r   )NÚMishr¦   r   r   r   r   r	   Ú	test_MishŒ  r#   zTestAutomaticUpgrade.test_Mishc                 C  ó&   |   ddddgddggddgg¡ d S )NÚModrg   r)   r*   r   r   r   r   r	   Ú
test_Mod_1  r®   zTestAutomaticUpgrade.test_Mod_1c                 C  s.   | j ddddgddggddggddid d S )NrÆ  rg   r)   r*   Úfmodr   r   r   r   r   r   r	   Ú
test_Mod_2’  s   .zTestAutomaticUpgrade.test_Mod_2c                 C  s0   | j ddg d¢g d¢gg d¢gddgid d S )NÚMulr   rI   rQ   r   r   r   r   r   r   r   r	   Útest_Mul•  r³  zTestAutomaticUpgrade.test_Mulc                 C  s.   | j ddddggddggtjgddid d S )NÚMultinomialr%   r*   r6   Úsample_sizerR   ©r   r   rÏ   r   r   r   r	   Útest_Multinomialž  rT   z%TestAutomaticUpgrade.test_Multinomialc                 C  r   )NÚNegr   r   r   r   r   r   r   r   r	   Útest_Neg¨  r   zTestAutomaticUpgrade.test_Negc                 C  ó,   |   ddg d¢ddggg gtjtjg¡ d S )NÚNegativeLogLikelihoodLossr—   r4   r*   r6   rÝ   r   r   r   r	   Ú test_NegativeLogLikelihoodLoss_1«  ó   
ûz5TestAutomaticUpgrade.test_NegativeLogLikelihoodLoss_1c              	   C  s4   |   ddg d¢ddgdggg gtjtjtjg¡ d S )NrÓ  r—   r4   r*   r6   r5   rÝ   r   r   r   r	   Ú test_NegativeLogLikelihoodLoss_2´  s   ûz5TestAutomaticUpgrade.test_NegativeLogLikelihoodLoss_2c                 C  s.   | j ddg d¢g d¢gddggtjgd d S )NÚNonMaxSuppressionrg   rI   rñ   r)   r*   rK   rM   r   r   r   r	   Útest_NonMaxSuppression½  rô   z+TestAutomaticUpgrade.test_NonMaxSuppressionc                 C  s(   | j ddddggddggtjgd d S )NÚNonZeror!   r*   r)   r5   rK   rM   r   r   r   r	   Útest_NonZeroÆ  r8   z!TestAutomaticUpgrade.test_NonZeroc                 C  ó,   |   ddddggddggtjgtjg¡ d S )NÚNotr   r)   r*   r+   r   r   r   r	   Útest_NotË  s    ÿzTestAutomaticUpgrade.test_Notc                 C  s&   |   ddg d¢g dggg d¢g¡ d S )NÚOneHotr!   r4   r)   ©r*   r5   r6   r=   r   r   r   r   r	   Útest_OneHotÐ  r®   z TestAutomaticUpgrade.test_OneHotc                 C  r'   )NÚOrr%   r)   r*   r+   r   r   r   r	   Útest_OrÓ  r.   zTestAutomaticUpgrade.test_Orc                 C  s.   | j ddddggddggg d¢dd	œd
 d S )NÚPadr)   r*   r5   r6   r`   )r   r)   r   r)   ç      ø?)rË   rµ   r   r   r   r   r   r	   Útest_PadÞ  r“   zTestAutomaticUpgrade.test_Padc                 C  s&   |   ddg d¢g d¢gg d¢g¡ d S )NÚPowr   rI   r   r   r   r   r	   Útest_Powä  r®   zTestAutomaticUpgrade.test_Powc                 C  r°  )NÚPRelur   rI   r   r   r   r   r   r   r   r	   Ú
test_PReluç  r³  zTestAutomaticUpgrade.test_PReluc                 C  s2   |   ddg d¢g g g d¢g g g g gg d¢g¡ d S )NÚQLinearConvrg   rÃ   rÄ   rÅ   r   r   r   r   r	   Útest_QLinearConvð  s   üz%TestAutomaticUpgrade.test_QLinearConvc                 C  s2   |   ddddgg g ddgg g g g gddgg¡ d S )NÚQLinearMatMulrg   r)   r*   r5   r   r   r   r   r	   Útest_QLinearMatMulø  s   &ÿz'TestAutomaticUpgrade.test_QLinearMatMulc              	   C  s8   |   ddg d¢g g gg d¢gtjtjtjgtjg¡ d S )NÚQuantizeLinearrg   r4   )r   r   rc   r†   r   r   r   r	   Útest_QuantizeLinearý  s   úz(TestAutomaticUpgrade.test_QuantizeLinearc                 C  ó&   | j ddg g d¢gdg d¢id d S )NÚRandomNormalr   r4   r  r   r   r   r   r   r	   Útest_RandomNormal  ó   
ÿz&TestAutomaticUpgrade.test_RandomNormalc              	   C  óT   t jdtjg d¢tj ddd¡ tj¡dd}| j	dd	g d¢gg d¢g|gd
 d S )NÚar4   r*   r5   r6   Tr°   ÚRandomNormalLiker   r  r¶   ©r   Úliker   r   r	   Útest_RandomNormalLike  ó   û
ÿz*TestAutomaticUpgrade.test_RandomNormalLikec                 C  rð  )NÚRandomUniformr   r4   r  r   r   r   r   r   r	   Útest_RandomUniform  ró  z'TestAutomaticUpgrade.test_RandomUniformc              	   C  rô  )Nrõ  r4   r*   r5   r6   Tr°   ÚRandomUniformLiker   r  r¶   r÷  r   r   r	   Útest_RandomUniformLike  rú  z+TestAutomaticUpgrade.test_RandomUniformLikec                 C  s|   t jdtjg t dg¡d}t jdtjg t dg¡d}t jdtjg t dg¡d}| jdd	g g g gd
gg|||gd d S )Nrõ  r   r   rÿ   r—   Úcr)   ÚRanger‚   r=   r  )r   r·   r   rc   r¸   r  r   )r   ÚstartÚendÚstepr   r   r	   Ú
test_Range)  s   
ÿzTestAutomaticUpgrade.test_Rangec                 C  r   )NÚ
Reciprocalr   r   r   r   r   r   r   r   r	   Útest_Reciprocal1  r   z$TestAutomaticUpgrade.test_Reciprocalc                 C  r   )NÚReduceL1r   r4   ©r   r   r   r   r   r   r   r	   Útest_ReduceL14  r
  z"TestAutomaticUpgrade.test_ReduceL1c                 C  r   )NÚReduceL2r   r4   r  r   r   r   r   r	   Útest_ReduceL27  r
  z"TestAutomaticUpgrade.test_ReduceL2c                 C  r   )NÚReduceLogSumr   r4   r  r   r   r   r   r	   Útest_ReduceLogSum:  r
  z&TestAutomaticUpgrade.test_ReduceLogSumc                 C  r   )NÚReduceLogSumExpr   r4   r  r   r   r   r   r	   Útest_ReduceLogSumExp=  r
  z)TestAutomaticUpgrade.test_ReduceLogSumExpc                 C  r   )NÚ
ReduceMeanr   r4   r  r   r   r   r   r	   Útest_ReduceMean@  r
  z$TestAutomaticUpgrade.test_ReduceMeanc                 C  r   )NÚ	ReduceMaxr   r4   r  r   r   r   r   r	   Útest_ReduceMaxC  r
  z#TestAutomaticUpgrade.test_ReduceMaxc                 C  r   )NÚ	ReduceMinr   r4   r  r   r   r   r   r	   Útest_ReduceMinF  r
  z#TestAutomaticUpgrade.test_ReduceMinc                 C  r   )NÚ
ReduceProdr   r4   r  r   r   r   r   r	   Útest_ReduceProdI  r
  z$TestAutomaticUpgrade.test_ReduceProdc                 C  r   )NÚ	ReduceSumr   r4   r  r   r   r   r   r	   Útest_ReduceSumL  r
  z#TestAutomaticUpgrade.test_ReduceSumc                 C  r   )NÚReduceSumSquarer   r4   r  r   r   r   r   r	   Útest_ReduceSumSquareO  r
  z)TestAutomaticUpgrade.test_ReduceSumSquarec                 C  r   )NÚRelur   r   r   r   r   r   r   r   r	   Ú	test_ReluR  r   zTestAutomaticUpgrade.test_Reluc                 C  s0   | j ddg d¢gg d¢gdgg d¢dœd d S )NÚReshaper   r4   )r*   rg   r)   r   )r   r  r   r   r   r   r   r	   Útest_ReshapeU  s   
ûz!TestAutomaticUpgrade.test_Reshapec                 C  s$   |   ddg d¢dggg d¢g¡ d S )NÚResizerg   r4   r*   ©r*   r`   r   r   r   r   r   r	   Útest_Resize^  s   $z TestAutomaticUpgrade.test_Resizec                 C  s.   |   ddg d¢dggg d¢gtjtjg¡ d S )NÚReverseSequencerg   r4   r5   rÝ   r   r   r   r	   Útest_ReverseSequencea  s   
ûz)TestAutomaticUpgrade.test_ReverseSequencec                 C  r7  )
NÚRNNr%   r9  ©r   r=   r5   r;  r<  r=  r=   r   r   r   r   r   r	   Ú
test_RNN_1j  r?  zTestAutomaticUpgrade.test_RNN_1c                 C  r@  )Nr%  r%   r9  )r)   r=   r5   rA  rB  r=   rC  rD  r   r   r   r   r   r	   Ú
test_RNN_2t  rF  zTestAutomaticUpgrade.test_RNN_2c                 C  rG  )Nr%  r%   r9  r&  r   r—   r6   rI  r;  r<  r=  r=   r   rÝ   r   r   r   r	   Ú
test_RNN_3~  rK  zTestAutomaticUpgrade.test_RNN_3c              	   C  s8   |   ddg d¢ddgdggg d¢gtjtjtjg¡ d S )NÚRoiAlignrg   r¸  r5   ©rg   r*   r   r   rÝ   r   r   r   r	   Útest_RoiAlign_1  s   ûz$TestAutomaticUpgrade.test_RoiAlign_1c                 C  s@   | j ddg d¢ddgdggg d¢gtjtjtjgddid	 d S )
Nr*  r.  r¸  rg   r5   r+  Úcoordinate_transformation_modeÚ
half_pixelr   rÝ   r   r   r   r	   Útest_RoiAlign_2™  s   
úz$TestAutomaticUpgrade.test_RoiAlign_2c              	   C  r\   )NÚRotaryEmbeddingr^   ©r)   r5   r*   r`   rI   rb   r   r   r   r	   Útest_RotaryEmbedding_1£  re   z+TestAutomaticUpgrade.test_RotaryEmbedding_1c              
   C  sJ   |   ddg d¢ddgddgddggg d¢gtjtjtjtjgtjg¡ d S )Nr0  r^   r1  é2   r5   r)   r*   rÝ   r   r   r   r	   Útest_RotaryEmbedding_2­  rr   z+TestAutomaticUpgrade.test_RotaryEmbedding_2c              	   C  óR   | j ddg d¢ddgddgddggg d¢gtjtjtjtjgtjgddid	 d S )
Nr0  r^   )r)   r*   é    r3  r5   r)   r*   Ú	num_headsr   rÝ   r   r   r   r	   Útest_RotaryEmbedding_3¼  ó   ü
ôz+TestAutomaticUpgrade.test_RotaryEmbedding_3c              	   C  sR   | j ddg d¢ddgddgddggg d¢gtjtjtjtjgtjgdd	id
 d S )Nr0  r^   r1  r3  r5   r)   r*   Úinterleavedr   r   rÝ   r   r   r   r	   Útest_RotaryEmbedding_4Ì  r9  z+TestAutomaticUpgrade.test_RotaryEmbedding_4c              	   C  r5  )
Nr0  r^   r1  r3  r5   r)   r*   Úrotary_embedding_dimr   rÝ   r   r   r   r	   Útest_RotaryEmbedding_5Ü  r9  z+TestAutomaticUpgrade.test_RotaryEmbedding_5c                 C  r   )NÚRoundr‚   r   r   r   r   r	   Ú
test_Roundì  r#   zTestAutomaticUpgrade.test_Roundc              	   C  s>   | j ddg d¢ddggg d¢gtjtjgtjgddid d S )	NÚRMSNormalizationr^   rž  r5   r6   r;   r)   r4  rb   r   r   r   r	   Útest_RMSNormalizationï  rˆ   z*TestAutomaticUpgrade.test_RMSNormalizationc              	   C  ó@   |   ddddgddgddggddggtjtjtjgtjg¡ d S )NÚScatterr!   r)   r*   r   rÝ   r   r   r   r	   Útest_Scatterú  re   z!TestAutomaticUpgrade.test_Scatterc              	   C  rB  )NÚScatterElementsr‚   r)   r*   r   rÝ   r   r   r   r	   Útest_ScatterElements_1  re   z+TestAutomaticUpgrade.test_ScatterElements_1c              	   C  óH   | j ddddgddgddggddggtjtjtjgtjgddid d S )	NrE  r.  r)   r*   r   Ú	reductionr‹  r   rÝ   r   r   r   r	   Útest_ScatterElements_2  rm   z+TestAutomaticUpgrade.test_ScatterElements_2c              	   C  rB  )NÚ	ScatterNDr‚   r)   r*   r   rÝ   r   r   r   r	   Útest_ScatterND_1  re   z%TestAutomaticUpgrade.test_ScatterND_1c              	   C  rG  )	NrJ  r.  r)   r*   r   rH  Úmulr   rÝ   r   r   r   r	   Útest_ScatterND_2#  rm   z%TestAutomaticUpgrade.test_ScatterND_2c                 C  sÜ   t j dt jjdg¡}t j dt jjdg¡}t j dt jjdg¡}t j dt jjdg¡}t jjdddgdgd}t jjddgdgd}t j ||gd	||g||g¡}| jd
ddddgg d¢gddgg d¢g|ddœd d S )NÚsum_inr)   Únext_inÚsum_outÚscan_outr3   rƒ  rR  Ú	scan_bodyÚScanr`   r†  r   )r   r*   r)   )r‡  Únum_scan_inputsr   )rˆ  r   rZ  r   rc   r[  r\  r   )r   rN  rO  rP  rQ  Úadd_nodeÚid_noder‡  r   r   r	   Ú	test_Scan.  s8   ÿÿÿÿÿ
ÿÿ
ûzTestAutomaticUpgrade.test_Scanc                 C  r   )NÚSelur   r   r   r   r   r   r   r   r	   Ú	test_SeluL  r   zTestAutomaticUpgrade.test_Seluc                 C  s&   | j ddg d¢gdggtjgd d S )NÚShaper   r4   r*   rK   rM   r   r   r   r	   Ú
test_ShapeO  ró  zTestAutomaticUpgrade.test_Shapec                 C  r   )NÚShrinkr!   r   r   r   r   r	   Útest_ShrinkT  r#   z TestAutomaticUpgrade.test_Shrinkc                 C  r   )NÚSigmoidr   r   r   r   r   r   r   r   r	   Útest_SigmoidW  r   z!TestAutomaticUpgrade.test_Sigmoidc                 C  r   )NÚSignr!   r   r   r   r   r	   Ú	test_SignZ  r#   zTestAutomaticUpgrade.test_Signc                 C  r   )NÚSinhr!   r   r   r   r   r	   Ú	test_Sinh]  r#   zTestAutomaticUpgrade.test_Sinhc                 C  r   )NÚSinr%   r   r   r   r   r	   Útest_Sin`  r#   zTestAutomaticUpgrade.test_Sinc                 C  s$   | j ddg d¢gg gtjgd d S )NÚSizer   r4   rK   rM   r   r   r   r	   Ú	test_Sizec  s   
ÿzTestAutomaticUpgrade.test_Sizec              	   C  s8   | j ddg d¢gg d¢gddgddgddgdœd	 d S )
NÚSlicer   r4   )r*   r)   r)   r)   r   r*   )r‘  ÚstartsÚendsr   r   r   r   r   r	   Ú
test_Sliceh  s   
ûzTestAutomaticUpgrade.test_Slicec                 C  r  )NÚSoftmaxr   r;   r   r   r   r   r   r   r	   Útest_Softmax_0q  r  z#TestAutomaticUpgrade.test_Softmax_0c                 C  s   | j ddddid d S )Nrl  r   r;   r   r   r   r   r   r	   Útest_Softmax_1t  r  z#TestAutomaticUpgrade.test_Softmax_1c                 C  r  )Nrl  r   r;   r)   r   r   r   r   r   r	   Útest_Softmax_2w  r  z#TestAutomaticUpgrade.test_Softmax_2c                 C  r  )Nrl  r   r;   éÿÿÿÿr   r   r   r   r   r	   Útest_Softmax_3z  r  z#TestAutomaticUpgrade.test_Softmax_3c                 C  r  )Nrl  r   r;   éþÿÿÿr   r   r   r   r   r	   Útest_Softmax_4}  r  z#TestAutomaticUpgrade.test_Softmax_4c                 C  r  )Nrl  r   r;   éýÿÿÿr   r   r   r   r   r	   Útest_Softmax_5€  r  z#TestAutomaticUpgrade.test_Softmax_5c                 C  r   )NÚSoftplusr   r   r   r   r   r	   Útest_Softplusƒ  r#   z"TestAutomaticUpgrade.test_Softplusc                 C  r   )NÚSoftsignr   r   r   r   r   r	   Útest_Softsign†  r#   z"TestAutomaticUpgrade.test_Softsignc                 C  rÒ  )NÚSoftmaxCrossEntropyLossr—   rß  r*   r=   rÝ   r   r   r   r	   Útest_SoftmaxCrossEntropyLoss‰  rÕ  z1TestAutomaticUpgrade.test_SoftmaxCrossEntropyLossc                 C  rß   )NÚSpaceToDepthr   )r   r*   r`   r`   )r   r—   r5   r5   rá   r)   r   r   r   r   r   r	   Útest_SpaceToDepth’  r8   z&TestAutomaticUpgrade.test_SpaceToDepthc                 C  s:   | j ddg d¢gg d¢g d¢g d¢gdg d¢dœd	 d S )
NÚSplitr)   )r*   r5   r%   ©r*   r5   r)   )r*   r5   r   )r*   r5   r5   rQ   )r;   Úsplitr   r   r   r   r   r	   Ú
test_Split—  s   
ûzTestAutomaticUpgrade.test_Splitc                 C  r   )NÚSqrtr   r   r   r   r   r   r   r   r	   Ú	test_Sqrt¡  r   zTestAutomaticUpgrade.test_Sqrtc                 C  r   )Nr  r   )r)   r   r*   r5   r   rI   r   r   r   r   r	   Útest_Squeeze¤  r
  z!TestAutomaticUpgrade.test_Squeezec              	   C  s4   | j ddddggddggtjgtjgddid d S )NÚStringNormalizerrg   r   r*   Úcase_change_actionÚLOWERr   )r   r   ÚSTRINGr   r   r   r	   Útest_StringNormalizer§  s   
ùz*TestAutomaticUpgrade.test_StringNormalizerc                 C  r°  )NÚSubr   rI   r   r   r   r   r   r   r   r	   Útest_Sub²  r³  zTestAutomaticUpgrade.test_Subc                 C  r°  )NÚSumr   rI   r   r   r   r   r   r   r   r	   Útest_Sum»  r³  zTestAutomaticUpgrade.test_Sumc                 C  r  )NÚSwishrH  Úalphagš™™™™™É?r   r   r   r   r   r	   Ú
test_SwishÄ  r  zTestAutomaticUpgrade.test_Swishc                 C  r   )NÚTanhr   r   r   r   r   r   r   r   r	   Ú	test_TanhÇ  r   zTestAutomaticUpgrade.test_Tanhc                 C  r   )NÚTanr%   r   r   r   r   r	   Útest_TanÊ  r#   zTestAutomaticUpgrade.test_Tanc                 C  s6   | j dddggdggdddddd	gdd
gdœd d S )NÚTfIdfVectorizerr!   r*   r6   r   r)   ÚTFIDFr   r?   r5   )Úmax_gram_lengthÚmax_skip_countÚmin_gram_lengthr1  Úngram_countsÚngram_indexesr   r   r   r   r   r	   Útest_TfIdfVectorizerÍ  s   ú
ûz)TestAutomaticUpgrade.test_TfIdfVectorizerc                 C  r   )NÚThresholdedRelurg   r   r   r   r   r	   Útest_ThresholdedReluÝ  r#   z)TestAutomaticUpgrade.test_ThresholdedReluc                 C  sT   t jdtjdgt g d¢¡d}| jddg d¢dggg d¢gtjtjg|gd	 d S )
Nrÿ   r*   r  r   ÚTiler=   r4   r!  r  r  )r   Úrepeatsr   r   r	   Ú	test_Tileà  s   ÿ

úzTestAutomaticUpgrade.test_Tilec                 C  s8   | j ddg d¢gg d¢g d¢gtjtjgddid d S )NÚTopKr   r4   r  Úkr)   rR   rÝ   r   r   r   r	   Ú	test_TopKî  s   

úzTestAutomaticUpgrade.test_TopKc                 C  s,   | j ddg d¢gg d¢gdg d¢id d S )NÚ	Transposer   )r   r)   r6   r*   r%   )r   r%   r6   r)   r*   Úperm)r   r5   r)   r   r*   r   r   r   r   r   r	   Útest_Transposeø  r}   z#TestAutomaticUpgrade.test_Transposec                 C  r   )NÚTrilur   r   r   r   r   r	   Ú
test_Trilu  r#   zTestAutomaticUpgrade.test_Triluc                 C  s   |   ddg d¢gd gg¡ d S )NÚUniquer‚   r4   r   r   r   r   r	   Útest_Unique_1  rè   z"TestAutomaticUpgrade.test_Unique_1c                 C  rß   )Nrª  r‚   r4   )r*   Nr6   r;   r   r   r   r   r   r   r	   Útest_Unique_2  r8   z"TestAutomaticUpgrade.test_Unique_2c                 C  s*   | j ddg d¢gg d¢gddgid d S )Nr’  r   r4   )r*   r5   r   r6   r‘  r)   r   r   r   r   r   r	   Útest_Unsqueeze  s   
ÿz#TestAutomaticUpgrade.test_Unsqueezec                 C  s*   | j ddg d¢gg d¢gdddœd d S )	NÚUpsampler   )r   r*   r5   r6   )r   r*   r=   rg   rk   rä  )Úwidth_scaleÚheight_scaler   r   r   r   r   r	   Útest_Upsample  s   
ûz"TestAutomaticUpgrade.test_Upsamplec              	   C  s:   |   ddddgddgddggddggtjtjtjg¡ d S )NÚWherer!   r)   r*   )r   r   r,   rc   r   r   r   r	   Ú
test_Where  s   ûzTestAutomaticUpgrade.test_Wherec                 C  r'   )NÚXorr%   r)   r*   r+   r   r   r   r	   Útest_Xor#  r.   zTestAutomaticUpgrade.test_Xorc                 C  s8   | j ddg d¢g d¢gg d¢gtjtjgtjgd d S )NÚCastLiker   rI   rQ   rd  )r   r   rc   ÚFLOAT16r   r   r   r	   Útest_CastLike.  s   

úz"TestAutomaticUpgrade.test_CastLikec              	   C  sH   | j ddg d¢ddgddggg d¢gtjtjtjgtjgddid d S )	NÚLayerNormalizationé   rž  r5   r6   r;   r)   r4  rb   r   r   r   r	   Útest_LayerNormalization8  rm   z,TestAutomaticUpgrade.test_LayerNormalizationÚwindow_function_nameÚstrc                 C  sB   t jdtjg t dg¡d}| j|dg gdggtjg|gd d S )Nrõ  rg   r   rº  r  )r   r·   r   rN   r¸   r  r   )r   r¼  rœ  r   r   r	   Ú_test_window_functionC  s   
úz*TestAutomaticUpgrade._test_window_functionc                 C  ó   |   d¡ d S )NÚBlackmanWindow©r¾  r   r   r   r	   Útest_BlackmanWindowN  ó   z(TestAutomaticUpgrade.test_BlackmanWindowc                 C  r¿  )NÚ
HannWindowrÁ  r   r   r   r	   Útest_HannWindowQ  rÃ  z$TestAutomaticUpgrade.test_HannWindowc                 C  r¿  )NÚHammingWindowrÁ  r   r   r   r	   Útest_HammingWindowT  rÃ  z'TestAutomaticUpgrade.test_HammingWindowc                 C  s   |   ddg d¢g gg d¢g¡ |   ddg d¢g gg d¢g¡ | j ddg d¢g gg d¢gddid | j ddg d¢g gg d¢gddid | j ddg d¢g gg d¢gd	did | j ddg d¢g gg d¢gd	did | j ddg d¢g gg d¢gdd
dœd d S )NÚDFTrº  )r)   r.  r   )r)   r.  r)   )r)   r!   r)   Úonesidedr   r   Úinverser   )rÊ  r;   r   r   r   r   r	   Útest_DFTW  s"   ÿÿÿÿ
ÿzTestAutomaticUpgrade.test_DFTÚoperator_namec                 C  sä  t jdtjddgtj dd¡ tj¡d}t jdtj	dgt 
dg¡d}t jdtjd	gt d	¡ tj¡d}| j|d
ddgdgd	ggg d¢gtjtj	tjtj	g|||gd t jdtjddgtj dd¡ tj¡d}t jdtj	dgt 
dg¡d}t jdtjd	gt d	¡ tj¡d}| j|d
ddgdgd	ggg d¢gtjtj	tjtj	gddi|||gd t jdtjg d¢tj ddd¡ tj¡d}t jdtj	dgt 
dg¡d}t jdtjd	gt d	¡ tj¡d}| j|d
g d¢dgd	ggg d¢gtjtj	tjtj	g|||gd t jdtjg d¢tj ddd¡ tj¡d}t jdtj	dgt 
dg¡d}t jdtjd	gt d	¡ tj¡d}t jdtj	dgt 
d	g¡d}| j|d
g d¢dgd	ggg d¢gtjtj	tjtj	gddi||||gd d S )Nrõ  r)   é@   r   rÿ   r   r`   rÿ  r.  rº  )r)   r%   r.  r)   r  )r)   r%   r!   r)   rÉ  )r   r  )r)   rÍ  r)   Úe)r   r·   r   rc   r¸   r¹   rº   r»   r¼   rN   r  Úonesr   )r   rÌ  ÚsignalÚ
frame_stepÚwindowÚframe_lengthr   r   r	   Ú"_test_short_time_fourier_transformj  sÊ   üÿÿüõüÿÿüôüÿÿüõüÿÿÿü

ôz7TestAutomaticUpgrade._test_short_time_fourier_transformc                 C  r¿  )NÚSTFT)rÔ  r   r   r   r	   Ú	test_STFTÜ  rÃ  zTestAutomaticUpgrade.test_STFTc                 C  s¤  t jdtjg t dg¡d}t jdtjg t dg¡d}t jdtjg t dg¡d}t jdtjg t dg¡d}t jd	tjg t d
g¡d}| jddg g g g g gddggtjtjtjtjtjg|||||gd t jdtjg t dg¡d}t jdtjg t dg¡d}t jdtjg t dg¡d}t jdtjg t dg¡d}t jd	tjg t d
g¡d}| jddg g g g g gddggtjtjtjtjtjg|||||gd d S )Nrõ  rg   r   rÿ   rÍ  rÿ  r   ÚdrÎ  r   ÚMelWeightMatrixrº  é!   r  r?   é   r.  )r   r·   r   rN   r¸   r  rc   r   )r   Únum_mel_binsÚ
dft_lengthÚsample_rateÚlower_edge_hertzÚupper_edge_hertzr   r   r	   Útest_MelWeightMatrixß  s„   ÿÿÿÿÿûûôÿÿÿÿÿûû
ôz)TestAutomaticUpgrade.test_MelWeightMatrixc                 C  sr   t jdtjddgt g d¢¡d}t jdtjdgt ddg¡d}| jdd	g g gddggtjtjg||gd
 d S )NÚinputr)   r5   )r   r)   r*   r5   r6   r=   r%   r`   r   r  r*   ÚCenterCropPadr¦   r  )r   r·   r   rc   r¸   r  rN   r   )r   Úinput_r  r   r   r	   Útest_CenterCropPad*  s"   üÿ

úz'TestAutomaticUpgrade.test_CenterCropPadc                 C  rÛ  )NÚ
BitwiseNotr¦   r)   r*   rÎ  r   r   r   r	   Útest_BitwiseNot=  ó   úz$TestAutomaticUpgrade.test_BitwiseNotc                 C  r'   )NÚ
BitwiseAndr¦   r)   r*   ©r   r   ÚINT16r   r   r   r	   Útest_BitwiseAndG  r­  z$TestAutomaticUpgrade.test_BitwiseAndc                 C  r'   )NÚ	BitwiseOrr¦   r)   r*   ré  r   r   r   r	   Útest_BitwiseOrQ  r­  z#TestAutomaticUpgrade.test_BitwiseOrc                 C  r'   )NÚ
BitwiseXorr¦   r)   r*   ré  r   r   r   r	   Útest_BitwiseXor[  r­  z$TestAutomaticUpgrade.test_BitwiseXorc                 C  s2   | j ddg d¢dgdggg d¢gdddœd d S )	NÚGroupNormalizationé   )r*   r5   r)   r)   r5   gñhãˆµøä>r)   )ÚepsilonÚ
num_groupsr   r   r   r   r   r	   Útest_GroupNormalizatione  rh  z,TestAutomaticUpgrade.test_GroupNormalizationc                 C  rÅ  )NÚStringConcatr?   r)   r*   r   r   r   r   r	   Útest_StringConcatn  s   üz&TestAutomaticUpgrade.test_StringConcatc                 C  s,   |   ddddggddggtjgtjg¡ d S )NÚRegexFullMatchr?   r)   r*   )r   r   rˆ  r,   r   r   r   r	   Útest_RegexFullMatchv  rç  z(TestAutomaticUpgrade.test_RegexFullMatchc              	   C  s>   |   ddg d¢g d¢dggg d¢gtjtjtjgtjg¡ d S )NÚTensorScatterrH  rž  )r)   r*   r)   r6   r)   rÝ   r   r   r   r	   Útest_TensorScatter€  s   ÿýôz'TestAutomaticUpgrade.test_TensorScatterc                 C  sH   t j ¡ }dd„ |D ƒ}h d£}|| }|t| jƒ }|  |tƒ ¡ d S )Nc                 S  s   h | ]
}|j d kr|j’qS )r†  )Údomainr  )Ú.0Úschemar   r   r	   Ú	<setcomp>“  s    z7TestAutomaticUpgrade.test_ops_tested.<locals>.<setcomp>>   ÚOptionalÚ
SequenceAtÚSequenceMapÚStringSplitÚSequenceEmptyÚSequenceEraseÚSequenceInsertÚSequenceLengthÚSplitToSequenceÚSequenceConstructÚConcatFromSequenceÚOptionalGetElementÚOptionalHasElement)rˆ  ÚdefsÚget_all_schemasÚsetr   ÚassertEqual)r   Úall_schemasÚall_op_namesÚexcluded_opsÚexpected_tested_opsÚuntested_opsr   r   r	   Útest_ops_tested  s   
z$TestAutomaticUpgrade.test_ops_testedN)r   r   )r¼  r½  r   r   )rÌ  r½  r   r   )óÚ__name__Ú
__module__Ú__qualname__Úclassmethodr
   r   r   r"   r&   r-   r0   r2   r7   r:   r<   rD   rF   rO   rS   rV   rW   rY   r[   rd   rf   rh   rl   ro   rq   rt   rv   r|   r€   r‡   rŒ   r   r’   r•   r˜   rš   rž   r¢   r£   r§   r©   r«   r­   r½   r¿   rÆ   rÈ   rÍ   rÐ   rÔ   r×   rÙ   rÛ   rÞ   râ   rå   rç   ré   rë   rí   rï   ró   rõ   r÷   rú   rü   rþ   r  r	  r  r  r  r  r  r  r  r  r$  r&  r(  r*  r,  r6  r>  rE  rJ  rM  rO  rQ  rS  rb  re  rg  rk  rm  ro  rq  rs  ru  rw  rŽ  r–  r˜  rš  r  rŸ  r¢  r£  r¥  r§  r¨  r¬  r®  r¯  r²  rµ  r¶  rº  r¼  r¾  rÀ  rÂ  rÄ  rÇ  rÉ  rË  rÏ  rÑ  rÔ  rÖ  rØ  rÚ  rÝ  rà  râ  rå  rç  ré  rë  rí  rï  rò  rù  rü  rþ  r  r  r	  r  r  r  r  r  r  r  r  r  r  r  r"  r$  r'  r(  r)  r,  r/  r2  r4  r8  r;  r=  r?  rA  rD  rF  rI  rK  rM  rW  rY  r[  r]  r_  ra  rc  re  rg  rk  rm  rn  ro  rq  rs  ru  rw  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à  rä  ræ  rë  rí  rï  rô  rö  rø  rú  r  r   r   r   r	   r      sâ   






			


							


		.(




	
	
			
				
		

	




		
		
			
rK



	
r   Ú__main__)Ú
__future__r   ÚunittestÚautomatic_conversion_test_baseÚnumpyr¸   rˆ  r   r   ÚTestAutomaticConversionr   r  Úmainr   r   r   r	   Ú<module>   s2                  &ÿ