
    bIgM                    N    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e      Z	y)    )annotationsN)Base)expectc                  T    e Zd Zedd       Zedd       Zedd       Zedd       Zy)
GridSamplec                    t         j                  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       y )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       c/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/backend/test/case/node/gridsample.pyexport_gridsamplezGridSample.export_gridsample   s.   {{$$=E  % 
 HH -,.0		 **
 xx !'* '* '*))) !'* '* '*))) !'* '* '*))) !&) &) &)((( !&) &) &)((( !&) &) &)(((S13h **k6
p HH IHHILH	 **
 	tQIs9JK    c                 B   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                  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                  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                  j                  dddgdgd      }t        j                  g dg dgggt         j                        }t        || |g|gd       y )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_paddingmodep   s    HHSzC:Sz234**

 xx "8, '* '* '*	 !'* '*( '*	  **#
* {{$$=E 	 % 
 ((/1QRST**

 	t9I0		
 {{$$=E!	 % 
 88/1QRST**

 	t9J1		
 {{$$=E%	 % 
 xx/1QRST**

 	t9!N5		
r:   c                 V	   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                  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                  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                  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                  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                  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                  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                  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                  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                  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                  j                  dddgdgdd      }t        j                  g d9g d:gggt         j                        }t        || |g|gd;       y )<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    HHSzC:Sz234**

 xx !'* '* '*(	  ( '*((	  **#
* {{$$=E	 % 
 XX/1QRST**


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

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


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


 	t9LH		
 {{$$=E % 
 HH B@ **

	 	t9KG		
 {{$$=E % 
 HH 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                  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                  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                  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                  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>%       y )?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   HH sc3Z0sc3Z0ttTl3 **
 xx ,->?+->?+_=(*:;	 )*:;+-=>(*;<(*:;	  **#
( {{$$=E % 
 HH sc3Z#tsCjIsc3Z$sCjI **

	 	t9KE		
 {{$$=E % 
 HH sc3Z#tsCjIsc3Z$tSkJ **

	 	t9KE		
 {{$$=E % 
 XX
 $V,#V,#W-#V,	 $V,#V,$f-#V,	$ **'

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

, 	t9LF		
r:   N)returnNone)__name__
__module____qualname__staticmethodr9   rG   rf   rl    r:   r8   r   r      sc    _L _LB U
 U
n y
 y
v `
 `
Dr:   r   )

__future__r   numpyr4   r1   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   rs   r:   r8   <module>rx      s$    #   , .u	 u	r:   