+
     ]iZ  c                   s   ^ RI t ^ RIt^ RIt^ RIHt ^ RIt^ RIHt ^ RI	H
t
 ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt R	 tR
 tR tR t]P2                  P5                  R]
! . RCORR7      RR3]
! . RDORR7      RR3]
! . REORR7      RR3]
! . RFORR7      RR3]
! . RGORR7      RR3]
! . RHORR7      RR3.4      R 4       tR t]
! ^ ^ .^^ .^^.^ ^..]
P:                  ]
P<                  ]
P<                  ]
P<                  .4      ]
! ^ ^ .^ ^.^^ ..]
P:                  ]
P>                  ]
P>                  .4      ]
! ^ ^.^^..]
P:                  ]
P@                  .4      ]
! ^^..]
P:                  .4      .t!. RIOt"]P2                  P5                  R]#! ]!]"4      4      R 4       t$]P2                  P5                  R]
PJ                  ]
PL                  .4      R 4       t'R t(R t)]! R.RR] PT                  ! 4       R8X  d   ^ MRR7      R 4       t+]! R.RR 7      R! 4       t,]! R".RR#7      R$ 4       t-R% t.R& t/]! R'.RR 7      R( 4       t0]! R).RR 7      R* 4       t1]! R+.RR 7      R, 4       t2]! R-.R.R. RJO] PT                  ! 4       R8X  d   ^ MR/R07      R1 4       t3R2 t4R3 t5R4 t6R5 t7R6 t8]P2                  P5                  R7]Pr                  ! RK U u. uF  p ]Pu                  . RLO4      V ,           NK  	  up 4      4      R8 4       t;]P2                  P5                  R9]<! RMR:^-4      4      R; 4       t=R< t>R= t?R> t@R? tAR@ tBRA tCRB tDR# u up i )N    N)assert_array_equal)patches)Path)Polygon)image_comparison)
transforms)
MouseEventc                  s6   \        \        P                  ! R4      RR7      p V P                  P                  R8X  g   Q hV P
                  e   Q h\        V P                  4       P                  \        P                  P                  4       P                  4       R# )r    TclosedNr       )r   npzerosverticesshapecodesr   get_extentsextentsr   BboxZnullpath    A/usr/lib64/python3.14/site-packages/matplotlib/tests/test_path.pytest_empty_closed_pathr      sn     .D==&(((::t'')11!++-557    c                  s   a \         P                  ! 4       oV3R  lp \        P                  ! \        4      ;_uu_ 4        V ! 4        RRR4       R#   + '       g   i     R# ; i)c                  s8   < S P                   R ,          S n         R# )       @N)r   r   s   r   modify_verticesZ+test_readonly_path.<locals>.modify_vertices   s    +r   N)r   unit_circlepytestraisesZAttributeError)r   r   s    @r   test_readonly_pathr      s<    D, 
~	&	& 
'	&	&	&s   AA"	c                  s   \         P                  ! ^4      P                  ^^4      p \        P                  ! \
        \        P                  ! RV P                   24      R7      ;_uu_ 4        \        V 4       RRR4       \         P                  ! ^4      P                  ^^^4      p\        P                  ! \
        \        P                  ! RVP                   24      R7      ;_uu_ 4        \        V4       RRR4       \         P                  ! ^4      P                  ^^4      p\         P                  ! ^4      p\        P                  ! RVP                   RVP                   24      p\        P                  ! \
        VR7      ;_uu_ 4        \        W#4       RRR4       R#   + '       g   i     EL7; i  + '       g   i     L; i  + '       g   i     R# ; i)i   z
has shape )ZmatchNzYour vertices have shape z but your codes have shape )
r   arangeZreshaper   r   Z
ValueErrorreZescaper   r   )Z
bad_verts1Z
bad_verts2Z
good_vertsZ	bad_codesZmsg        r   test_path_exceptionsr#   $   s]   2&&q!,J	zYYJ4D4D3E'FG
I 
IZ
I 2&&q!Q/J	zYYJ4D4D3E'FG
I 
IZ
I 2&&q!,J		!I
))/
0@0@/A B11:0AC DC	z	-	-Z# 
.	-
I 
I 
I

I 
I 
.	-	-s$   ,F&,F:G&F7	:G
	G	c                  s    \         P                  ! . RO4      p RR.pV P                  V4      pVP                  R8X  g   Q h\        P
                  P                  VRR.4       R# )r    ZboolTFN)r    r    r       r&   r&   r&   r          ?r*   )      ?r*   )r   Z_create_closedcontains_pointsdtyper   testingassert_equal)r   pointsZret      r   test_point_in_pathr2   7   sW    ?@D*%F


v
&C99JJC$/r   z#other_path, inside, inverted_insideTr   Fc                 s    \        . RORR7      pVP                  V 4      VJ g   Q hV P                  V4      VJ g   Q hR# )r    Tr   Nr$   r%   r'   r(   r$   )r   Zcontains_path)Z
other_pathinsideZinverted_insider   s   &&& r   test_contains_pathr5   @   sC     8FDj)V333##D)_<<<r   c                  s    \         P                  ! 4       p . ROpV P                  VRR7      p\        P                  P                  V. RO4       R# )        )ZradiusN))r6   r6   )      ?r6   )?r8   g      )TFF)r   r   r,   r   r.   r/   )r   r0   resultr1   r   $test_contains_points_negative_radiusr:   S   s?    D2F!!&!6FJJF$89r   zpath, extentsc                 sx    \         P                  ! V P                  4       P                  V8H  4      '       g   Q hR # N)r   allr   r   )r   r   s   &&r   test_exact_extentsr=   l   s-     66$""$,,78888r   ignored_codec                 s    \        ^ ^ .^^.^^..\         P                  \         P                  V .4      p\        P                  ! VP	                  4       P
                  R8H  4      '       g   Q hR# )r    N)r6   r6         ?r?   )r   MOVETOr   r<   r   r   )r>   r   s   & r   test_extents_with_ignored_codesrA   z   sf     !QQQ;;\BDD 66$""$,,0@@AAAAr   c                  s   \         P                  ! ^ ^ .^^ .^^.^ ^.^ ^ ..4      p \        V 4      p\         P                  ! \         P                  R..4      pVP	                  V4      p\        V4      ^8X  g   Q hV^ ,          '       d   Q hR# r    r*   N)r   arrayr   nanr,   len)ZboxpZtestcontains       r   test_point_in_path_nanrI      s    
((QFQFQFQFQF;
<CS	A88bffc]O$D  &Hx=A{{?{r   c                  sX   \         P                  ! 4       w  rVP                  R RR7       VP                  ^^
4      pVP	                  4       P                  VP                  P                  R4      VP                  4       4      '       g   Q hVP	                  4       P                  VP                  P                  R4      VP                  4       4      '       d   Q hVP	                  4       P                  VP                  P                  R4      VP                  4       4      '       d   Q hR# )Zlog)ZxscaleylimNr%   )   r*   r)   )i2   r*   )	pltsubplotsZsetZaxvspanZget_pathZcontains_point	transData	transformZget_transform)figaxZpolygonr1   r   test_nonlinear_containmentrR      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.pngZmpl20Zx86_64gS㥛?)remove_textstyletolc            	      s~   \         P                  ! 4       w  rVP                  R4       VP                  R4       \        P
                  ! RRR^(R7      pVP                  V4       \        P
                  ! RRR^(R7      pVP                  V4       \        P
                  ! RRRR^(R7      pVP                  V4       W#V.p\        P                  ! \        P                  ! ^ ^R4      \        P                  ! ^ ^R4      4      w  rg\        \        VP                  4       VP                  4       4      4       F  w  pw  rVP                  P                  W.4      w  r\        RV P                   W4      p\        V4       F7  w  rVP#                  V4      w  ppV'       g   K#  VP%                  W^R	R
7       K9  	  K  	  R# )r    z->)
arrowstylemutation_scalez]-[ZfancyF)rV   ZfillrW   g?Zbutton_press_eventZr)ZsZcNr
   )r*         ?)r+         ?)r*   r&   )r+   r7   )r*   r+   )r+         ?)rL   rM   set_xlimset_ylimr   ZFancyArrowPatch	add_patchr   Zmeshgridr    	enumeratezipZravelrN   rO   r   ZcanvasrG   Zscatter)rP   rQ   ZarrowZarrow1Zarrow2Zpatches_listZXZYkxyZxdispZydispZeventZmZpatchr4   Zress                     r   test_arrow_contains_pointrc      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)rS   c            
      s   \         P                  ! RR7      p \        . RO. R	O. R
O. RO. RO. RO. RO.4       F  w  rV P                  ^^V^,           4      p. ROpVP	                  V^ ,          V^ ,          V^,          ,           4       VP                  V^,          V^,          V^,          ,           4       VP                  \        VRRRR7      4       K  	  R# )      @)ZfigsizeZnoneZredT)Z	facecolorZ	edgecolorr	   N)rd   g@)   rf   rf   ^    rh   )rj   rf   )re   rg   ri   rj   d   )rf   rl   rg   ri   rk   )rm   rf     ri   rk   )rm   rn   rj   ro   rk   )rn   rp   rk   rm   )rp   rk   rm   rn   )r    i   i  i  )rL   Zfigurer^   Zadd_subplotr[   r\   r]   r   )rP   ZiZxyrQ   Zbboxr"   r   test_path_clippingrq      s    
**Z
(C<<<<<<<> ? __Q1Q3'!
DGT!WtAw./
DGT!WtAw./
W&E$@ 	A?r   zsemi_log_with_zero.png)rT   c                  s   \         P                  ! R^
4      p RRV ^,          ^,           ,          ,
          ^,          p\        P                  ! 4       w  r#VP	                  WR^RR7       VP                  R^4       VP                  R4       R# )	
   r?   -or`   )ZlwZmarkeredgecolorgHz>TNi)r   r    rL   rM   Zsemilogyr\   Zgridra   rb   rP   rQ   rH   r   test_log_transform_with_zeroru      sg    
		#rA	sAqDF|	b AllnGCKKdr3K7KKaGGDMr   c                  s   \         P                  ! 4       p V P                  P                  R8X  g   Q h\         P                  ! W 4      pVP                  P                  R8X  g   Q hVP                  P                  R8X  g   Q h\         P                  ! \        R.4      V 4      pVP                  P                  R8X  g   Q hVP                  P                  R8X  g   Q hR# )r    Nr
   )r    r$   )r&   r   )r&   )r   make_compound_pathr   r   r   )ZemptyZr2Zr3r1   r   test_make_compound_path_emptyrw      s     ##%E>>6)))		 	 	.B;;&&&88>>T!!!		 	 vh	7B;;&&&88>>T!!!r   c                  s   ^ ^ .p ^\        W .\         P                  \         P                  .4      .,          p\         P                  ! V!  p\        P
                  ! VP                  \         P                  8H  4      ^ 8X  g   Q hR# r    N)r   r@   STOPrv   r   Zsumr   )ZzeropathsZcompound_pathr1   r   test_make_compound_path_stopsr{      sf    q6DtTL4;;		":;<<E++U3M 66-%%23q888r   zxkcd.pngc                  s   \         P                  P                  ^ 4       \         P                  ! ^ ^\         P                  ,          ^d4      p \         P
                  ! V 4      p\        P                  ! 4       ;_uu_ 4        \        P                  ! 4       w  r#VP                  W4       RRR4       R#   + '       g   i     R# ; irx   )
r   randomseedlinspaceZpiZsinrL   xkcdrM   plotrt   rH   r   	test_xkcdr      sh    IINN1
Aq255y#&A
q	A	,,.
 
s    )B33C	zxkcd_marker.pngc            	      s   \         P                  P                  ^ 4       \         P                  ! ^ ^^4      p T p^V ,
          pR\         P                  ! ^4      ,          p\
        P                  ! 4       ;_uu_ 4        \
        P                  ! 4       w  rEVP                  WR^
R7       VP                  WR^
R7       VP                  WR^
R7       RRR4       R#   + '       g   i     R# ; i)r          @Z+)ZmsZoZ^N)	r   r|   r}   r~   onesrL   r   rM   r   )ra   y1Zy2Zy3rP   rQ            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   ^p \         P                  ! \        P                  ! V 4      \        P                  ! V 4      ^,           \        P                  ! V 4      4       \         P
                  ! RV 4       \         P                  ! R^4       R# )   N)rL   Zerrorbarr   r    r   ZxlimrJ   )ZNr   r   test_marker_paths_pdfr     sS    	ALL1a HHROHHROr   Znan_pathZdefaultg;On?)rT   rS   Z
extensionsrU   c                  s,   ^ \         P                  ^\         P                  ^^^.p \         P                  ^\         P                  ^	^
\         P                  ^.p\        P                  ! 4       w  r#VP	                  V R4       VP	                  VR4       R# )r    rs   N)r   rD   rL   rM   r   )Zy0r   rP   rQ   rH   r   test_nan_isolated_pointsr     si    
 RVVQ1a	(B
&&!RVVQBFFB	/BllnGCGGBGGBr   c                  sr   \         P                  ! R R.R R.RR.RR.RR.R	R
.RR.RR.RR.RR.RR.RR.RR.RR.RR.RR.RR.R R!.R"R!.R#R$.R%R&.R'R(..4      p R,w  rr4\        \         P                  ! V R-,          V R.,          34      P                  R)R*7      p\
        P                  ! W.W4..4      pVP                  V4      P                  4       ^ ,          p\         P                  ! VR/,          VR0,          8g  4      '       g   Q h\         P                  ! VR0,          V^ ,          8H  4      '       g   Q hR+# )1gm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?Tr   N)r?   r+   g @r   )NNNr&   )r   r    r   )
r   rC   r   ZvstackZTr   r   Zclip_to_bboxto_polygonsr<   )ZhandZr0Zc0Zr1Zc1ZpolyZ	clip_rectZpoly_clippeds           r   (test_path_no_doubled_point_in_to_polygonr   *  su   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:tDz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                  sD   ^
^
.^^..p \        V 4      p\        VP                  ^(^(R7      . 4       \        VP                  ^(^(RR7      V .4       \        VP                  4       . 4       \        VP                  RR7      V .4       ^
^
.^^.^^..p ^
^
.^^.^^.^
^
..p\        V 4      p\        VP                  ^(^(R7      V.4       \        VP                  ^(^(RR7      V .4       \        VP                  4       V.4       \        VP                  RR7      V .4       R# )rr   )widthheightF)r   r   closed_only)r   N)r   r   r   )ZdatarF   Zclosed_datar1   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                  s   ^ ^ .^^..p \         P                  \         P                  .p\        V RR7      p\        WRR7      pVP                  4       pVP                  4       pW$Jg   Q hVP                  VP                  Jg   Q h\        VP                  VP                  4       VP                  '       g   Q hVP                  '       d   Q hW5Jg   Q hVP                  VP                  Jg   Q h\        VP                  VP                  4       VP                  VP                  Jg   Q h\        VP                  VP                  4       VP                  '       g   Q hVP                  '       d   Q hR# )r    TreadonlyN)r   r@   LINETOdeepcopyr   r   r   r   Zvertsr   Zpath1Zpath2Z
path1_copyZ
path2_copyr   r   test_path_deepcopyr   b  s5   VaVE[[$++&E&E-E!J!J""">>!4!4444u~~z':':;>>>>"""""""">>!4!4444u~~z':':;;;j.....u{{J$4$45>>>>""""""r   c                  s    ! R  R\         4      p V ! ^ ^ .^^..RR7      pVP                  4       pW!Jg   Q hVP                  '       g   Q hVP                  '       d   Q hVP                  VJ g   Q h ! R R\         4      pV! ^ ^ .^^..RR7      pVP                  4       pWTJg   Q hVP                  '       g   Q hVP                  '       d   Q hVP                  ^ ,          VJ g   Q hVP                  ^,          VJ g   Q hR# )c                   2   a a ] tR tRt oV 3R ltRtVtV ;t# )/test_path_deepcopy_cycle.<locals>.PathWithCycleiy  c                s4   < \         SV `  ! V/ VB  W n        R # r;   Zsuper__init__ra   ZselfZargsZkwargs	__class__   &*,r   r   Z8test_path_deepcopy_cycle.<locals>.PathWithCycle.__init__z  s    Gd-f-Fr   ra   Z__name__Z
__module__Z__qualname__Z__firstlineno__r   Z__static_attributes__Z__classdictcell__Z__classcell__r   Z__classdict__   @@r   PathWithCycler   y  s     	 	r   r   Tr   c                   r   )0test_path_deepcopy_cycle.<locals>.PathWithCycle2i  c                sF   < \         SV `  ! V/ VB  V .^,          V n        R# )r   Nr   r   r   r   r   Z9test_path_deepcopy_cycle.<locals>.PathWithCycle2.__init__  s"    Gd-f-VaZDFr   r   r   r   r   r   PathWithCycle2r     s     	  	 r   r   N)r   r   r   ra   )r   rF   Zp_copyr   Zp2Zp2_copyr   r   test_path_deepcopy_cycler   x  s     
 	1v1v&6AZZ\F??::::88v   
 
!Q!Q(4	8BkkmG;;;;99Q<7"""99Q<7"""r   c                  s   ^ ^ .^^..p \         P                  \         P                  .p\        V 4      p\        W4      pVP                  4       pVP                  4       pW$Jg   Q hVP                  VP                  J g   Q hW5Jg   Q hVP                  VP                  J g   Q hVP
                  VP
                  J g   Q hR# rx   )r   r@   r   Zcopyr   r   r   r   r   test_path_shallowcopyr     s    VaVE[[$++&EKEEJJ""">>Z00000""">>Z00000;;******r   phic                 sV   . ROp\         P                  ! 4       P                  \        P                  ! V 4      4      p\        RR.4      pVP                  V4      pVP                  V4      '       d   VP                  V4      '       g   Q h\        RR.4      pVP                  V4      pVP                  V4      '       d   VP                  V4      '       g   Q hVP                  \        RR.4      4      pVP                  \        RR.4      4      pVP                  V4      '       d   VP                  V4      '       g   Q hVP                  \        RR.4      4      pVP                  \        R	R.4      4      pVP                  V4      '       d   VP                  V4      '       g   Q hVP                  V4      '       g   Q hVP                  \        RR
.4      4      pVP                  \        RR.4      4      pVP                  V4      '       d   VP                  V4      '       g   Q hVP                  \        RR	.4      4      pVP                  \        RR.4      4      pVP                  V4      '       g   VP                  V4      '       d   Q hVP                  \        RR	.4      4      pVP                  \        RR.4      4      pVP                  V4      '       g   VP                  V4      '       d   Q hV F}  pVP                  \        RR	.4      4      pVP                  \        ^ V,           ^3^ V,           ^3.4      4      pVP                  V4      '       g   VP                  V4      '       g   K}  Q h	  V Ft  pVP                  \        RR	.4      4      pVP                  \        ^ ^V,           3R.4      4      pVP                  V4      '       g   VP                  V4      '       g   Kt  Q h	  V Ft  pVP                  \        RR	.4      4      pVP                  \        ^ ^V,
          3R.4      4      pVP                  V4      '       d   VP                  V4      '       d   Kt  Q h	  VP                  \        RR	.4      4      pVP                  \        . RO4      4      pVP                  V4      '       d   VP                  V4      '       g   Q hVP                  \        RR.4      4      pVP                  \        RR.4      4      pVP                  V4      '       g   VP                  V4      '       d   Q hVP                  \        RR.4      4      pVP                  \        RR.4      4      pVP                  V4      '       g   VP                  V4      '       d   Q hR# )h㈵>N)r   g:0yE>g|=g-q=)r   r    )r   r    r$   r%   )r       )r&   r   r    rK   )rK   rK   r'   r   r   )r   r    )r       )r    r   )r%   r
   r   )r&   r   )r    r   )r8   r&   )r6         )r?   r   )r?         @)r6   r   )r   ZAffine2DZrotater   Zdeg2radr   Ztransform_pathintersects_path)r   Z	eps_arrayrO   ZaZbeps   &     r   test_path_intersect_pathr     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   offsetii  c                 sP   T pR V ,           p\         P                  ! W4      p\        P                  ! VP                  ^ R7      p\        P
                  ! VP                  ^ R7      p\        P                  P                  VR4       \        P                  P                  V^4       R# )ih  )ZaxisNr   )r   Zarcr   Zminr   Zmaxr.   assert_allclose)r   ZlowZhighr   ZminsZmaxsr   r   test_full_arcr     sn    
C<D88CD66$--a(D66$--a(DJJtR(JJtQ'r   c            
      s   \        \        P                  ! R R.RR.RR.RR.R R..4      \        P                  ! . RO\         P                  R7      4      p \        \        P                  ! R	R
.RR.RR.R	R
.R	R
..4      \        P                  ! . RO\         P                  R7      4      pVP	                  V 4      '       d   Q hV P	                  V4      '       d   Q hR# )gƉ@g퟇@gЅ@g@g`m$@g;E@g6[@gч61@)r-   g-Hߊ@gGN@g`؊@g{Kʠ@g
@N)r&   r   r   r   iO   )r&   r   r   r   r   )r   r   rC   Z	code_typer   Z	this_pathZoutline_path     r   !test_disjoint_zero_length_segmentr     s    
=)=)=)=)=)+ 	, 	!8:I 
=)=)=)=)=)+ 	, 	~~	'(L ++I6666((66666r   c            	      s
   \        \        P                  ! ^ ^ .^^..4      4      p \        \        P                  ! ^^ .RR.RR.^ ^..4      4      pVP                  V 4      '       g   Q hV P                  V4      '       g   Q hR# rB   )r   r   rC   r   r   r   r   "test_intersect_zero_length_segmentr     s    
FF
 	I 
FHHF	
 	L ''	2222$$\2222r   c            	      s   \        \        P                  \        P                  .\        P                  \        P                  ..\         P                  \         P                  .4      \        \        P                  \        P                  .\        P                  \        P                  ..4      \        \        P                  \        P                  .\        P                  \        P                  .\        P                  \        P                  .\        P                  \        P                  ..\         P                  \         P
                  \         P
                  \         P                  .4      .p V  FO  pVP                  R R7      p\        V4      ^8X  g   Q hVP                  ^ ,          \         P                  8X  d   KO  Q h	  R# )T)Zremove_nansN)
r   r   rD   r@   	CLOSEPOLYCURVE3cleanedrE   r   ry   )rz   rF   r   r1   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   c            	      s   \         P                  ! ^ ^ .^ ^.^^.^^.^^.^^..4      p \        P                  \        P                  \        P                  .^,          p\        W4      pVP                  ^4      p\        P                  .\        P                  .^,          ,           p\         P                  P                  VP                  V^,          4       R# rx   )	r   rC   r   r@   r   interpolatedr.   r   r   )r   r   r   r9   Zexpected_subpath_codesr"   r   test_interpolated_movetor   D  s    xx!QQQQQQ! "H [[$++t{{3a7E Dq!F #kk]dkk]Q->>JJ!!&,,0F0JKr   c            
      s   \         P                  .\         P                  .^,          ,           \         P                  .,           p . ROp\        W4      pVP	                  ^4      p\
        P                  ! ^^.RR.^^.^R.^^.R^.^^..4      p\         P                  .\         P                  .^,          ,           \         P                  .,           p\
        P                  P                  VP                  V4       \
        P                  P                  VP                  V4       V \         P                  .,          p VR.,          p\        W4      pVP	                  ^4      p\
        P                  ! ^^.^^..4      p\
        P                  ! WF.4      pV\         P                  .^,          ,          p\
        P                  P                  VP                  V4       \
        P                  P                  VP                  V4       R# )r         @      @N)   r   rK   r   rK   r   r$   )r   r&   )r   r@   r   r   r   r   rC   r.   r   r   r   r   concatenate)r   r   r   r9   expected_verticesexpected_codesZextra_expected_vertices          r   test_interpolated_closepolyr   V  s   [[MT[[M!O+t~~.>>E/H Dq!F1a&#&*#$a&#$c(#$a&#&(#$a&"* + kk]dkk]1_47GGNJJv0ABJJ!!&,,? 
dkk]EH Dq!F hhA)*A(0 1(9'STt{{ma''NJJv0ABJJ!!&,,?r   c            
      s   \         P                  .\         P                  .^,          ,           \         P                  .,           ^,          p . ROp\        W4      pVP	                  ^4      p\
        P                  ! ^^.RR.^^.^R.^^.R^.^^..4      p\
        P                  ! WD^,          .4      p\         P                  .\         P                  .^,          ,           \         P                  .,           ^,          p\
        P                  P                  VP                  V4       \
        P                  P                  VP                  V4       R# )r   r   r   N)r   r   r   r$   )   r   )rr   r   )rr   r   r$   )r   r@   r   r   r   r   rC   r   r.   r   r   r   r   )r   r   r   r9   Zexpected_vertices1r   r   r   r   "test_interpolated_moveto_closepolyr   z  s   kk]dkk]1_,/??1DEQH Dq!FAq6$':$%q6$%s8$%q6$'8$%q6#+ , (:QR<R'ST{{mt{{mAo58HHAMNJJv0ABJJ!!&,,?r   c                  sr    \        \        P                  ! R4      4      p V P                  ^*4      V J g   Q hR# )r    Nr
   )r   r   r   r   r   r   r   test_interpolated_empty_pathr     s.     !DR D(((r   )rX   rX   )rX   rY   )rY   rY   )rY   rX   r   )      пr   r   rZ   rZ   rZ   rZ   r   r   )r   r   r)   r   r   r   )r   )rX   r7   )r7   r7   )r7   rX   r   r3   )r   r   )r   r   r   )r   r   r   ))r6   r6   rY   r?   )r6   r6   r?   r*   )r6   r?   r?   r?   )r?   r   r?   r   )ZpdfZsvgr   Zpng)r   r    r&   )
r    i   i   i-   i<   iK   iZ   ii   ix   i   i0)EZplatformr!   Znumpyr   Znumpy.testingr   r   Z
matplotlibr   Zmatplotlib.pathr   Zmatplotlib.patchesr   Zmatplotlib.testing.decoratorsr   Zmatplotlib.pyplotZpyplotrL   r   Zmatplotlib.backend_basesr   r   r   r#   r2   ZmarkZparametrizer5   r:   r@   ZCURVE4r   r   Z_test_pathsZ_test_path_extentsr_   r=   r   ry   rA   rI   rR   Zmachinerc   rq   ru   rw   r{   r   r   r   r   r   r   r   r   r   r   rC   r   Zranger   r   r   r   r   r   r   r   )Zdeltas   0r   <module>r      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*#,#6+ 0 HH785@@0 ! NANAb 5sB#78( 9(703&-.L$!@H@,)]0s   #L=