§
    1�Åj‡O  ã                  óV   — 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	dS )é    )ÚannotationsN)Ú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ÚreturnÚNonec                 ó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       úWC:\Projects\Historical\venv\Lib\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ðð	ðõ ”*ð
ñ 
ô 
ˆõ 	ˆt˜Q ˜I°¨sÐ9JÐ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_paddingr1   Úborder)r   r   r>   r   )r   r>   r   r   Útest_gridsample_border_paddingÚ
reflection)ç      @r   r>   rC   )rC   r>   r   rC   Ú"test_gridsample_reflection_padding©r6   r7   r8   r3   r4   r5   r   )r   r   r9   ÚY_zerosÚY_borderÚY_reflections         r:   Úexport_gridsample_paddingmodez(GridSample.export_gridsample_paddingmodep   su  € õ ŒHØ�Sˆz˜C ˜:¨¨S zÐ2Ð3Ð4Ý”*ð
ñ 
ô 
ˆõ
 Œxð " 8Ð,Ø  'Ð*Ø  'Ð*Ø  'Ð*ð	ð ! 'Ð*Ø  'Ð*Ø Ð(Ø  'Ð*ð	ððõ  ”*ð#
ñ 
ô 
ˆõ* Œ{×$Ò$ØØ˜�=Ø�EØ ð	 %ñ 
ô 
ˆõ ”(Ø/Ð/Ð/Ð1QÐ1QÐ1QÐRÐSÐTÝ”*ð
ñ 
ô 
ˆõ
 	ØØ�t�9Ø�IØ0ð		
ñ 	
ô 	
ð 	
õ Œ{×$Ò$ØØ˜�=Ø�EØ!ð	 %ñ 
ô 
ˆõ ”8Ø/Ð/Ð/Ð1QÐ1QÐ1QÐRÐSÐTÝ”*ð
ñ 
ô 
ˆõ
 	ØØ�t�9Ø�JØ1ð		
ñ 	
ô 	
ð 	
õ Œ{×$Ò$ØØ˜�=Ø�EØ%ð	 %ñ 
ô 
ˆõ ”xØ/Ð/Ð/Ð1QÐ1QÐ1QÐRÐSÐTÝ”*ð
ñ 
ô 
ˆõ
 	ØØ�t�9Ø!�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   rL   r>   rC   )rC   r>   g      @ç      ô?Útest_gridsample_bilinearr1   é   ©r   r   r   r   )r   rM   r   rC   )rC   r   r/   r   Ú!test_gridsample_aligncorners_trueÚnearest)r   r   r   r   )r   r   r   r   Útest_gridsample_nearestÚcubic)g§èH.ÿÁ¿gÇ):’ËØ?ç»¸�ðü?çëâ6À@)rV   rU   g‡ÙÎ÷“@gäÉå?ö?Útest_gridsample_bicubicçš™™™™™é¿r%   gš™™™™™¹¿gffffffæ?çš™™™™™Ù?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)rY   g333333ó?gffffff @gÍÌÌÌÌÌ@)çffffff
@r+   gÍÌÌÌÌÌ
@r   Ú5test_gridsample_bilinear_align_corners_1_additional_1)g“V-Æ¿g¨o™Óe1Ò?g­ÜÌ
Åþ?g%�•C‹@)gX9´Èv®@gD2äØzF@g¿|²b¸ú@g     Àð?Ú4test_gridsample_bicubic_align_corners_0_additional_1)g	â<œÀtÓ?g�Âõ(\ò?gS?o*R!@g²,˜ø£(	@)gÇK7‰A @g£@ŸÈ“¤@gä²ó6f@r   Ú4test_gridsample_bicubic_align_corners_1_additional_1rE   )r   r   r9   Ú
Y_bilinearÚY_align_cornersÚ	Y_nearestÚ	Y_bicubics          r:   Ú#export_gridsample_mode_aligncornersz.GridSample.export_gridsample_mode_aligncornersÈ   s  € õ ŒHØ�Sˆz˜C ˜:¨¨S zÐ2Ð3Ð4Ý”*ð
ñ 
ô 
ˆõ
 Œxð ! 'Ð*Ø  'Ð*Ø  'Ð*Ø Ð(ð	ð   Ð(Ø  'Ð*Ø Ð(Ø Ð(ð	ððõ  ”*ð#
ñ 
ô 
ˆõ* Œ{×$Ò$ØØ˜�=Ø�EØð	 %ñ 
ô 
ˆõ ”XØ/Ð/Ð/Ð1QÐ1QÐ1QÐRÐSÐTÝ”*ð
ñ 
ô 
ˆ
õ
 	ØØ�t�9Ø�LØ+ð		
ñ 	
ô 	
ð 	
õ Œ{×$Ò$ØØ˜�=Ø�EØØð %ñ 
ô 
ˆõ œ(Ø/Ð/Ð/Ð1QÐ1QÐ1QÐRÐSÐTÝ”*ð
ñ 
ô 
ˆõ
 	ØØ�t�9Ø$Ð%Ø4ð		
ñ 	
ô 	
ð 	
õ Œ{×$Ò$ØØ˜�=Ø�EØð	 %ñ 
ô 
ˆõ ”HØ#Ð#Ð#Ð%9Ð%9Ð%9Ð:Ð;Ð<Ý”*ð
ñ 
ô 
ˆ	õ
 	Ø˜!˜T˜¨Y¨KÐ>Wð	
ñ 	
ô 	
ð 	
õ
 Œ{×$Ò$ØØ˜�=Ø�EØð	 %ñ 
ô 
ˆõ ”HØ0Ð0Ð0Ð2RÐ2RÐ2RÐSÐTÐUÝ”*ð
ñ 
ô 
ˆ	õ
 	Ø˜!˜T˜¨Y¨KÐ>Wð	
ñ 	
ô 	
ð 	
õ Œxð ˜D�\ D¨$ <°$¸°ÀÀS¸zÐJØ˜3�Z # t ¨t°S¨k¸DÀ#¸;ÐGððõ ”*ð
ñ 
ô 
ˆõ Œ{×$Ò$ØØ˜�=Ø�EØØð %ñ 
ô 
ˆõ ”HØ#Ð#Ð#Ð%9Ð%9Ð%9Ð:Ð;Ð<Ý”*ð
ñ 
ô 
ˆ	õ
 	ØØ�t�9Ø�KØGð		
ñ 	
ô 	
ð 	
õ Œ{×$Ò$ØØ˜�=Ø�EØØð %ñ 
ô 
ˆõ ”HØ#Ð#Ð#Ð%9Ð%9Ð%9Ð:Ð;Ð<Ý”*ð
ñ 
ô 
ˆ	õ
 	ØØ�t�9Ø�KØGð		
ñ 	
ô 	
ð 	
õ Œ{×$Ò$ØØ˜�=Ø�EØØð %ñ 
ô 
ˆõ ”XØ/Ð/Ð/Ð1QÐ1QÐ1QÐRÐSÐTÝ”*ð
ñ 
ô 
ˆ
õ
 	ØØ�t�9Ø�LØHð		
ñ 	
ô 	
ð 	
õ Œ{×$Ò$ØØ˜�=Ø�EØØð %ñ 
ô 
ˆõ ”XØ/Ð/Ð/Ð1QÐ1QÐ1QÐRÐSÐTÝ”*ð
ñ 
ô 
ˆ
õ
 	ØØ�t�9Ø�LØHð		
ñ 	
ô 	
ð 	
õ Œ{×$Ò$ØØ˜�=Ø�EØØð %ñ 
ô 
ˆõ ”Hð BÐAÐAØ@Ð@Ð@ðððõ ”*ð

ñ 

ô 

ˆ	õ 	ØØ�t�9Ø�KØGð		
ñ 	
ô 	
ð 	
õ Œ{×$Ò$ØØ˜�=Ø�EØØð %ñ 
ô 
ˆõ ”Hð AÐ@Ð@Ø@Ð@Ð@ðððõ ”*ð

ñ 

ô 

ˆ	õ 	ØØ�t�9Ø�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$   rK   g333333Ó?)rK   rK   rK   )r   r%   r$   )r&   r&   r&   )rY   r'   r(   )r   r   r   )r$   r   r   )r$   r   r   )r   rY   r&   )rL   rL   rL   )r$   rX   gš™™™™™é?)r   r   r   )rY   r(   rZ   r   r   r   r   rR   r   rP   r   Ú2test_gridsample_volumetric_nearest_align_corners_0r1   rO   Ú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_1rE   )r   r   r9   rf   rd   s        r:   Ú/export_volumeetric_gridsample_mode_aligncornersz:GridSample.export_volumeetric_gridsample_mode_aligncornersÄ  s~  € åŒHð ˜s˜ c¨3 ZÐ0Ø˜s˜ c¨3 ZÐ0Ø˜t˜ t¨T lÐ3ðððõ ”*ð
ñ 
ô 
ˆõ Œxð ,Ð+Ð+Ð->Ð->Ð->Ð?Ø+Ð+Ð+Ð->Ð->Ð->Ð?Ø+Ð+Ð+¨_¨_¨_Ð=Ø(˜˜Ð*:Ð*:Ð*:Ð;ð	ð )˜˜Ð*:Ð*:Ð*:Ð;Ø+Ð+Ð+Ð-=Ð-=Ð-=Ð>Ø(˜˜Ð*;Ð*;Ð*;Ð<Ø(˜˜Ð*:Ð*:Ð*:Ð;ð	ððõ  ”*ð#
ñ 
ô 
ˆõ( Œ{×$Ò$ØØ˜�=Ø�EØØð %ñ 
ô 
ˆõ ”Hð ˜s˜ c¨3 Z°#°t°¸sÀC¸jÐIØ˜s˜ c¨3 Z°$¸°¸sÀC¸jÐIðððõ ”*ð

ñ 

ô 

ˆ	õ 	ØØ�t�9Ø�KØEð		
ñ 	
ô 	
ð 	
õ Œ{×$Ò$ØØ˜�=Ø�EØØð %ñ 
ô 
ˆõ ”Hð ˜s˜ c¨3 Z°#°t°¸sÀC¸jÐIØ˜s˜ c¨3 Z°$¸°¸tÀS¸kÐJðððõ ”*ð

ñ 

ô 

ˆ	õ 	ØØ�t�9Ø�KØEð		
ñ 	
ô 	
ð 	
õ Œ{×$Ò$ØØ˜�=Ø�EØØð %ñ 
ô 
ˆõ ”Xð
 $ VÐ,Ø# VÐ,Ø# WÐ-Ø# VÐ,ð	ð $ VÐ,Ø# VÐ,Ø$ fÐ-Ø# VÐ,ð	ðððõ$ ”*ð'
ñ 
ô 
ˆ
õ, 	ØØ�t�9Ø�LØFð		
ñ 	
ô 	
ð 	
õ Œ{×$Ò$ØØ˜�=Ø�EØØð %ñ 
ô 
ˆõ ”Xð
 $ VÐ,Ø# VÐ,Ø# VÐ,Ø# VÐ,ð	ð $ VÐ,Ø# VÐ,Ø# VÐ,Ø$ fÐ-ð	ðððõ$ ”*ð'
ñ 
ô 
ˆ
õ, 	ØØ�t�9Ø�LØFð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r<   N)r   r	   )Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr;   rI   rh   rn   © r<   r:   r   r      sª   € € € € € Øð_Lð _Lð _Lñ „\ð_LðB ðU
ð U
ð U
ñ „\ðU
ðn ðy
ð y
ð y
ñ „\ðy
ðv ð`
ð `
ð `
ñ „\ð`
ðDð r<   r   )
Ú
__future__r   Únumpyr6   r3   Úonnx.backend.test.case.baser   Úonnx.backend.test.case.noder   r   rs   r<   r:   ú<module>rx      s�   ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð à €€€Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø .Ð .Ð .Ð .Ð .Ð .ðu	ð u	ð u	ð u	ð u	�ñ u	ô u	ð u	ð u	ð u	r<   