
    9i                     B   S SK rS SKJrJr  S SKJrJrJr  S SK	J
r
Jr  S SKJr  S SKr\R                  " S5      rS rS rS	 rS
 rS r\R,                  R/                  S\R0                  \R2                  45      \R,                  R/                  SS5      \R,                  R/                  SS5      S 5       5       5       r\R,                  R/                  SS5      \R,                  R/                  SS5      \R,                  R/                  SS5      S 5       5       5       rg)    N)assert_array_almost_equalassert_equal)colordataimg_as_float)threshold_localgaussian)apply_parallelz
dask.arrayc            	         [         R                  " S5      R                  SS5      R                  [        5      n [        U S5      n[        [
        U SSSSS0S	9n[        X!5        S
 n[        U SSS9n[        X0SSS9n[        XT5        [        U SSS9n[        U[        R                  U SS9SSS9n[        U[         R                  5      (       d   e[        Xv5        g )N            r      r   modereflect)chunksdepthextra_argumentsextra_keywordsc                     [        U SSS9$ )N   r   sigmar   r	   arrs    f/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/skimage/util/tests/test_apply_parallel.pywrapped_gauss*test_apply_parallel.<locals>.wrapped_gauss       1955    r   r   )r   r   r   T)r   compute)nparangereshapeastypefloatr   r
   r   r	   da
from_array
isinstancendarray)a	expected1result1r!   	expected2result2	expected3result3s           r    test_apply_parallelr7      s    
		#r2&--e4A  1%I		*G g16 !)4I]fAFGg1!)4Ir}}Qv}6aG grzz****g1r$   c            
         [         R                  " S5      R                  SS5      R                  [        5      n [
        R                  U SS9n[        U S5      n[        [        U SSSSS	0S
S9n[        [        USSSS	0S9n[        U[
        R                  5      (       d   e[        UR                  5       U5        [        U[
        R                  5      (       d   e[        UR                  5       U5        g )Nr   r   r   r%   r   r   r   r   r   F)r   r   r   r   r&   )r   r   r   )r'   r(   r)   r*   r+   r,   r-   r   r
   r.   Arrayr   r&   )r0   dr1   r2   r4   s        r    test_apply_parallel_lazyr;   /   s    
		#r2&--e4A
a'A  1%I		*G 		*G grxx((((goo/;grxx((((goo/;r$   c                      [         R                  " S5      R                  SSSS5      n S nU" U 5      n[        X5      n[	        X25        g )Ni   r         	   c                     U S-   $ )N*    r   s    r    add_42test_no_chunks.<locals>.add_42U   s    Rxr$   )r'   onesr)   r
   r   )r0   rC   expectedresults       r    test_no_chunksrH   R   sC    
&&q!Q2A ayHF&Ff/r$   c                      S n [         R                  " S5      R                  SS5      R                  [        5      n[        USSS9n[        XSSSS	9n[        X25        g )
Nc                     [        U SSS9$ )Nr   wrapr   r   r   s    r    wrapped)test_apply_parallel_wrap.<locals>.wrapped_   s    1622r$   r   r   r   rK   r   r   r   r   r   r   r'   r(   r)   r*   r+   r	   r
   r   rL   r0   rF   rG   s       r    test_apply_parallel_wraprQ   ^   sT    3 			#r2&--e4A0HGvQVLFf/r$   c                      S n [         R                  " S5      R                  SS5      R                  [        5      n[        USSS9n[        XSSSS	.SS
9n[        X25        g )Nc                     [        U SSS9$ )Nr   nearestr   r   r   s    r    rL   ,test_apply_parallel_nearest.<locals>.wrappedj   r#   r$   r   r   r   rT   r   r   r   )r   r   rN   rO   rP   s       r    test_apply_parallel_nearestrV   i   s]    6 			#r2&--e4A3H6Q1IF f/r$   dtyper   )N)   rX   r   r   )r   r>   )r>   r>   r   c           	          [         R                  " 5       R                  U5      S-  n[        R                  nU" U5      n[        XCXUSS9n[        UR                  UR                  5        [        XV5        g )Ng     o@)r   r   rW   channel_axis)	r   chelsear*   r   	rgb2ycbcrr
   r   rW   r   )r   r   rW   catfunccat_ycbcr_expected	cat_ycbcrs          r    test_apply_parallel_rgbrb   v   sb     ,,.


&
.C??Dc&UI #)),0<r$   )N)rX      ndim)r   r>   )r>      rd   r[   )r   r      rZ   c                    [        [        R                  " 5       5      n[        R                  nU" USS9n[
        R                  " USU5      nUS:X  a/  SS/nUR                  X#R                  -  UR                  U   5        U S:X  a"  SS/n U R                  X#R                  -  S5        [        UUUU UR                  U[        US9S9n[
        R                  " XbS5      n[        XV5        g)	zTest channel_axis combinations.

For depth and chunks, test in three ways:
1.) scalar (to be applied over all axes)
2.) tuple of length ``image.ndim - 1`` corresponding to spatial axes
3.) tuple of length ``image.ndim`` corresponding to all axes
rZ   )r[   rd   rX   r>   r   )r   r   rW   r[   r   N)r   r   r\   r   r]   r'   moveaxisinsertrd   shaper
   rW   dictr   )r   r   r[   r^   r_   r`   ra   s          r    $test_apply_parallel_rgb_channel_axisrn      s     t||~
&C??Dc3 ++c2|
,CslXX-syy/FGA\HH,a0ii!6I IR8I0<r$   )numpyr'   skimage._shared.testingr   r   skimager   r   r   skimage.filtersr   r	   skimage.util.apply_parallelr
   pytestimportorskipr,   r7   r;   rH   rQ   rV   markparametrizefloat32float64rb   rn   rB   r$   r    <module>rz      s    K - - 5 6 &2D <F	00
0 2::rzz":;#89"34= 5 : <= #=>"9:)>?#= @ ; ?#=r$   