+
     ]i:  c                   s   R t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIt^ RI	H
t
 ^ RIt^ RI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Ht R	 t]P@                  PC                  ^R
7      R 4       t"R t#R t$]! R.RRR7      R 4       t%R t&R t'R t(R t)]! R.R]PT                  ! 4       R8X  d   ^ MRR7      R 4       t+]! R>R7      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       t0R( t1]! R).R*R+7      R, 4       t2R- t3]! R.R7      R. 4       t4]P@                  Pk                  R/R0R1.4      ]! R>R7      R2 4       4       t6R3 t7R4 t8]! R5.RR!R67      R7 4       t9]! R.R7      R8 4       t:R9 t;]! R.R7      R: 4       t<]! R.R7      R; 4       t=R< t>R= t?R# )?z%
Tests specific to the lines module.
N)SimpleNamespace)cycler)assert_array_equal)_path)MarkerStyle)Path)image_comparisoncheck_figures_equalc            	     s    RRr\         P                  ! RR.4      \         P                  ! RR.4      r2Rp\        \        P                  ! WW#V4      ^ .4       R# )zTest a problematic case.i)  i  g     H@g     W@g     @g(\@N)nparrayr   mlinesZsegment_hits)ZcxcyxyZradius        B/usr/lib64/python3.14/site-packages/matplotlib/tests/test_lines.pytest_segment_hitsr      sJ    #88T4L!288S$K#8qFv**21@1#F    )Zrerunsc                 s*   Rp \         P                  ! ^ ^V 4      p\         P                  P                  V R7      p\        P
                  ! 4       p\        P                  ! 4       p\        P                  ! W4      pVP                  R4       \        \        P                  ! VP                  P                  ^^R7      4      pVP                  V4       \        \        P                  ! VP                  P                  ^^R7      4      pWv,          p^p	R# )aG  
GitHub issue #1256 identified a bug in Line.draw method

Despite visibility attribute set to False, the draw method was not
returning early enough and some pre-rendering code was executed
though not necessary.

Consequence was an excessive draw time for invisible Line instances
holding a large number of points (Npts> 10**6)
ZsizeF)ZnumberrepeatNi )r   linspacerandomZnormalpltfigureZsubplotr
   Line2DZset_visibleZmintimeitr   canvasdrawZadd_line)
ZNr   r   figaxlZ	t_no_lineZt_invisible_lineZslowdown_factorZslowdown_thresholds
             r   test_invisible_Line_renderingr   $   s     	A
Aq!A
		a A **,C	B 	aAMM%
 FMM#**//!AFGI KKN 6==1MN '2Or   c                      \         P                  ! 4       w  r\        P                  P	                  ^ 4       VP                  \        P                  P                  ^^4      R.R7       R#     )Z
linestylesNr"   )   r$   r   subplotsr   r   seedZcontourZrandnr   r        r   test_set_line_coll_dashr*   P   sB    llnGCIINN1 JJryyr2&K=JAr   c                  s   \         P                  ! \        R R7      ;_uu_ 4        \        P                  ! ^ . 4       RRR4       \         P                  ! \        RR7      ;_uu_ 4        \        P                  ! . ^4       RRR4       \        P                  ! . . 4      p \         P                  ! \        RR7      ;_uu_ 4        V P                  ^ 4       RRR4       \         P                  ! \        RR7      ;_uu_ 4        V P                  ^ 4       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     Lv; i  + '       g   i     R# ; i)zxdata must beZmatchNzydata must bez	x must bez	y must be)pytestraisesZRuntimeErrorr
   r   Z	set_xdataZ	set_ydataline    r   test_invalid_line_datar1   X   s    	|?	;	;a 
<	|?	;	;b! 
< ==R D	|;	7	7q 
8	|;	7	7q 
8	7 
<	;	;	; 
8	7	7	7	7s/   D)D1EED.	1E	E	E(	Zline_dashesTg~jth?)remove_texttolc                  sn    \         P                  ! 4       w  rVP                  \        ^
4      R^R7       R# )
   )	linestylelwNr#   )r   r&   plotranger(   r)   r   test_line_dashesr9   e   s'     llnGCGGE"IG3r   c                  s   \         P                  ! 4       w  rVP                  \        ^
4      RR7       VP                  \        ^
4      RR7       VP                  \        ^
4      RR7       VP                  \        ^
4      RR7       VP                  \        ^
4      RR7       V P                  P                  4        R# )r4   none)colorZrz.3N)   r"   r"   r<   )r<   r"   r"   r   r&   r7   r8   r   r   r(   r)   r   test_line_colorsr>   n   s    llnGCGGE"IVG$GGE"ISG!GGE"ITG"GGE"I\G*GGE"IYG'JJOOr   c                      \         P                  ! . . 4      p \        P                  ! \        4      ;_uu_ 4        V P                  R 4       RRR4       R#   + '       g   i     R# ; iZfoobarN)r
   r   r,   r-   
ValueErrorZ	set_colorr.   r0   r   test_valid_colorsrB   x   s<    ==R D	z	"	"x  
#	"	"	"   AA'	c                  s    \         P                  ! 4       w  rR RRRRRRRR
R^ . 33 F  pVP                  \        ^
4      VR	7       K!  	  V P                  P                  4        R# )Z-Zsolid--dashedz-.dashdotZ:dottedN)r5   )r"   N)r"    r=   )r   r   ls      r   test_linestyle_variantsrK   ~   s^    llnGCGT8YX'Ar7 	b	R(	
 JJOOr   c                  r?   )ZaardvarkN)r
   r   r,   r-   rA   Zset_linestyler.   r0   r   test_valid_linestylesrL      s>    ==R D	z	"	":& 
#	"	"	"rC   zdrawstyle_variants.pngZx86_64gQ?c                  s    \         P                  ! ^4      w  r. ROp\        VP                  V4       F4  w  r4VP	                  \        R4      VR7       VP                  RRR7       K6  	  R# )i   N  Z	drawstyle)ZxlimZylim)defaultz	steps-mid	steps-prez
steps-poststepsN)r"      )r   r&   zipflatr7   r8   Zset)r   axsZdssr   Zdsr   r   test_drawstyle_variantsrV      sU     ||AHC
LC
 chh$
dr*
F( %r   png)Z
extensionsc                 s4   V P                  4       p\        P                  ! R 4      pVP                  VR ,           V4       VP                  4       p\        P
                  ! 4       P                  RR4      pVP                  W3WBP                  ,           R7       R# )rM   g     @@        )Z	transformN)add_subplotr   aranger7   mtransformsZAffine2DZ	translateZ	transData)fig_reffig_testr   r   ts   &&   r   test_no_subslice_with_transformr_      sn    				B
		$AGGAHa				B((5AGGAAllNG+r   c                  r?   r@   )r
   r   r,   r-   rA   set_drawstyler.   r0   r   test_valid_drawstylesra      s>    ==R D	z	"	"8$ 
#	"	"	"rC   c                  s$   \         P                  ! ^ ^\         P                  ,          ^
4      p \         P                  ! V 4      p\        P
                  ! 4       w  r#VP                  W4      w  pVP                  R4       VP                  R4       R# )r"   rP   rO   N)r   r   ZpiZsinr   r&   r7   r`   )r   r   r   r   r/   r   r   test_set_drawstylerb      sc    
Aqw#A
q	AllnGCGGAMED{# 	y!r   Zline_collection_dashesZmpl20g?)r2   styler3   c                  r    r!   r%   r(   r)   r   test_set_line_coll_dash_imagerd      sB     llnGCIINN1JJryyr2&K=JAr   zmarker_fill_styles.png)r2   c                  sn   \         P                  ! . RORRRRR\        P                  ! . RO4      .4      p Rp\        P                  ! ^^.4      p\        P                  ! ^ ^	.4      p\        P
                  ! 4       w  rE\        R4       F  w  rg\        \        P                  P                  4       FU  w  r\        V 4      p
VP                  V^
,          V,           W(,           RV^,          ,          ,           V^VV	V	^V
V
^R	7       KW  	  K  	  VP                  ^ R
.4       VP                  R^.4       R# )r"   Zgz#ff0000ZcZmr   Z
lightgreenzov^<>8sp*hHDdPX      ?)	markerZ
markersizeZmarkerfacecoloralt	fillstylelabelZ	linewidthr;   ZmarkeredgecolorZmarkeredgewidthg      @Nr"   r"   r<   )r"   r"   r"   i)	itertoolsZcycler   r	   r   r&   	enumerater
   r   Z
fillStylesnextr7   Zset_ylimZset_xlim)colorsZaltcolorr   r   r   r   jrf   iZfsr;   s              r   test_marker_fill_stylesrp      s   __iic3 hhy13 4FH
!QA
!QAllnGC 01	v}}778EALEGGAFQJa!e 4!!'/ $)$%  	' 9 2 KKCKKS	r   c                 sV    \         P                  ! . RO\        RRR7      RR7      w  p R# )z=Test that markerfacecolor does not override fillstyle='none'.or:   )rg   red)rf   ZmarkerfacecolorNr<   r$   rR   )r   r7   r   )r   r0   r   test_markerfacecolor_fillstylert      s     	)Kv$F"'
)BAr   Zscaled_linesrO   )rc   c            	      s   \         P                  ! ^ ^ 4      p \        P                  ! 4       w  r. ROp\	        \
        P                  R,          4      p\        \        W44      4       Fg  w  pw  rg\         P                  ! R^
^
4       FC  pVP                  ! W\         P                  ! ^24      ,          RV,          ,           3RVRV/VB  KE  	  Ki  	  R# )r"   axes.prop_cyclere   皙?r5   r6   N)rE   rG   rF   )r   r   r   r&   r   
matplotlibrcParamsrk   rS   r7   Zones)	Zthr   r   Zlins_stylesr   rn   rI   Zstyr6   s	            r   test_lw_scalingry      s    	Q	BllnGC1K	
##$56	7B!#k"679B++b"b)BGGB"''"+R/L2L"LL * 8r   c                  s    ^\         P                  P                  ,          p \        P                  ! \
        P                  .V ,          \        V 4      4       R# )rR   N)r
   r   Z_subslice_optim_min_sizer   r7   r   Znanr8   )Znr0   r   test_is_sorted_and_has_non_nanrz      s4     	
FMM222AHHbffX\58$r   c                 s    V P                  4       P                  ^ ^.R4       VP                  4       P                  . RO. ROR^ ^.R7       R# )r"   z-o	markeveryNri   )r"   r<   r<   )r&   Zstepr7   r]   r\      &&r   test_step_markersr      sC    aVT*Iy$1a&Ir   parentr   axesc                 s"  a aaa \         P                  P                  ^*4       \         P                  ! ^ ^^4      p\         P                  P	                  \        V4      4      pR^R. RO^ R.\        ^^
^4      \         P                  ! \        V4      4      VR8  ,          RR.	p. ROpVR8X  d   VRR pVRR pV 3R lpV3R lpM]VR8X  dW   \        S P                  ^^4      P                  4      o\        SP                  ^^4      P                  4      oV3R lpV3R	 lpV F  p	X! W4V	R
7       K  	  V FR  p	\         P                  ! \        V	4      4      P                  \        4      P                  \        4      p
X! W4V
R
7       KT  	  R# )i*   Nre   333333?r   c          	      X   < SP                  \        P                  ! WR VR7      4       R# rq   rf   r|   N
add_artistr
   r   )r   r   r|   r]      &&$r   add_test test_markevery.<locals>.add_test  s"    a3)DFr   c          	      r   r   r   )r   r   r|   r\   r   r   add_reftest_markevery.<locals>.add_ref  s"    a3)DFr   r   c                B   < \        S4      P                  WR VR7       R# z-gDr{   Nrl   r7   )r   r   r|   axs_testr   r   r   r   %  s    NeyAr   c                r   r   r   )r   r   r|   axs_refr   r   r   r   (  s    MqUi@r   r{   )rR      )r<   r   i   )r   皙?)	Z11111111111111Z10001000100010Z00100001000010Z01000100000100Z10000000000001Z00000101010000Z01110001110110Z11011011011110Z01010011011101i)r   r   r'   r   ZrandlenslicerZ   Ziterr&   rT   r	   ZlistZastypeZintZbool)r]   r\   r   r   r   Z
cases_testZ	cases_refr   r   ZcaseZmer   r   s   ff&        @@r   test_markeveryr     sT    IINN2
Aq"A
		s1vA6:b'5B?))CF#AG,z#JGI _
crN		F	F 
6	))!Q/445w''1-223	B	A &  XXd4j!((-44T:# r   c            	      s<   \         P                  ! 4       p V P                  \        P                  ! ^ ^.^ ^.RRR7      4       \
        P                  ! \        4      ;_uu_ 4        V P                  P                  4        RRR4       R#   + '       g   i     R# ; i)r"   rq   re   r   N)
r   r   r   r
   r   r,   r-   rA   r   r   )r   r0   r   .test_markevery_figure_line_unsupported_relsizer   3  s\    
**,CNN6==!Q!QrJK	z	"	"

 
#	"	"	"s   %B

B	c                  s   \         P                  ! 4       w  rVP                  . RO\        R4      R7      w  pV P                  P                  4        VP                  R4       V P                  P                  4        VP                  \        R4      4       V P                  P                  4        \        P                  ! RR.^R.^ ^..4      pVP                  . R	O\        V4      ^R7      w  pVP                  . R
OV^R7      w  p\        VP                  4       P                  VP                  4       \        VP                  4       P                  VP                  4       R# )rR   ZD)rf   Zsrq   )rf   ZmsN)rR      r$   r   rs   )r"   rR   r<   )r   r&   r7   r   r   r   Z
set_markerr   Z_create_closedr   Z
get_markerZvertices)r   r   r/   Z	triangle1line2Zline3s         r   test_marker_as_markerstyler   :  s   llnGCGGIk#&6G7EDJJOO 	OOCJJOOOOK$%JJOO##b"X2wA$?@IWWY{9'="WEFEWWYyRW8FEu'')22I4F4FGu'')22I4F4FGr   zstriped_line.png)r2   rc   c            
      s4   \         P                  P                  R 4      p \        P                  ! 4       w  rVP                  V P                  ^R7      RRR^RR7       VP                  V P                  ^R7      RRR^RR	R
7       VP                  ^R7       R# )i!N,r   ZorangeZbluerD   Z )r;   gapcolorr5   r6   rh   rr   Zblackre   )r;   r   r5   r6   rh   Zalpha)ZhandlelengthN)r"   )rR   r   r   rR   )r   r   Zdefault_rngr   r&   r7   ZuniformZlegend)Zrng_r   rJ   r   test_striped_linesr   N  s    
))


)CLLNEAGGCKKRK 6q  -GGCKKRK 'AS  EII1Ir   c                 s    V P                  4       P                  ^^.. ROR7       VP                  4       P                  ^^.. ROR7       R# )r<   )ZdashesN)r<   rR   r$   )r<   rR   r$   r<   rR   r$   )rY   r7   r}   r~   r   test_odd_dashesr   Y  sC    Ay91v.@Ar   c                  sp   \         P                  ! 4       w  r\        V P                  P                  ^,          V P                  P
                  ^,          ^,           R7      pVP                  ^ ^.^ ^.RR7      w  pVP                  V4      w  rEVP                  ^ ^.^ ^.R^R7      w  pVP                  V4      w  rE\        VR,          ^ .4       VP                  ^ ^.^ ^.RR7      w  pVP                  V4      w  rEVP                  ^4       VP                  V4      w  rE\        VR,          ^ .4       R# )rR   )r   r   T)picker)r   Z
pickradiusZindN)
r   r&   r    ZbboxZwidthZheightr7   Zcontainsr   Zset_pickradius)r   r   Zmouse_eventZl0ZfoundZindicesZl1Zl2s           r   test_pickingr   _  s   llnGC!CHHNNa$7$'HHOOq$82$=?K ''1a&1a&'
.CB[[-NE ''1a&1a&"'
=CB[[-NEwu~s+ ''1a&1a&'
.CB[[-NEb[[-NEwu~s+r   c                 s   \         P                  ! ^ ^^4      pV P                  4       P                  W"R4      w  p\	        ^4      VR&   VP                  R4       VP                  4       P                  . RO. RORRR7       R# )r"   z.-:NNNrQ   rN   N)r"   rR   r   )r   rZ   rY   r7   r8   r`   )r]   r\   r^   r   s   &&  r   test_input_copyr   y  sl     			!QA					$	$Q4	0BA8AaDOOGy)TWMr   c                sF   R^R. RO^ R.\        ^d^^4      RRRRR.p\        P                  R,          pV! \        P                  ! RR\        V4      4      4      p\        P                  ! R^4      p^V^,          ,          pVP                  4       p\        V4       F&  w  rVP                  Wh,
          RWV,          R	7       K(  	  \        VVR	7      \        P                  R
&   V P                  4       p
\        V4       F  w  rV
P                  Wh,
          R4       K  	  R# )z*Test that we can set markevery prop_cycle.Nrv   r   g      ?Zjet皙?皙?zo-)r|   r;   ru   )   i   )i   i   r   r   )rX   rv   )g?rv   )r   mplZ	colormapsr   r   r   rY   rk   r7   r   rw   rx   )r]   r\   ZcasesZcmaprm   r   r   rU   ro   r|   r   r   s   &&          r   test_markevery_prop_cycler     s     1g|aW3Qc3&E ==D"++c3E
34F
BA	AqDA



C!%(	C ) .4e:@.BJ)* 
			B% 
t !r   c                  s   \         P                  ! 4       w  rVP                  RRR7      pVP                  RR4      pVP                  R4       VP	                  R4       VP                  R4       VP                  R4       \        P                  ! \        P                  4      ;_uu_ 4        VP                  RR4       RRR4       \        P                  ! \        P                  4      ;_uu_ 4        VP                  RR4       RRR4       \        P                  ! \        RR	7      ;_uu_ 4        VP                  RR4       RRR4       \        P                  ! \        R
R	7      ;_uu_ 4        VP	                  ^4       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     Lv; i  + '       g   i     R# ; i)rv   333333?Zsloper   r   r   g333333@Nz.Cannot set an 'xy2' value while 'slope' is setr+   z-Cannot set a 'slope' value while 'xy2' is set)rv   rv   )r   r   )r   r   )r   r   )r   r   )r   r&   axlineZset_xy1Z	set_slopeZset_xy2r,   Zwarnsr   ZMatplotlibDeprecationWarningr-   rA   )r   r   Zline1r          r   test_axline_settersr     sE   llnGCIIhcI*EIIh)E 
MM(	OOC	MM(	MM( 
c66	7	7b" 
8	c66	7	7b" 
8 
zM
O 
Ob"
O 
zL
N 
N
N 
N 
8	7	7	7
O 
O
N 
N 
Ns0   -F4F!3F42GF	!F1	4G	G	c                 s    \         P                  ! RRR7      p V P                  4       P                  R4      pV P                  4       P                  R4      pV^,          V^,          ,
          pR# )z@Test that small slopes are not coerced to zero in the transform.g+=r   N)r"   r"   )r<   r<   )r   r   Zget_transformZtransform_point)r/   Zp1Zp2Zdyr   r   test_axline_small_sloper     sU    ::fE*D					-	-f	5B					-	-f	5B	AABr   )rW   )@Z__doc__rj   Zplatformr   Ztypesr    r   Znumpyr   Znumpy.testingr   r,   rw   r   r   Zmatplotlib.linesZlinesr
   Zmatplotlib.markersr   Zmatplotlib.pathr   Zmatplotlib.pyplotZpyplotr   Zmatplotlib.transformsZ
transformsr[   Zmatplotlib.testing.decoratorsr   r   r   ZmarkZflakyr   r*   r1   r9   r>   rB   rK   rL   ZmachinerV   r_   ra   rb   rd   rp   rt   ry   rz   r   Zparametrizer   r   r   r   r   r   r   r   r   r   rH   r   r   <module>r      sr      !   ,     ! *    + OG !(0 (0VB
 =/t?4 @4!' +,$#++-9atE	)E	) ), *,%
3 +,$g#++-9atEBEB +,$? @>- >")4M 5M% (J )J
 Hf#56))$ * 7)$XH( %&DH I (B )B
,4 (N )N ( )0>r   