
    a6d                     n    d dl Zd dlmZ d dlmZ d dlmZ d Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zd ZdS )    N)block_reduce)testing)assert_equalc                     t          j        d                              dd          } t          | d          }t          j        ddgddgg          }t          ||           t          j        d                              d	d
          }t          |d          }t          j        g dg dg          }t          ||           d S )N               *   `   r   (         r   r   )Q   l   W   )         )nparangereshaper   arrayr   image1out1	expected1image2out2	expected2s         @lib/python3.11/site-packages/skimage/measure/tests/test_block.pytest_block_reduce_sumr&      s    Yu%%a++F''DB**& ' 'ID!!!Yu%%a++F''D///)//+ , ,ID!!!!!    c                     t          j        d                              dd          } t          | dt           j                  }t          j        ddgdd	gg          }t          ||           t          j        d
                              dd          }t          |dt           j                  }t          j        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   s         r%   test_block_reduce_meanr2      s    Yu%%a++FRW555DR2,#,( ) )ID!!!Yu%%a++FRW555D3,#,( ) )ID!!!!!r'   c                  J   t          j        d                              dd          } t          | dt           j                  }t          j        ddgdd	gg          }t          ||           t          j        d
                              dd          }t          |dt           j                  }t          j        ddgddgg          }t          ||           t          j        g dg dg          }t          |dt           j                  }t          d|           d S )Nr   r   r	   r
   r)   r+   r,   r-   r.   r   r   r   r/   r0   g      @g        )   r   r   r   )r   r   r   i  )r   r   )r   r   r   r   medianr   r   )r   r    r!   r"   r#   r$   image3out3s           r%   test_block_reduce_medianr8   $   s   Yu%%a++FRY777DR2,#,( ) )ID!!!Yu%%a++FRY777DC#,",( ) )ID!!!X|||___566FRY777DDr'   c                     t          j        d                              dd          } t          | dt           j                  }t          j        ddgdd	gg          }t          ||           t          j        d
                              dd          }t          |dt           j                  }t          j        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   s         r%   test_block_reduce_minr>   6   s    Yu%%a++FRV444DAq'r($ % %ID!!!Yu%%a++FRV444D1a&a&" # #ID!!!!!r'   c                     t          j        d                              dd          } t          | dt           j                  }t          j        ddgdd	gg          }t          ||           t          j        d
                              dd          }t          |dt           j                  }t          j        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   s         r%   test_block_reduce_maxrH   D   s    Yu%%a++FRV444DAr(r($ % %ID!!!Yu%%a++FRV444D2r(r($ % %ID!!!!!r'   c                  d   t          j        d                              dd          } t          j        t
                    5  t          | g d           d d d            n# 1 swxY w Y   t          j        t
                    5  t          | ddg           d d d            d S # 1 swxY w Y   d S )Nr   r   r	   )r4   r   r   r4   g      ?)r   r   r   r   raises
ValueErrorr   )images    r%   test_invalid_block_sizerM   R   s"   Ie$$Q**E	
	#	# ' 'UIII&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '	
	#	# & &UQH%%%& & & & & & & & & & & & & & & & & &s$   A!!A%(A%B%%B),B)c                      t          j        d                              dd          } t          | t           j                  }t          j        g dg dg          }t          ||           d S )Nr   r   r	   r)   )r   r   r   )r:         r<   rL   outexpecteds      r%   test_default_block_sizerT   [   sn    Ie$$Q**E
u26
*
*
*Cx%' ( (H3r'   c                  :   t          j        d                              dd          } t          | dt           j                  }t          j        ddgddgg          }t          ||           t          | dt           j                  }t          ||           d S )	NrE   r	   r   r)   r         r   r<   )rL   rR   r!   r$   s       r%   test_scalar_block_sizerX   c   s    Ie$$Q**E
uabf
-
-
-C1a&b# $ $IC   UF888IC     r'   c                  @   t          j        g dg dg dg dgt           j                  } t          | dt           j        dt           j        i          }t          j        d	d
gddggt           j                  }t          ||           |j        |j        k    sJ d S )N)a   {         )            )   r@      5   )ra      e   9   dtyper   r   ri   r*   func_kwargs)   rP       rD   )r   r   uint8r   r1   r   ri   rQ   s      r%   test_func_kwargs_same_dtyperp   m   s    H))))))))))))+ 35(< < <E
 uf27$+RX#68 8 8Cx"bB8,BH===Hh9&&&&&&r'   c                  @   t          j        g dg dg dg dgt           j                  } t          | dt           j        dt           j        i          }t          j        d	d
gddggt           j                  }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?rh   rj   ri   rk   gV-?g??g9m4?gy&1?)r   r   float64r   r1   float16r   ri   rQ   s      r%    test_func_kwargs_different_dtypert   {   s    HEEEEEEFFFFFFH :	' ' 'E uf27$+RZ#8: : :Cx&&)FE?;2:NNNHh9&&&&&&r'   )numpyr   skimage.measurer   skimage._sharedr   skimage._shared.testingr   r&   r2   r8   r>   rH   rM   rT   rX   rp   rt    r'   r%   <module>rz      s        ( ( ( ( ( ( # # # # # # 0 0 0 0 0 0" " "" " "  $" " "" " "& & &     ! ! !' ' '' ' ' ' 'r'   