
    Si=+                    N    S SK Jr  S SKrS SKrS SKJr  S SKJr   " S S\5      r	g)    )annotationsN)Base)expectc                  |    \ rS rSrSr\S
S j5       r\S
S j5       r\S
S j5       r\S
S j5       r	\S
S j5       r
Srg	)Col2Im   zCol2Im operator with N-dimension support

The tests below can be reproduced in Python using https://github.com/f-dangel/unfoldNd/
c                 L   [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ//5      R                  [         R                  5      n [         R                  " SS/5      R                  [         R                  5      n[         R                  " SS/5      R                  [         R                  5      n[
        R                  R                  S/ S	QS
/5      n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ///5      R                  [         R                  5      n[        UXU/U/SS9  g )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        a/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/onnx/backend/test/case/node/col2im.pyexportCol2Im.export   s     10000

 &
 	 hh1v&--bhh7hh1v&--bhh7{{$$=z
  21666

 &
 	 	4H		
    c                 f   [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/	/5      R                  [         R                  5      n [         R                  " SS/5      R                  [         R                  5      n[         R                  " SS/5      R                  [         R                  5      n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ///5      R                  [         R                  5      n[
        R                  R                  S	/ S
QS/SS/S9n[        UXU/U/SS9  g )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+   r/   r&   r'   r(   r)   r8   s        r9   export_col2im_stridesCol2Im.export_col2im_strides<   s    )((((((((

 &
 	 hh1v&--bhh7hh1v&--bhh7 21111

 &
 	 {{$$3JF	 % 
 	4H&		
r<   c                 N   [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ//5      R                  [         R                  5      n [         R                  " SS/5      R                  [         R                  5      n[         R                  " SS/5      R                  [         R                  5      n[         R                  " / SQ/ S	Q/ S
Q/ SQ/ SQ///5      R                  [         R                  5      n[
        R                  R                  S/ SQS// SQS9n[        UXU/U/SS9  g )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@ry   )g      `@g      i@g     i@g     i@g      b@r   r%   r)   )r   r$   r   r$   )padstest_col2im_padsr+   r/   rB   s        r9   export_col2im_padsCol2Im.export_col2im_padsk   s   """"KVXZ
t &
u 	v hh1v&--bhh7hh1v&--bhh7 669:;

 &
 	 {{$$3J	 % 
 	4H#		
r<   c            	     N   [         R                  " / SQ/ SQ/ SQ/ SQ//5      R                  [         R                  5      n [         R                  " SS/5      R                  [         R                  5      n[         R                  " SS/5      R                  [         R                  5      n[         R                  " / SQ/ SQ/ S	Q/ S
Q/ SQ/ SQ///5      R                  [         R                  5      n[
        R                  R                  S/ SQS/SS/S9n[        UXU/U/SS9  g )N)r
   r   r   r      )r   r   rn   r      )r   r   r   r       )r   r   r   r         r?   )r
   r   r   r   r   r   )r   r   r   r   r   rn   )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+   r/   rB   s        r9   export_col2im_dilationsCol2Im.export_col2im_dilations   s    ....		
 &
 	 hh1v&--bhh7hh1v&--bhh7 778888	
 &
 	 {{$$3J!f	 % 
 	4H(		
r<   c                    [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ S	Q/ S
Q/
/5      R                  [         R                  5      n [         R                  " / SQ5      R                  [         R                  5      n[         R                  " / SQ5      R                  [         R                  5      n[         R                  " / SQ/ SQ/ SQ/ SQ// SQ/ SQ/ SQ/ SQ// SQ/ SQ/ SQ/ SQ/// SQ/ SQ/ SQ/ SQ// SQ/ SQ/ SQ/ S Q// S!Q/ S"Q/ S#Q/ S$Q////5      R                  [         R                  5      n[
        R                  R                  S%/ S&QS'/5      n[        UXU/U/S(S)9  g )*N)r$   r            rF   rG   rH   rI   rJ   rK   rL   )r?         r      rP   rQ   rR   rS   rT   rU   rV   )r>      r   r      rZ   r[   r\   r]   r^   r_   r`   )   	      r      rd   re   rf   rg   rh   ri   rj   )r#   
      r      ro   rp   rq   rr   rs   rt   ru   )rM   rN   rO   L   Q   V   [   `   e   j   o   t   )rW   rX   rY   M   R   W   \   a   f   k   p   u   )ra   rb   rc   N   S   X   ]   b   g   l   q   v   )rk   rl   rm   O   T   Y   ^   c   h   m   r   w   )rv   rw   rx   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   )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   )rO   rY   rc   rm   rx   )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+   r/   rB   s        r9   export_col2im_5dCol2Im.export_col2im_5d  sq    CBBBCHHHHI
 &
 	  hhy)00:hhy)00:
 ,,00	 1000	 1000	, 1000	 1001	 6555	+)+-
Z &
[ 	^ {{$$=z
 	4H!		
r<    N)returnNone)__name__
__module____qualname____firstlineno____doc__staticmethodr:   rC   r|   r   r   __static_attributes__r   r<   r9   r   r      ss    
 &
 &
P ,
 ,
\ x
 x
t (
 (
T K
 K
r<   r   )

__future__r   numpyr0   r5   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r   r<   r9   <module>r      s$    #   , .P
T P
r<   