§
    1�Åjš,  ã                  ó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                  óŠ   — e Zd ZdZed
d„¦   «         Zed
d„¦   «         Zed
d„¦   «         Zed
d„¦   «         Zed
d„¦   «         Z	d	S )ÚCol2ImzŠCol2Im operator with N-dimension support

    The tests below can be reproduced in Python using https://github.com/f-dangel/unfoldNd/
    ÚreturnÚNonec                 óN  — t          j        g d¢g d¢g d¢g d¢g d¢gg¦  «                             t           j        ¦  «        } t          j        ddg¦  «                             t           j        ¦  «        }t          j        ddg¦  «                             t           j        ¦  «        }t
          j                             dg d	¢d
g¦  «        }t          j        g d¢g d¢g d¢g d¢g d¢ggg¦  «                             t           j        ¦  «        }t          || ||g|gd¬¦  «         d S )N)ç      ð?ç      @ç      &@ç      0@ç      5@)ç       @ç      @ç      (@ç      1@ç      6@)ç      @ç       @ç      *@ç      2@ç      7@)ç      @ç      "@ç      ,@ç      3@ç      8@)ç      @ç        ç      .@ç      4@ç      9@é   é   r   ©ÚinputÚimage_shapeÚblock_shapeÚoutput)r   r   r   r   r   )r   r   r   r   r    )r   r   r   r   r!   )r   r   r   r   r"   )r   r   r   r   r#   Útest_col2im©ÚinputsÚoutputsÚname©	ÚnpÚarrayÚastypeÚfloat32Úint64ÚonnxÚhelperÚ	make_noder   )r'   r(   r)   Únoder*   s        úSC:\Projects\Historical\venv\Lib\site-packages\onnx/backend/test/case/node/col2im.pyÚexportzCol2Im.export   sl  € å”ð 1Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ððñ

ô 

÷ Š&•”Ñ
Ô
ð 	õ ”h  1˜vÑ&Ô&×-Ò-­b¬hÑ7Ô7ˆÝ”h  1˜vÑ&Ô&×-Ò-­b¬hÑ7Ô7ˆÝŒ{×$Ò$ØÐ=Ð=Ð=À¸zñ
ô 
ˆõ ”ð 2Ð1Ð1Ø1Ð1Ð1Ø6Ð6Ð6Ø6Ð6Ð6Ø6Ð6Ð6ððð
ñ
ô 
÷ Š&•”Ñ
Ô
ð 	õ 	ØØ˜;¨Ð4Ø�HØð		
ñ 	
ô 	
ð 	
ð 	
ð 	
ó    c                 ón  — t          j        g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	g¦  «                             t           j        ¦  «        } t          j        ddg¦  «                             t           j        ¦  «        }t          j        ddg¦  «                             t           j        ¦  «        }t          j        g d¢g d¢g d¢g d¢g d¢ggg¦  «                             t           j        ¦  «        }t
          j                             d	g d
¢dgddg¬¦  «        }t          || ||g|gd¬¦  «         d S )N)r    r    r    r    )r   r   r   r   r$   é   )r    r   r   r   r   )r   r    r   r    r    )r    r   r   r   r   )r    r   r    r   r    r   r&   r*   é   )ÚstridesÚtest_col2im_stridesr,   r0   ©r'   r(   r)   r*   r9   s        r:   Úexport_col2im_strideszCol2Im.export_col2im_strides<   s�  € å”ð )Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(ð
ðñ
ô 
÷ Š&•”Ñ
Ô
ð 	õ ”h  1˜vÑ&Ô&×-Ò-­b¬hÑ7Ô7ˆÝ”h  1˜vÑ&Ô&×-Ò-­b¬hÑ7Ô7ˆå”ð 2Ð1Ð1Ø1Ð1Ð1Ø1Ð1Ð1Ø1Ð1Ð1Ø1Ð1Ð1ððð
ñ
ô 
÷ Š&•”Ñ
Ô
ð 	õ Œ{×$Ò$ØØ3Ð3Ð3ØˆJØ˜�Fð	 %ñ 
ô 
ˆõ 	ØØ˜;¨Ð4Ø�HØ&ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r<   c                 óV  — t          j        g d¢g d¢g d¢g d¢g d¢gg¦  «                             t           j        ¦  «        } t          j        ddg¦  «                             t           j        ¦  «        }t          j        ddg¦  «                             t           j        ¦  «        }t          j        g d¢g d	¢g d
¢g d¢g d¢ggg¦  «                             t           j        ¦  «        }t
          j                             dg d¢dgg d¢¬¦  «        }t          || ||g|gd¬¦  «         d S )N)r   r   r   r   r   é   é   é$   é)   é.   é3   é8   é=   éB   éG   )r   r   r   r   r   é   é    é%   é*   é/   é4   é9   é>   éC   éH   )r   r   r   r   r   é   é!   é&   é+   é0   é5   é:   é?   éD   éI   )r   r   r   r   r   é   é"   é'   é,   é1   é6   é;   é@   éE   éJ   )r   ç      $@r!   r"   r#   é   é#   é(   é-   é2   é7   é<   éA   éF   éK   r$   r%   )r   r   r   g      ;@r   )g      C@g     €P@g     @Q@g      R@g      K@)g      Q@g     À[@ç     €\@g     @]@g      U@)g     €X@g     €c@g     àc@g     @d@rx   )g      `@g      i@g     €i@g     ài@g      b@r   r&   r*   )r   r%   r   r%   )ÚpadsÚtest_col2im_padsr,   r0   rB   s        r:   Úexport_col2im_padszCol2Im.export_col2im_padsk   s�  € å”ðð ð ð"ð ð ð"ð ð ð"ð ð ð"ð ð ðKVðXñZ
ô Z
÷t Š&•”Ñ
Ô
ðu 	õv ”h  1˜vÑ&Ô&×-Ò-­b¬hÑ7Ô7ˆÝ”h  1˜vÑ&Ô&×-Ò-­b¬hÑ7Ô7ˆå”ð 6Ð5Ð5Ø6Ð6Ð6Ø9Ð9Ð9Ø:Ð:Ð:Ø;Ð;Ð;ððð
ñ
ô 
÷ Š&•”Ñ
Ô
ð 	õ Œ{×$Ò$ØØ3Ð3Ð3ØˆJØ��ð	 %ñ 
ô 
ˆõ 	ØØ˜;¨Ð4Ø�HØ#ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r<   c            	     óV  — t          j        g d¢g d¢g d¢g d¢gg¦  «                             t           j        ¦  «        } t          j        ddg¦  «                             t           j        ¦  «        }t          j        ddg¦  «                             t           j        ¦  «        }t          j        g d¢g d¢g d	¢g d
¢g d¢g d¢ggg¦  «                             t           j        ¦  «        }t
          j                             dg d¢dgddg¬¦  «        }t          || ||g|gd¬¦  «         d S )N)r   r   r   r   é   )r   r   rm   r   é   )r   r   r   r!   é   )r   r   r   r   é   é   r?   )r   r    r    r    r    r   )r   r    r    r    r    rm   )r   r    r    r    r    r   )r   r    r    r    r    g      :@)g      @@r    r    r    r    g      A@)r   r    r    r    r    r"   r   r&   r*   r%   r$   )Ú	dilationsÚtest_col2im_dilationsr,   r0   rB   s        r:   Úexport_col2im_dilationszCol2Im.export_col2im_dilationsæ   sy  € å”ð .Ð-Ð-Ø.Ð.Ð.Ø.Ð.Ð.Ø.Ð.Ð.ð	ðñ	
ô 	
÷ Š&•”Ñ
Ô
ð 	õ ”h  1˜vÑ&Ô&×-Ò-­b¬hÑ7Ô7ˆÝ”h  1˜vÑ&Ô&×-Ò-­b¬hÑ7Ô7ˆå”ð 7Ð6Ð6Ø7Ð7Ð7Ø8Ð8Ð8Ø8Ð8Ð8Ø8Ð8Ð8Ø8Ð8Ð8ðð	ðñ
ô 
÷ Š&•”Ñ
Ô
ð 	õ Œ{×$Ò$ØØ3Ð3Ð3ØˆJØ˜!�fð	 %ñ 
ô 
ˆõ 	ØØ˜;¨Ð4Ø�HØ(ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r<   c                 óì  — t          j        g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g
g¦  «                             t           j        ¦  «        } t          j        g d¢¦  «                             t           j        ¦  «        }t          j        g d¢¦  «                             t           j        ¦  «        }t          j        g d¢g d¢g d¢g d¢gg d¢g d¢g d¢g d¢gg d¢g d¢g d¢g d¢ggg d¢g d¢g d¢g d¢gg d¢g d¢g d¢g d ¢gg d!¢g d"¢g d#¢g d$¢gggg¦  «                             t           j        ¦  «        }t
          j                             d%g d&¢d'g¦  «        }t          || ||g|gd(¬)¦  «         d S )*N)r%   r�   é   é   é   rE   rF   rG   rH   rI   rJ   rK   )r?   é   é   r}   é   rO   rP   rQ   rR   rS   rT   rU   )r>   é   é   r~   é   rY   rZ   r[   r\   r]   r^   r_   )é   é	   é   r   é   rc   rd   re   rf   rg   rh   ri   )r$   é
   é   r€   é   rn   ro   rp   rq   rr   rs   rt   )rL   rM   rN   éL   éQ   éV   é[   é`   ée   éj   éo   ét   )rV   rW   rX   éM   éR   éW   é\   éa   éf   ék   ép   éu   )r`   ra   rb   éN   éS   éX   é]   éb   ég   él   éq   év   )rj   rk   rl   éO   éT   éY   é^   éc   éh   ém   ér   éw   )ru   rv   rw   éP   éU   éZ   é_   éd   éi   én   és   éx   )r>   r�   r$   )r%   r%   r$   )r%   r?   r>   r�   r$   )r�   r‰   rŒ   r�   r“   )r†   rŠ   r�   r‘   r”   )r‡   r}   r~   r   r€   )rˆ   r‹   rŽ   r’   r•   )rE   rO   rY   rc   rn   )rF   rP   rZ   rd   ro   )rG   rQ   r[   re   rp   )rH   rR   r\   rf   rq   )rI   rS   r]   rg   rr   )rJ   rT   r^   rh   rs   )rK   rU   r_   ri   rt   )rL   rV   r`   rj   ru   )rM   rW   ra   rk   rv   )rN   rX   rb   rl   rw   )r–   rŸ   r¨   r±   rº   )r—   r    r©   r²   r»   )r˜   r¡   rª   r³   r¼   )r™   r¢   r«   r´   r½   )rš   r£   r¬   rµ   r¾   )r›   r¤   r­   r¶   r¿   )rœ   r¥   r®   r·   rÀ   )r�   r¦   r¯   r¸   rÁ   )rž   r§   r°   r¹   rÂ   r   r&   r*   Útest_col2im_5dr,   r0   rB   s        r:   Úexport_col2im_5dzCol2Im.export_col2im_5d  ss  € å”ð CÐBÐBØBÐBÐBØBÐBÐBØBÐBÐBØCÐCÐCØHÐHÐHØHÐHÐHØHÐHÐHØHÐHÐHØIÐIÐIððñ
ô 
÷ Š&•”Ñ
Ô
ð 	õ  ”h˜y˜y˜yÑ)Ô)×0Ò0µ´Ñ:Ô:ˆÝ”h˜y˜y˜yÑ)Ô)×0Ò0µ´Ñ:Ô:ˆå”ð
 ,˜O˜OØ,Ð,Ð,Ø0Ð0Ð0Ø0Ð0Ð0ð	ð 1Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð	ð 1Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð	ðð, 1Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0ð	ð 1Ð0Ð0Ø0Ð0Ð0Ø0Ð0Ð0Ø1Ð1Ð1ð	ð 6Ð5Ð5Ø5Ð5Ð5Ø5Ð5Ð5Ø5Ð5Ð5ð	ðð+)ð+ñ-
ô -
÷Z Š&•”Ñ
Ô
ð[ 	õ^ Œ{×$Ò$ØÐ=Ð=Ð=À¸zñ
ô 
ˆõ 	ØØ˜;¨Ð4Ø�HØ!ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r<   N)r   r	   )
Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústaticmethodr;   rC   r{   r„   rÄ   © r<   r:   r   r      sÌ   € € € € € ðð ð
 ð&
ð &
ð &
ñ „\ð&
ðP ð,
ð ,
ð ,
ñ „\ð,
ð\ ðx
ð x
ð x
ñ „\ðx
ðt ð(
ð (
ð (
ñ „\ð(
ðT ðK
ð K
ð K
ñ „\ðK
ð K
ð K
r<   r   )
Ú
__future__r   Únumpyr1   r6   Úonnx.backend.test.case.baser   Úonnx.backend.test.case.noder   r   rÊ   r<   r:   ú<module>rÏ      s�   ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð à €€€Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø .Ð .Ð .Ð .Ð .Ð .ðP
ð P
ð P
ð P
ð P
ˆTñ P
ô P
ð P
ð P
ð P
r<   