U
    ?h                  	   @   s8  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d ddgdd Z5ej34dd ddg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/ ZAd0d1 ZBd2d3 ZCd4d5 ZDd6d7 ZEej34d8d dd9d:gd;d< ZFd=d> ZGd?d@ ZHdAdB ZIdCdD ZJdEdF ZKdGdH ZLdIdJ ZMdKdL ZNdMdN ZOej34dd dgej34dOdPdQgej34dRdPdQgej34d'ej=ejPgdSdT ZQej34d'ej;ej<ej=gdUdV ZRdWdX ZSdYdZ ZTd[d\ ZUej34d'ejPejVej;ej<ej=gd]d^ ZWd_d` ZXdadb ZYej34d'ejPejVej;ej<ej=gdcdd ZZdedf Z[dgdh Z\ej34d'ejPejVej;ej<ej=gdidj Z]dkdl Z^dmdn Z_dodp Z`dqdr Zadsdt Zbdudv Zcdwdx Zdej34d'ej;ej<ej=gdydz Zeej34d'ej;ej<ej=gd{d| Zfd}d~ Zgdd Zhdd Zidd Zjdd Zkej34ddd9dddgdd Zlej34d'ejPemej<ej=gdd Znej34d'ejPej;ej<ej=gej34ddddgdd Zodd Zpej34d8d dd9d:ddgdd Zqdd Zrdd Zsdd Ztej34de7dd 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(   T/var/www/html/venv/lib/python3.8/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   s|   t jdt jd} d| d< t jdt jd}d|d< t dddgdddgdddgg}t| |dd}t|| t| |dd}d S )	Nr+   r-   r/   r0   r@   r   r5   r,   )r!   r7   r8   arrayr   r   )r%   rC   matrixrD   r(   r(   r)   test_warp_matrix@   s    "
rH   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   slicerF   Zmgridr   r   )	dimshaper%   Zx_crC   Zrefx_cZ
coord_gridcoordsrD   r(   r(   r)   test_warp_ndP   s    rO   c                  C   sp   t jdt jd} d| d< t| dddddd}| d	k s<t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   minAssertionErrorr   max)r%   rD   r(   r(   r)   test_warp_clipc   s    rW   r6   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   rJ   r   rQ   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 5 Q R X t|d |d	 |d
 |d gd | dkrt t d|t |d dkst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lessrU   ra   r(   r(   r)   'test_warp_clip_cval_outside_input_range   s     rk   c              	   C   sx   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 5 Q R X t| d d S )NrX   r-   r1   r,   rc   g<<<<<<?r@   )r2   r4   rf   rP   r   T)rS   r6   rJ   rQ   r/   )r!   r]   r8   r   r   r   r   rT   )r6   r%   Z	transformrD   r(   r(   r)   test_warp_clip_cval_not_used   s    rl   c                  C   s   t jdt jd} d| d< t j d }t t |t | dgt |t |dgdddgg}t| t|j	dd}t
|t |  d S )	Nr+   r-   r/   r@   r1   r   r   )Zinverse_mapr6   )r!   r7   r8   r9   rF   cossinr   r   r;   r   r:   )r%   r<   Mr>   r(   r(   r)   test_homography   s    rp   r.   c                 C   sF   t jd| d}d|d< t|d}|jt| ks2tt|t | d S )Nr+   r-   r/   r@   Z   )r!   r7   r   r.   r   rU   r   r:   )r.   r%   r>   r(   r(   r)   test_rotate   s
    
rr   c                  C   sL   t jdt jd} t| ddd}|jdks,tt| ddd}|jdksHtd S )N
   rt   r-   r[   Fr   T   rw   )r!   r7   r8   r   rM   rU   )r%   x45r(   r(   r)   test_rotate_resize   s
    ry   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 )Nrs   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sZtt|| d S )Nrs   r-   r/   rg   rv   )re   r   )rZ   r   r[   Tr    r    r   reflect)r   r{   r6   rS   )r!   r7   r8   r   rM   rU   r   )r%   Zref_x45rx   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(td S )N)     r-   rq   Tru   )r   r   )r   r!   r7   r8   rM   rU   )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   FrP   r6   rR   rS   rs   r   r1   r/   )rt   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 5 Q R X tt t| ddddd W 5 Q R X d S )Nrt   rt   r    r0   FrP   )channel_axisrR   rS   )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s2tt| ddd ddd}|jd
ksTtt jdt jd} t| dddddd}|jdkstt| ddd ddd}|jdkstt jdt jd} t| dddddd}|jdkstt| ddd ddd}|jdkstd S )NrI   r    r-   r1   r   rh   FrP   )r6   r   rR   rS   )   r    r   re   rI   rI   r    )r   r   r    r   r   re   )rI   rI   rI   r    )r   r   r   r    )r   r   r   re   r!   r7   r8   r   rM   rU   r%   r   r(   r(   r)   test_rescale_multichannel  s6    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sNtd S )
Nr,   r,   r    r-   rh   r   r   FrP   )r2   r6   r   rR   rS   )rt   r,   r    )r!   r7   r8   moveaxisr   rM   rU   )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s0tt jd	t jd} t| ddddd}|jd
ks`td S )Nr   r-   r1   r   FrP   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@   rs   r   FrP   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 5 Q R X t d
}d|ddddd d f< t|| t| d
dddd}t|| d S )Nr   r-   r/   rs   r   FrP   r   rt   r   r1   r   )r!   r7   r8   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-   r/   rt   rt   r/   r   FrP   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   FrP   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@   rt   rt   r/   r/   r   FrP   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
t	q
d S )	Nr/   re   r1         ?r   r~   Fr6   rS   rR   )
r$   r!   aranger]   asarrayr   r   rM   allrU   rL   rM   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   rP   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sFtt| dddj| jks`tt|dddjt j	ksztt|dddjt j	kstt|dddjtkstt|dddjtkstt|dddj|jkstt|dddj|jkstd S Nr+   rs   F)preserve_rangeT)
r!   r7   astypefloat32uint8boolr   r.   rU   r8   r%   Zx_f32Zx_u8Zx_br(   r(   r)   test_resize_dtype  s    

r   r   TFrR   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sptd S )	Nr      g      ?r+   r-   rg   r}   )r6   r   rR   )r!   r   r]   NaNr   r`   rU   )r6   r   rR   r.   Zexpected_maxr%   r   r(   r(   r)   test_resize_clip  s    



r   c              	   C   sJ  t t j| dd}t| }ddddd}tdgL t|fd	d
i|}t|fd	di|}|j|j  krv|ks|n tW 5 Q R X t	t
|| dk st|d tdgL t|fd	d
i|}t|fd	di|}|j|j  kr|ksn tW 5 Q R X t	t
|ddddf |ddddf  dk sFtd S )NFcopyP   r   r1   r~   )radiusr3   r6   rS   rf   Zstrengthrt   g{Gz?rS   r/   rh   )r   r
   r   r   r   r   r.   rU   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<td S )Nd   r   rs   r4   )rJ   il  )r!   randomZrandnr   r   ri   rU   )imgrJ   warpedr(   r(   r)   test_const_cval_out_of_range  s    r   c                  C   s   t tt } t| jdks tt| t| t	dds<tt| t| t	ddrXtt
t| t| | gd}t|t	dd}t|t|t	ddstt||rttd|d d d d df kstd S )Nr1   r   )r3   皙?)r/   r1   r   r/   )r   r	   r   lenrM   rU   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 t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   rM   rU   r   r   r   )r   r=   rN   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sVt|jdksdt|d dkstt|dd d d f  dkst|d d dd f  dkst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t|jdkst|d dks.t|dd d d f  dksPt|d d dd f  dksrtt j	d| d}t|dddd	d
}t j
|t 	d d S )Nrs   r-   r/   r1   r   r+   r   FrP   r   r@   r    rg   rt   r,   )r!   r7   r   float16r   r.   rU   rM   ri   r#   Ztestingr   r.   r%   r   Zexpected_dtyper(   r(   r)   test_downsize  s*      ""r   c               	   C   s4  t jdt jd} d| d< t| ddddd}|jdks8tt |d d	d d	f d
ksZt|d	d d d f  d
kszt|d d d	d f  d
kst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 5 Q R X d S )Nrs   r-   r/   r0   r+   TrP   r   r    r   g      ?)r6   rS   rR   anti_aliasing_sigmaedgeZ	symmetricr~   wrapznon-existent)r!   r7   r8   r   rM   rU   r   ri   r   r   r   )r%   r   sigmaZout_sizer(   r(   r)   test_downsize_anti_aliasing  sD    "  
 
 
 
 
 
 r   c               	   C   s|   t jdt jd} tt t| dddddd W 5 Q R X td	g. t| d
ddddd t| d
ddddd W 5 Q R X d S )Nrs   r-   r+   r   Trh   rP   )r6   rR   r   rS   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sXt|jdksft|d dksvt|dd d d f  dkst|d d dd f  dkstd S )Nrs   r-   r/   r1   r         ?r   FrP   r6   rR   r   rS   r+   r@   )	r!   r7   r   r   r   r.   rU   rM   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:tt |d d
d d
f dks\t|d
d d d f  dks|t|d d d
d f  dkstd S )Nrs   r-   r/   r0   r   TrP   r   r+   r    r   )r!   r7   r8   r   rM   rU   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&td S )Nr    r   MbP?r/   )r!   r   randr   sizerU   )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sHtt ddgd	d
gg}t	|| t jd| ddd}t|d}|j|kst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,   rI   )r   r,   g      ,@g%@g      !@g@r   gHz>)rtol)r!   r   reshaper   r.   kindr8   rU   rF   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 5 Q R X 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   )rG   r   rt   )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   sL   t jdd} tt t| dd dd W 5 Q R X 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>t| dksNtt| dddddd dd}| dksvt| dkstt| t jdddd dddd	}| dkst| dkstd S )
Nr   r1      r,   FTrP   )r   rQ   r6   rS   r   rR   )r   rS   r   rR   rQ   r6   )	r!   Zlinspacer   r   rT   rU   rV   r   r   )r   r   r(   r(   r)   test_keep_range  s0           r   c                	   C   s   t t ttdt  W 5 Q R X t t ttdt  W 5 Q R X t t ttdt  W 5 Q R X t t ttdt  W 5 Q R X d S )Nr   )r   rt   )rt   r   )rt   rt   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 ||std S )Nr   rq        c   r[   r      r/   gA@e@h  r1   r   r   )r!   rF   r9   r   r   rU   Zoutput_coordsZground_truthZk_angleZk_radiusr{   rN   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 ||std S )Nr   rq   r   r   r   r[   e   r   g+oh@gUZ @g1zd@r   r1   r   )r!   rF   r9   logr   r   rU   r   r(   r(   r)   test_log_polar_mapping  s.    

r  c           	         s   ddddg t ddg} D ]"}tdd|\}}}||||f< q|j| dd}t|dd	}|jt| ksnt|jd
d}t	|}t
 fdd|D std S )Nr,   rt   rY   rz   3   r   Fr   )r   r   Zaxisc                 3   s   | ]}| kV  qd S r   r(   ).0Zpeakradiir(   r)   	<genexpr>  s     z)test_linear_warp_polar.<locals>.<genexpr>)r!   r7   r   r   r   r.   r   rU   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st|j	dd}t
|}	|	jdd |	dd  |	d d  }
tdd |
D st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
    s     z&test_log_warp_polar.<locals>.<genexpr>)r!   expr7   r   r   r   r.   r   rU   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   sX   t t ttdddd W 5 Q R X t t ttddd d W 5 Q R X d S )Nrs   r+   invalid)r  r   r   r   r   r!   r7   r(   r(   r(   r)   test_invalid_scaling_polar  s    r  c                	   C   s~   t t ttdd W 5 Q R X t t ttdddd W 5 Q R X t t ttdddd W 5 Q R X d S )Nr   r+   rs   rh   r   )rt   rt   rt   r    r  r(   r(   r(   r)   test_invalid_dimensions_polar  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_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   sZ   t jdtd} tt t| ddd W 5 Q R X tt t| ddd W 5 Q R X d S )Nrs   r-   r   T)rR   r+   )r!   r7   r   r   r   r   r   r   )r   r(   r(   r)   "test_bool_and_anti_aliasing_errors+  s
    r,  r   r,   c              	   C   s   t jdtd}tt t|d| d W 5 Q R X tt t|d| d W 5 Q R X tt t|t 	d| d W 5 Q R X d S )Nrs   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s6tt|dddj| ksNtt|dddj| ksftt|ddj| ks|tt|ddj| kstd S Nrt   r   r!  r!  r5   r   r[   )	r   r   r   r.   rU   r   r   r   r   )r.   r   r(   r(   r)   test_order_0_warp_dtypeC  s    r0  c                 C   s   t t d dd ddf | }t| }t|d|dj|ks>tt|d|dj|ksVtt|d|dj|ksntt||dj|kstt	||dj|kstd S r.  )
r   r   r   r   r.   rU   r   r   r   r   )r.   r6   r   r   r(   r(   r)   test_nonzero_order_warp_dtypeO  s    r1  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@   rs   r1   r   r!   r7   r8   r   r   r   r(   r(   r)   test_resize_local_mean2da  s    

r3  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 5 Q R X 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   rs   r  r   rt   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$    


r6  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 5 Q R X 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    


r7  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   r2  r   r(   r(   r)   #test_resize_local_mean3d_2din_3dout  s    

r8  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   .r2  r   r(   r(   r)   test_resize_local_mean2d_4d  s    

r9  rL   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   rM   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      ?r2  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sFtt| dddj| jks`tt|dddjt j	ksztt|dddjt j	kstt|dddjt j	kstt|dddjt j	kstt|dddj|jkstt|dddj|jkstd S r   )
r!   r7   r   r   r   r   r   r.   rU   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 | sbtdS )zIssue #6467r/  r-   r,   r   rI   r/   rZ   rt   )rI   rI   r   r5   N)r!   r7   Zint16r   Zarray_equaluniquerU   )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s2td S )Nr    r,   )r!   r   r   r   rM   tuplerU   )r?  r   r   r(   r(   r)   test_output_shape_arg_type  s    rA  )}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   rH   rO   rW   markZparametrizerb   rd   r$   rk   rl   rp   r   r   r8   rr   ry   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,  r-  r   r0  r1  r3  r6  r7  r8  r9  r:  r;  r<  r>  r@  r   listrA  r(   r(   r(   r)   <module>   s   8	






 
	


 
 
 



	


	



