U
    ?hs                     @   s   d dl Zd dlmZ d dlmZ d dlmZmZ dd Z	dd Z
d	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( ZdS ))    N)testing)assert_equal)view_as_blocksview_as_windowsc               	   C   s0   t d} tt t| dg W 5 Q R X d S )N
      )nparanger   raises	TypeErrorr   A r   O/var/www/html/venv/lib/python3.8/site-packages/skimage/util/tests/test_shape.py%test_view_as_blocks_block_not_a_tuple   s    
r   c               	   C   s.   t d} tt t| d W 5 Q R X d S )Nr   )r   r	   r   r
   
ValueErrorr   r   r   r   r   "test_view_as_blocks_negative_shape   s    
r   c               	   C   s.   t d} tt t| d W 5 Q R X d S Nr      r   r   r   r   r   #test_view_as_blocks_block_too_large   s    
r   c               	   C   s.   t d} tt t| d W 5 Q R X d S Nr      r   r   r   r   r   r   )test_view_as_blocks_wrong_block_dimension   s    
r   c               	   C   s.   t d} tt t| d W 5 Q R X d S )Nr      r   r   r   r   r   .test_view_as_blocks_1D_array_wrong_block_shape    s    
r   c               
   C   s@   t d} t| d}t|t dddddgdd	d
ddgg d S )Nr   )r   r      r   r      r            	   )r   r	   r   r   arrayr   Br   r   r   test_view_as_blocks_1D_array&   s
    

r)   c                  C   sN   t ddd} t| d}t|d t 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'   r   r   r   test_view_as_blocks_2D_array-   s    
r-   c                  C   sl   t dddd} t| d}t|jd t|dd ddf t 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	   r,   r   r   shaper&   r'   r   r   r   test_view_as_blocks_3D_array5   s    
r8   c               	   C   s2   dddddg} t t t| d W 5 Q R X d S )Nr    r   r   r!   r   )r   )r   r
   r   r   r   r   r   r   $test_view_as_windows_input_not_array?   s    r9   c               	   C   s.   t d} tt t| d W 5 Q R X d S r   r   r	   r   r
   r   r   r   r   r   r   +test_view_as_windows_wrong_window_dimensionE   s    
r;   c               	   C   s.   t d} tt t| d W 5 Q R X d S )Nr   )r:   r   r   r   r   +test_view_as_windows_negative_window_lengthK   s    
r=   c               	   C   s.   t d} tt t| d W 5 Q R X d S r   r:   r   r   r   r   %test_view_as_windows_window_too_largeQ   s    
r>   c               	   C   s2   t d} tt t| ddd W 5 Q R X d S )Nr   r   g?stepr:   r   r   r   r   #test_view_as_windows_step_below_oneW   s    
rA   c                  C   sl   t d} d}t| |}t|t dddgdddgdddgdddgddd	gdd	d
gd	d
dgd
ddgg d S )Nr   r   r   r    r   r   r!   r   r"   r#   r$   r%   )r   r	   r   r   r&   r   Zwindow_shaper(   r   r   r   test_view_as_windows_1D]   s    

rC   c                  C   s   t ddd} d}t| |}t|jd t|t dddgddd	gd
ddgdddggdddgdd	dgdddgdddgggddd	gd
ddgdddgdddggdd	dgdddgdddgdddgggg 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   r7   r&   rB   r   r   r   test_view_as_windows_2Dk   s6    
rK   c                  C   s   t dd} t| d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d}t|jd d S )NrD   )r   r!   r   r?   r   r    r!   r   r   r"   r#   r$   r%   rE   r+   r   r   rF   rG   )r    r    r   r   )r   r	   r,   r   r   r7   r   r(   Cr   r   r   test_view_as_windows_with_skip   s&    
	rN   c                  C   s   t 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 )Nr*   )r!   r!   r   r   r   r    r$   r%   r   r   r   )r   r	   r,   r   r   printr   )r   Zres_bZres_wZ
expected_bZ
expected_wr   r   r   test_views_non_contiguous   s2    


rP   c                  C   s   t dd} t| ddd}|jdks,t|j| jks<tt| ddd}|jdksXt|j| jksht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   r?   )r   r    r   r   )r   r   r   r   r   r    r!   r   r$   r%   r   r"   r#   r   r   rE   r+   r*   rH   rD      rF   rG   rI   rJ         )r   r	   r,   r   r7   AssertionErrorsizer   rL   r   r   r   test_view_as_windows_step_tuple   s4    
rW   )numpyr   Zskimage._sharedr   Zskimage._shared.testingr   Zskimage.util.shaper   r   r   r   r   r   r   r)   r-   r8   r9   r;   r=   r>   rA   rC   rK   rN   rP   rW   r   r   r   r   <module>   s*   
