
    bIg=+                    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                  j    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	y)	Col2ImzCol2Im operator with N-dimension support

    The tests below can be reproduced in Python using https://github.com/f-dangel/unfoldNd/
    c                 L   t        j                  g dg dg dg dg dgg      j                  t         j                        } t        j                  ddg      j                  t         j                        }t        j                  ddg      j                  t         j                        }t
        j                  j                  dg d	d
g      }t        j                  g dg dg dg dg dggg      j                  t         j                        }t        || ||g|gd       y )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        _/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/backend/test/case/node/col2im.pyexportz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                 l   t        j                  g dg dg dg dg dg dg dg dg dg	g      j                  t         j                        } t        j                  ddg      j                  t         j                        }t        j                  ddg      j                  t         j                        }t        j                  g dg dg dg dg dggg      j                  t         j                        }t
        j                  j                  d	g d
dgddg      }t        || ||g|gd       y )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(   r7   s        r8   export_col2im_stridesz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                 T   t        j                  g dg dg dg dg dgg      j                  t         j                        } t        j                  ddg      j                  t         j                        }t        j                  ddg      j                  t         j                        }t        j                  g dg d	g d
g dg dggg      j                  t         j                        }t
        j                  j                  dg ddgg d      }t        || ||g|gd       y )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@rv   )g      `@g      i@g     i@g     i@g      b@r   r$   r(   )r   r#   r   r#   )padstest_col2im_padsr*   r.   r@   s        r8   export_col2im_padsz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            	     T   t        j                  g dg dg dg dgg      j                  t         j                        } t        j                  ddg      j                  t         j                        }t        j                  ddg      j                  t         j                        }t        j                  g dg dg d	g d
g dg dggg      j                  t         j                        }t
        j                  j                  dg ddgddg      }t        || ||g|gd       y )N)r	   r   r   r      )r   r
   rk   r      )r   r   r   r      )r   r   r   r         r=   )r	   r   r   r   r   r   )r   r   r   r   r   rk   )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.   r@   s        r8   export_col2im_dilationsz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                    t        j                  g dg dg dg dg dg dg dg dg d	g d
g
g      j                  t         j                        } t        j                  g d      j                  t         j                        }t        j                  g d      j                  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      j                  t         j                        }t
        j                  j                  d%g d&d'g      }t        || ||g|gd()       y )*N)r#   r            rC   rD   rE   rF   rG   rH   rI   )r=         r{      rM   rN   rO   rP   rQ   rR   rS   )r<         r|      rW   rX   rY   rZ   r[   r\   r]   )   	      r}      ra   rb   rc   rd   re   rf   rg   )r"   
      r~      rl   rm   rn   ro   rp   rq   rr   )rJ   rK   rL   L   Q   V   [   `   e   j   o   t   )rT   rU   rV   M   R   W   \   a   f   k   p   u   )r^   r_   r`   N   S   X   ]   b   g   l   q   v   )rh   ri   rj   O   T   Y   ^   c   h   m   r   w   )rs   rt   ru   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   )rC   rM   rW   ra   rl   )rD   rN   rX   rb   rm   )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   )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.   r@   s        r8   export_col2im_5dzCol2Im.export_col2im_5d  ss    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____doc__staticmethodr9   rA   ry   r   r    r:   r8   r   r      ss    
 &
 &
P ,
 ,
\ x
 x
t (
 (
T K
 K
r:   r   )

__future__r   numpyr/   r4   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r   r:   r8   <module>r      s$    #   , .P
T P
r:   