U
    ?hQ                     @   s  d dl Zd dlmZmZmZ d dl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mZmZ d dlmZ dd Zd	d
 Ze dd Zdd Zdd Z dd Z!dd Z"dd Z#dd Z$dd Z%dd Z&dd Z'dd  Z(d!d" Z)d#d$ Z*d%d& Z+d'd( Z,d)d* Z-d+d, Z.d-d. Z/d/d0 Z0d1d2 Z1d3d4 Z2d5d6 Z3d7d8 Z4d9d: Z5d;d< Z6d=d> Z7d?d@ Z8dAdB Z9dCdD Z:dEdF Z;dGdH Z<dIdJ Z=dKdL Z>dMdN Z?dOdP Z@dQdR ZAdSdT ZBejCjDe
 dUdVdWdX ZEejCjDe
 dUdVdYdZ ZFd[d\ ZGd]d^ ZHd_d` ZIejCjDe
 dUdVdadb ZJejCjDe
 dUdVdcdd ZKejCjDe
 dUdVdedf ZLejCjDe
 dUdVdgdh ZMejCjDe
 dUdVdidj ZNejCjDe
 dUdVdkdl ZOdS )m    N)assert_array_equalassert_equalassert_almost_equal)run_in_parallel)has_mpl)	set_colorlineline_aapolygonpolygon_perimeterdiskcircle_perimetercircle_perimeter_aaellipseellipse_perimeter_bezier_segmentbezier_curve	rectanglerectangle_perimeter)regionpropsc                  C   sT   t d} tdddd\}}t| ||fd t d}d|dd d f< t| | d S )N
   r   r         )npzerosr   r   r   imgrrccimg_ r!   N/var/www/html/venv/lib/python3.8/site-packages/skimage/draw/tests/test_draw.pytest_set_color   s    

r#   c               	   C   s   t d} tdddd\}}}t| ||fd|d tt t| ||fd|d W 5 Q R X t d} tdddd\}}}t| ||fd|d d S )	Nr   r   r   r   alpha)   r   r   )r   r      )r   r   r   )r   r   r	   r   pytestraises
ValueError)r   r   r   r%   r!   r!   r"   test_set_color_with_alpha   s    

r+   c                  C   sP   t d} tdddd\}}d| ||f< t d}d|dd d f< t| | d S Nr   r   	   r   r   r   r   r   r   r!   r!   r"   test_line_horizontal,   s    

r/   c                  C   sP   t d} tdddd\}}d| ||f< t d}d|d d df< t| | d S r,   r.   r   r!   r!   r"   test_line_vertical9   s    

r0   c                  C   sP   t d} tdddd\}}d| ||f< t d}d|dd d f< t| | d S r,   r.   r   r!   r!   r"   test_line_reverseE   s    

r1   c                  C   s@   t d} tdddd\}}d| ||f< t d}t| | d S )N   r3   r      r   r3   )r   r   r   eyer   r   r!   r!   r"   test_line_diagQ   s
    

r6   c                  C   sZ   t d} tdddd\}}}t| ||fd|d t d}d|dd d f< t| | d S )Nr   r   r-   r   r$   )r   r   r	   r   r   r   r   r   valr    r!   r!   r"   test_line_aa_horizontal\   s    

r9   c                  C   sR   t d} tdddd\}}}|| ||f< t d}d|d d df< t| | d S r,   )r   r   r	   r   r7   r!   r!   r"   test_line_aa_verticalh   s    

r:   c                  C   sf   t d} tdddd\}}}d| ||f< tdddd\}}t||D ]\}}t| ||f d qFd S )Nr   r   r-      r   )r   r   r	   r   zipr   )r   r   r   r8   rcZr_iZc_ir!   r!   r"   test_line_aa_diagonalt   s    
r?   c                  C   sd   t d} t d}tdddd\}}}|| ||f< tdddd\}}}||||f< t| |j d S )N   rA   r            )r   r   r	   r   T)Zimg0img1r   r   r8   r!   r!   r"   0test_line_equal_aliasing_horizontally_vertically   s    

rG   c                  C   sv   t dd} t d}t|d d df |d d df \}}d| ||f< t dd}d|ddddf< t| | d S )Nr   uint8)r   r   )r4   r   r4   r4   )r   r4   rI   r   r   r3   r   r   arrayr
   r   r   Zpolyr   r   r    r!   r!   r"   test_polygon_rectangle   s    
&rN   c                  C   s>  t dd} t d}t|d d df |d d df \}}d| ||f< t ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
g
d}t| | d S )Nr   rH   )r   r'   )r4      )rP   r4   )r'   r   rO   r   r   rK   rM   r!   r!   r"   test_polygon_rectangle_angular   s&    
&	rQ   c                  C   s>  t dd} t d}t|d d df |d d df \}}d| ||f< t ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
g
d}t| | d S )Nr   rH   )rI   )r3   r   )rP   r;   )r'   r;   rI   r   r   rK   rM   r!   r!   r"   test_polygon_parallelogram   s&    
&	rR   c                  C   sx   t dd} t d}t|d d df |d d df | j\}}d| ||f< t d}d|dd d d f< t| | d S )Nr   rH   ))r   )d   rS   )rT   rT   )r   rT   rI   r   r   )r   r   rL   r
   shaper   rM   r!   r!   r"   test_polygon_exceed   s    
*
rV   c                  C   s0   t dd\} }| j|j  kr&dks,n td S )Nr   r   )r
   sizeAssertionErrorr   r   r!   r!   r"   test_polygon_0d_input   s    rZ   c                  C   s  t dd} tdd\}}d| ||f< t dddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgg}t| | d S )N   r\   rH   )rP   rP   r;   r   r   )r   r   r   rL   r   r   r!   r!   r"   	test_disk   s,                   r]   c               !   C   s  t dd} tddddd\}}d| ||f< t | dks>t| d d dksRtt dd} tddddd\}}d| ||f< t dddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgg}t| | d S )	Nr[   rH   rP   r   	bresenhammethodr      r\   r   r   r   sumrX   rL   r   r   r!   r!   r"   test_circle_perimeter_bresenham   s:                     re   c                  C   s   t dd} tdddddd\}}d| ||f< d	}t d
d|  dfd}td| dddd d\}}d|||f< t| ||| d d f  d S )Nr\   rD   rH   rP   r   r-   r^   )r`   rU   r   r3   r\   rB   rD   )r   r   r   r   r   r   r   shiftr    r!   r!   r"   %test_circle_perimeter_bresenham_shape  s    ri   c               !   C   s  t dd} tddddd\}}d| ||f< t | dks>t| d d dksRtt dd} tddddd\}}d| ||f< t dddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgg}t| | d S )	Nr[   rH   rP   r   Zandresr_   r   ra   rc   r   r!   r!   r"   test_circle_perimeter_andres&  s:                     rj   c               #   C   s  t dd} tddd\}}}d| ||f< t | dks<t| d d dksPtt dd} tddd\}}}|d | ||f< t dddddddddddddddddgdddddd	d
dddd
d	dddddgdddddddddddddddddgdddddddddddddddddgdddddddddddddddddgdd	dddddddddddddd	dgdd
dddddddddddddd
dgdddddddddddddddddgdddddddddddddddddgdddddddddddddddddgdd
dddddddddddddd
dgdd	dddddddddddddd	dgdddddddddddddddddgdddddddddddddddddgdddddddddddddddddgdddddd	d
dddd
d	dddddgdddddddddddddddddgg}t| | d S )Nr[   rH   rP   r   r   )rb   rb      r&   R               J         rA   )r   r   r   rd   rX   rL   r   r7   r!   r!   r"   test_circle_perimeter_aaF  s:    $$$$$$$$$$$$$$$$$rt   c                  C   s   t dd} tddddd\}}}|d | ||f< d}t d	d
|  dfd}td| ddd d\}}}|d |||f< t| ||| d d f  d S )Nrf   rH   rP   r   r-   rU   r&   r3   r\   rB   rD   )r   r   r   r   )r   r   r   r8   rh   r    r!   r!   r"   test_circle_perimeter_aa_shapef  s    rv   c                  C   s  t dd} tdddd\}}d| ||f< t ddgddgg}t| | t dd} tdddd\}}d| ||f< t ddgddgg}t| | t dd} tdddd\}}d| ||f< t dddgdddgdddgg}t| | t dd} tdddd\}}d| ||f< t dddgdddgdddgg}t| | t dd} tddd	d	\}}d| ||f< t dddgdddgdddgg}t| | d S )
NrB   rB   rH   g      ?r   r   皙?r'   r'   g?      ?r   r   r   rL   r   )r   r   r   Zimg_correctr!   r!   r"   test_ellipse_trivialr  sV    



r|   c                  C   s6  t dd} tdddd\}}d| ||f< t ddddgddddgddddgddddgg}t| | t dd} td	d	dd\}}d| ||f< t dddddgdddddgdddddgdddddgdddddgg}t| | t d
d} tdddd\}}d| ||f< t ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
g
}t| | t d
d} tdddd\}}d| ||f< t ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
g
}t| | t dd} tdddd\}}d| ||f< t dddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgg}t| | d S )NrJ   rH   rz   rx   333333?r   r   r2   rB   r   r3   r'   r4   g      @g      @r[   rP   r{   r   r!   r!   r"   test_ellipse_generic  s    







               r~   c                  C   sD  t dd} tdddd| jd\}}d| ||f< t dddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgg}t| | t d	d} tdddd| jd\}}d| ||df< t | }t dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	dddddddddg	g
|d
< t| | d S )Nr[   rH   rP   r'   r   ru   r   r   )r   r-   r'   .r   )r   r   r   rU   rL   r   
zeros_liker   r!   r!   r"   test_ellipse_with_shape  sP                   

r   c                  C   s   t dddd\} }ttdddddgdddddgdddddgdddddgdddddgg\}}t| |d  t||d  d S )Nr}   r   r   r3   )r   r   ZnonzerorL   r   )r   r   Zrr_Zcc_r!   r!   r"   test_ellipse_negative%  s    r   c               
   C   s   t jdt jd} t jdt jd}tdddD ]v}| d tdddd	t |d
\}}d| ||f< |d tdddd	t |d d
\}}d|||f< t| | q,d S )N   r   Zdtyper   rm   r\   P   F   <   (   Zrotationr   )r   r   rH   rangefillr   deg2radr   )rF   Zimg2angler   r   r!   r!   r"   test_ellipse_rotation_symmetry3  s    

 r   c                  C   s   t jdt jd} tdddD ]t}| d t |}tdddd	|d
\}}d| ||f< t| d j}t 	|dt j
d  }t||t j
d  d qd S )N)i  i  r   r   rm   r   i  iX     i  r   r   r'   rB   )r   r   rH   r   r   r   r   r   Zorientationroundpir   )r   Zrotr   r   r   Zangle_estim_rawZangle_estimr!   r!   r"   test_ellipse_rotated@  s    

r   c                  C   sV   t dd} tddddd\}}d| ||f< t | dks>t| d d dksRtd S Nr   r\   rH   r\   rP   r   r   r   r   r   rd   rX   r   r   r   r!   r!   r"   $test_ellipse_perimeter_dot_zeroangleM  s
    r   c                  C   sV   t dd} tddddd\}}d| ||f< t | dks>t| d d dksRtd S r   r   r   r!   r!   r"   %test_ellipse_perimeter_dot_nzeroangleV  s
    r   c                  C   sd   t dd} t dd}tddddd\}}d| ||f< tdddd	\}}d|||f< t| | d S )
N)rD   rr   rH   r;   rP   r   r3   r   rB   rC   )r   r   r   r   r   )r   r    r   r   r!   r!   r"   %test_ellipse_perimeter_flat_zeroangle_  s    r   c               .   C   s  t dd} tddddd\}}d| ||f< t dddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgg}t| | d S )	Nr   rH   r\   rP      r;   r   r   r   r   r   rL   r   r   r!   r!   r"    test_ellipse_perimeter_zeroanglej  sJ                                  !r   c               8   C   s\  t dd} tddddd\}}d| ||f< t d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	gd	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	gd	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	gd	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	gd	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	gd	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	gd	d	d	d	d	d	d	d	d	d	d	d	d	d	ddddddd	d	d	d	d	gd	d	d	d	d	d	d	d	d	d	d	dddd	d	d	d	d	d	dd	d	d	d	gd	d	d	d	d	d	d	d	d	ddd	d	d	d	d	d	d	d	d	d	dd	d	d	gd	d	d	d	d	d	d	ddd	d	d	d	d	d	d	d	d	d	d	d	d	dd	d	gd	d	d	d	d	d	dd	d	d	d	d	d	d	d	d	d	d	d	d	d	d	dd	d	gd	d	d	d	d	dd	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	dd	d	gd	d	d	d	dd	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	dd	d	gd	d	d	dd	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	dd	d	d	gd	d	dd	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	dd	d	d	gd	dd	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	dd	d	d	d	gd	dd	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	dd	d	d	d	d	gdd	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	dd	d	d	d	d	d	gdd	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	dd	d	d	d	d	d	d	gdd	d	d	d	d	d	d	d	d	d	d	d	d	d	d	dd	d	d	d	d	d	d	d	gdd	d	d	d	d	d	d	d	d	d	d	d	d	ddd	d	d	d	d	d	d	d	d	gd	dd	d	d	d	d	d	d	d	d	d	ddd	d	d	d	d	d	d	d	d	d	d	gd	d	dd	d	d	d	d	d	dddd	d	d	d	d	d	d	d	d	d	d	d	d	gd	d	d	ddddddd	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	gd	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	gd	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	gd	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	gd	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	gd	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	gd	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	gg}t| | d S )
N)r   rA   rH   r\      rC   r;   rx   r   r   r   r   r!   r!   r"   !test_ellipse_perimeter_nzeroangle  sJ    444444444444444444444444444444 r   c                  C   s   t dd} tddddddd\}}d| ||f< d	}t d
d|  dfd}td| ddddd d\}}d|||f< t| ||| d d f  d S )Nrf   rH   rP   r   r-   r   ru   r   r3   r\   rB   rD   )r   r   r   r   rg   r!   r!   r"   test_ellipse_perimeter_shape  s    r   c            
      C   s   t jdtd} d\}}}d\}}}t||||||d\}}d| ||f< t jdtd}	t||||\}}d|	||f< t| |	 d S )Nr   r   r   )2   r   r   )r   r   r   r   r   )r   r   intr   r   r   )
imager0r1r2c0c1c2r   r   image2r!   r!   r"   test_bezier_segment_straight  s    

r   c            
   3   C   s  t dd} d\}}d\}}d\}}t||||||d\}}d| ||f< t dddddddddddddddddddddddddgdddddddddddddddddddddddddgdddddddddddddddddddddddddgdddddddddddddddddddddddddgdddddddddddddddddddddddddgdddddddddddddddddddddddddgdddddddddddddddddddddddddgdddddddddddddddddddddddddgdddddddddddddddddddddddddgdddddddddddddddddddddddddgdddddddddddddddddddddddddgdddddddddddddddddddddddddgdddddddddddddddddddddddddgdddddddddddddddddddddddddgdddddddddddddddddddddddddgdddddddddddddddddddddddddgdddddddddddddddddddddddddgdddddddddddddddddddddddddgdddddddddddddddddddddddddgdddddddddddddddddddddddddgdddddddddddddddddddddddddgdddddddddddddddddddddddddgdddddddddddddddddddddddddgdddddddddddddddddddddddddgdddddddddddddddddddddddddgg}	t| ||f d t| ||f d t| |	 d S )Nr@   rH   )rD   rD   )rD   rB   rw   r   r   )r   r   r   rL   r   r   
r   r   r   r   r   r   r   r   r   r    r!   r!   r"   test_bezier_segment_curved  sJ    4444444444444444444444444r   c            
      C   s   t jdtd} d\}}d\}}d\}}t||||||d\}}d| ||f< t jdtd}	t||||\}}d|	||f< t| |	 d S )Nr   r   )r   r   )r   r   r   r   r   )r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   r!   r!   r"   test_bezier_curve_straight  s    r   c            
       C   s"  t dd} d\}}d\}}d\}}t||||||d\}}d| ||f< t| ||f d t| ||f d t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgg}	t| |	 d S )N)   rk   rH   rI   r   r      r   r   r   r   r   r   r   rL   r   r!   r!   r"   test_bezier_curved_weight_eq_1  sF    r   c            
   "   C   s~  t dd} d\}}d\}}d\}}t||||||d\}}d| ||f< t| ||f d t| ||f d t ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
ddddddddddg
g}	t| |	 d S )	N)r   r   rH   rI   r   r   rB   r   r   r   r   r!   r!   r"   test_bezier_curved_weight_neq_1-  sF    r   c               
   C   s   t dd} d\}}d\}}d\}}t||||||ddd\}}d| ||f< d	}	t d
d|	  dfd}
d|	 d	 }}d|	 d }}d|	 d }}t||||||dd d\}}d|
||f< t| |
|	|	 d d f  d S )Nrf   rH   )r   r3   )r;   r   )r   r   rB   ru   r   r3   r\   rD   r;   r   r   )r   r   r   r   )r   r   r   r   r   r   r   r   r   rh   r    r!   r!   r"   test_bezier_curve_shapeR  s    r   zmatplotlib not installed)reasonc               	   C   s   t ddddgddddgddddgg} t | }tddddgddddg\}}d|||f< t||  t | }tddddgddddg|jdd\}}d|||f< t||  tt tdgdgdd	 W 5 Q R X d S )
Nr   r   rB   r'   rS   r4   T)rU   clip)r   )	r   rL   r   r   r   rU   r(   r)   r*   )expectedoutr   r   r!   r!   r"   test_polygon_perimeterc  s,    







 

r   c                  C   sB   t ddddgddddgdd\} }tt| d tt|d d S )NrS   r'   r4   )r'   r4   ru   r   )r   r   lenrY   r!   r!   r"   $test_polygon_perimeter_outside_image}  s    
 
r   c               
   C   s@  t jdddddgdddddgdddddgdddddgdddddggt jd} d}d}t jdt jd}t|||jd\}}d|||f< t||  t jdt jd}t|||jd\}}d|||f< t||  t jdt jd}td	d
|jd\}}d|||f< t||  t jdt jd}td	d
|jd\}}d|||f< t||  d S )Nr   r   r   )r   r   ry   r2   endrU   r   startrU   )r'   r   rO   r   r   rU   r   rL   rH   r   r   rU   r   r   r   r   r   r   r   r!   r!   r"   test_rectangle_end  s4    


r   c               
   C   s@  t jdddddgdddddgdddddgdddddgdddddggt jd} d}d}t jdt jd}t|||jd\}}d|||f< t||  t jdt jd}t|||jd\}}d|||f< t||  t jdt jd}td	d
|jd\}}d|||f< t||  t jdt jd}td	d
|jd\}}d|||f< t||  d S )Nr   r   r   )皙?皙?)@333333@r2   r   r   )r   r   )r   r   r   r   r   r!   r!   r"   test_rectangle_float_input  s4    


r   c               
   C   s   t jdddddgdddddgdddddgdddddgdddddggt jd} d}d}t jdt jd}t|||jd\}}d|||f< t||  t jdt jd}t|||jd\}}d|||df< t |}| |d	< t|| d S )
Nr   r   r   rI   ry   r2   extentrU   )r3   r3   r'   r   )r   rL   rH   r   r   rU   r   r   )r   r   r   r   r   r   Z
expected_2r!   r!   r"   test_rectangle_extent  s(    

r   c                  C   s  t jddddddgddddddgddddddgddddddgddddddggt jd} d}d}t j| jt jd}t|||jd\}}d|||f< t|||jd\}}d|||f< t||  t j| jt jd}t|||jd\}}d|||f< t|||jd\}}d|||f< t||  d S )Nr   r   rB   r   )r'   r3   )rS   r   )r   rL   rH   r   rU   r   r   r   )r   r   r   r   r   r   r!   r!   r"   test_rectangle_extent_negative  s,    
r   c                  C   s  t jddddddgddddddgddddddgddddddgddddddggt jd} d}d}t j| jt jd}t|||jd\}}d|||f< t||  t j| jt jd}t|||jd\}}d|||f< t||  t j| jt jd}d}d}t|||jd	\}}d|||f< t||  d S )
Nr   r   r   )rB   r'   )rB   r4   ru   r   )r   rB   r   )r   rL   rH   r   rU   r   r   )r   r   r   r   r   r   r   r!   r!   r"   test_rectangle_perimiter  s0    

r   c               
   C   s  t jdddddgdddddgdddddgdddddgdddddggt jd} t jdt jd}d}d}t|||jdd\}}d|||f< t||  t jdddddgdddddgdddddgdddddgdddddggt jd} t jdt jd}t|||jd	d\}}d|||f< t||  d S )
Nr   r   r   r2   rw   r   F)r   rU   r   Tr   rL   rH   r   r   rU   r   )r   r   r   r   r   r   r!   r!   r"   *test_rectangle_perimiter_clip_bottom_right  s<    




r   c               
   C   s  t jdddddgdddddgdddddgdddddgdddddggt jd} t jdt jd}d}d}t|||jdd\}}d|||f< t||  t jdddddgdddddgdddddgdddddgdddddggt jd} t jdt jd}t|||jd	d\}}d|||f< t||  d S )
Nr   r   r   r2   )r   rw   Fr   rU   r   Tr   r   r   r   r   r   r   r!   r!   r"   &test_rectangle_perimiter_clip_top_left/  s<    




r   c               
   C   s  t jdddddgdddddgdddddgdddddgdddddggt jd} t jdt jd}d}d}t|||jdd\}}d|||f< t||  t jdddddgdddddgdddddgdddddgdddddggt jd} t jdt jd}t|||jd	d\}}d|||f< t||  d S )
Nr   r   r   r2   )irB   )rB   r   Tr   Fr   r   r!   r!   r"   'test_rectangle_perimiter_clip_top_rightL  s<    




r   c               
   C   s  t jdddddgdddddgdddddgdddddgdddddggt jd} t jdt jd}d}d}t|||jdd\}}d|||f< t||  t jdddddgdddddgdddddgdddddgdddddggt jd} t jdt jd}t|||jd	d\}}d|||f< t||  d S )
Nr   r   r   r2   )rB   r   )r   r   Tr   Fr   r   r!   r!   r"   )test_rectangle_perimiter_clip_bottom_leftg  s<    




r   )Pnumpyr   Znumpy.testingr   r   r   r(   Zskimage._shared.testingr   Z"skimage._shared._dependency_checksr   Zskimage.drawr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   Zskimage.measurer   r#   r+   r/   r0   r1   r6   r9   r:   r?   rG   rN   rQ   rR   rV   rZ   r]   re   ri   rj   rt   rv   r|   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   markZskipifr   r   r   r   r   r   r   r   r   r   r   r!   r!   r!   r"   <module>   s   @
   2Q0		)('%%






