o
    &?e                     @   s   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dZdd Zd	d
 Zdd Zdd Zdd Zejdejejfejddejdddd Zejddejddejd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                  C   s   t dddt} t| d}tt| dddddid	}t|| d
d }t| ddd}t|| ddd}t|| t| ddd}t|t	j
| ddddd}t|t jsVJ t|| d S )N            r      r   modereflect)chunksdepthextra_argumentsextra_keywordsc                 S      t | dddS )N   r   r   r   Zarr r   g/home/www/facesmatcher.com/pyenv/lib/python3.10/site-packages/skimage/util/tests/test_apply_parallel.pywrapped_gauss      z*test_apply_parallel.<locals>.wrapped_gaussr   r   )r   r   r   T)r   compute)nparangereshapeastypefloatr   r	   r   r   da
from_array
isinstanceZndarray)a	expected1result1r   Z	expected2result2Z	expected3Zresult3r   r   r   test_apply_parallel   s"   



r.   c               	   C   s   t dddt} tj| dd}t| d}tt| ddddd	id
d}tt|dddd	id}t	|tj
s8J t| | t	|tj
sGJ 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)   ZArrayr   r!   )r*   dr+   r,   r-   r   r   r   test_apply_parallel_lazy)   s    

r0   c                  C   s>   t ddddd} dd }|| }t|| }t|| d S )Ni   r         	   c                 S   s   | d S )N*   r   r   r   r   r   add_42F   s   ztest_no_chunks.<locals>.add_42)r"   Zonesr$   r	   r   )r*   r5   expectedresultr   r   r   test_no_chunksC   s
   
r8   c                  C   sN   dd } t dddt}t|ddd}t| |dd	dd
}t|| d S )Nc                 S   r   )Nr   wrapr   r   r   r   r   r   wrappedP   r   z)test_apply_parallel_wrap.<locals>.wrappedr
   r   r   r9   r   r   r   r   r   r   r"   r#   r$   r%   r&   r   r	   r   r:   r*   r6   r7   r   r   r   test_apply_parallel_wrapO   s
   r>   c                  C   sT   dd } t dddt}t|ddd}t| |dd	d	d
dd}t|| d S )Nc                 S   r   )Nr   nearestr   r   r   r   r   r   r:   Z   r   z,test_apply_parallel_nearest.<locals>.wrappedr
   r   r   r?   r   r   r   )r   r   r;   r<   r=   r   r   r   test_apply_parallel_nearestY   s   r@   dtyper   )N)   rB   r   r   )r   r2   )r2   r2   r   c                 C   sP   t  |d }tj}||}t|||| |dd}t|j|j t|| d S )Ng     o@)r   r   rA   channel_axis)	r   chelsear%   r   	rgb2ycbcrr	   r   rA   r   )r   r   rA   catfunccat_ycbcr_expected	cat_ycbcrr   r   r   test_apply_parallel_rgbd   s   
rK   )N)rB      ndim)r   r2   )r2      rM   rD   )r   r      rC   c              
   C   s   t t }tj}||dd}t|d|}|dkr*ddg}|||j |j	|  | dkr;ddg} | ||j d t
|||| |j|t|dd}t||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
    rC   )rD   rM   rB   r2   r   )r   r   rA   rD   r   N)r   r   rE   r   rF   r"   ZmoveaxisinsertrM   shaper	   rA   dictr   )r   r   rD   rG   rH   rI   rJ   r   r   r   $test_apply_parallel_rgb_channel_axist   s    
rU   )numpyr"   Zskimage._shared.testingr   r   Zskimager   r   r   Zskimage.filtersr   r   Zskimage.util.apply_parallelr	   ZpytestZimportorskipr'   r.   r0   r8   r>   r@   markZparametrizeZfloat32Zfloat64rK   rU   r   r   r   r   <module>   s(    

