o
    wiM                     @  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                   @  sD   e Zd ZedddZedddZedddZedd	d
ZdS )
GridSamplereturnNonec                  C  s  t jjdddgdgdddd} tjg d	g d
g dg dgggtjd}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d}tjg dg dg dg dg dg dgggtjd}t| ||g|gd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
    r7   c/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/onnx/backend/test/case/node/gridsample.pyexport_gridsample   s   	
					48zGridSample.export_gridsamplec                  C  s`  t jddgddgddggggt j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d}tjjdddgdgdd}t jg dg dgggt jd}t|| |g|gdd tjjdddgdgdd}t jg dg dgggt jd}t|| |g|gdd tjjdddgdgdd}t jg dg dgggt jd}t|| |g|gd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:   r?   )r?   r:   r   r?   "test_gridsample_reflection_paddingr3   r4   r5   r0   r1   r2   r   )r   r	   r6   Y_zerosY_borderY_reflectionr7   r7   r8   export_gridsample_paddingmodep   s   
z(GridSample.export_gridsample_paddingmodec                  C  s  t jddgddgddggggt j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d}tjjdddgdgdd}t jg dg dgggt jd}t|| |g|gdd tjjdddgdgddd}t jg dg dgggt jd}t|| |g|gdd tjjdddgdgdd}t jg dg dgggt jd}t|| |g|gdd tjjdddgdgdd}t jg d g d!gggt jd}t|| |g|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t jd}tjjdddgdgdd*d}t jg d+g d,gggt jd}t|| |g|gd-d tjjdddgdgddd}t jg d+g d.gggt jd}t|| |g|gd/d tjjdddgdgdd*d}t jg d0g d1gggt jd}t|| |g|gd2d tjjdddgdgddd}t jg d3g d4gggt jd}t|| |g|gd5d tjjdddgdgdd*d}t jg d6g d7gggt jd}t|| |g|gd8d tjjdddgdgddd}t jg d9g d:gggt jd}t|| |g|gd;d d S )<Nr   r   r   r   r   r   r   r!         r#         ?r   r   r	   r
   r   )r   r   r   )r   rG   r:   r?   )r?   r:   g      @      ?test_gridsample_bilinearr.      r   r   r   r   )r   rH   r   r?   )r?   r   r,   r   !test_gridsample_aligncorners_truenearest)r   r   r   r   )r   r   r   r   test_gridsample_nearestcubic)gH.g):?绸?6@)rQ   rP   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)rT   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_1rA   )r   r	   r6   
Y_bilinearY_align_corners	Y_nearest	Y_bicubicr7   r7   r8   #export_gridsample_mode_aligncorners   s  

z.GridSample.export_gridsample_mode_aligncornersc                  C  s  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d} 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d}tjjdddgdgd 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d}t|| |g|gd$d% tjjdddgdgd 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d}t|| |g|gd'd% tjjdddgdgd(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d}t|| |g|gd4d% tjjdddgdgd(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d}t|| |g|gd>d% d S )?Nr   r   r   r   r   r   r   r   r   r   r   r   r   )r!   r!   r!   )r!   rF   g333333?)rF   rF   rF   )r   r"   r!   )r#   r#   r#   )rT   r$   r%   )r   r   r   )r!   r   r   )r!   r   r   )r   rT   r#   )rG   rG   rG   )r!   rS   g?)r   r   r   )rT   r%   rU   r   r   r	   r
   rM   r   rK   r   2test_gridsample_volumetric_nearest_align_corners_0r.   rJ   2test_gridsample_volumetric_nearest_align_corners_1r   g      ?g333333@rX   r)   g%@g      @g      ?r[   g)\(@r&   g(\@3test_gridsample_volumetric_bilinear_align_corners_0g@r,   rY   r+   g"@gffffff@g     "@g @gffffff@3test_gridsample_volumetric_bilinear_align_corners_1rA   )r   r	   r6   ra   r_   r7   r7   r8   /export_volumeetric_gridsample_mode_aligncorners  s   	
z:GridSample.export_volumeetric_gridsample_mode_aligncornersN)r   r   )__name__
__module____qualname__staticmethodr9   rE   rc   rh   r7   r7   r7   r8   r      s    aW | #r   )

__future__r   numpyr3   r0   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r7   r7   r7   r8   <module>   s   