o
    e                     @   s   d dl Zd dlmZ d dlmZ d dl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S )    N)block_reduce)testing)assert_equalc                  C   s|   t ddd} t| d}t ddgddgg}t|| t dd	d
}t|d}t g dg dg}t|| d S )N               *   `   r   (         r
   r
   )Q   l   W   )         )nparangereshaper   arrayr   image1out1	expected1image2out2	expected2 r#   PD:\Projects\ConvertPro\env\Lib\site-packages\skimage/measure/tests/test_block.pytest_block_reduce_sum   s   




r%   c                  C   s   t ddd} t| dt jd}t ddgdd	gg}t|| t d
dd}t|dt jd}t ddgddgg}t|| d S )Nr   r   r   r   func      @      @      0@      3@r   r   r   r   r         ,@g%@g      !@g@)r   r   r   r   meanr   r   r   r#   r#   r$   test_block_reduce_mean      


r/   c                  C   s   t ddd} t| dt jd}t ddgdd	gg}t|| t d
dd}t|dt jd}t ddgddgg}t|| t g dg dg}t|dt jd}td| d S )Nr   r   r   r   r&   r(   r)   r*   r+   r   r   r   r,   r-   g      @g        )   r   r   r   )r   r   r   i  )r	   r   )r   r   r   r   Zmedianr   r   )r   r   r   r    r!   r"   Zimage3Zout3r#   r#   r$   test_block_reduce_median$   s   



r2   c                  C   s   t ddd} t| dt jd}t ddgdd	gg}t|| t d
dd}t|dt jd}t ddgddgg}t|| d S )Nr   r   r   r   r&   r   r
         r   r   r   r,   r   r   r   r   minr   r   r   r#   r#   r$   test_block_reduce_min6   r0   r7   c                  C   s   t ddd} t| dt jd}t ddgdd	gg}t|| t d
dd}t|dt jd}t ddgddgg}t|| d S )Nr   r   r   r   r&   r            r   r   r,         $   '   )r   r   r   r   maxr   r   r   r#   r#   r$   test_block_reduce_maxD   r0   r@   c                  C   s   t ddd} tt t| g d W d    n1 s w   Y  tt t| ddg W d    d S 1 s=w   Y  d S )Nr   r   r   )r1   r	   r
   r1   g      ?)r   r   r   r   Zraises
ValueErrorr   )imager#   r#   r$   test_invalid_block_sizeR   s   "rC   c                  C   sD   t ddd} t| t jd}t g dg dg}t|| d S )Nr   r   r   r&   )r   r	   r   )r3         r5   rB   outexpectedr#   r#   r$   test_default_block_size[   s   
rI   c                  C   s`   t ddd} t| dt jd}t ddgddgg}t|| t| dt jd}t|| d S )	Nr=   r   r
   r&   r         r   r5   )rB   rG   r   r"   r#   r#   r$   test_scalar_block_sizec   s   

rL   c                  C   sz   t jg dg dg dg dgt jd} t| dt jdt jid}t jd	d
gddggt jd}t|| |j|jks;J d S )N)a   {         )            )   r8      5   )rT      e   9   dtyper	   r	   r\   r'   Zfunc_kwargs)   rE       r<   )r   r   Zuint8r   r.   r   r\   rF   r#   r#   r$   test_func_kwargs_same_dtypem   s   


ra   c                  C   sz   t jg dg dg dg dgt jd} t| dt jdt jid}t jd	d
gddggt jd}t|| |j|jks;J d S )N)gHF?gn?gkj?g>p:n$?)g?gM;Es?g7I+?gY#F?)g7X?g:;`H?gIg/?g|?)g;aWR?gcXt?g1V8?g*.eQ?r[   r]   r\   r^   gV-?g??g9m4?gy&1?)r   r   Zfloat64r   r.   Zfloat16r   r\   rF   r#   r#   r$    test_func_kwargs_different_dtype{   s   


rb   )numpyr   Zskimage.measurer   Zskimage._sharedr   Zskimage._shared.testingr   r%   r/   r2   r7   r@   rC   rI   rL   ra   rb   r#   r#   r#   r$   <module>   s    	
