
    h1K                        S SK r S SKrS SKrS SKJr  S SKrS SKJr  S SK	J
r
  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S	 rS
 rS rS r\R2                  R5                  S\
" / SQSS9SS4\
" / SQSS9SS4\
" / SQSS9SS4\
" / SQSS9SS4\
" / SQSS9SS4\
" / SQSS9SS4/5      S 5       rS r\
" S S /SS /SS/S S//\
R:                  \
R<                  \
R<                  \
R<                  /5      \
" S S /S S/SS //\
R:                  \
R>                  \
R>                  /5      \
" S S/SS//\
R:                  \
R@                  /5      \
" SS//\
R:                  /5      /r!/ SQr"\R2                  R5                  S\#" \!\"5      5      S 5       r$\R2                  R5                  S\
RJ                  \
RL                  /5      S 5       r'S  r(S! r)\" S"/SS#\ RT                  " 5       S$:X  a  S OS%S&9S' 5       r+\" S(/SS)9S* 5       r,\" S+/S#S,9S- 5       r-S. r.S/ r/\" S0/SS)9S1 5       r0\" S2/SS)9S3 5       r1\" S4/SS)9S5 5       r2\" S6/S7S/ S8Q\ RT                  " 5       S$:X  a  S OS9S:9S; 5       r3S< r4S= r5S> r6S? r7\R2                  R5                  S@\Rp                  " SA V s/ s H  n \Rs                  / SBQ5      U -   PM     sn 5      5      SC 5       r:\R2                  R5                  SD\;" SESFSG5      5      SH 5       r<SI r=SJ r>SK r?gs  sn f )L    N)assert_array_equal)patches)Path)Polygon)image_comparison)
transforms)
MouseEventc                  *   [        [        R                  " S5      SS9n U R                  R                  S:X  d   eU R
                  b   e[        U R                  5       R                  [        R                  R                  5       R                  5        g )Nr      Tclosed)r   npzerosverticesshapecodesr   get_extentsextentsr   Bboxnullpaths    L/var/www/html/env/lib/python3.13/site-packages/matplotlib/tests/test_path.pytest_empty_closed_pathr      sn     .D==&(((::t'')11!++-557    c                     ^ [         R                  " 5       mU4S jn [        R                  " [        5         U " 5         S S S 5        g ! , (       d  f       g = f)Nc                  .   > T R                   S-  T l         g )N       @)r   r   s   r   modify_vertices+test_readonly_path.<locals>.modify_vertices   s    +r   )r   unit_circlepytestraisesAttributeError)r    r   s    @r   test_readonly_pathr&      s6    D, 
~	& 
'	&	&s   A
Ac                  p   [         R                  " S5      R                  SS5      n [        R                  " [
        [        R                  " SU R                   35      S9   [        U 5        S S S 5        [         R                  " S5      R                  SSS5      n[        R                  " [
        [        R                  " SUR                   35      S9   [        U5        S S S 5        [         R                  " S5      R                  SS5      n[         R                  " S5      n[        R                  " SUR                   S	UR                   35      n[        R                  " [
        US9   [        X#5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       g = f)
N         z
has shape )matchr      zYour vertices have shape z but your codes have shape )
r   arangereshaper#   r$   
ValueErrorreescaper   r   )
bad_verts1
bad_verts2
good_verts	bad_codesmsgs        r   test_path_exceptionsr7   $   sE   2&&q!,J	zYYJ4D4D3E'FG
IZ
I 2&&q!Q/J	zYYJ4D4D3E'FG
IZ
I 2&&q!,J		!I
))/
0@0@/A B11:0AC DC	z	-Z# 
.	-
I 
I

I 
I 
.	-s$   !FF/F'
F
F$'
F5c                      [         R                  " / SQ5      n SS/nU R                  U5      nUR                  S:X  d   e[        R
                  R                  USS/5        g )N)r   r   r      r;   r;   r;   r         ?r?   )      ?r?   boolTF)r   _create_closedcontains_pointsdtyper   testingassert_equal)r   pointsrets      r   test_point_in_pathrI   7   sW    ?@D*%F


v
&C99JJC$/r   z#other_path, inside, inverted_inside)      ?rK   )rK         ?)rL   rL   )rL   rK   rJ   Tr   F)      пrN   rN         ?rP   rP   rP   rN   rM   )rM   rO   r>   rQ   rR   rM   )rJ   )rK         ?)rS   rS   )rS   rK   rJ   r9   r:   r<   r=   r9   )r   r   )r   r*   r*   r*   )r*   r   rU   c                 t    [        / SQSS9nUR                  U 5      UL d   eU R                  U5      UL d   eg )NrT   Tr   )r   contains_path)
other_pathinsideinverted_insider   s       r   test_contains_pathr\   @   sC     8FDj)V333##D)_<<<r   c                      [         R                  " 5       n / SQnU R                  USS9n[        R                  R                  U/ SQ5        g )N))        r^   )rS   r^   )?r_   g      )radius)TFF)r   r"   rC   r   rE   rF   )r   rG   results      r   $test_contains_points_negative_radiusrb   S   s?    D2F!!&!6FJJF$89r   r;   r   ))r^   r^   rL         ?)r^   r^   rc   r?   )r^   rc   rc   rc   )rc   r   rc   r   zpath, extentsc                 t    [         R                  " U R                  5       R                  U:H  5      (       d   eg )N)r   allr   r   )r   r   s     r   test_exact_extentsrf   l   s-     66$""$,,78888r   ignored_codec                     [        SS/SS/SS//[         R                  [         R                  U /5      n[        R                  " UR	                  5       R
                  S:H  5      (       d   eg )Nr   r;   r   )r^   r^   rc   rc   )r   MOVETOr   re   r   r   )rg   r   s     r   test_extents_with_ignored_codesrj   z   sf     !QQQ;;\BDD 66$""$,,0@@AAAAr   c                     [         R                  " SS/SS/SS/SS/SS//5      n [        U 5      n[         R                  " [         R                  S//5      nUR	                  U5      n[        U5      S:X  d   eUS   (       a   eg Nr   r;   r?   )r   arrayr   nanrC   len)boxptestcontainss       r   test_point_in_path_nanrt      s    
((QFQFQFQFQF;
<CS	A88bffc]O$D  &Hx=A{?{r   c                  J   [         R                  " 5       u  pUR                  SSS9  UR                  SS5      nUR	                  5       R                  UR                  R                  S5      UR                  5       5      (       d   eUR	                  5       R                  UR                  R                  S5      UR                  5       5      (       a   eUR	                  5       R                  UR                  R                  S5      UR                  5       5      (       a   eg )	Nlogr:   )xscaleylimr;   
   )   r?   r>   )2   r?   )	pltsubplotssetaxvspanget_pathcontains_point	transData	transformget_transform)figaxpolygons      r   test_nonlinear_containmentr      s
   llnGCFF%fF%jjBG,,
w')>)>)@B B B B!00
x('*?*?*AC C C C!00
x('*?*?*AC C C C Cr   zarrow_contains_point.pngmpl20x86_64gS㥛?)remove_textstyletolc            	      b   [         R                  " 5       u  pUR                  S5        UR                  S5        [        R
                  " SSSSS9nUR                  U5        [        R
                  " SSS	SS9nUR                  U5        [        R
                  " S
SSSSS9nUR                  U5        X#U/n[        R                  " [        R                  " SSS5      [        R                  " SSS5      5      u  pg[        [        UR                  5       UR                  5       5      5       H  u  nu  pUR                  R                  X/5      u  p[        SU R                   X5      n[        U5       H3  u  pUR#                  U5      u  nnU(       d  M"  UR%                  XSSS9  M5     M     g )Nr   )r?   rK   )r@   rL   z->(   )
arrowstylemutation_scale)r?   r;   )r@   rS   z]-[)r?   r@   )r@   rP   fancyF)r   fillr   r   r   g?button_press_eventrz   r)sc)r|   r}   set_xlimset_ylimr   FancyArrowPatch	add_patchr   meshgridr-   	enumeratezipravelr   r   r	   canvasrs   scatter)r   r   arrowarrow1arrow2patches_listXYkxyxdispydispeventmpatchrZ   ress                     r   test_arrow_contains_pointr      sn    llnGCKKKK ##K/3357E LL$$X{05468F LL$$Z07*/468F LL6*L ;;ryyAs+yyAs+-DAs1779aggi89	6A||--qf5/UJ!,/HA../KFCv

11
,	 0 :r   zpath_clipping.svg)r   c            
      `   [         R                  " SS9n [        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ S	Q/5       Hv  u  pU R                  S
SUS-   5      n/ SQnUR	                  US   US   US   -   5        UR                  US   US   US   -   5        UR                  [        USSSS95        Mx     g )N)g      @g@)figsize)   r   r   ^    r   )r   r   )r   r   r   r   d   )r   r   r   r   r   )r   r     r   r   )r   r   r   r   r   )r   r   r   r   )r   r   r   r   r)   r   r;   )r      i  i  r   r*   noneredT)	facecolor	edgecolorr   )r|   figurer   add_subplotr   r   r   r   )r   ixyr   bboxs        r   test_path_clippingr      s    
**Z
(C<<<<<<<> ? __Q1Q3'!
DGT!WtAw./
DGT!WtAw./
W&E$@ 	A?r   zsemi_log_with_zero.png)r   c                      [         R                  " SS5      n SSU S-  S-   -  -
  S-  n[        R                  " 5       u  p#UR	                  XSSS	S
9  UR                  SS5        UR                  S5        g )Niry   rc   r   r;      -o   r   )lwmarkeredgecolorgHz>T)r   r-   r|   r}   semilogyr   gridr   r   r   r   s       r   test_log_transform_with_zeror      sg    
		#rA	sAqDF|	b AllnGCKKdr3K7KKaGGDMr   c                     [         R                  " 5       n U R                  R                  S:X  d   e[         R                  " X 5      nUR                  R                  S:X  d   eUR                  R                  S:X  d   e[         R                  " [        S/5      U 5      nUR                  R                  S:X  d   eUR                  R                  S:X  d   eg )Nr   )r   r9   )r;   r   )r;   )r   make_compound_pathr   r   r   )emptyr2r3s      r   test_make_compound_path_emptyr      s     ##%E>>6)))		 	 	.B;;&&&88>>T!!!		 	 vh	7B;;&&&88>>T!!!r   c                      SS/n S[        X /[         R                  [         R                  /5      /-  n[         R                  " U6 n[        R
                  " UR                  [         R                  :H  5      S:X  d   eg )Nr   r*   )r   ri   STOPr   r   sumr   )zeropathscompound_paths      r   test_make_compound_path_stopsr      sf    q6DtTL4;;		":;<<E++U3M 66-%%23q888r   zxkcd.pngc                  n   [         R                  R                  S5        [         R                  " SS[         R                  -  S5      n [         R
                  " U 5      n[        R                  " 5          [        R                  " 5       u  p#UR                  X5        S S S 5        g ! , (       d  f       g = f)Nr   r   r   )
r   randomseedlinspacepisinr|   xkcdr}   plotr   s       r   	test_xkcdr      sd    IINN1
Aq255y#&A
q	A	,,.
 
s   4)B&&
B4zxkcd_marker.pngc                     [         R                  R                  S5        [         R                  " SSS5      n U nSU -
  nS[         R                  " S5      -  n[
        R                  " 5          [
        R                  " 5       u  pEUR                  XSSS9  UR                  XSSS9  UR                  XS	SS9  S S S 5        g ! , (       d  f       g = f)
Nr   rz            @+ry   )mso^)	r   r   r   r   onesr|   r   r}   r   )r   y1y2y3r   r   s         r   test_xkcd_markerr     s    IINN1
Aq!A	
B	
QB	rwwqz	B	,,.
sr"
sr"
sr"	 
s   -AC
Czmarker_paths.pdfc                     Sn [         R                  " [        R                  " U 5      [        R                  " U 5      S-   [        R                  " U 5      5        [         R
                  " SU 5        [         R                  " SS5        g )N   r)   )r|   errorbarr   r-   r   xlimrx   )Ns    r   test_marker_paths_pdfr     sS    	ALL1a HHROHHROr   nan_pathdefault)pdfsvgepspngg;On?)r   r   
extensionsr   c                  *   S[         R                  S[         R                  SSS/n [         R                  S[         R                  SS[         R                  S	/n[        R                  " 5       u  p#UR	                  U S
5        UR	                  US
5        g )Nr   r   r)   rz   r,   r   	   ry   r(   r   )r   rn   r|   r}   r   )y0r   r   r   s       r   test_nan_isolated_pointsr    si    
 RVVQ1a	(B
&&!RVVQBFFB	/BllnGCGGBGGBr   c                  >   [         R                  " SS/SS/SS/SS/SS	/S
S/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS /S!S"/S#S"/S$S%/S&S'/S(S)//5      n S*u  pp4[        [         R                  " U S S 2S+4   U S S 2S,4   45      R                  S-S.9n[
        R                  " X/X4//5      nUR                  U5      R                  5       S,   n[         R                  " US/   US0   :g  5      (       d   e[         R                  " US0   US,   :H  5      (       d   eg )1NgmR?gDpTU?g     ?g_9?g     ?g      ?gUUu@gF^9?g      ?g$z|?g["8j@gUU@ga1?g["8@g}LRJ?gDpTU?gmR?g      @g=:r9?g["8@gAL0 @gUU@gy?gI?g9 @g["8
@g_9@g     @gB@gUU@gq1Pc1@g     @?ghs@gUU@gA!@gmR@g     @gbc@g     @?g9qa @gI?)rc   r@   g @r   r;   r   Tr   r   )
r   rm   r   vstackTr   r   clip_to_bboxto_polygonsre   )handr0c0r1c1poly	clip_rectpoly_clippeds           r   (test_path_no_doubled_point_in_to_polygonr  *  s}   88
j	!
g	
h	
	
f	
j	!
j	!
j	!
j	!
d	
Z	 
j	!
j	!
j	!
X	
j	!
h	
j	!
j	!
f	
X	
j	!+	#$D0 ,RR		41:tAqDz2355dCD"B8 45I$$Y/;;=a@L66,r"l2&66777766,r"l1o56666r   c                     SS/SS//n [        U 5      n[        UR                  SSS9/ 5        [        UR                  SSSS9U /5        [        UR                  5       / 5        [        UR                  SS9U /5        SS/SS/SS//n SS/SS/SS/SS//n[        U 5      n[        UR                  SSS9U/5        [        UR                  SSSS9U /5        [        UR                  5       U/5        [        UR                  SS9U /5        g )	Nry   r   r   )widthheightF)r  r  closed_only)r     )r   r   r  )datarq   closed_datas      r   test_path_to_polygonsr  M  s   Hr2hDT
Aq}}2b}92>q}}2be}Lvq}}+q}}}7$@Hr2hR)D8b"XBx"b:KT
Aq}}2b}9K=Iq}}2be}Lvq}}6q}}}7$@r   c                  z   SS/SS//n [         R                  [         R                  /n[        U 5      n[        X5      nUR                  5       nUR                  5       nX$Ld   eUR                  UR                  Ld   eX5Ld   eUR                  UR                  Ld   eUR
                  UR
                  Ld   eg Nr   r;   )r   ri   LINETOdeepcopyr   r   vertsr   path1path2
path1_copy
path2_copys         r   test_path_deepcopyr*  b  s    VaVE[[$++&EKEE!J!J""">>!4!4444""">>!4!4444;;j.....r   c                  z   SS/SS//n [         R                  [         R                  /n[        U 5      n[        X5      nUR                  5       nUR                  5       nX$Ld   eUR                  UR                  L d   eX5Ld   eUR                  UR                  L d   eUR
                  UR
                  L d   eg r!  )r   ri   r"  copyr   r   r$  s         r   test_path_shallowcopyr-  q  s    VaVE[[$++&EKEEJJ""">>Z00000""">>Z00000;;******r   phi)r   r   r;   )
r   r   r  -   <   K   Z   i   x      c                 
   / SQn[         R                  " 5       R                  [        R                  " U 5      5      n[        SS/5      nUR                  U5      nUR                  U5      (       a  UR                  U5      (       d   e[        SS/5      nUR                  U5      nUR                  U5      (       a  UR                  U5      (       d   eUR                  [        SS/5      5      nUR                  [        SS/5      5      nUR                  U5      (       a  UR                  U5      (       d   eUR                  [        SS/5      5      nUR                  [        SS/5      5      nUR                  U5      (       a  UR                  U5      (       d   eUR                  U5      (       d   eUR                  [        SS	/5      5      nUR                  [        S
S/5      5      nUR                  U5      (       a  UR                  U5      (       d   eUR                  [        SS/5      5      nUR                  [        SS/5      5      nUR                  U5      (       d  UR                  U5      (       a   eUR                  [        SS/5      5      nUR                  [        SS/5      5      nUR                  U5      (       d  UR                  U5      (       a   eU Hs  nUR                  [        SS/5      5      nUR                  [        SU-   S4SU-   S4/5      5      nUR                  U5      (       d  UR                  U5      (       d  Ms   e   U Hn  nUR                  [        SS/5      5      nUR                  [        SSU-   4S/5      5      nUR                  U5      (       d  UR                  U5      (       d  Mn   e   U Hn  nUR                  [        SS/5      5      nUR                  [        SSU-
  4S/5      5      nUR                  U5      (       a  UR                  U5      (       a  Mn   e   UR                  [        SS/5      5      nUR                  [        / SQ5      5      nUR                  U5      (       a  UR                  U5      (       d   eUR                  [        SS/5      5      nUR                  [        SS/5      5      nUR                  U5      (       d  UR                  U5      (       a   eUR                  [        SS/5      5      nUR                  [        SS/5      5      nUR                  U5      (       d  UR                  U5      (       a   eg )N)gh㈵>g:0yE>g|=g-q=)r
  r   )r   r   r9   r:   )r   r*   )r;   r*   r   rz   )rz   rz   r<   rV   )r*   r   )r   r,   )r   r   r   r;   rz   )r:   r   r7  )r;   r   )r   r   )r_   r;   )r^         )rc   r8  )rc         @)r^   r9  )r   Affine2Drotater   deg2radr   transform_pathintersects_path)r.  	eps_arrayr   abr  s         r   test_path_intersect_pathrB    s   
 +I##%,,RZZ_=I 	gvA  #AQA$5$5a$8$888 	ffA  #AQA$5$5a$8$888 	  vv&6!78A  vv&6!78AQA$5$5a$8$888 	  vv&6!78A  vv&6!78AQA$5$5a$8$888 Q 	  vv&6!78A  vv&6!78AQA$5$5a$8$888 	  vv&6!78A  vv&6!78A  ##A,=,=a,@,@@@ 	  vv&6!78A  vv&6!78A  ##A,=,=a,@,@@@ $$T66*:%;<$$TAGQ<!c'1*F%GH$$Q''0A0A!0D0DDD  $$T66*:%;<$$TAq3w<*@%AB$$Q''0A0A!0D0DDD  $$T66*:%;<$$TAq3w<*@%AB  ##(9(9!(<(<<<  	  vv&6!78A  &>!?@AQA$5$5a$8$888 	  w&8!9:A  vx&8!9:A  ##A,=,=a,@,@@@ 	  y)&<!=>A  x&:!;<A  ##A,=,=a,@,@@@,@r   offseti0ii  r/  c                 :   U nSU -   n[         R                  " X5      n[        R                  " UR                  SS9n[        R
                  " UR                  SS9n[        R                  R                  US5        [        R                  R                  US5        g )Nih  r   )axisr   r;   )r   arcr   minr   maxrE   assert_allclose)rC  lowhighr   minsmaxss         r   test_full_arcrN    sn    
C<D88CD66$--a(D66$--a(DJJtR(JJtQ'r   c            
         [        [        R                  " SS/SS/SS/SS/SS//5      [        R                  " / S	Q[         R                  S
95      n [        [        R                  " SS/SS/SS/SS/SS//5      [        R                  " / SQ[         R                  S
95      nUR	                  U 5      (       a   eU R	                  U5      (       a   eg )NgƉ@g퟇@gЅ@g@g`m$@g;E@g6[@gч61@)r;   r   r   r   O   )rD   g-Hߊ@gGN@g`؊@g{Kʠ@g
@)r;   r   r   r   r   )r   r   rm   	code_typer>  	this_pathoutline_paths     r   !test_disjoint_zero_length_segmentrU    s    
=)=)=)=)=)+ 	, 	!8:I 
=)=)=)=)=)+ 	, 	~~	'(L ++I6666((66666r   c            	         [        [        R                  " SS/SS//5      5      n [        [        R                  " SS/SS/SS/SS//5      5      nUR                  U 5      (       d   eU R                  U5      (       d   eg rl   )r   r   rm   r>  rR  s     r   "test_intersect_zero_length_segmentrW    s    
FF
 	I 
FHHF	
 	L ''	2222$$\2222r   c            	         [        [        R                  [        R                  /[        R                  [        R                  //[         R                  [         R                  /5      [        [        R                  [        R                  /[        R                  [        R                  //5      [        [        R                  [        R                  /[        R                  [        R                  /[        R                  [        R                  /[        R                  [        R                  //[         R                  [         R
                  [         R
                  [         R                  /5      /n U  HF  nUR                  SS9n[        U5      S:X  d   eUR                  S   [         R                  :X  a  MF   e   g )NT)remove_nansr;   r   )
r   r   rn   ri   	CLOSEPOLYCURVE3cleanedro   r   r   )r   rq   r\  s      r   test_cleanup_closepolyr]    s    	rvvrvv 01kk4>>*	, 	rvvrvv 012 	rvvrvv 02662662Bvvrvv kk4;;T^^D	FE )))-7|q   }}Q499,,, r   )@platformr0   numpyr   numpy.testingr   r#   
matplotlibr   matplotlib.pathr   matplotlib.patchesr   matplotlib.testing.decoratorsr   matplotlib.pyplotpyplotr|   r   matplotlib.backend_basesr	   r   r&   r7   rI   markparametrizer\   rb   ri   CURVE4r[  r"  _test_paths_test_path_extentsr   rf   rZ  r   rj   rt   r   machiner   r   r   r   r   r   r   r   r  r  r  r*  r-  concatenaterm   rB  rangerN  rU  rW  r]  )deltas   0r   <module>rq     s    	  ,     & :  ! /7$&0 )
Qu&
W&
 9' Q'
3DA5%P
3DA5%P
RS=S=: 	1a&1a&1a&1a&	)KKdkk4;;?A 	1a&1a&1a&	!DKKdkk#JK1a&1a&	DKK561a&DKK=!
(  #k;M*NO
9 P
9 $..$)))DEB FB	C -.D#++-9auF"-F"-J &'T:A ;A& +,G< =
"9 :,D1 2 $%48# 9# %&D9 : :,iT9#++-9auFF 7FA*/+ 0 HH785@0 ! NANAb 5sB#78( 9(703&-W0s    L