
    a6ds                         d dl Zd dlmZ d dlmZ d dlmZmZ d Z	d Z
d Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )    N)testing)assert_equal)view_as_blocksview_as_windowsc                      t          j        d          } t          j        t                    5  t          | dg           d d d            d S # 1 swxY w Y   d S )N
      )nparanger   raises	TypeErrorr   As    =lib/python3.11/site-packages/skimage/util/tests/test_shape.py%test_view_as_blocks_block_not_a_tupler      s    
	"A			"	"  q1#                 s   AAAc                      t          j        d          } t          j        t                    5  t          | d           d d d            d S # 1 swxY w Y   d S )Nr   )r
   r   r   r   
ValueErrorr   r   s    r   "test_view_as_blocks_negative_shaper          
	"A	
	#	# ! !q%   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !   AAAc                      t          j        d          } t          j        t                    5  t          | d           d d d            d S # 1 swxY w Y   d S Nr      r   r   s    r   #test_view_as_blocks_block_too_larger      r   r   c                      t          j        d          } t          j        t                    5  t          | d           d d d            d S # 1 swxY w Y   d S Nr      r!   r   r   s    r   )test_view_as_blocks_wrong_block_dimensionr"      s    
	"A	
	#	# " "q&!!!" " " " " " " " " " " " " " " " " "r   c                      t          j        d          } t          j        t                    5  t          | d           d d d            d S # 1 swxY w Y   d S )Nr      r   r   s    r   .test_view_as_blocks_1D_array_wrong_block_shaper&       s    
	"A	
	#	#    q$                                   r   c                      t          j        d          } t          | d          }t          |t          j        g dg dg                     d S )Nr   )r	   )r      r!   r%      )r	            	   )r
   r   r   r   arrayr   Bs     r   test_view_as_blocks_1D_arrayr1   &   s\    
	"Aq$ABHooo-oo/ 0 0 1 1 1 1 1    c                      t          j        d                              dd          } t          | d          }t	          |d         t          j        ddgddgg                     t	          |d	         d
           d S )N   r)   r    )r   r(   r!   r%   r*   r+   )r(   r   r(   r(      )r
   r   reshaper   r   r.   r/   s     r   test_view_as_blocks_2D_arrayr7   -   s    
	%  A&&Aq&!!A4"(QF%&F$, - - . . .:#####r2   c            	         t          j        d                              ddd          } t          | d          }t	          |j        d           t	          |dd ddf         t          j        dd	gd
dgggddgddgggg                     d S )N`   r)   r*   )r(   r!   r!   )r)   r!   r%   r(   r!   r!   r!   r   4   5   :   ;   L   M   R   S   )r
   r   r6   r   r   shaper.   r/   s     r   test_view_as_blocks_3D_arrayrC   5   s    
	)$$Q1--Aq)$$A,---122q!8bh2r(+-r(*4 )5+-r(+-r(*4 )5(6 7 7 8 8 8 8 8r2   c                      g d} t          j        t                    5  t          | d           d d d            d S # 1 swxY w Y   d S )N)r(   r!   r%   r)   r	   )r!   )r   r   r   r   r   s    r   $test_view_as_windows_input_not_arrayrE   ?   s    A			"	" ! !4   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s   <A A c                      t          j        d          } t          j        t                    5  t          | d           d d d            d S # 1 swxY w Y   d S r   r
   r   r   r   r   r   r   s    r   +test_view_as_windows_wrong_window_dimensionrH   E   s    
	"A	
	#	# # #6"""# # # # # # # # # # # # # # # # # #r   c                      t          j        d          } t          j        t                    5  t          | d           d d d            d S # 1 swxY w Y   d S )Nr   )rG   r   s    r   +test_view_as_windows_negative_window_lengthrK   K       
	"A	
	#	# " "5!!!" " " " " " " " " " " " " " " " " "r   c                      t          j        d          } t          j        t                    5  t          | d           d d d            d S # 1 swxY w Y   d S r   rG   r   s    r   %test_view_as_windows_window_too_largerN   Q   rL   r   c                      t          j        d          } t          j        t                    5  t          | dd           d d d            d S # 1 swxY w Y   d S )Nr   r   g?steprG   r   s    r   #test_view_as_windows_step_below_onerR   W   s    
	"A	
	#	# , ,5s++++, , , , , , , , , , , , , , , , , ,s   AAAc                      t          j        d          } d}t          | |          }t          |t          j        g dg dg dg dg dg dg d	g d
g                     d S )Nr   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   window_shaper0   s      r   test_view_as_windows_1DrZ   ]   s    
	"AL<((ABHiii'ii'ii'ii'ii'ii'ii'ii) * * + + + + +r2   c                  T   t          j        d                              dd          } d}t          | |          }t	          |j        d           t	          |t          j        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g                     d S )N   r	   r)   )r)   r%   )r!   r!   r)   r%   rT   rV   )r,   r-   r   )   r5      rU   rW   )r-   r   r   )r5   r^      )r4         )r`   ra      )r
   r   r6   r   r   rB   r.   rX   s      r   test_view_as_windows_2Drc   k   s   
	%  A&&AL<((A,'''BH + + , . !, + + , .	/ !, + , , . !, + , , .	/0 1 1 2 2 2 2 2r2   c                  "   t          j        d                              d          } t          | dd          }t	          |ddgddggdd	gd
dgggddgddggddgddgggg           t          | dd          }t	          |j        d           d S )Nr\   )r	   r)   r!   rP   r   r(   r)   r	   r%   r*   r+   r,   r-   r]   r5   r   r   r^   r_   )r(   r(   r!   r!   )r
   r   r6   r   r   rB   r   r0   Cs      r   test_view_as_windows_with_skiprg      s    
	"f%%A11%%%A1v1v1v1v  1vBx!BxBx!"	# $ $ $ 	11%%%A,'''''r2   c                     t          j        d                              d          } | d d dd d f         } t          | d          }t	          | d          }t          |           t          |           ddgddggdd	gd
dgggg}ddgddggddgdd
ggdd	gd
dgggg}t          ||           t          ||           d S )Nr4   )r)   r)   r!   r    r   r(   r,   r-   r%   r   r   )r
   r   r6   r   r   printr   )r   res_bres_w
expected_b
expected_ws        r   test_views_non_contiguousrn      s	   
	"f%%A	##A#qqq&	A1f%%EAv&&E	%LLL	%LLLGGGH  J
 !H!H!HH!HH	  J 
###
#####r2   c            	         t          j        d                              d          } t          | dd          }|j        dk    sJ |j        | j        k    sJ t          | dd          }|j        dk    sJ |j        | j        k    sJ t          |dd	gd
dgddggddgddgddgggddgddgddggddgddgddgggg           d S )N   )r*   r)   )r%   r!   r%   rP   )r!   r(   r%   r!   )r!   r!   r%   r!   r   r(   r)   r	   r,   r-   r!   r*   r+   r   r   r]   r5   r4   r`   r\      r^   r_   ra   rb         )r
   r   r6   r   rB   sizer   re   s      r   test_view_as_windows_step_tupleru      s/   
	"f%%A6***A7l""""6QV6///A7l""""6QVAwAwAw  AwAwBx!" BxBxBx! BxBxBx!"# $ $ $ $ $r2   )numpyr
   skimage._sharedr   skimage._shared.testingr   skimage.util.shaper   r   r   r   r   r"   r&   r1   r7   rC   rE   rH   rK   rN   rR   rZ   rc   rg   rn   ru    r2   r   <module>r{      se       # # # # # # 0 0 0 0 0 0 > > > > > > > >  ! ! !! ! !" " "     1 1 1$ $ $8 8 8! ! !# # #" " "" " ", , ,+ + +2 2 2.( ( ( $ $ $2$ $ $ $ $r2   