
    1-Ph                     D   d dl Zd dlmZmZ d dlmZmZmZ d dl	m
Z
mZ d dlmZ d dlZ ej        d          Zd Zd Zd	 Zd
 Zd Zej                            dej        ej        f          ej                            dd          ej                            dd          d                                     Zej                            dd          ej                            dd          ej                            dd          d                                     ZdS )    N)assert_array_almost_equalassert_equal)colordataimg_as_float)threshold_localgaussian)apply_parallelz
dask.arrayc            	      D   t          j        d                              dd                              t                    } t          | d          }t          t
          | dddddi	          }t          ||           d
 }t          | dd          }t          || dd          }t          ||           t          | dd          }t          |t          
                    | d          dd          }t          |t           j                  sJ t          ||           d S )N            r      r   modereflect)chunksdepthextra_argumentsextra_keywordsc                 &    t          | dd          S )N   r   sigmar   r	   arrs    f/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/skimage/util/tests/test_apply_parallel.pywrapped_gaussz*test_apply_parallel.<locals>.wrapped_gauss       1955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_parallelr6      s7   
	#r2&&--e44A  1%%I		*  G gy1116 6 6 !)444I]AfAFFFGgy111!)444Ir}}Qv}66a  G grz*****gy11111r#   c            	      F   t          j        d                              dd                              t                    } t
                              | d          }t          | d          }t          t          | ddddd	id
          }t          t          |dddd	i          }t          |t
          j
                  sJ t          |                                |           t          |t
          j
                  sJ t          |                                |           d S )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%   )r/   dr0   r1   r3   s        r    test_apply_parallel_lazyr:   /   s   
	#r2&&--e44A
a''A  1%%I		*  G 		*  G grx(((((goo//;;;grx(((((goo//;;;;;r#   c                      t          j        d                              dddd          } d } ||           }t          ||           }t	          ||           d S )Ni   r         	   c                     | dz   S )N*    r   s    r    add_42ztest_no_chunks.<locals>.add_42U   s    Rxr#   )r&   onesr(   r
   r   )r/   rB   expectedresults       r    test_no_chunksrF   R   sh    
&&q!Q22A   vayyHFA&&Ffh/////r#   c                      d } t          j        d                              dd                              t                    }t          |dd          }t          | |ddd	          }t          ||           d S )
Nc                 &    t          | dd          S )Nr   wrapr   r   r   s    r    wrappedz)test_apply_parallel_wrap.<locals>.wrapped_   s    162222r#   r   r   r   rI   r   r   r   r   r   r   r&   r'   r(   r)   r*   r	   r
   r   rJ   r/   rD   rE   s       r    test_apply_parallel_wraprN   ^   s    3 3 3 		#r2&&--e44A000HGQvQVLLLFfh/////r#   c                      d } t          j        d                              dd                              t                    }t          |dd          }t          | |dddd	d
          }t          ||           d S )Nc                 &    t          | dd          S )Nr   nearestr   r   r   s    r    rJ   z,test_apply_parallel_nearest.<locals>.wrappedj   r"   r#   r   r   r   rQ   r   r   r   )r   r   rK   rL   rM   s       r    test_apply_parallel_nearestrR   i   s    6 6 6 		#r2&&--e44A333H6Q1I  F fh/////r#   dtyper   )N)   rT   r   r   )r   r=   )r=   r=   r   c                    t          j                                        |          dz  }t          j        } ||          }t          |||| |d          }t          |j        |j                   t          ||           d S )Ng     o@)r   r   rS   channel_axis)	r   chelsear)   r   	rgb2ycbcrr
   r   rS   r   )r   r   rS   catfunccat_ycbcr_expected	cat_ycbcrs          r    test_apply_parallel_rgbr^   v   s     ,..


&
&
.C?Dcc&U  I #),,,0)<<<<<r#   )N)rT      ndim)r   r=   )r=      r`   rW   )r   r      rV   c                    t          t          j                              }t          j        } ||d          }t          j        |d|          }|dk    r-ddg}|                    ||j        z  |j	        |                    | dk    r"ddg} |                     ||j        z  d           t          |||| |j        |t          |                    }t          j        ||d          }t          ||           dS )	a
  Test 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
    rV   )rW   r`   rT   r=   r   )r   r   rS   rW   r   N)r   r   rX   r   rY   r&   moveaxisinsertr`   shaper
   rS   dictr   )r   r   rW   rZ   r[   r\   r]   s          r    $test_apply_parallel_rgb_channel_axisrj      s    t|~~
&
&C?Dc333 +c2|
,
,CslSX-sy/FGGGA\CH,a000i!666  I I|R88I0)<<<<<r#   )numpyr&   skimage._shared.testingr   r   skimager   r   r   skimage.filtersr   r	   skimage.util.apply_parallelr
   pytestimportorskipr+   r6   r:   rF   rN   rR   markparametrizefloat32float64r^   rj   rA   r#   r    <module>rv      s       K K K K K K K K - - - - - - - - - - 5 5 5 5 5 5 5 5 6 6 6 6 6 6 V&&2 2 2D <  <  <F	0 	0 	00 0 0
0 
0 
0 2:rz":;;#899"344= = 54 :9 <;= #=>>"9::)>??#= #= @? ;: ?>#= #= #=r#   