a
    
d                     @   s   d dl Zd dlZd dlmZmZmZ d dlmZ d dl	m
Z
mZ d dlmZ d dlmZ d dlmZmZ d dlmZ d d	lmZ d d
lmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z# d dl$m%Z%m&Z&m'Z' d dl(m)Z)m*Z* ej+,d  dd Z-dd Z.dd Z/e dd Z0dd Z1dd Z2ej34dg ddd Z5ej34dg ddd Z6ej34de7dd d! Z8ej34de7dd"d# Z9d$d% Z:ej34d&ej;ej<ej=gd'd( Z>d)d* Z?d+d, Z@d-d. ZAd/d0 ZBd1d2 ZCd3d4 ZDd5d6 ZEej34d7g d8d9d: ZFd;d< ZGd=d> ZHd?d@ ZIdAdB ZJdCdD ZKdEdF ZLdGdH ZMdIdJ ZNdKdL ZOej34dd dMgej34dNdOdPgej34dQdOdPgej34d&ej=ejPgdRdS ZQej34d&ej;ej<ej=gdTdU ZRdVdW ZSdXdY ZTdZd[ ZUej34d&ejPejVej;ej<ej=gd\d] ZWd^d_ ZXd`da ZYej34d&ejPejVej;ej<ej=gdbdc ZZddde Z[dfdg Z\ej34d&ejPejVej;ej<ej=gdhdi Z]djdk Z^dldm Z_dndo Z`dpdq Zadrds Zbdtdu Zcdvdw Zdej34d&ej;ej<ej=gdxdy Zeej34d&ej;ej<ej=gdzd{ Zfd|d} Zgd~d Zhdd Zidd Zjdd Zkej34dg ddd Zlej34d&ejPemej<ej=gdd Znej34d&ejPej;ej<ej=gej34dg ddd Zodd Zpej34d7g ddd Zqdd Zrdd Zsdd Ztej34de7dMddd Zudd Zvdd Zwdd Zxej34deyejze{gdd Z|dS )    N)assert_allcloseassert_array_almost_equalassert_array_equal)map_coordinates)expected_warningsrun_in_parallel)_supported_float_type)rgb2gray)checkerboard	astronaut)circle_perimeter_aa)peak_local_max)
_stackcopy_linear_polar_mapping_log_polar_mappingwarpwarp_coordsrotateresizerescale
warp_polarswirldownscale_local_meanresize_local_mean)AffineTransformProjectiveTransformSimilarityTransform)img_as_float_convertc                  C   sN   d} t dd| f}t dd}t|| t| D ]}t|d|f | q2d S )N      .)npemptyeyer   ranger   )Zlayersxyi r(   k/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/skimage/transform/tests/test_warps.pytest_stackcopy   s    
r*   c                  C   st   t jdt jd} d| d< t j d }td|dd}t| |dd}t|t |  t| |jdd}t|t |  d S )	N   r,   dtype      r1   r1   )r   r   )scalerotationtranslationorder)	r!   zerosfloat64pir   r   r   rot90inverse)r%   thetatformx90r(   r(   r)   test_warp_tform&   s    r?   c                  C   sT   t jdt jd} d| d< t jdt jd}d|d< dd }t| |dd}t|| d S )	Nr+   r-   r/   r0   r/   r/   c                 S   s   | d S )Nr/   r(   Zxyr(   r(   r)   shift9   s    z!test_warp_callable.<locals>.shiftr5   )r!   r7   r8   r   r   )r%   refxrB   outxr(   r(   r)   test_warp_callable3   s    rE   c                  C   sv   t jdt jd} d| d< t jdt jd}d|d< t g dg dg dg}t| |dd	}t|| t| |d
d	}d S )Nr+   r-   r/   r0   r@   )r/   r   r/   )r   r/   r/   r   r   r/   r5   r,   )r!   r7   r8   arrayr   r   )r%   rC   matrixrD   r(   r(   r)   test_warp_matrix@   s    
rI   c            	      C   s   t ddD ]} | d }tj|tjd}| d }d||< tj|tjd}| d }d||< | tdd	df }ttj| d }t||ddd
}t|| q
d S )Nr1      )r,   r-   )r1   r/   )r/   r   r,   )r6   cval)	r$   r!   r7   r8   slicerG   Zmgridr   r   )	dimshaper%   Zx_crC   Zrefx_cZ
coord_gridcoordsrD   r(   r(   r)   test_warp_ndP   s    rP   c                  C   sp   t jdt jd} d| d< t| dddddd}| d	k s<J t| ddd
ddd}t| d	 t| d d S )Nr+   r-   r/   r0   r    Fconstant)r6   clipanti_aliasingmoder   T)r!   r7   r8   r   minr   max)r%   rD   r(   r(   r)   test_warp_clipc   s    rW   r6   )r   r/   r    c                 C   sR   t jdt jd}t j|d< t|d| dddd}tt |d tt |d d S )	N   rY   r-   )   rZ   -   r1   Tr6   rK   r   rR   r/   )r!   onesr8   nanr   r   nanminnanmaxr6   r%   rD   r(   r(   r)   $test_warp_clip_image_containing_nansq   s
    
rb   c                 C   s^   t jdt jd}d|ddddf< t|d| t jddd}tt |d	 tt |d d S )
NrX   r-   r1   r,   r[   Tr\   r/   )r!   r]   r8   r   r^   r   r_   r`   ra   r(   r(   r)   test_warp_clip_cval_is_nan   s
    rd      c              	   C   s   t jdt jd}t| dkr dgnd $ t|d| dddd}W d    n1 sP0    Y  t|d |d	 |d
 |d gd | dkrt t d|t |d dksJ d S )NrX   r-   r1   Bi-quadratic.*bugr[   Tr\   r   r   )r   )rh   r   )rh   rh   r   r/   )r!   r]   r8   r   r   r   sumZlessra   r(   r(   r)   'test_warp_clip_cval_outside_input_range   s    2rj   c              	   C   s   t jdt jd}d|ddddf< tddd}t| dkr@d	gnd $ t||d
| ddd}W d    n1 sp0    Y  t| d d S )NrX   r-   r1   r,   rc   g<<<<<<?r@   )r2   r4   rf   rQ   r   T)rT   r6   rK   rR   r/   )r!   r]   r8   r   r   r   r   rU   )r6   r%   Z	transformrD   r(   r(   r)   test_warp_clip_cval_not_used   s    $rk   c                  C   s   t jdt jd} d| d< t j d }t t |t | dgt |t |dgg dg}t| t|j	dd	}t
|t |  d S )
Nr+   r-   r/   r@   r1   r   r   rF   )Zinverse_mapr6   )r!   r7   r8   r9   rG   cossinr   r   r;   r   r:   )r%   r<   Mr>   r(   r(   r)   test_homography   s    ro   r.   c                 C   sF   t jd| d}d|d< t|d}|jt| ks2J t|t | d S )Nr+   r-   r/   r@   Z   )r!   r7   r   r.   r   r   r:   )r.   r%   r>   r(   r(   r)   test_rotate   s
    
rq   c                  C   sL   t jdt jd} t| ddd}|jdks,J t| ddd}|jdksHJ d S )N
   rs   r-   r[   Fr   T   rv   )r!   r7   r8   r   rN   )r%   x45r(   r(   r)   test_rotate_resize   s
    rx   c                  C   sh   t jdt jd} d| d< t jdt jd}d|d< t| dddd	}t|| t|d
ddd	}t||  d S )Nrr   r-   r/   )r   r   )r1   r,      r   rg   )r6   centeri)r!   r7   r8   r   r   )r%   rC   Zx20Zx0r(   r(   r)   test_rotate_center   s    
r{   c                  C   sh   t jdt jd} d| d< t jdt jd}d|d< d|d< t| dd	d
ddd}|jdksZJ t|| d S )Nrr   r-   r/   rg   ru   )re   r   )rZ   r   r[   Tr    r    r   reflect)r   rz   r6   rT   )r!   r7   r8   r   rN   r   )r%   Zref_x45rw   r(   r(   r)   test_rotate_resize_center   s    r~   c                  C   s,   t tjdtjdddd} | jdks(J d S )N)     r-   rp   Trt   )r   r   )r   r!   r7   r8   rN   )r>   r(   r(   r)   test_rotate_resize_90   s    r   c                  C   s   t jdt jd} d| d< t| ddddd	}t d
}d|ddddf< t|| t jdt jd} d| d< t| ddddd	}t d}d|dddf< t|| d S )Nr+   r-   r/   r@   r1   r   FrQ   r6   rS   rT   rr   r   r1   r/   )rs   r,   )r!   r7   r8   r   r   )r%   scaledrefr(   r(   r)   test_rescale   s    


r   c                  C   s   t d} tt" t| dd ddd W d    n1 s<0    Y  tt" t| ddddd W d    n1 sx0    Y  d S )Nrs   rs   r    r0   FrQ   )channel_axisrS   rT   )r1   r1   r1   rh   )r!   r7   pytestraises
ValueErrorr   r%   r(   r(   r)   test_rescale_invalid_scale  s    
$r   c                  C   s   t jdt jd} t| dddddd}|jd	ks2J t| ddd ddd}|jd
ksTJ t jdt jd} t| dddddd}|jdksJ t| ddd ddd}|jdksJ t jdt jd} t| dddddd}|jdksJ t| ddd ddd}|jdksJ d S )NrJ   r    r-   r1   r   rh   FrQ   )r6   r   rS   rT   )   r    r   re   rJ   rJ   r    )r   r   r    r   r   re   )rJ   rJ   rJ   r    )r   r   r   r    )r   r   r   re   r!   r7   r8   r   rN   r%   r   r(   r(   r)   test_rescale_multichannel  s6    r   r   )r   r/   r1   rh   c                 C   sR   t jdt jd}t |d| }t|dd| ddd}t || d}|jd	ksNJ d S )
Nr,   r,   r    r-   rh   r   r   FrQ   )r2   r6   r   rS   rT   )rs   r,   r    )r!   r7   r8   moveaxisr   rN   )r   r%   r   r(   r(   r)   $test_rescale_channel_axis_multiscale8  s    
r   c                  C   sd   t jdt jd} t| ddddd}|jdks0J t jd	t jd} t| ddddd}|jd
ks`J d S )Nr   r-   r1   r   FrQ   r   r   r   r   r   r   r(   r(   r)   "test_rescale_multichannel_defaultsB  s    r   c                  C   sV   t jdt jd} d| d< t| ddddd	}t d}d|d
dd
df< t|| d S )Nr+   r-   r/   r@   rr   r   FrQ   r   r1   r   r!   r7   r8   r   r   r%   resizedr   r(   r(   r)   test_resize2dL  s    

r   c                  C   s   t jdt jd} d| ddd d f< t| ddddd}tt" t| d	dddd W d    n1 sf0    Y  t d
}d|ddddd d f< t|| t| d
dddd}t|| d S )Nr   r-   r/   rr   r   FrQ   r   rs   r   r1   r   )r!   r7   r8   r   r   r   r   r   r   r(   r(   r)   test_resize3d_keepV  s    
0


r   c                  C   s`   t jdt jd} d| ddd d f< t| ddddd}t d}d|d	d
d	d
f< t|| d S )Nr   r-   r/   rs   rs   r/   r   FrQ   r   r1   r   r   r   r(   r(   r)   test_resize3d_resizeg  s    

r   c                  C   sV   t jdt jd} d| d< t| ddddd	}t d}d|d
dd
df< t|| d S )Nr+   r-   r/   r@   r   r   FrQ   r   r1   r   r   r   r(   r(   r)   test_resize3d_2din_3doutr  s    

r   c                  C   s\   t jdt jd} d| d< d}t| |dddd	}t |}d|d
dd
ddf< t|| d S )Nr+   r-   r/   r@   rs   rs   r/   r/   r   FrQ   r   r1   r   .r   r%   	out_shaper   r   r(   r(   r)   test_resize2d_4d}  s    

r   c                  C   sv   t ddD ]f} dt| d  }t|}t|d }t||dddd}d| }t|j| t|dks
J q
d S )	Nr/   re   r1         ?r   r}   Fr6   rT   rS   )	r$   r!   aranger]   asarrayr   r   rN   allrM   rN   r%   r   r   Zexpected_shaper(   r(   r)   test_resize_nd  s    

r   c                  C   s   t jdt jd} d| d< d| d< t| dddd	d
}t d}d|ddddd d f< d|ddddd d f< d|ddddd d f< d|ddddd d f< t|| d S )Nr,   r,   r1   r-   r   r/   r/   r   r/   r/   r/   r/   r   rQ   Fr   g      ?r,   g      ?r1   r   g      ?r   r   r(   r(   r)   test_resize3d_bilinear  s    

r   c                  C   s   t d} | t j}| t j}| t}t| dddj| jksFJ t| dddj| jks`J t|dddjt jkszJ t|dddjt jksJ t|dddjtksJ t|dddjtksJ t|dddj|jksJ t|dddj|jksJ d S Nr+   rr   F)preserve_rangeT)	r!   r7   astypefloat32uint8boolr   r.   r8   r%   Zx_f32Zx_u8Zx_br(   r(   r)   test_resize_dtype  s    

r   r/   r   TFrS   c                 C   st   |t jkr|s| dkrd}nd}t jd|d}|t jkrB|d9 }n
t j|d< t|d| ||d}t ||kspJ d S )	Nr      g      ?r+   r-   rg   r|   )r6   r   rS   )r!   r   r]   NaNr   r`   )r6   r   rS   r.   Zexpected_maxr%   r   r(   r(   r)   test_resize_clip  s    



r   c              	   C   sx  t t j| dd}t| }ddddd}tdgV t|fd	d
i|}t|fd	di|}|j|j  krv|ks|n J W d    n1 s0    Y  tt	|| dk sJ |
d tdgZ t|fd	d
i|}t|fd	di|}|j|j  kr|ksn J W d    n1 s,0    Y  tt	|ddddf |ddddf  dk stJ d S )NFcopyP   r   r1   r}   )radiusr3   r6   rT   rf   Zstrengthrs   g{Gz?rT   r/   rh   )r   r
   r   r   r   r   r.   r!   meanabspop)r.   imagefloat_dtypeZswirl_paramsZswirledZ	unswirledr(   r(   r)   
test_swirl  s    <
Br   c                  C   s@   t jdd} d}t| tdd|d}t ||kdks<J d S )Nd   r   rr   r4   )rK   il  )r!   randomZrandnr   r   ri   )imgrK   warpedr(   r(   r)   test_const_cval_out_of_range  s    r   c                  C   s   t tt } t| jdks J t| t| tdds<J t| t| tddrXJ t	t
| t| | gd}t|tdd}t|t|tddsJ t||rJ td|d d d d df ksJ d S )Nr1   r   )r3   皙?)r/   r1   r   r/   )r   r	   r   lenrN   r!   allcloser   r   Z	transposer   Z
zeros_liker   )r   Zrgb_imgZwarped_rgb_imgr(   r(   r)   test_warp_identity  s    r   c                  C   s\   t  tj} d| jd ks J tdd}t|d}t| d d d d df |d d  d S )Nr    r1   )r   r   r   )   r   r    r   )r   r   r!   r   rN   r   r   r   )r   r=   rO   r(   r(   r)   test_warp_coords_example  s
    

r   c                 C   s  t jd| d}d|ddddf< t|dddd	d
}| t jkrDt jn| }|j|ksVJ |jdksdJ |d dkstJ |dd d d f  dksJ |d d dd f  dksJ t jd| d}d|ddddf< t|dddd	d
}| t jkrt jn| }|j|ksJ |jdksJ |d dks.J |dd d d f  dksPJ |d d dd f  dksrJ t jd| d}t|dddd	d
}t j	
|t d d S )Nrr   r-   r/   r1   r   r+   r   FrQ   r   r@   r    rg   rs   r,   )r!   r7   r   float16r   r.   rN   ri   r#   Ztestingr   r.   r%   r   Zexpected_dtyper(   r(   r)   test_downsize  s*      ""r   c               	   C   sJ  t jdt jd} d| d< t| ddddd}|jdks8J t |d d	d d	f d
ksZJ |d	d d d f  d
kszJ |d d d	d f  d
ksJ d}d}t| |ddd|d t| |ddd|d t| |ddd|d t| |ddd|d t| |ddd|d tt	$ t| |ddd|d W d    n1 s<0    Y  d S )Nrr   r-   r/   r0   r+   TrQ   r   r    r   g      ?)r6   rT   rS   anti_aliasing_sigmaZedgeZ	symmetricr}   wrapznon-existent)
r!   r7   r8   r   rN   r   ri   r   r   r   )r%   r   sigmaZout_sizer(   r(   r)   test_downsize_anti_aliasing  s8    "  





r   c               	   C   s   t jdt jd} tt$ t| dddddd W d    n1 sD0    Y  td	g8 t| d
ddddd t| d
ddddd W d    n1 s0    Y  d S )Nrr   r-   r+   r   Trh   rQ   )r6   rS   r   rT   z(Anti-aliasing standard deviation greater)r,   rY   r@   r}   )r   r/   )r!   r7   r8   r   r   r   r   r   r   r(   r(   r)   *test_downsize_anti_aliasing_invalid_stddev6  s    $

r   c                 C   s   t jd| d}d|ddddf< t|dddd d	d
}| t jkrFt jn| }|j|ksXJ |jdksfJ |d dksvJ |dd d d f  dksJ |d d dd f  dksJ d S )Nrr   r-   r/   r1   r         ?r   FrQ   r6   rS   r   rT   r+   r@   )r!   r7   r   r   r   r.   rN   ri   r   r(   r(   r)   test_downscaleB  s    
 r   c                  C   s   t jdt jd} d| d< t| dddd dd}|jd	ks:J t |d d
d d
f dks\J |d
d d d f  dks|J |d d d
d f  dksJ d S )Nrr   r-   r/   r0   r   TrQ   r   r+   r    r   )r!   r7   r8   r   rN   r   ri   r   r(   r(   r)   test_downscale_anti_aliasingR  s    
" r   c                  C   s*   t jdd} t| d}|jdks&J d S )Nr    r   MbP?r/   )r!   r   randr   size)r   outr(   r(   r)   test_downscale_to_the_limit]  s    
r   c           	      C   s   t jd| ddd}t|d}t | jdkr4| nt j}|j|ksHJ t ddgd	d
gg}t|| t jd| ddd}t|d}|j|ksJ t ddgddgg}| t j	krdnd}t
|||d d S )N   r-   r   re   )r1   r    fg      @g      @g      0@g      3@(   r,   rJ   )r   r,   g      ,@g%@g      !@g@r   gHz>)rtol)r!   r   reshaper   r.   kindr8   rG   r   r   r   )	r.   Zimage1Zout1r   Z	expected1Zimage2Zout2Z	expected2r   r(   r(   r)   test_downscale_local_meand  s     




r   c                   C   s@   t t" ttdt  W d    n1 s20    Y  d S )N)r   r    r    r    )r   r   r   r   r!   r]   r   r(   r(   r(   r)   test_invalidz  s    
r   c                  C   sV   t ddd} t tj| jd}tdddtj}t	t
||t
|| j d S )Nr   r   )r2   r3   )rH   r   rs   )r   r!   Zlinalginvparamsr   r   r   r8   r   r   r;   )r=   Zinverse_tformr   r(   r(   r)   test_inverse  s    r   c                  C   s`   t jdd} tt" t| dd dd W d    n1 s@0    Y  t| dd dd d S )Nr,   c                 S   s   | S Nr(   rA   r(   r(   r)   <lambda>      z.test_slow_warp_nonint_oshape.<locals>.<lambda>)g333333*@g     3@)output_shapec                 S   s   | S r   r(   rA   r(   r(   r)   r     r   )guq *@g9EGr3@)r!   r   r   r   r   r   r   )r   r(   r(   r)   test_slow_warp_nonint_oshape  s    
$r   c               
   C   s   t ddddd} t| dddddd dd}| dks>J | dksNJ t| dddddd dd}| dksvJ | dksJ t| t jdddd dddd	}| dksJ | dksJ d S )
Nr   r1      r,   FTrQ   )r   rR   r6   rT   r   rS   )r   rT   r   rS   rR   r6   )r!   Zlinspacer   r   rU   rV   r   r   )r   r   r(   r(   r)   test_keep_range  s"    r   c                   C   s   t t" ttdt  W d    n1 s20    Y  t t" ttdt  W d    n1 sn0    Y  t t" ttdt  W d    n1 s0    Y  t t" ttdt  W d    n1 s0    Y  d S )Nr   )r   rs   )rs   r   )rs   rs   r   )r   r   r   r   r!   r7   r   r(   r(   r(   r)   test_zero_image_size  s     
"
"
"
r   c                  C   s   t ddgddgddgddgddgddgddgddgg} t ddgddgddgddgddgd	dgdd	gd
d
gg}ddt j  }d	}d}t| |||}t ||sJ d S )Nr   rp        c   r[   r      r/   gA@e@h  r1   r   r   )r!   rG   r9   r   r   Zoutput_coordsZground_truthZk_angleZk_radiusrz   rO   r(   r(   r)   test_linear_polar_mapping  s.    

r   c                  C   s   t ddgddgddgddgddgddgddgddgg} t ddgddgddgddgd	dgd
dgdd
gddgg}ddt j  }dt d }d}t| |||}t ||sJ d S )Nr   rp   r   r   r   r[   e   r   g+oh@gUZ @g1zd@r   r1   r   )r!   rG   r9   logr   r   r   r(   r(   r)   test_log_polar_mapping  s.    

r  c           	         s   g d t ddg} D ]"}tdd|\}}}||||f< q|j| dd}t|dd}|jt| ksjJ |jdd}t|}t	 fd	d
|D sJ d S )N)r,   rs   rY   ry   3   r   Fr   )r   r   Zaxisc                 3   s   | ]}| v V  qd S r   r(   ).0Zpeakradiir(   r)   	<genexpr>  r   z)test_linear_warp_polar.<locals>.<genexpr>)
r!   r7   r   r   r   r.   r   r   r   r   )	r.   r   radrrccvalr   profileZpeaksr(   r  r)   test_linear_warp_polar  s    r  c                 C   s   t dt dt dt dt dd t dd g}dd |D }t ddg}|D ]"}td	d	|\}}}||||f< q\|j| d
d}t|ddd}|jt| ksJ |jdd}t	|}	|	j
dd |	dd  |	d d  }
tdd |
D sJ d S )Nr1   r    r   r,   r/   c                 S   s   g | ]}t |qS r(   )intr  r%   r(   r(   r)   
<listcomp>  r   z'test_log_warp_polar.<locals>.<listcomp>i-     Fr      r  )r   scalingr   r  rh   c                 s   s   | ]}|d ko|dkV  qdS )&   r   Nr(   r  r(   r(   r)   r    r   z&test_log_warp_polar.<locals>.<genexpr>)r!   expr7   r   r   r   r.   r   r   r   sortr   )r.   r  r   r	  r
  r  r  r   r  Zpeaks_coordZgapsr(   r(   r)   test_log_warp_polar  s      r  c                   C   s   t t$ ttdddd W d    n1 s40    Y  t t$ ttddd d W d    n1 sr0    Y  d S )Nrr   r+   invalid)r  r   r   r   r   r!   r7   r(   r(   r(   r)   test_invalid_scaling_polar  s    2r  c                   C   s   t t  ttdd W d    n1 s00    Y  t t$ ttdddd W d    n1 sn0    Y  t t$ ttdddd W d    n1 s0    Y  d S )Nr   r+   rr   rh   r   )rs   rs   rs   r    r  r(   r(   r(   r)   test_invalid_dimensions_polar  s    .2r  c                  C   sX   t jdtd} d| ddddf< t| d}t d	}d|d
dddf< t|| d S )N      r-   Fr1   r   r   re   	   r/   rh   )r!   r]   r   r   r   r   resexpectedr(   r(   r)   test_bool_img_rescale  s    

r(  c                  C   sX   t jdtd} d| ddddf< t| d}t d}d|d	d
ddf< t|| d S )Nr  r-   Fr1   r!  r   r"  r#  r/   rh   )r!   r]   r   r   r   r%  r(   r(   r)   test_bool_img_resize   s    

r)  c                  C   s   t jdtd} tt t| ddd W d    n1 s<0    Y  tt t| ddd W d    n1 st0    Y  d S )Nrr   r-   r   T)rS   r+   )r!   r7   r   r   r   r   r   r   )r   r(   r(   r)   "test_bool_and_anti_aliasing_errors+  s
    ,r*  )r/   r1   r    r   r,   c                 C   s   t jdtd}tt t|d| d W d    n1 s<0    Y  tt t|d| d W d    n1 st0    Y  tt$ t|t 	d| d W d    n1 s0    Y  d S )Nrr   r-   r   r5   r+   r    )
r!   r7   r   r   r   r   r   r   r   r#   )r6   r   r(   r(   r)   test_bool_nonzero_order_errors5  s    ,,r+  c                 C   s   t t d dd ddf | }t|dddj| ks6J t|dddj| ksNJ t|dddj| ksfJ t|ddj| ks|J t|ddj| ksJ d S Nrs   r   r  r  r5   r   r[   )r   r   r   r.   r   r   r   r   )r.   r   r(   r(   r)   test_order_0_warp_dtypeC  s    r.  )r/   r    r,   c                 C   s   t t d dd ddf | }t| }t|d|dj|ks>J t|d|dj|ksVJ t|d|dj|ksnJ t||dj|ksJ t||dj|ksJ d S r,  )	r   r   r   r   r.   r   r   r   r   )r.   r6   r   r   r(   r(   r)   test_nonzero_order_warp_dtypeO  s    r/  c                  C   sN   t jdt jd} d| d< t| d}t d}d|ddddf< t|| d S )Nr+   r-   r/   r@   rr   r1   r   r!   r7   r8   r   r   r   r(   r(   r)   test_resize_local_mean2da  s    

r1  )r   r/   r1   rh   r!  c                 C   s  d}t jdd|ft jd}d|ddd d f< t |d| }t|d| d}t || d}tt t|d W d    n1 s0    Y  t d	d	|f}d|d
dd
dd d f< t|| | |j	 } d}|d |  |f || d   }t||}t || d}t|| d S )Nr    r,   r-   r/   rh   rr   r  r   rs   r1   r   )
r!   r7   r8   r   r   r   r   r   r   ndim)r   Znchr%   r   r   Zspatial_shaper   r(   r(   r)   test_resize_local_mean3d_keepj  s$    (


r4  c                  C   s   t jdt jd} d| ddd d f< t| d}t d}d|ddddf< t|| tt t| ddd W d    n1 s0    Y  d S )	Nr   r-   r/   r   r1   r   rh   r  )r!   r7   r8   r   r   r   r   r   r   r(   r(   r)   test_resize_local_mean3d_resize  s    


r5  c                  C   sN   t jdt jd} d| d< t| d}t d}d|ddddf< t|| d S )Nr+   r-   r/   r@   r   r1   r   r0  r   r(   r(   r)   #test_resize_local_mean3d_2din_3dout  s    

r6  c                  C   sT   t jdt jd} d| d< d}t| |}t |}d|dddddf< t|| d S )	Nr+   r-   r/   r@   r   r1   r   .r0  r   r(   r(   r)   test_resize_local_mean2d_4d  s    

r7  rM   c                 C   s\   dt | d  }t |}t |d t}t||}d| }t|j| t|d d S )Nr1   r   r/   )	r!   r   r]   r   r   r  r   r   rN   r   r(   r(   r)   test_resize_local_mean_nd  s    

r8  c                  C   s  t jdt jd} d| d< d| d< t| d}t d}d|d	d
d	d
d d f< t|| t| ddd}d|ddd d f< d|d	d	d d f< d|ddd d f< d |dd	d d f< |d	dd d f< d |ddd d f< |ddd d f< d |d	dd d f< |dd	d d f< t|| d S )Nr   r-   r   r   r/   r   r   r   r1   r   F)Z	grid_modeg      ?g     ?r    g      ?g      ?g      ?r0  r   r(   r(   r)   test_resize_local_mean3d  s    


$$$r9  c                  C   s   t d} | t j}| t j}| t}t| dddj| jksFJ t| dddj| jks`J t|dddjt jkszJ t|dddjt jksJ t|dddjt jksJ t|dddjt jksJ t|dddj|jksJ t|dddj|jksJ d S r   )	r!   r7   r   r   r   r   r   r.   r8   r   r(   r(   r)   test_resize_local_mean_dtype  sX    

r:  c                  C   sf   t jdt jd} d| ddddf< d| ddddf< t| d	d
d}t t |t | sbJ dS )zIssue #6467r-  r-   r,   r   rJ   r/   rZ   rs   )rJ   rJ   r   r5   N)r!   r7   int16r   Zarray_equalunique)r   r   r(   r(   r)   test_nn_resize_int_img  s
    r=  _typec                 C   s6   t jdd}| ddg}t||jt|ks2J d S )Nr    r,   )r!   r   r   r   rN   tuple)r>  r   r   r(   r(   r)   test_output_shape_arg_type  s    r@  )}numpyr!   r   Znumpy.testingr   r   r   Zscipy.ndimager   Zskimage._shared.testingr   r   Zskimage._shared.utilsr   Zskimage.color.colorconvr	   Zskimage.datar
   r   Zskimage.draw.drawr   Zskimage.feature.peakr   Zskimage.transform._warpsr   r   r   r   r   r   r   r   r   r   r   r   Zskimage.transform._geometricr   r   r   Zskimage.util.dtyper   r   r   seedr*   r?   rE   rI   rP   rW   markZparametrizerb   rd   r$   rj   rk   ro   r   r   r8   rq   rx   r{   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   int32r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r(  r)  r*  r+  r   r.  r/  r1  r4  r5  r6  r7  r8  r9  r:  r=  r?  r   listr@  r(   r(   r(   r)   <module>   s   8	






 
	








	


	



