o
    j                     @   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   )Zlayersxyi r(   c/var/www/html/Deteccion_Ine/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      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)   shiftA   s   z!test_warp_callable.<locals>.shiftr5   )r!   r7   r8   r   r   )r%   refxrB   outxr(   r(   r)   test_warp_callable;   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_matrixH   s   
rI   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 )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_ndX   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_clipk   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_nansw   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 s(w   Y  t|d |d	 |d
 |d gd | dkrUt t d|t |d dksWJ d S d S )NrX   r-   r1   Bi-quadratic.*bugr[   Tr\   r   r   )r   )rh   r   )rh   rh   r   r/   )r!   r]   r8   r   r   r   sumlessra   r(   r(   r)   'test_warp_clip_cval_outside_input_range   s   "&rk   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 )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%   	transformrD   r(   r(   r)   test_warp_clip_cval_not_used   s   rm   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   rq   r.   c                 C   sF   t jd| d}d|d< t|d}|jt| ksJ 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
   
rs   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
   ru   r-   r[   Fr   T   rx   )r!   r7   r8   r   rN   )r%   x45r(   r(   r)   test_rotate_resize   s
   rz   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 )Nrt   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s-J t|| d S )Nrt   r-   r/   rg   rw   )re   r   )rZ   r   r[   Tr    r    r   reflect)r   r|   r6   rT   )r!   r7   r8   r   rN   r   )r%   Zref_x45ry   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-   rr   Trv   )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   rt   r   r1   r/   )ru   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w   Y  tt t| ddddd W d    d S 1 s=w   Y  d S )Nru   ru   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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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s'J d S )
Nr,   r,   r    r-   rh   r   r   FrQ   )r2   r6   r   rS   rT   )ru   r,   r    )r!   r7   r8   moveaxisr   rN   )r   r%   r   r(   r(   r)   $test_rescale_channel_axis_multiscaleA  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-   r1   r   FrQ   r   r   r   r   r   r   r(   r(   r)   "test_rescale_multichannel_defaultsQ  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-   r/   r@   rt   r   FrQ   r   r1   r   r!   r7   r8   r   r   r%   resizedr   r(   r(   r)   test_resize2d[  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-   r/   rt   r   FrQ   r   ru   r   r1   r   )r!   r7   r8   r   r   r   r   r   r   r(   r(   r)   test_resize3d_keepd  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-   r/   ru   ru   r/   r   FrQ   r   r1   r   r   r   r(   r(   r)   test_resize3d_resizes  s   
r   c                  C   r   )Nr+   r-   r/   r@   r   r   FrQ   r   r1   r   r   r   r(   r(   r)   test_resize3d_2din_3dout}  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@   ru   ru   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 ]3} dt| d  }t|}t|d }t||dddd}d| }t|j| t|dks8J 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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+   rt   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r!|d9 }nt j|d< t|d| ||d}t ||ks8J d S )	Nr      g      ?r+   r-   rg   r~   )r6   r   rS   )r!   r   r]   r^   r   r`   )r6   r   rS   r.   Z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   r1   r   )radiusr3   r6   rT   rf   Zstrengthru   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    "
"@r   c                  C   s@   t jdd} d}t| tdd|d}t ||kdksJ d S )Nd   r   rt   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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 )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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 )Nrt   r-   r/   r1   r   r+   r   FrQ   r   r@   r    rg   ru   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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 )Nrt   r-   r/   r0   r+   TrQ   r   r    r   g      ?)r6   rT   rS   anti_aliasing_sigma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&  sb   "  "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 )Nrt   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_stddev[  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 )Nrt   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_downscaley  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 )Nrt   r-   r/   r0   r   TrQ   r   r+   r    r   )r!   r7   r8   r   rN   r   ri   r   r(   r(   r)   test_downscale_anti_aliasing  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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   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_mean  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!   r]   r   r(   r(   r(   r)   test_invalid  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   ru   )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 w   Y  t| dd dd d S )Nr,   c                 S      | S Nr(   rA   r(   r(   r)   <lambda>      z.test_slow_warp_nonint_oshape.<locals>.<lambda>)g333333*@g     3@)output_shapec                 S   r   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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   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  sJ   



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   ru   )ru   r   )ru   ru   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 ||sTJ d S )Nr   rr        c   r[   r      r/   gA@e@h  r1   r   r   )r!   rG   r9   r   r   Zoutput_coordsZground_truthZk_angleZk_radiusr|   rO   r(   r(   r)   test_linear_polar_mapping  s&   2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   rr   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&   2r  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,   ru   rY   r{   3   r   Fr   )r   r   Zaxisc                 3   s    | ]}| v V  qd S r   r(   ).0Zpeakradiir(   r)   	<genexpr>5  s    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sWJ |jdd}t	|}	|	j
dd |	dd  |	d d  }
tdd |
D s~J d S )Nr1   r    r   r,   r/   c                 S   s   g | ]}t |qS r(   )intr	  r%   r(   r(   r)   
<listcomp>;  s    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  G  s    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_polar8  s   <r  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 )Nrt   r+   invalid)r  r   r   r   r   r!   r7   r(   r(   r(   r)   test_invalid_scaling_polarJ  s   "r  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+   rt   rh   r   )ru   ru   ru   r    r  r(   r(   r(   r)   test_invalid_dimensions_polarQ  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 )N      r-   Fr1   r   r   re   	   r/   rh   )r!   r]   r   r   r   r   resexpectedr(   r(   r)   test_bool_img_rescaleZ     

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_resizee  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 )Nrt   r-   r   T)rS   r+   )r!   r7   r   r   r   r   r   r   )r   r(   r(   r)   "test_bool_and_anti_aliasing_errorsp  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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 )Nrt   r-   r   r5   r+   r    )
r!   r7   r   r   r   r   r   r   r   r#   )r6   r   r(   r(   r)   test_bool_nonzero_order_errorsz  s   "r0  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 Nru   r   r#  r#  r5   r   r[   )r   r   r   r.   r   r   r   r   )r.   r   r(   r(   r)   test_order_0_warp_dtype  s   r3  )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s+J t|d|dj|ks7J t||dj|ksBJ t||dj|ksMJ d S r1  )	r   r   r   r   r.   r   r   r   r   )r.   r6   r   r   r(   r(   r)   test_nonzero_order_warp_dtype  s   r4  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-   r/   r@   rt   r1   r   r!   r7   r8   r   r   r   r(   r(   r)   test_resize_local_mean2d  s   

r7  )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 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-   r/   rh   rt   r   r   ru   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_keep  s$   


r:  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-   r/   r   r1   r   rh   r   )r!   r7   r8   r   r   r   r   r   r   r(   r(   r)   test_resize_local_mean3d_resize  s   


"r;  c                  C   r5  )Nr+   r-   r/   r@   r   r1   r   r6  r   r(   r(   r)   #test_resize_local_mean3d_2din_3dout  s   

r<  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   .r6  r   r(   r(   r)   test_resize_local_mean2d_4d  s   

r=  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   

r>  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      ?r6  r   r(   r(   r)   test_resize_local_mean3d  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 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!   r7   r   r   r   r   r   r.   r8   r   r(   r(   r)   test_resize_local_mean_dtype  s   

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 | s1J dS )zIssue #6467r2  r-   r,   r   rJ   r/   rZ   ru   )rJ   rJ   r   r5   N)r!   r7   Zint16r   Zarray_equalunique)r   r   r(   r(   r)   test_nn_resize_int_img  s
    rB  _typec                 C   s6   t jdd}| ddg}t||jt|ksJ d S )Nr    r,   )r!   r   r   r   rN   tuple)rC  r   r   r(   r(   r)   test_output_shape_arg_type   s   rE  )}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$   rk   rm   rq   r   r   r8   rs   rz   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zint32r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r!  r,  r.  r/  r0  r   r3  r4  r7  r:  r;  r<  r=  r>  r?  r@  rB  rD  r   listrE  r(   r(   r(   r)   <module>   s    8	





&

	



5

	*

	



	



