U
    rh|S                     @  sH   d dl mZ d dlZd dlZd dlmZ d dlmZ G dd deZ	dS )    )annotationsN)Base)expectc                   @  s   e Zd ZeddddZeddddZeddddZeddd	d
ZeddddZeddddZ	eddddZ
eddddZeddddZdS )ConvTransposeNone)returnc                  C  s6  t dddgdddgddd	ggggt j} t dddgdddgdddggdddgdddgdddggggt j}tjd
ddgdg}t dddddgdd	dddgdddddgdddddgddddd	ggdddddgdd	dddgdddddgdddddgddddd	ggggt j}t|| |g|gdd d S )N              ?       @      @      @      @      @      @       @r   XWY      .@      (@      "@      5@      B@      ;@      4@     @@      8@      *@Ztest_convtransposeinputsoutputsnamenparrayZastypeZfloat32onnxhelperZ	make_noder   xr   nodey r+   M/tmp/pip-unpacked-wheel-xnis5xre/onnx/backend/test/case/node/convtranspose.pyexport   sB    	zConvTranspose.exportc                  C  s   t dddgggt j} t dddgdddgggt j}tjdddgdg}t dddddgdddddgggt j}t|| |g|gd	d
 d S )Nr   r	   r
   r   r   r   r   r   Ztest_convtranspose_1dr   r"   r'   r+   r+   r,   export_convtranspose_1d6   s    z%ConvTranspose.export_convtranspose_1dc                  C  s|  t dddddgdddd	d
gdddddgdddddggdddddgdddddgdd d!d"d#gd$d%d&d'd(ggd)d*d+d,d-gd.d/d0d1d2gd3d4d5d6d7gd8d9d:d;d<gggggt j} t dddgdddgdddggdddgdddgdddggdddgdddgdddgggdddgdddgdddggdddgdddgdddggdddgdddgdddgggggt j}tjd=d>d?gd@g}t ddddd
ddgddddd"ddgdd"d7dAdBd4dgddAdCdDdEdFd+gdd5dFdGdHdId"gdd d1d4d7d&dggdd+dJdBdKd7dgd3dLdMdNdOdPdJgdQdOdRdSdTdUdVgdWdXdYdZd[d\d]gdQd^d\d_dSd`dagd3dbdcdMdddVd;ggdedfdgdhdidjdBgdkdldmdndodpdqgdrdodsdtdudvdwgdxdydzd{d|d}dSgd~dZd}ddddgdddTddddEggdeddOddhddgdddd[ddRdgdddddddgddddudddgdddddddOgdQddld\dRddggd)dFdfdddGd-gdddwddd^dHgdkdd[dmdddgdddoddddMgdddddddgd8dddddNdEd<gggddddd
ddgddddd"ddgdd"d7dAdBd4dgddAdCdDdEdFd+gdd5dFdGdHdId"gdd d1d4d7d&dggdd+dJdBdKd7dgd3dLdMdNdOdPdJgdQdOdRdSdTdUdVgdWdXdYdZd[d\d]gdQd^d\d_dSd`dagd3dbdcdMdddVd;ggdedfdgdhdidjdBgdkdldmdndodpdqgdrdodsdtdudvdwgdxdydzd{d|d}dSgd~dZd}ddddgdddTddddEggdeddOddhddgdddd[ddRdgdddddddgddddudddgdddddddOgdQddld\dRddggd)dFdfdddGd-gdddwddd^dHgdkdd[dmdddgdddoddddMgdddddddgd8dddddNdEd<gggggt j}t|| |g|gdd d S )Nr   r	   r
   r   r   r   r   r   r   r         $@      &@r   r         ,@r         0@      1@      2@      3@r   r         6@      7@r         9@      :@r   g      <@g      =@      >@      ?@g      @@r   g      A@     A@r        B@g      C@     C@g      D@g     D@      E@     E@      F@     F@g      G@g     G@      H@     H@g      I@     I@g      J@g     J@      K@g     K@      L@     L@g      M@g     M@r   r   r   r        O@g      R@g     X@g      [@     @]@     @T@     U@g     @W@g      P@g     P@g     S@g      Z@g     @d@g     e@g     @g@g      `@g     V@g      r@g      s@g     @t@g     k@g     \@g      ^@g     n@g     w@g     x@g     y@g     q@g      b@g      g@g     `r@g      j@g     Z@g     Y@g     c@g      e@      N@     ^@g     g@     h@g     i@     a@     `@g     @q@g     pz@g     {@g     |@g     s@g     c@g      l@g     @g     Ȇ@g     @g     @g     Pp@g     p@g     (@g     (@g      @g     ؋@g     ؂@g     `h@g     h@g     @g      {@g     `k@g     @Z@g     j@g     t@g     `u@g     l@g     ^@g      h@g     `@g      Q@g     @`@g     p@g      y@g     z@g     @b@g     @j@g     @@g     Є@g     `@g     |@g     @m@g      n@g     `~@g     @g     0@g     P@g     @e@g     u@g     @g     @g      w@g     f@g     @h@g     X@g     _@      `@g     @U@g     e@g     p@g     q@g     0r@g     `b@g     b@g     r@g     @}@g     }@g     t@g     j@g     pt@g      l@g     @\@g     [@g     `e@Ztest_convtranspose_3dr   r"   r'   r+   r+   r,   export_convtranspose_3dF   s    
				,				Y[z%ConvTranspose.export_convtranspose_3dc                  C  s  t dddgdddgddd	ggggt j} t dddgdddgdddggdddgdddgdddggggt j}t ddddddddgddddddddgddddddddgddddd
dddgddddd
dddgddddd
dddgdddddd	d	dgdddddd	d	dgdddddd	d	dgddddddddgg
ddddddddgddddddddgddddddddgddddd
dddgddddd
dddgddddd
dddgdddddd	d	dgdddddd	d	dgdddddd	d	dgddddddddgg
ggt j}tjjdddgdgddgddgd}t|| |g|gdd tjjdddgdgddgddgd}t|| |g|gdd tjjdddgdgdddgddgddgddgd}t|| |g|gdd d S )Nr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r         
      )stridesoutput_shapeZtest_convtranspose_output_shaper      )rX   output_paddingZtest_convtranspose_padtest)r!   rX   rY   Zkernel_shaper[   Ztest_convtranspose_kernel_shaper"   )r(   r   r*   r)   r+   r+   r,   export_convtranspose_attributes   s    	        
z-ConvTranspose.export_convtranspose_attributesc                  C  s@  t dddgdddgddd	ggggt j} t dddgdddgdddggdddgdddgdddggggt j}tjjd
ddgdgddgddddgd}t dddgdddgdddgdddgdddgdddgdddggdddgdddgdddgdddgdddgdddgdddggggt j}t|| |g|gdd d S )Nr   r	   r
   r   r   r   r   r   r   r   r   r   r   rT   rU   rZ   )rX   Zpadsr   r   r   Ztest_convtranspose_padsr   r"   r'   r+   r+   r,   export_convtranspose_pads  sV    	    

z'ConvTranspose.export_convtranspose_padsc                  C  s   t dddgdddgdddggggt j} t ddgddggggt j}tjjd	d
dgdgddgd}t dddddgdddddgdddddgdddddgdddddggggt j}t|| |g|gd d! d S )"Nr   r   r	   r   r   r   r
   r   r   r   r   r   rU   )Z	dilationsr   rG   r   r2   rI   r<   g     P@r/   r1   r   r6   g      S@g      V@rB   r   r4   rF   Ztest_convtranspose_dilationsr   r"   r'   r+   r+   r,   export_convtranspose_dilationsI  s2    "   z,ConvTranspose.export_convtranspose_dilationsc                  C  sp  t dddgdddgddd	ggggt j} t dddgdddgdddggdddgdddgdddggggt j}tjjd
ddgdgdddgd}t ddddddgddddddgddd	dddgddddddgddddddgdddddd	ggddddddgddddddgddd	dddgddddddgddddddgdddddd	ggggt j}t|| |g|gdd d S )Nr   r	   r
   r   r   r   r   r   r   r   r   r   r   Z
SAME_UPPERrU   )Zauto_padrX   r   r   r   r0   r   r   r   Ztest_convtranspose_autopad_samer   r"   r'   r+   r+   r,   !export_convtranspose_autopad_samed  sR    	    	z/ConvTranspose.export_convtranspose_autopad_samec                  C  sV  t dddgdddgddd	ggd
ddgdddgdddggggt j} t dddgdddgdddgggdddgdddgdddggggt j}tjjdddgdgdd}t dddddgdd	dddgd
ddddgd
ddddgddddd	ggd
dd ddgdd!d"d#d$gdd%d&d'd(gdd)d*d+d,gdd,d#ddggggt j}t|| |g|gd-d. d S )/Nr   r	   r
   r   r   r   r   r   r   r   r/   r0   r   r   r1   r   r2   r3   r   r   r   r   rU   groupr   r   r   r   r   r   r5   r:   rA        @Q@rC   r8        R@rJ   rK   r?   rG   rL   rM   r;   Ztest_convtranspose_group_2r   r"   r'   r+   r+   r,   export_convtranspose_group_2  sJ    	z*ConvTranspose.export_convtranspose_group_2c                  C  s  t dddgdddgddd	ggd
ddgdddgdddgggdddgdddgdddggd
ddgdddgdddgggdddgdddgddd	ggd
ddgdddgdddggggt j} t dddgdddgdddgggdddgdddgdddggggt j}tjjdddgdgd d!}t dddddgdd	dddgd
dd"d#dgd
dd$ddgddddd	ggd
dd%ddgdd&d'd(dgd"d)d*d+d,gd#d-d.d/d0gdd0d(d$dgggdd1d2d3dgd3d4d5d6d7gd8d9d:d;d'gd<d=d>d?d@gdd@d)dAdggd
dd%ddgdd&d'd(dgd"d)d*d+d,gd#d-d.d/d0gdd0d(d$dgggdddddgdd	dddgd
dd"d#dgd
dd$ddgddddd	ggd
dd%ddgdd&d'd(dgd"d)d*d+d,gd#d-d.d/d0gdd0d(d$dggggt j}t|| |g|gdBdC d S )DNr   r	   r
   r   r   r   r   r   r   r   r/   r0   r   r   r1   r   r2   r3   r4   r5   r   r   r6   r7   r   r8   r9   r   r   r   r   rU   ra   r   r   r   r:   rA   rc   rC   rd   rJ   rK   r?   rG   rL   rM   r;   r=   rH   r>   g      T@rN   g      U@r@   rI   rR   rO   rQ   rB   g      W@rP   g      X@rD   rE   Z"test_convtranspose_group_2_image_3r   r"   r'   r+   r+   r,   $export_convtranspose_group_2_image_3  s    	35   z2ConvTranspose.export_convtranspose_group_2_image_3N)__name__
__module____qualname__staticmethodr-   r.   rS   r]   r^   r_   r`   re   rf   r+   r+   r+   r,   r      s&   ' C-+-r   )

__future__r   Znumpyr#   r%   Zonnx.backend.test.case.baser   Zonnx.backend.test.case.noder   r   r+   r+   r+   r,   <module>   s
   