o
    h                     @   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 | qd S )N      .)npemptyeyer   ranger   )layersxyi r)   ]/var/www/html/scripts/venv/lib/python3.10/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      r2   r2   )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.   r0   r1   r0   r0   c                 S   s   | d S )Nr0   r)   xyr)   r)   r*   shift9   s   z!test_warp_callable.<locals>.shiftr6   )r!   r8   r9   r   r   )r&   refxrD   outxr)   r)   r*   test_warp_callable3   s   rG   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.   r0   r1   rA   )r0   r   r0   )r   r0   r0   r   r   r0   r6   r-   )r!   r8   r9   arrayr   r   )r&   rE   matrixrF   r)   r)   r*   test_warp_matrix@   s   
rK   c            	      C   s   t ddD ]F} | 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 )Nr2      )r-   r.   )r2   r0   )r0   r   r-   )r7   cval)	r$   r!   r8   r9   slicerI   mgridr   r   )	dimshaper&   x_crE   refx_c
coord_gridcoordsrF   r)   r)   r*   test_warp_ndP   s   rV   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.   r0   r1   r    Fconstant)r7   clipanti_aliasingmoder   T)r!   r8   r9   r   minr   max)r&   rF   r)   r)   r*   test_warp_clipc   s   r]   r7   )r   r0   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   r_   r.   )   r`   -   r2   Tr7   rM   r   rX   r0   )r!   onesr9   nanr   r   nanminnanmaxr7   r&   rF   r)   r)   r*   $test_warp_clip_image_containing_nansq   s
   
rh   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 )
Nr^   r.   r2   r-   ra   Trb   r0   )r!   rc   r9   r   rd   r   re   rf   rg   r)   r)   r*   test_warp_clip_cval_is_nan   s
   rj      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 s(w   Y  t|d |d	 |d
 |d gd | dkrUt t d|t |d dksWJ d S d S )Nr^   r.   r2   Bi-quadratic.*bugra   Trb   r   r   )r   )rn   r   )rn   rn   r   r0   )r!   rc   r9   r   r   r   sumlessrg   r)   r)   r*   'test_warp_clip_cval_outside_input_range   s   &rq   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 s8w   Y  t| d d S )Nr^   r.   r2   r-   ri   g<<<<<<?rA   )r3   r5   rl   rW   r   T)rZ   r7   rM   rX   r0   )r!   rc   r9   r   r   r   r   r[   )r7   r&   	transformrF   r)   r)   r*   test_warp_clip_cval_not_used   s   rs   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.   r0   rA   r2   r   r   rH   )inverse_mapr7   )r!   r8   r9   r:   rI   cossinr   r   r<   r   r;   )r&   r=   Mr?   r)   r)   r*   test_homography   s   rx   r/   c                 C   sF   t jd| d}d|d< t|d}|jt| ksJ t|t | d S )Nr,   r.   r0   rA   Z   )r!   r8   r   r/   r   r   r;   )r/   r&   r?   r)   r)   r*   test_rotate   s
   
rz   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s$J d S )N
   r|   r.   ra   Fr   T   r   )r!   r8   r9   r   rQ   )r&   x45r)   r)   r*   test_rotate_resize   s
   r   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 )Nr{   r.   r0   )r   r   )r2   r-      r   rm   )r7   centeri)r!   r8   r9   r   r   )r&   rE   x20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s-J t|| d S )Nr{   r.   r0   rm   r~   )rk   r   )r`   r   ra   Tr    r    r   reflect)r   r   r7   rZ   )r!   r8   r9   r   rQ   r   )r&   ref_x45r   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.   ry   Tr}   )r   r   )r   r!   r8   r9   rQ   )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.   r0   rA   r2   r   FrW   r7   rY   rZ   r{   r   r2   r0   )r|   r-   )r!   r8   r9   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w   Y  tt t| ddddd W d    d S 1 s=w   Y  d S )Nr|   r|   r    r1   FrW   )channel_axisrY   rZ   )r2   r2   r2   rn   )r!   r8   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sJ t| ddd ddd}|jd
ks*J t jdt jd} t| dddddd}|jdksCJ 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smJ t| ddd ddd}|jdks~J d S )NrL   r    r.   r2   r   rn   FrW   )r7   r   rY   rZ   )   r    r   rk   rL   rL   r    )r   r   r    r   r   rk   )rL   rL   rL   r    )r   r   r   r    )r   r   r   rk   r!   r8   r9   r   rQ   r&   r   r)   r)   r*   test_rescale_multichannel  s6   r   r   )r   r0   r2   rn   c                 C   sR   t jdt jd}t |d| }t|dd| ddd}t || d}|jd	ks'J d S )
Nr-   r-   r    r.   rn   r   r   FrW   )r3   r7   r   rY   rZ   )r|   r-   r    )r!   r8   r9   moveaxisr   rQ   )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sJ t jd	t jd} t| ddddd}|jd
ks0J d S )Nr   r.   r2   r   FrW   r   r   r   r   r   r   r)   r)   r*   "test_rescale_multichannel_defaultsB  s   r   c                  C   V   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.   r0   rA   r{   r   FrW   r   r2   r   r!   r8   r9   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 s3w   Y  t d
}d|ddddd d f< t|| t| d
dddd}t|| d S )Nr   r.   r0   r{   r   FrW   r   r|   r   r2   r   )r!   r8   r9   r   r   r   r   r   r   r)   r)   r*   test_resize3d_keepV  s   



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.   r0   r|   r|   r0   r   FrW   r   r2   r   r   r   r)   r)   r*   test_resize3d_resizeg  s   

r   c                  C   r   )Nr,   r.   r0   rA   r   r   FrW   r   r2   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.   r0   rA   r|   r|   r0   r0   r   FrW   r   r2   r   .r   r&   	out_shaper   r   r)   r)   r*   test_resize2d_4d}  s   

r   c                  C   sv   t ddD ]3} dt| d  }t|}t|d }t||dddd}d| }t|j| t|dks8J qd S )	Nr0   rk   r2         ?r   r   Fr7   rZ   rY   )	r$   r!   arangerc   asarrayr   r   rQ   allrP   rQ   r&   r   r   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-   r2   r.   r   r0   r0   r   r0   r0   r0   r0   r   rW   Fr   g      ?r-   g      ?r2   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s#J t| dddj| jks0J t|dddjt jks=J t|dddjt jksJJ t|dddjtksVJ t|dddjtksbJ t|dddj|jksoJ t|dddj|jks|J d S Nr,   r{   F)preserve_rangeT)	r!   r8   astypefloat32uint8boolr   r/   r9   r&   x_f32x_u8x_br)   r)   r*   test_resize_dtype  s   

r   r0   r   TFrY   c                 C   st   |t jkr|s| dkrd}nd}t jd|d}|t jkr!|d9 }nt j|d< t|d| ||d}t ||ks8J d S )	Nr      g      ?r,   r.   rm   r   )r7   r   rY   )r!   r   rc   NaNr   rf   )r7   r   rY   r/   expected_maxr&   r   r)   r)   r*   test_resize_clip  s   



r   c              	   C   st  t t j| dd}t| }ddddd}tdg, t|fd	d
i|}t|fd	di|}|j|j  kr<|ks?J  J W d    n1 sIw   Y  tt	|| dk s\J |
d tdg, t|fd	d
i|}t|fd	di|}|j|j  kr|ksJ  J W d    n1 sw   Y  tt	|ddddf |ddddf  dk sJ d S )NFcopyP   r   r2   r   )radiusr4   r7   rZ   rl   strengthr|   g{Gz?rZ   r0   rn   )r   r
   r   r   r   r   r/   r!   meanabspop)r/   imagefloat_dtypeswirl_paramsswirled	unswirledr)   r)   r*   
test_swirl  s    "
"@r   c                  C   s@   t jdd} d}t| tdd|d}t ||kdksJ d S )Nd   r   r{   r5   )rM   il  )r!   randomrandnr   r   ro   )imgrM   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r,J t	t
| t| | gd}t|tdd}t|t|tddsQJ t||rYJ td|d d d d df kskJ d S )Nr2   r   )r4   皙?)r0   r2   r   r0   )r   r	   r   lenrQ   r!   allcloser   r   	transposer   
zeros_liker   )r   rgb_img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    r2   )r   r   r   )   r   r    r   )r   r   r!   r   rQ   r   r   r   )r   r>   rU   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r"t jn| }|j|ks+J |jdks2J |d dks:J |dd d d f  dksJJ |d d dd f  dksZJ t jd| d}d|ddddf< t|dddd	d
}| t jkr|t jn| }|j|ksJ |jdksJ |d dksJ |dd d d f  dksJ |d d dd f  dksJ t jd| d}t|dddd	d
}t j	
|t d d S )Nr{   r.   r0   r2   r   r,   r   FrW   r   rA   r    rm   r|   r-   )r!   r8   r   float16r   r/   rQ   ro   r#   testingr   r/   r&   r   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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sMJ 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    d S 1 sw   Y  d S )Nr{   r.   r0   r1   r,   TrW   r   r    r   g      ?)r7   rZ   rY   anti_aliasing_sigmaedge	symmetricr   wrapznon-existent)
r!   r8   r9   r   rQ   r   ro   r   r   r   )r&   r   sigmaout_sizer)   r)   r*   test_downsize_anti_aliasing  s:   "  





"r   c               	   C   s   t jdt jd} tt t| dddddd W d    n1 s"w   Y  td	g t| d
ddddd t| d
ddddd W d    d S 1 sLw   Y  d S )Nr{   r.   r,   r   Trn   rW   )r7   rY   r   rZ   z(Anti-aliasing standard deviation greater)r-   r_   rA   r   )r   r0   )r!   r8   r9   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r#t jn| }|j|ks,J |jdks3J |d dks;J |dd d d f  dksKJ |d d dd f  dks[J d S )Nr{   r.   r0   r2   r         ?r   FrW   r7   rY   r   rZ   r,   rA   )r!   r8   r   r   r   r/   rQ   ro   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sNJ d S )Nr{   r.   r0   r1   r   TrW   r   r,   r    r   )r!   r8   r9   r   rQ   r   ro   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?r0   )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r| nt j}|j|ks$J t ddgd	d
gg}t|| t jd| ddd}t|d}|j|ksKJ t ddgddgg}| t j	kr]dnd}t
|||d d S )N   r.   r   rk   )r2   r    fg      @g      @g      0@g      3@(   r-   rL   )r   r-   g      ,@g%@g      !@g@r   gHz>)rtol)r!   r   reshaper   r/   kindr9   rI   r   r   r   )	r/   image1out1r   	expected1image2out2	expected2r  r)   r)   r*   test_downscale_local_meand  s    




r  c                   C   sB   t t ttdt  W d    d S 1 sw   Y  d S )N)r   r    r    r    )r   r   r   r   r!   rc   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   )r3   r4   )rJ   r   r|   )r   r!   linalginvparamsr   r	  r   r9   r   r   r<   )r>   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 w   Y  t| dd dd d S )Nr-   c                 S      | S Nr)   rB   r)   r)   r*   <lambda>      z.test_slow_warp_nonint_oshape.<locals>.<lambda>)g333333*@g     3@)output_shapec                 S   r  r  r)   rB   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s'J t| dddddd dd}| dks;J | dksCJ t| t jdddd dddd	}| dks[J | dkscJ d S )
Nr   r2      r-   FTrW   )r   rX   r7   rZ   r   rY   )r   rZ   r   rY   rX   r7   )r!   linspacer	  r   r[   r\   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 sw   Y  t t ttdt  W d    n1 s7w   Y  t t ttdt  W d    n1 sUw   Y  t t ttdt  W d    d S 1 stw   Y  d S )Nr   )r   r|   )r|   r   )r|   r|   r   )r   r   r   r   r!   r8   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 ||sTJ d S )Nr   ry        c   ra   r      r0   gA@e@h  r2   r   r   )r!   rI   r:   r   r   output_coordsground_truthk_anglek_radiusr   rU   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 ||sYJ d S )Nr   ry   r"  r#  r$  ra   e   r   g+oh@gUZ @g1zd@r&  r2   r'  )r!   rI   r:   logr   r   r(  r)   r)   r*   test_log_polar_mapping  s.   

r0  c           	         s   g d t ddg} D ]}tdd|\}}}||||f< q|j| dd}t|dd}|jt| ks5J |jdd}t|}t	 fd	d
|D sLJ d S )N)r-   r|   r_   r   3   r  Fr   )r   r   axisc                 3   s    | ]}| v V  qd S r  r)   ).0peakradiir)   r*   	<genexpr>  s    z)test_linear_warp_polar.<locals>.<genexpr>)
r!   r8   r   r   r   r/   r   r   r   r   )	r/   r   radrrccvalr   profilepeaksr)   r6  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sWJ |jdd}t	|}	|	j
dd |	dd  |	d d  }
tdd |
D s~J d S )Nr2   r    r   r-   r0   c                 S   s   g | ]}t |qS r)   )intr4  r&   r)   r)   r*   
<listcomp>  s    z'test_log_warp_polar.<locals>.<listcomp>i-     Fr      r/  )r   scalingr   r2  rn   c                 s   s     | ]}|d ko|dkV  qdS )&   r  Nr)   rA  r)   r)   r*   r8    s    z&test_log_warp_polar.<locals>.<genexpr>)r!   expr8   r   r   r   r/   r   r   r   sortr   )r/   r7  r   r9  r:  r;  r<  r   r=  peaks_coordgapsr)   r)   r*   test_log_warp_polar  s     rK  c                   C   s   t t ttdddd W d    n1 sw   Y  t t ttddd d W d    d S 1 s:w   Y  d S )Nr{   r,   invalid)rE  r   r   r   r   r!   r8   r)   r)   r)   r*   test_invalid_scaling_polar  s   "rN  c                   C   s   t t ttdd W d    n1 sw   Y  t t ttdddd W d    n1 s7w   Y  t t ttdddd W d    d S 1 sWw   Y  d S )Nr   r,   r{   rn   r   )r|   r|   r|   r    rM  r)   r)   r)   r*   test_invalid_dimensions_polar  s   "rP  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.   Fr2   r   r   rk   	   r0   rn   )r!   rc   r   r   r   r   resexpectedr)   r)   r*   test_bool_img_rescale     

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 )NrQ  r.   Fr2   rT  r   rU  rV  r0   rn   )r!   rc   r   r   r   rX  r)   r)   r*   test_bool_img_resize   r\  r]  c                  C   s   t jdtd} tt t| ddd W d    n1 sw   Y  tt t| ddd W d    d S 1 s;w   Y  d S )Nr{   r.   r   T)rY   r,   )r!   r8   r   r   r   r   r   r   )r   r)   r)   r*   "test_bool_and_anti_aliasing_errors+  s   "r^  )r0   r2   r    r   r-   c                 C   s   t jdtd}tt t|d| d W d    n1 sw   Y  tt t|d| d W d    n1 s:w   Y  tt t|t 	d| d W d    d S 1 sZw   Y  d S )Nr{   r.   r   r6   r,   r    )
r!   r8   r   r   r   r   r   r   r   r#   )r7   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sJ t|dddj| ks'J t|dddj| ks3J t|ddj| ks>J t|ddj| ksIJ d S Nr|   r   rR  rR  r6   r   ra   )r   r   r   r/   r   r   r   r   )r/   r   r)   r)   r*   test_order_0_warp_dtypeC  s   rb  )r0   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s+J t|d|dj|ks7J t||dj|ksBJ t||dj|ksMJ d S r`  )	r   r   r   r   r/   r   r   r   r   )r/   r7   r   r   r)   r)   r*   test_nonzero_order_warp_dtypeO  s   rc  c                  C   N   t jdt jd} d| d< t| d}t d}d|ddddf< t|| d S )Nr,   r.   r0   rA   r{   r2   r   r!   r8   r9   r   r   r   r)   r)   r*   test_resize_local_mean2da  s   

rf  )r   r0   r2   rn   rT  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 s@w   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.   r0   rn   r{   rO  r   r|   r2   r   )
r!   r8   r9   r   r   r   r   r   r   ndim)r   nchr&   r   r   spatial_shaper   r)   r)   r*   test_resize_local_mean3d_keepj  s&   


rk  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    d S 1 sBw   Y  d S )	Nr   r.   r0   r   r2   r   rn   rO  )r!   r8   r9   r   r   r   r   r   r   r)   r)   r*   test_resize_local_mean3d_resize  s   


"rl  c                  C   rd  )Nr,   r.   r0   rA   r   r2   r   re  r   r)   r)   r*   #test_resize_local_mean3d_2din_3dout  s   

rm  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.   r0   rA   r   r2   r   .re  r   r)   r)   r*   test_resize_local_mean2d_4d  s   

rn  rP   c                 C   s\   dt | d  }t |}t |d t}t||}d| }t|j| t|d d S )Nr2   r   r0   )	r!   r   rc   r   r   r@  r   r   rQ   r   r)   r)   r*   test_resize_local_mean_nd  s   

ro  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   r0   r   r   r   r2   r   F)	grid_modeg      ?g     ?r    g      ?g      ?g      ?re  r   r)   r)   r*   test_resize_local_mean3d  s   


$$$rq  c                  C   s   t d} | t j}| t j}| t}t| dddj| jks#J t| dddj| jks0J t|dddjt jks=J t|dddjt jksJJ t|dddjt jksWJ t|dddjt jksdJ t|dddj|jksqJ t|dddj|jks~J d S r   )	r!   r8   r   r   r   r   r   r/   r9   r   r)   r)   r*   test_resize_local_mean_dtype  sX   

rr  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 | s1J dS )zIssue #6467ra  r.   r-   r   rL   r0   r`   r|   )rL   rL   r   r6   N)r!   r8   int16r   array_equalunique)r   r   r)   r)   r*   test_nn_resize_int_img  s
    rv  _typec                 C   s6   t jdd}| ddg}t||jt|ksJ d S )Nr    r-   )r!   r   r  r   rQ   tuple)rw  r   r  r)   r)   r*   test_output_shape_arg_type  s   ry  )}numpyr!   r   numpy.testingr   r   r   scipy.ndimager   skimage._shared.testingr   r   skimage._shared.utilsr   skimage.color.colorconvr	   skimage.datar
   r   skimage.draw.drawr   skimage.feature.peakr   skimage.transform._warpsr   r   r   r   r   r   r   r   r   r   r   r   skimage.transform._geometricr   r   r   skimage.util.dtyper   r   r   seedr+   r@   rG   rK   rV   r]   markparametrizerh   rj   r$   rq   rs   rx   r   r   r9   rz   r   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-  r0  r?  rK  rN  rP  r[  r]  r^  r_  r   rb  rc  rf  rk  rl  rm  rn  ro  rq  rr  rv  rx  r   listry  r)   r)   r)   r*   <module>   s    8	






 
	








	


	



