
    0-Ph                     
   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 Zd Z e            d	             Zd
 Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d Z3d Z4d  Z5d! Z6d" Z7d# Z8d$ Z9d% Z:d& Z;d' Z<d( Z=d) Z>d* Z?d+ Z@d, ZAd- ZBejC        D                    e
 d./          d0             ZEejC        D                    e
 d./          d1             ZFd2 ZGd3 ZHd4 ZIejC        D                    e
 d./          d5             ZJejC        D                    e
 d./          d6             ZKejC        D                    e
 d./          d7             ZLejC        D                    e
 d./          d8             ZMejC        D                    e
 d./          d9             ZNejC        D                    e
 d./          d:             ZOdS );    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                      t          j        d          } t          dddd          \  }}t          | ||fd           t          j        d          }d|dd d f<   t	          | |           d S )N
   r   r         )npzerosr	   r   r   imgrrccimg_s       \/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/skimage/draw/tests/test_draw.pytest_set_colorr$      st    
(8

C!Q2FBcB8Q8HDDAAAJsD!!!!!    c                     t          j        d          } t          dddd          \  }}}t          | ||fd|           t	          j        t                    5  t          | ||fd|           d d d            n# 1 swxY w Y   t          j        d          } t          dddd          \  }}}t          | ||f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(   s       r#   test_set_color_with_alphar.   '   s   
(8

CAq!R((MBEcB8Qe,,,, 
z	"	" ; ;#BxE::::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; (;

CAq!R((MBEcB8Ye444444s   A;;A?A?c                      t          j        d          } t          dddd          \  }}d| ||f<   t          j        d          }d|dd d f<   t          | |           d S Nr   r   	   r   r   r   r	   r   r   s       r#   test_line_horizontalr3   7   sk    
(8

C!Q1FBCBK8HDDAAAJsD!!!!!r%   c                      t          j        d          } t          dddd          \  }}d| ||f<   t          j        d          }d|d d df<   t          | |           d S r0   r2   r   s       r#   test_line_verticalr5   D   sk    
(8

C!Q1FBCBK8HDDAJsD!!!!!r%   c                      t          j        d          } t          dddd          \  }}d| ||f<   t          j        d          }d|dd d f<   t          | |           d S r0   r2   r   s       r#   test_line_reverser7   P   sk    
(8

C!Q1FBCBK8HDDAAAJsD!!!!!r%   c                      t          j        d          } t          dddd          \  }}d| ||f<   t          j        d          }t	          | |           d S )N   r:   r      r   r:   )r   r   r	   eyer   r   s       r#   test_line_diagr=   \   sX    
(6

C!Q1FBCBK6!99DsD!!!!!r%   c                      t          j        d          } t          dddd          \  }}}t          | ||fd|           t          j        d          }d|dd d f<   t	          | |           d S )Nr   r   r1   r   r'   )r   r   r
   r   r   r   r    r!   valr"   s        r#   test_line_aa_horizontalrA   g   s{    
(8

C!Q1%%KBCcB8Qc****8HDDAAAJsD!!!!!r%   c                      t          j        d          } t          dddd          \  }}}|| ||f<   t          j        d          }d|d d df<   t          | |           d S r0   )r   r   r
   r   r?   s        r#   test_line_aa_verticalrC   s   sm    
(8

C!Q1%%KBCCBK8HDDAJsD!!!!!r%   c                      t          j        d          } t          dddd          \  }}}d| ||f<   t          dddd          \  }}t	          ||          D ]\  }}t          | ||f         d           d S )Nr   r   r1      r   )r   r   r
   r	   zipr   )r   r    r!   r@   rcr_ic_is           r#   test_line_aa_diagonalrK      s    
(8

C!Q1%%KBCCBK 1aDAq1II ' 'SSc]A&&&&' 'r%   c                      t          j        d          } t          j        d          }t          dddd          \  }}}|| ||f<   t          dddd          \  }}}||||f<   t          | |j                   d S )N   rN   r            )r   r   r
   r   T)img0img1r    r!   r@   s        r#   0test_line_equal_aliasing_horizontally_verticallyrU      s    8HD8HD "aR((KBCDRL !RR((KBCDRL tTV$$$$$r%   c                     t          j        dd          } t          j        d          }t          |d d df         |d d df                   \  }}d| ||f<   t          j        dd          }d|ddddf<   t	          | |           d S )Nr   uint8)r   r   )r;   r   r;   r;   )r   r;   rX   r   r   r:   r   r   arrayr   r   r   polyr    r!   r"   s        r#   test_polygon_rectangler^      s    
(8W
%
%C8<==DT!!!Q$Zaaad,,FBCBK8Hg&&DD1acNsD!!!!!r%   c                  :   t          j        dd          } t          j        d          }t          |d d df         |d d df                   \  }}d| ||f<   t          j        g dg dg dg d	g d
g dg dg dg dg dg
d          }t	          | |           d S )Nr   rW   )r   r*   )r;      )ra   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   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   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   r   r   r   r   r   
r   r   r   r   r   r   r   r   r   r   rZ   r\   s        r#   test_polygon_rectangle_angularre          
(8W
%
%C8<==DT!!!Q$Zaaad,,FBCBK8******************************	
 	 D  sD!!!!!r%   c                  :   t          j        dd          } t          j        d          }t          |d d df         |d d df                   \  }}d| ||f<   t          j        g dg dg dg d	g d	g d	g d
g dg dg dg
d          }t	          | |           d S )Nr   rW   )rX   )r:   r   )ra   rE   )r*   rE   rX   r   r   rd   
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   r   r   r   )
r   r   r   r   r   r   r   r   r   r   
r   r   r   r   r   r   r   r   r   r   rZ   r\   s        r#   test_polygon_parallelogramrj      rf   r%   c                     t          j        dd          } t          j        d          }t          |d d df         |d d df         | j                  \  }}d| ||f<   t          j        d          }d|dd d d f<   t          | |           d S )Nr   rW   ))r   )d   rl   )rm   rm   )r   rm   rX   r   r   )r   r   r[   r   shaper   r\   s        r#   test_polygon_exceedro      s    
(8W
%
%C8FGGDT!!!Q$ZaaadSY77FBCBK8HDDQQQKsD!!!!!r%   c                  b    t          dd          \  } }| j        |j        cxk    rdk    sn J d S )Nr   r   )r   sizer    r!   s     r#   test_polygon_0d_inputrs      sB    Q]]FB7bg""""""""""""r%   c                     t          j        dd          } t          dd          \  }}d| ||f<   t          j        g dg dg dg dg d	g d	g d	g d	g d	g d	g d	g dg dg dg dg          }t	          | |           d S )
N   rv   rW   )ra   ra   rE   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   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   r   r   r   r   r   r   r   )r   r   r   r[   r   r   s       r#   	test_diskrz      s    
(8W
%
%C&!__FBCBK8999999999999999999999999999999999999999999999	
 D( sD!!!!!r%   c                     t          j        dd          } t          dddd          \  }}d| ||f<   t          j        |           dk    sJ | d         d         dk    sJ t          j        dd          } t          dddd          \  }}d| ||f<   t          j        g d	g d
g dg dg dg dg dg dg dg dg dg dg dg d
g d	g dg dg          }t          | |           d S )Nru   rW   ra   r   	bresenhammethodr      rv   )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   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   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rw   r   r   r   sumr[   r   r   s       r#   test_circle_perimeter_bresenhamr     sg   
(8W
%
%CaAk:::FBCBK6#;;!q6!9>>>>
(8W
%
%CaAk:::FBCBK8999999999999999999999999999999999999999999999999999#	
 D* sD!!!!!r%   c                  &   t          j        dd          } t          ddddd          \  }}d| ||f<   d	}t          j        d
d|z  z   dfd          }t          d|z   dddd           \  }}d|||f<   t          | ||| d d f                    d S )Nrv   rQ   rW   ra   r   r1   r|   )r~   rn   r   r:   rv   rO   rQ   )r   r   r   r   r   r    r!   shiftr"   s        r#   %test_circle_perimeter_bresenham_shaper   0  s    
(8W
%
%CaQ{(KKKFBCBKE8R!e)^R('22Da%iQ{$OOOFBDRLsDvqqq122222r%   c                     t          j        dd          } t          dddd          \  }}d| ||f<   t          j        |           dk    sJ | d         d         dk    sJ t          j        dd          } t          dddd          \  }}d| ||f<   t          j        g d	g d
g dg dg dg dg dg dg dg dg dg dg dg d
g d	g dg dg          }t          | |           d S )Nru   rW   ra   r   andresr}   r   r   rx   )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   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rw   r   r   s       r#   test_circle_perimeter_andresr   ;  sg   
(8W
%
%CaAh777FBCBK6#;;!q6!9>>>>
(8W
%
%CaAh777FBCBK8999999999999999999999999999999999999999999999999999#	
 D* sD!!!!!r%   c                     t          j        dd          } t          ddd          \  }}}d| ||f<   t          j        |           dk    sJ | d         d         dk    sJ t          j        dd          } t          ddd          \  }}}|dz  | ||f<   t          j        g d	g d
g dg dg dg dg dg dg dg dg dg dg dg dg dg d
g d	g          }t          | |           d S )Nru   rW   ra   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   R         r)   r   r   r   r   r   r   r   r   )r   r   r   r         J      r   r   r   r   r   r   r   r   r   )r   r   r      rN   r   r   r   r   r   r   r   rN   r   r   r   r   )r   r   r   rN   r   r   r   r   r   r   r   r   r   rN   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   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   )r   r)   r   r   r   r   r   r   r   r   r   r   r   r   r   r)   r   )r   r   r   r   r[   r   r?   s        r#   test_circle_perimeter_aar   ]  sf   
(8W
%
%C%aA..KBCCBK6#;;!q6!9>>>>
(8W
%
%C%aA..KBC)CBK8	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^	^!	` D( sD!!!!!r%   c                  2   t          j        dd          } t          dddd          \  }}}|dz  | ||f<   d}t          j        d	d
|z  z   dfd          }t          d|z   ddd           \  }}}|dz  |||f<   t          | ||| d d f                    d S )Nr   rW   ra   r   r1   rn   r)   r:   rv   rO   rQ   )r   r   r   r   )r   r    r!   r@   r   r"   s         r#   test_circle_perimeter_aa_shaper     s    
(8W
%
%C%aQh???KBC)CBKE8R!e)^R('22D%a%iQdCCCKBC9DRLsDvqqq122222r%   c                     t          j        dd          } t          dddd          \  }}d| ||f<   t          j        ddgddgg          }t	          | |           t          j        dd          } t          dddd          \  }}d| ||f<   t          j        ddgddgg          }t	          | |           t          j        dd          } t          dddd          \  }}d| ||f<   t          j        g d	g d
g d	g          }t	          | |           t          j        dd          } t          dddd          \  }}d| ||f<   t          j        g d
g dg d
g          }t	          | |           t          j        dd          } t          dddd          \  }}d| ||f<   t          j        g dg dg dg          }t	          | |           d S )NrO   rO   rW   g      ?r   r   皙?r*   r*   g?)r   r   r   )r   r   r   )r   r   r         ?r   r   r   r[   r   )r   r    r!   img_corrects       r#   test_ellipse_trivialr     s*   
(67
#
#CS#sC((FBCBK(QFQF+,,KsK(((
(67
#
#CS#sC((FBCBK(FF	
 K sK(((
(67
#
#CQ3$$FBCBK(IIIIII	
 K sK(((
(67
#
#CQ3$$FBCBK(IIIIII	
 K sK(((
(67
#
#CQ3$$FBCBK(IIIIII	
 K sK(((((r%   c                  `   t          j        dd          } t          dddd          \  }}d| ||f<   t          j        g dg dg dg dg          }t	          | |           t          j        d	d          } t          d
d
dd          \  }}d| ||f<   t          j        g dg dg dg dg dg          }t	          | |           t          j        dd          } t          dddd          \  }}d| ||f<   t          j        g dg dg dg dg dg dg dg dg dg dg
          }t	          | |           t          j        dd          } t          dddd          \  }}d| ||f<   t          j        g dg dg dg dg dg dg dg dg dg dg
          }t	          | |           t          j        dd          } t          dddd          \  }}d| ||f<   t          j        g dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg          }t	          | |           d S )NrY   rW   r   r   333333?r   )r   r   r   r   r   r   r   r   r9   rO   r   r   r   r   r   r   r   r   r   r   r   r:   r*   r;   rd   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   g      @g      @ru   ra   rw   ry   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s       r#   test_ellipse_genericr     sS   
(67
#
#CS#sC((FBCBK8LLLLLLLL		
 D sD!!!
(67
#
#CQ3$$FBCBK8OOOOOOOOOO	
 D sD!!!
(8W
%
%CQ1a  FBCBK8******************************	
 D sD!!!
(8W
%
%CS!S!$$FBCBK8******************************	
 D sD!!!
(8W
%
%CQ1a  FBCBK8999999999999999999999999999999999999999999999	
 D& sD!!!!!r%   c                  <   t          j        dd          } t          dddd| j                  \  }}d| ||f<   t          j        g dg dg dg dg dg d	g d	g d	g d	g d	g dg dg dg dg dg          }t          | |           t          j        d
d          } t          dddd| j                  \  }}d| ||df<   t          j        |           }t          j        g dg dg dg dg dg dg dg dg dg dg
          |d<   t          | |           d S )Nru   rW   ra   r*   r   r   r   rw   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r1   r*   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   .r   )r   r   r   rn   r[   r   
zeros_liker   s       r#   test_ellipse_with_shaper     s   
(8W
%
%CQ1b	222FBCBK8999999999999999999999999999999999999999999999	
 D( sD!!!
(:w
'
'CQ1b	222FBCB	N=D8''''''''''''''''''''''''''''''	
 DL sD!!!!!r%   c            
          t          dddd          \  } }t          j        t          j        g dg dg dg dg dg                    \  }}t	          | |dz
             t	          ||dz
             d S )Nr   r   r   r:   )r   r   nonzeror[   r   )r    r!   rr_cc_s       r#   test_ellipse_negativer   Q  s    RS#&&FBz
	
 	

 
HC r37###r37#####r%   c                     t          j        dt           j                  } t          j        dt           j                  }t          ddd          D ]}|                     d           t          dddd	t          j        |          
          \  }}d| ||f<   |                    d           t          dddd	t          j        |dz             
          \  }}d|||f<   t          | |           d S )N   r   dtyper   r   rv   P   F   <   (   rotationr   )r   r   rW   rangefillr   deg2radr   )rT   img2angler    r!   s        r#   test_ellipse_rotation_symmetryr   c  s    8Jbh///D8Jbh///Dq#r"" ' '		!RR"*U2C2CDDDBRV		!RR"*US[2I2IJJJBRV4&&&&' 'r%   c                     t          j        dt           j                  } t          ddd          D ]}|                     d           t          j        |          }t          dddd	|
          \  }}d| ||f<   t          |           d         j        }t          j	        |d          t           j
        dz  z  }t          ||t           j
        dz  z  d           d S )N)i  i  r   r   r   r   i  iX     i  r   r   r*   rO   )r   r   rW   r   r   r   r   r   orientationroundpir   )r   rotr   r    r!   angle_estim_rawangle_estims          r#   test_ellipse_rotatedr   p  s    
(<rx
0
0
0CQR   A A
3c3e<<<BBF%c**1-9h22beai@K"%!))<a@@@@A Ar%   c                      t          j        dd          } t          ddddd          \  }}d| ||f<   t          j        |           dk    sJ | d         d         dk    sJ d S Nr   rv   rW   rv   ra   r   r   r   r   r   r   r   r    r!   s      r#   $test_ellipse_perimeter_dot_zeroangler   }  k    
(8W
%
%Cr1aA..FBCBK6#;;!r71:??????r%   c                      t          j        dd          } t          ddddd          \  }}d| ||f<   t          j        |           dk    sJ | d         d         dk    sJ d S r   r   r   s      r#   %test_ellipse_perimeter_dot_nzeroangler     r   r%   c                      t          j        dd          } t          j        dd          }t          ddddd          \  }}d| ||f<   t          dddd	          \  }}d|||f<   t	          | |           d S )
N)rQ   r   rW   rE   ra   r   r:   r   rO   rP   )r   r   r   r	   r   )r   r"   r    r!   s       r#   %test_ellipse_perimeter_flat_zeroangler     s    
(8W
%
%C8Hg&&Dq!Q1--FBCBK!Q2FBDRLsD!!!!!r%   c            !      f   t          j        dd          } t          ddddd          \  }}d| ||f<   t          j        g d	g d
g dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg d
g          }t	          | |           d S )Nr   rW   rv   ra      rE   r   r   rw   )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   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   r   r   r   r   r   r   r   r   r   r   r   r[   r   r   s       r#    test_ellipse_perimeter_zeroangler     sv   
(8W
%
%Cr1b!Q//FBCBK8999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999=	
! !DF sD!!!!!r%   c            !      f   t          j        dd          } t          ddddd          \  }}d| ||f<   t          j        g d	g d	g d	g d	g d	g d	g d
g dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg d	g d	g d	g d	g d	g d	g          }t	          | |           d S )N)r   rN   rW   rv      rP   rE   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   )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   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   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   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   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   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   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   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   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   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   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   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   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   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   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   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   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s       r#   !test_ellipse_perimeter_nzeroangler     sv   
(8W
%
%Cr2r1c22FBCBK8WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW=	
! !DD sD!!!!!r%   c                  *   t          j        dd          } t          dddddd          \  }}d| ||f<   d	}t          j        d
d|z  z   dfd          }t          d|z   ddddd           \  }}d|||f<   t          | ||| d d f                    d S )Nr   rW   ra   r   r1   r   r   r   r:   rv   rO   rQ   )r   r   r   r   r   s        r#   test_ellipse_perimeter_shaper     s    
(8W
%
%Cq"aAX>>>FBCBKE8R!e)^R('22Dq5y"aATBBBFBDRLsDvqqq122222r%   c            	          t          j        dt                    } d\  }}}d\  }}}t          ||||||d          \  }}d| ||f<   t          j        dt                    }	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!   image2s
             r#   test_bezier_segment_straightr     s    HZs+++EJBBJBBRRRQ77FBE"b&MXj,,,F"b"b!!FBF2r6Nuf%%%%%r%   c                     t          j        dd          } d\  }}d\  }}d\  }}t          ||||||d          \  }}d| ||f<   t          j        g dg dg dg dg dg dg dg dg d	g d	g d	g d
g d
g dg dg dg dg dg dg dg dg dg dg dg dg          }	t	          | ||f         d           t	          | ||f         d           t          | |	           d S )NrM   rW   )rQ   rQ   )rQ   rO   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   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   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   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   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   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   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   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   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   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"   s
             r#   test_bezier_segment_curvedr     s   
(8W
%
%CFBFBFBRRRQ77FBCBK8WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW3	
 D: RVa   RVa   sD!!!!!r%   c            	      &   t          j        dt                    } d\  }}d\  }}d\  }}t          ||||||d          \  }}d| ||f<   t          j        dt                    }	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   s
             r#   test_bezier_curve_straightr   0  s    HZs+++EFBFBFB"b"b"b!44FBE"b&MXj,,,F"b"b!!FBF2r6Nuf%%%%%r%   c                     t          j        dd          } d\  }}d\  }}d\  }}t          ||||||d          \  }}d| ||f<   t          | ||f         d           t          | ||f         d           t          j        g dg dg d	g d
g dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg d
g d	g dg dg          }	t          | |	           d S )N)   r   rW   rX   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   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   r   r   r   r   r   r   r   r   r   r   r[   r   s
             r#   test_bezier_curved_weight_eq_1r   >  s   
(7G
$
$CFBFBFB"b"b"b!44FBCBKRVa   RVa   8$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$/	
 D6 dr%   c                     t          j        dd          } d\  }}d\  }}d\  }}t          ||||||d          \  }}d| ||f<   t          | ||f         d           t          | ||f         d           t          j        g dg d	g d
g dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg d
g d	g dg          }	t          | |	           d S )N)r   r   rW   rX   r   r   rO   r   rd   rh   )
r   r   r   r   r   r   r   r   r   r   rb   rc   )
r   r   r   r   r   r   r   r   r   r   ri   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   r   r   s
             r#   test_bezier_curved_weight_neq_1r   e  s   
(8W
%
%CFBFBFB"b"b"b!44FBCBKRVa   RVa   8*********************************************************************/	
 D6 dr%   c            
      t   t          j        dd          } d\  }}d\  }}d\  }}t          ||||||dd          \  }}d| ||f<   d	}	t          j        d
d|	z  z   dfd          }
d|	z   d	}}d|	z   d}}d|	z   d}}t          ||||||dd           \  }}d|
||f<   t          | |
|	|	 d d f                    d S )Nr   rW   )r   r:   )rE   r   )r   r   rO   r   r   r:   rv   rQ   rE   r   r   )r   r   r   r   )r   r   r   r   r   r   r   r    r!   r   r"   s              r#   test_bezier_curve_shaper     s    
(8W
%
%CFBFBFB"b"b"b!8DDDFBCBKE8R!e)^R('22DYBYBYB"b"b"b!4@@@FBDRLsDvqqq122222r%   zmatplotlib not installed)reasonc                     t          j        g dg dg dg          } t          j        |           }t          g dg d          \  }}d|||f<   t	          ||            t          j        |           }t          g dg d|j        d	          \  }}d|||f<   t	          ||            t          j        t                    5  t          d
gdgd           d d d            d S # 1 swxY w Y   d S )Nr   )r   r   r   r   )r   rO   rO   r   )r   r   r*   r*   r   rl   rl   r*   r*   rl   r;   r;   rl   T)rn   clipr   )r  )	r   r[   r   r   r   rn   r+   r,   r-   )expectedoutr    r!   s       r#   test_polygon_perimeterr    sQ   x|||\\\BCCH
-
!
!C|||\\\::FBCBKsH%%%
-
!
!Ccid  FB CBKsH%%%	z	"	" / /1#s..../ / / / / / / / / / / / / / / / / /s   C%%C),C)c                      t          g dg dd          \  } }t          t          |           d           t          t          |          d           d S )Nr  r  )r*   r;   r   r   )r   r   lenrr   s     r#   $test_polygon_perimeter_outside_imager    sT    ~~~~~~VLLLFBR!R!r%   c                     t          j        g dg dg dg dg dgt           j                  } d}d}t          j        dt           j                  }t	          |||j                  \  }}d|||f<   t          ||            t          j        dt           j                  }t	          |||j        	          \  }}d|||f<   t          ||            t          j        dt           j                  }t	          d
d|j                  \  }}d|||f<   t          ||            t          j        dt           j                  }t	          d
d|j        	          \  }}d|||f<   t          ||            d S )Nr   r   r   )r   r   r   r9   endrn   r   r  startrn   )r*   r   r`   r  r  rn   r   r[   rW   r   r   rn   r   r  r  r  r   r    r!   s         r#   test_rectangle_endr    s   xOOOOOOOOOO	
 h	 	 	H E
C
(6
*
*
*Cu#SY777FBCBKsH%%% (6
*
*
*C539===FBCBKsH%%% (6
*
*
*CVsyAAAFBCBKsH%%%
(6
*
*
*C6syAAAFBCBKsH%%%%%r%   c                     t          j        g dg dg dg dg dgt           j                  } d}d}t          j        dt           j                  }t	          |||j                  \  }}d|||f<   t          ||            t          j        dt           j                  }t	          |||j        	          \  }}d|||f<   t          ||            t          j        dt           j                  }t	          d
d|j                  \  }}d|||f<   t          ||            t          j        dt           j                  }t	          d
d|j        	          \  }}d|||f<   t          ||            d S )Nr   r   r   )皙?皙?)@333333@r9   r  r   r  )r  r  )r  r  r  r  r  s         r#   test_rectangle_float_inputr    s   xOOOOOOOOOO	
 h	 	 	H E
C
(6
*
*
*Cu#SY777FBCBKsH%%% (6
*
*
*C539===FBCBKsH%%% (6
*
*
*CZZsyIIIFBCBKsH%%%
(6
*
*
*C:ZsyIIIFBCBKsH%%%%%r%   c                     t          j        g dg dg dg dg dgt           j                  } d}d}t          j        dt           j                  }t	          |||j                  \  }}d|||f<   t          ||            t          j        d	t           j                  }t	          |||j                  \  }}d|||d
f<   t          j        |          }| |d<   t          ||           d S )Nr   r   r   rX   r   r9   extentrn   r   )r:   r:   r*   r   r   )r   r[   rW   r   r   rn   r   r   )r  r  r  r   r    r!   
expected_2s          r#   test_rectangle_extentr    s   xOOOOOOOOOO	
 h	 	 	H EF
(6
*
*
*CuV39===FBCBKsH%%%
(9BH
-
-
-CuV39===FBCB	Ns##J!JvsJ'''''r%   c                  H   t          j        g dg dg dg dg dgt           j                  } d}d}t          j        | j        t           j                  }t          |||j                  \  }}d|||f<   t          |||j                  \  }}d	|||f<   t          ||            t          j        | j        t           j                  }t          |||j                  \  }}d	|||f<   t          |||j                  \  }}d|||f<   t          ||            d S )
Nr   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   rO   rO   r   r   )r*   r:   )rl   r  r   rO   )r   r[   rW   r   rn   r   r   r   )r  r  r  r   r    r!   s         r#   test_rectangle_extent_negativer$    sS    x	
 h	 	 	H EF
(8>
2
2
2C vSYGGGFBCBKuV39===FBCBKsH%%% (8>
2
2
2CuV39===FBCBK vSYGGGFBCBKsH%%%%%r%   c                  x   t          j        g dg dg dg dg dgt           j                  } d}d}t          j        | j        t           j                  }t          |||j                  \  }}d|||f<   t          ||            t          j        | j        t           j                  }t          |||j        	          \  }}d|||f<   t          ||            t          j        | j        t           j                  }d}d
}t          |||j                  \  }}d|||f<   t          ||            d S )Nr!  r"  )r   r   r   r   r   r   r   )rO   r*   )rO   r;   r   r   r  )r   rO   r  )r   r[   rW   r   rn   r   r   )r  r  r  r   r    r!   r  s          r#   test_rectangle_perimiterr&  =  s\   x	
 h	 	 	H E
C
(8>
2
2
2C 39===FBCBKsH%%% (8>
2
2
2C U#SYGGGFBCBKsH%%%
(8>
2
2
2CEF vSYGGGFBCBKsH%%%%%r%   c                     t          j        g dg dg dg dg dgt           j                  } t          j        dt           j                  }d}d}t	          |||j        d	          \  }}d
|||f<   t          ||            t          j        g dg dg dg dg dgt           j                  } t          j        dt           j                  }t	          |||j        d	          \  }}d
|||f<   t          ||            d S )Nr   r   r   r   r   r   r   r   r   r   r   r   r9   r   r   F)r  rn   r  r   r   r   r   r   r   Tr   r[   rW   r   r   rn   r   )r  r   r  r  r    r!   s         r#   *test_rectangle_perimiter_clip_bottom_rightr,  _  sB    xOOOOOOOOOO	
 h	 	 	H (6
*
*
*CEF vSYUSSSFBCBKsH%%% xOOOOOOOOOO	
 h	 	 	H (6
*
*
*C vSYTRRRFBCBKsH%%%%%r%   c                     t          j        g dg dg dg dg dgt           j                  } t          j        dt           j                  }d}d}t	          |||j        d	          \  }}d
|||f<   t          ||            t          j        g dg dg dg dg dgt           j                  } t          j        dt           j                  }t	          |||j        d	          \  }}d
|||f<   t          ||            d S )N)r   r   r   r   r   )r   r   r   r   r   r   r   r9   )r.  r   Fr  rn   r  r   )r   r   r   r   r   Tr+  r  r   r  r  r    r!   s         r#   &test_rectangle_perimiter_clip_top_leftr1    sB    xOOOOOOOOOO	
 h	 	 	H (6
*
*
*CE
C CsyuMMMFBCBKsH%%% xOOOOOOOOOO	
 h	 	 	H (6
*
*
*C CsytLLLFBCBKsH%%%%%r%   c                     t          j        g dg dg dg dg dgt           j                  } t          j        dt           j                  }d}d}t	          |||j        d	          \  }}d
|||f<   t          ||            t          j        g dg dg dg dg dgt           j                  } t          j        dt           j                  }t	          |||j        d	          \  }}d
|||f<   t          ||            d S )Nr(  r*  r   r   r9   )irO   )rO   r   Tr/  r   r)  Fr+  r0  s         r#   'test_rectangle_perimiter_clip_top_rightr3    s>   xOOOOOOOOOO	
 h	 	 	H (6
*
*
*CE
C CsytLLLFBCBKsH%%%xOOOOOOOOOO	
 h	 	 	H (6
*
*
*C CsyuMMMFBCBKsH%%%%%r%   c                     t          j        g dg dg dg dg dgt           j                  } t          j        dt           j                  }d}d}t	          |||j        d	          \  }}d
|||f<   t          ||            t          j        g dg dg dg dg dgt           j                  } t          j        dt           j                  }t	          |||j        d	          \  }}d
|||f<   t          ||            d S )Nr   )r   r   r   r   r   )r   r   r   r   r   r   r9   )rO   r   )r   r   Tr/  r   )r   r   r   r   r   Fr+  r0  s         r#   )test_rectangle_perimiter_clip_bottom_leftr5    s>   xOOOOOOOOOO	
 h	 	 	H (6
*
*
*CE
C CsytLLLFBCBKsH%%%xOOOOOOOOOO	
 h	 	 	H (6
*
*
*C CsyuMMMFBCBKsH%%%%%r%   )Pnumpyr   numpy.testingr   r   r   r+   skimage._shared.testingr   "skimage._shared._dependency_checksr   skimage.drawr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   skimage.measurer   r$   r.   r3   r5   r7   r=   rA   rC   rK   rU   r^   re   rj   ro   rs   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   markskipifr  r  r  r  r  r$  r&  r,  r1  r3  r5   r%   r#   <module>r?     se       O O O O O O O O O O  3 3 3 3 3 3 6 6 6 6 6 6                                 ( ' ' ' ' '	" 	" 	"5 5 5  	" 	" 	"	" 	" 	"	" 	" 	"" " "	" 	" 	"	" 	" 	"
' 
' 
'% % % 
" 
" 
"" " "4" " "4
" 
" 
"# # #" " ":" " "D3 3 3" " "D" " "D	3 	3 	34) 4) 4)nX" X" X"v1" 1" 1"h$ $ $$
' 
' 
'
A 
A 
A    " " "(" (" ("V'" '" '"T3 3 3
& 
& 
&&" &" &"R& & &$ $ $N$ $ $N3 3 3" K(BCC/ / DC/( K(BCC  DC!& !& !&H!& !& !&H( ( (4 K(BCC& & DC&B K(BCC& & DC&B K(BCC!& !& DC!&H K(BCC!& !& DC!&H K(BCC& & DC&D K(BCC &  & DC &  &  &r%   