
    NgL                     J    d dl Zd dlZd dlmZ d dlmZ  G d de          ZdS )    N)Base)expectc                   n    e Zd Zedd            Zedd            Zedd            Zedd            ZdS )
GridSamplereturnNc                  l   t           j                            dddgdgddd          } t          j        g d	g d
g dg dgggt          j                  }t          j        ddgddgddgddgddgddggddgddgddgddgddgddggddgddgddgddgddgddggddgddgddgddgddgddggddgddgddgddgddgddggddgddgddgddgddgddggggt          j                  }t          j        g dg dg dg dg dg dgggt          j                  }t          | ||g|gd           d S )Nr   XGridYlinearzerosr   )inputsoutputsmodepadding_modealign_corners)              ?       @      @)      @      @      @      @)       @      "@      $@      &@)      (@g      *@g      ,@g      .@dtype      333333皙ɿ皙?333333?r   )r   g333333?g?gffffff?g?g      ?)r&         ?gffffff@g@g333333@ @)皙@@g      @g333333@gffffff@皙@)gffffff@g@gffffff!@g      #@g$@g333333@)皙@g333333&@g'@gffffff)@g      +@g@)r   g@g333333@g@gffffff@      @test_gridsampler   r   name)onnxhelper	make_nodenparrayfloat32r   )noder	   r
   r   s       b/var/www/html/ai-engine/env/lib/python3.11/site-packages/onnx/backend/test/case/node/gridsample.pyexport_gridsamplezGridSample.export_gridsample   s   {$$=E  % 
 
 H -,,,,,...000		 *
 
 
 x !'* '* '*))) !'* '* '*))) !'* '* '*))) !&) &) &)((( !&) &) &)((( !&) &) &)(((S13h *k6
 6
 6
p H IHHHHHHHHIIILLLHHH	 *
 
 
 	tQIs9JKKKKKK    c                  *   t          j        ddgddgddggggt           j                  } t          j        ddgd	d	gd
d
gddggddgd
d
gddgddggggt           j                  }t          j                            dddgdgd          }t          j        g dg dgggt           j                  }t          || |g|gd           t          j                            dddgdgd          }t          j        g dg dgggt           j                  }t          || |g|gd           t          j                            dddgdgd          }t          j        g dg dgggt           j                  }t          || |g|gd           d S )Nr   r   r   r   r   r   r    g      $g      r$   r   r   r	   r
   r   r   )r   r   r   )r   r   333333?r   )r   r<   r   r   test_gridsample_zeros_paddingr/   border)r   r   r<   r   )r   r<   r   r   test_gridsample_border_padding
reflection)      @r   r<   rA   )rA   r<   r   rA   "test_gridsample_reflection_paddingr4   r5   r6   r1   r2   r3   r   )r	   r
   r7   Y_zerosY_borderY_reflections         r8   export_gridsample_paddingmodez(GridSample.export_gridsample_paddingmodeo   su    HSzC:Sz234*
 
 

 x "8, '* '* '*	 !'* '*( '*	  *#
 
 
* {$$=E 	 % 
 
 (///1Q1Q1QRST*
 
 

 	t9I0		
 	
 	
 	
 {$$=E!	 % 
 
 8///1Q1Q1QRST*
 
 

 	t9J1		
 	
 	
 	
 {$$=E%	 % 
 
 x///1Q1Q1QRST*
 
 

 	t9!N5		
 	
 	
 	
 	
 	
r:   c                  &	   t          j        ddgddgddggggt           j                  } t          j        ddgd	d	gd
d
gddggddgd
d
gddgddggggt           j                  }t          j                            dddgdgd          }t          j        g dg dgggt           j                  }t          || |g|gd           t          j                            dddgdgdd          }t          j        g dg dgggt           j                  }t          || |g|gd           t          j                            dddgdgd          }t          j        g dg dgggt           j                  }t          || |g|gd           t          j                            dddgdgd          }t          j        g d g d!gggt           j                  }t          || |g|gd"           t          j        dd#gd$d	gd%d
gd&dggdd'gd(d
gd)dgddggggt           j                  }t          j                            dddgdgdd*          }t          j        g d+g d,gggt           j                  }t          || |g|gd-           t          j                            dddgdgdd          }t          j        g d+g d.gggt           j                  }t          || |g|gd/           t          j                            dddgdgdd*          }t          j        g d0g d1gggt           j                  }t          || |g|gd2           t          j                            dddgdgdd          }t          j        g d3g d4gggt           j                  }t          || |g|gd5           t          j                            dddgdgdd*          }t          j        g d6g d7gggt           j                  }t          || |g|gd8           t          j                            dddgdgdd          }t          j        g d9g d:gggt           j                  }t          || |g|gd;           d S )<Nr   r   r   r   r   r   r    r"         r$         ?r   r	   r
   r   r   )r   r   r   )r   rJ   r<   rA   )rA   r<   g      @      ?test_gridsample_bilinearr/      r   r   r   r   )r   rK   r   rA   )rA   r   r-   r   !test_gridsample_aligncorners_truenearest)r   r   r   r   )r   r   r   r   test_gridsample_nearestcubic)gH.g):?绸?6@)rT   rS   g@g??test_gridsample_bicubic皙r#   ggffffff?皙?r%   333333ӿr   )r   r   r   r   )r   r   r   r   4test_gridsample_nearest_align_corners_0_additional_1)r   r   r   r   4test_gridsample_nearest_align_corners_1_additional_1)r   ?g?333333@)r+   r(   r+   r   5test_gridsample_bilinear_align_corners_0_additional_1)rW   g333333?gffffff @g@)ffffff
@r)   g
@r   5test_gridsample_bilinear_align_corners_1_additional_1)gV-ƿgoe1?g
?g%C@)gX9v@gD2zF@g|b@g     ?4test_gridsample_bicubic_align_corners_0_additional_1)g	<t?g(\?gS?o*R!@g,(	@)gK7A @g@ȓ@g6f@r   4test_gridsample_bicubic_align_corners_1_additional_1rC   )r	   r
   r7   
Y_bilinearY_align_corners	Y_nearest	Y_bicubics          r8   #export_gridsample_mode_aligncornersz.GridSample.export_gridsample_mode_aligncorners   s    HSzC:Sz234*
 
 

 x !'* '* '*(	  ( '*((	  *#
 
 
* {$$=E	 % 
 
 X///1Q1Q1QRST*
 
 


 	t9L+		
 	
 	
 	
 {$$=E % 
 
 (///1Q1Q1QRST*
 
 

 	t9$%4		
 	
 	
 	
 {$$=E	 % 
 
 H###%9%9%9:;<*
 
 
	
 	!TYK>W	
 	
 	
 	

 {$$=E	 % 
 
 H0002R2R2RSTU*
 
 
	
 	!TYK>W	
 	
 	
 	
 x D\D$<$SzJ3Z#ttSkD#;G *
 
 
 {$$=E % 
 
 H###%9%9%9:;<*
 
 
	
 	t9KG		
 	
 	
 	
 {$$=E % 
 
 H###%9%9%9:;<*
 
 
	
 	t9KG		
 	
 	
 	
 {$$=E % 
 
 X///1Q1Q1QRST*
 
 


 	t9LH		
 	
 	
 	
 {$$=E % 
 
 X///1Q1Q1QRST*
 
 


 	t9LH		
 	
 	
 	
 {$$=E % 
 
 H BAA@@@ *

 

 

	 	t9KG		
 	
 	
 	
 {$$=E % 
 
 H A@@@@@ *

 

 

	 	t9KG		
 	
 	
 	
 	
 	
r:   c            	         t          j        ddgddggddgddggd	d
gddgggggt           j                  } t          j        g dg dgg dg dgg dg dgg dg dggg dg dgg dg dgg dg dgg dg dggggt           j                  }t          j                            dddgdgd d!"          }t          j        ddgdd#gddgddggdd#gdd#gdd	gd#dgggggt           j                  }t          || |g|gd$%           t          j                            dddgdgd d&"          }t          j        ddgddgddgddggddgddgdd	gddgggggt           j                  }t          || |g|gd'%           t          j                            dddgdgd(d!"          }t          j        d)d*gdd+gd,d-gd.dggd.d/gd,d0gdd1gd2d3gggggt           j                  }t          || |g|gd4%           t          j                            dddgdgd(d&"          }t          j        dd5gd6d7gd8d9gd.dggd.dgd8d:gd;d<gdd=gggggt           j                  }t          || |g|gd>%           d S )?Nr   r   r   r   r   r   r   r   r   r   r   r   r    )r"   r"   r"   )r"   rI   g333333?)rI   rI   rI   )r   r#   r"   )r$   r$   r$   )rW   r%   r&   )r   r   r   )r"   r   r   )r"   r   r   )r   rW   r$   )rJ   rJ   rJ   )r"   rV   g?)r   r   r   )rW   r&   rX   r   r	   r
   r   rP   r   rN   r   2test_gridsample_volumetric_nearest_align_corners_0r/   rM   2test_gridsample_volumetric_nearest_align_corners_1r   g      ?g333333@r[   r*   g%@g      @g      ?r^   g)\(@r'   g(\@3test_gridsample_volumetric_bilinear_align_corners_0g@r-   r\   r,   g"@gffffff@g     "@g @gffffff@3test_gridsample_volumetric_bilinear_align_corners_1rC   )r	   r
   r7   rd   rb   s        r8   /export_volumeetric_gridsample_mode_aligncornersz:GridSample.export_volumeetric_gridsample_mode_aligncorners  s~   H sc3Z0sc3Z0ttTl3 *
 
 
 x ,++->->->?+++->->->?+++___=(*:*:*:;	 )*:*:*:;+++-=-=-=>(*;*;*;<(*:*:*:;	  *#
 
 
( {$$=E % 
 
 H sc3Z#tsCjIsc3Z$sCjI *

 

 

	 	t9KE		
 	
 	
 	
 {$$=E % 
 
 H sc3Z#tsCjIsc3Z$tSkJ *

 

 

	 	t9KE		
 	
 	
 	
 {$$=E % 
 
 X
 $V,#V,#W-#V,	 $V,#V,$f-#V,	$ *'
 
 

, 	t9LF		
 	
 	
 	
 {$$=E % 
 
 X
 $V,#V,#V,#V,	 $V,#V,#V,$f-	$ *'
 
 

, 	t9LF		
 	
 	
 	
 	
 	
r:   )r   N)__name__
__module____qualname__staticmethodr9   rG   rf   rl    r:   r8   r   r      s        _L _L _L \_LB U
 U
 U
 \U
n y
 y
 y
 \y
v `
 `
 `
 \`
D r:   r   )numpyr4   r1   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   rq   r:   r8   <module>ru      s~   
      , , , , , , . . . . . .u	 u	 u	 u	 u	 u	 u	 u	 u	 u	r:   