
    
3j5                     H   S r SSKrSSKrSSKJr  SSKJr  SSKrSSKJ	r	  SSK
r
SSK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Jr  S
 rS rS r \" S/SSSS9S 5       r!S r"S r#S r$S r%\RL                  RO                  S5      S 5       r(\" S/SS\RR                  " 5       S:X  a  SOSS9S 5       r*\" 5       S 5       r+S r,S r-\" S /SS\RR                  " 5       S:X  a  SOS!S9S" 5       r.\" S#/SSS$9S% 5       r/S& r0\" S'/S(S)9S* 5       r1S+ r2\" 5       S, 5       r3\
Rh                  Rk                  S-S.S//5      \" 5       S0 5       5       r6S1 r7S2 r8\" S3/SSS$9S4 5       r9\" 5       S5 5       r:S6 r;\" 5       S7 5       r<\" 5       S8 5       r=S9 r>S: r?g);z%
Tests specific to the lines module.
    N)SimpleNamespace)cycler)assert_array_equal)_path)MarkerStyle)Path)image_comparisoncheck_figures_equalc            	          Su  p[         R                  " SS/5      [         R                  " SS/5      p2Sn[        [        R                  " XX#U5      S/5        g)zTest a problematic case.)i)  i  g     H@g     W@g     @g(\@r   N)nparrayr   mlinessegment_hits)cxcyxyradiuss        U/home/wildlama/miniconda3/lib/python3.13/site-packages/matplotlib/tests/test_lines.pytest_segment_hitsr      sJ    FB88T4L!288S$K#8qFv**21@1#F    c                      [         R                  " 5       u  p[        R                  R	                  S5        UR                  [        R                  R                  SS5      S/S9  g Nr         r   )   r   )
linestylespltsubplotsr   randomseedcontourrandnfigaxs     r   test_set_line_coll_dashr)   !   sB    llnGCIINN1 JJryyr2&K=JAr   c                  j   [         R                  " [        SS9   [        R                  " S/ 5        S S S 5        [         R                  " [        SS9   [        R                  " / S5        S S S 5        [        R                  " / / 5      n [         R                  " [        SS9   U R                  S5        S S S 5        [         R                  " [        SS9   U R                  S5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nd= f! , (       d  f       g = f)Nzxdata must bematchr   zydata must be   z	x must bez	y must be)pytestraisesRuntimeErrorr   Line2D	set_xdata	set_ydatalines    r   test_invalid_line_datar6   )   s    	|?	;a 
<	|?	;b! 
< ==R D	|;	7q 
8	|;	7q 
8	7 
<	;	;	; 
8	7	7	7s/   C1D#DD$1
C?
D
D!$
D2line_dashesT_classic_testg~jth?)remove_textstyletolc                  f    [         R                  " 5       u  pUR                  [        S5      SSS9  g )N
   r      	linestylelw)r    r!   plotranger&   s     r   test_line_dashesrD   6   s'     llnGCGGE"IG3r   c                  `   [         R                  " 5       u  pUR                  [        S5      SS9  UR                  [        S5      SS9  UR                  [        S5      SS9  UR                  [        S5      SS9  UR                  [        S5      SS9  U R                  R                  5         g )Nr=   none)colorrz.3)r-   r   r   r-   )r-   r   r   r    r!   rB   rC   canvasdrawr&   s     r   test_line_colorsrL   ?   s    llnGCGGE"IVG$GGE"ISG!GGE"ITG"GGE"I\G*GGE"IYG'JJOOr   c                      [         R                  " / / 5      n [        R                  " [        5         U R                  S5        S S S 5        g ! , (       d  f       g = fNfoobar)r   r1   r.   r/   
ValueError	set_colorr4   s    r   test_valid_colorsrR   I   s6    ==R D	z	"x  
#	"	"   A
Ac                      [         R                  " 5       u  pSSSSSSSSS	S
S/ 44 H  nUR                  [        S5      US9  M     U R                  R                  5         g )N-solid--dashedz-.dashdot:dotted)r   N)r    r   r=   )r@   rI   )r'   r(   lss      r   test_linestyle_variantsr^   O   s^    llnGCGT8YX'Ar7 	b	R(	
 JJOOr   c                      [         R                  " / / 5      n [        R                  " [        5         U R                  S5        S S S 5        g ! , (       d  f       g = f)Naardvark)r   r1   r.   r/   rP   set_linestyler4   s    r   test_valid_linestylesrb   Y   s8    ==R D	z	":& 
#	"	"rS   mpl20c                  ~    [         R                  " 5       u  pUR                  SS/SS/SSS9  U R                  5         g )Nr   r-   rW   )r]   rA   )r    r!   rB   draw_without_renderingr&   s     r   /test_zero_linewidth_dashed_uses_solid_gc_dashesrf   _   s7    llnGCGGQFQFtG* r   zdrawstyle_variants.pngx86_64gQ?c                      [         R                  " S5      u  p/ SQn[        UR                  U5       H.  u  p4UR	                  [        S5      US9  UR                  SSS9  M0     g )N   )defaultz	steps-mid	steps-prez
steps-poststepsN  	drawstyle)r      )xlimylim)r    r!   zipflatrB   rC   set)r'   axsdssr(   dss        r   test_drawstyle_variantsry   f   sU     ||AHC
LC
 chh$
dr*
F( %r   c                    U R                  5       n[        R                  " S5      nUR                  US-   U5        UR                  5       n[        R
                  " 5       R                  SS5      nUR                  X3XBR                  -   S9  g )Nrm   g     @@        )	transform)add_subplotr   arangerB   mtransformsAffine2D	translate	transData)fig_reffig_testr(   r   ts        r   test_no_subslice_with_transformr   t   sn    				B
		$AGGAHa				B((5AGGAAllNG+r   c                      [         R                  " / / 5      n [        R                  " [        5         U R                  S5        S S S 5        g ! , (       d  f       g = frN   )r   r1   r.   r/   rP   set_drawstyler4   s    r   test_valid_drawstylesr      s8    ==R D	z	"8$ 
#	"	"rS   c                     [         R                  " SS[         R                  -  S5      n [         R                  " U 5      n[        R
                  " 5       u  p#UR                  X5      u  nUR                  S5        [        UR                  5       R                  5      S[        U 5      -  S-
  :X  d   eUR                  S5        [        UR                  5       R                  5      [        U 5      :X  d   eg )Nr   rp   r=   rk   r-   rj   )r   linspacepisinr    r!   rB   r   lenget_pathvertices)r   r   r'   r(   r5   s        r   test_set_drawstyler      s    
Aqw#A
q	AllnGCGGAMED{#t}}''(Ac!fHQJ666y!t}}''(CF222r   line_collection_dashesg?c                      [         R                  " 5       u  p[        R                  R	                  S5        UR                  [        R                  R                  SS5      S/S9  g r   r   r&   s     r   test_set_line_coll_dash_imager      sB     llnGCIINN1JJryyr2&K=JAr   zmarker_fill_styles.png)r9   r:   c                  2   [         R                  " / SQSSSSS[        R                  " / SQ5      /5      n Sn[        R                  " S	S	/5      n[        R                  " S
S/5      n[        R
                  " 5       u  pE[        S5       Hf  u  pg[        [        R                  R                  5       H:  u  p[        U 5      n
UR                  US-  U-   X(-   SUS-  -  -   USUU	U	SU
U
SS9  M<     Mh     UR                  S
S5        UR                  SS5        g )Nr   r   r-   gz#ff0000cmr   )r   r   r   
lightgreenr-   r   	   zov^<>8sp*hHDdPXr=         ?rp   r   r>   )	marker
markersizemarkerfacecoloralt	fillstylelabel	linewidthrG   markeredgecolormarkeredgewidthg      @   )	itertoolscycler   r   r    r!   	enumerater   r1   
fillStylesnextrB   set_ylimset_xlim)colorsaltcolorr   r   r'   r(   jr   ifsrG   s              r   test_marker_fill_stylesr      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3KKCr   c                      [         R                  " / SQ[        SSS9SS9u  n U R                  5       S:X  d   eU R	                  5       S:X  d   eg)z=Test that markerfacecolor does not override fillstyle='none'.r-   r   rp   orF   )r   red)r   markerfacecolorN)r    rB   r   get_fillstyleget_markerfacecolor)ls    r   test_markerfacecolor_fillstyler      sL    	)Kv$F"'
)BA??&&&  "f,,,r   scaled_linesrj   )r:   c            	         [         R                  " SS5      n [        R                  " 5       u  p/ SQn[	        [
        R                  S   5      n[        [        X45      5       HY  u  nu  pg[         R                  " SSS5       H5  nUR                  " X[         R                  " S5      -  SU-  -   4XhS	.UD6  M7     M[     g )
Nr       )rX   r[   rY   axes.prop_cycler   r=   2   皙?r?   )r   r   r    r!   r   
matplotlibrcParamsr   rs   rB   ones)	thr'   r(   lins_stylesr   r   r]   styrA   s	            r   test_lw_scalingr      s    	Q	BllnGC1K	
##$56	7B!#k"679B++b"b)BGGB"''"+R/L2LL * 8r   c                  f   [         R                  " [        R                  " / SQ5      5      (       d   e[         R                  " [        R                  " S[        R                  S/5      5      (       d   e[         R                  " SS/[        R                  /S-  -   SS/-   5      (       a   e[         R                  " [        R                  " SS	/S
5      5      (       a   eS[
        R                  R                  -  n [        R                  " [        R                  /U -  [        U 5      5        g )Nr-   rp   r   r-   r   r>   d   r   rp   i   i   z>i4)r   is_sorted_and_has_non_nanr   r   nanr   r1   _subslice_optim_min_sizer    rB   rC   )ns    r   test_is_sorted_and_has_non_nanr      s    **288I+>????**288QN+CDDDD..1v3/F!Q/OPPPP..rxx58I5/QRRRR	FMM222AHHbffX\58$r   c                     U R                  5       R                  SS/S5        UR                  5       R                  / SQ/ SQSSS/S9  g )Nr   r-   z-or   )r   r-   r-   rp   	markevery)r!   steprB   r   r   s     r   test_step_markersr      sC    aVT*Iy$1a&Ir   parentfigureaxesc                   ^ ^^^ [         R                  R                  S5        [         R                  " SSS5      n[         R                  R	                  [        U5      5      nS SS/ SQSS/[        S	S
S5      [         R                  " [        U5      5      US:     SS/	n/ SQnUS:X  a  US S nUS S nU 4S jnU4S jnO\US:X  aV  [        T R                  SS5      R                  5      m[        TR                  SS5      R                  5      mU4S jnU4S jnU H
  n	W" X4U	S9  M     U HO  n	[         R                  " [        U	5      5      R                  [        5      R                  [        5      n
W" X4U
S9  MQ     g )N*   r   r-         )rp   r>   )r-   r>      r>   r=   rp   r   333333?)r   皙?)	111111111111111000100010001000100001000010010001000001001000000000000100000101010000011100011101101101101101111001010011011101r   c          	      P   > TR                  [        R                  " XSUS95        g Nr   r   r   
add_artistr   r1   )r   r   r   r   s      r   add_test test_markevery.<locals>.add_test   s"    a3)DFr   c          	      P   > TR                  [        R                  " XSUS95        g r   r   )r   r   r   r   s      r   add_reftest_markevery.<locals>.add_ref   s"    a3)DFr   r   r   c                :   > [        T5      R                  XSUS9  g Nz-gDr   r   rB   )r   r   r   axs_tests      r   r   r      s    NeyAr   c                :   > [        T5      R                  XSUS9  g r   r   )r   r   r   axs_refs      r   r   r      s    MqUi@r   r   )r   r"   r#   r   randr   slicer~   iterr!   rt   r   listastypeintbool)r   r   r   r   r   
cases_test	cases_refr   r   casemer   r   s   ``         @@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            	         [         R                  " 5       n U R                  [        R                  " SS/SS/SSS95        [
        R                  " [        5         U R                  R                  5         S S S 5        g ! , (       d  f       g = f)Nr   r-   r   r   r   )
r    r   r   r   r1   r.   r/   rP   rJ   rK   )r'   s    r   .test_markevery_figure_line_unsupported_relsizer
    sV    
**,CNN6==!Q!QrJK	z	"

 
#	"	"s   A>>
Bc                     [         R                  " 5       u  pUR                  / SQ[        S5      S9u  nU R                  R                  5         UR                  5       S:X  d   eUR                  S5        U R                  R                  5         UR                  [        S5      5        U R                  R                  5         [        R                  " SS/SS/SS	//5      nUR                  / S
Q[        U5      SS9u  nUR                  / SQUSS9u  n[        UR                  5       R                  UR                  5        [        UR                  5       R                  UR                  5        g )N)rp   r   r   D)r   sr   r   r-   r   rp   r      )r   ms)r   rp   r-   )r    r!   rB   r   rJ   rK   
get_marker
set_markerr   _create_closedr   r   )r'   r(   r5   	triangle1line2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.pngc           
         [         R                  R                  S5      n[        R                  " 5       u  p#UR                  UR                  SS9SSSSSS	9  UR                  UR                  SS9S
SSSSSS9  UR                  SS9  g )Ni!N,   )sizeorangebluerW   r>   zblue in orange)rG   gapcolorr@   rA   r   r   black)r   )rp   r>   r   rp   zblack in redr   )rG   r  r@   rA   r   alpha)handlelength)r   r"   default_rngr    r!   rB   uniformlegend)text_placeholdersrng_r(   s       r   test_striped_linesr&  &  s    
))


)CLLNEAGGCKKRK 6q(8  :GGCKKRK 'A^3  PII1Ir   c                     U R                  5       R                  SS// SQS9  UR                  5       R                  SS// SQS9  g )Nr-   rp   r   )dashes)r-   rp   r   r-   rp   r   )r}   rB   r   s     r   test_odd_dashesr)  1  sC    Ay91v.@Ar   c                  v   [         R                  " 5       u  p[        U R                  R                  S-  U R                  R
                  S-  S-   S9nUR                  SS/SS/SS9u  nUR                  U5      u  pEU(       a   eUR                  SS/SS/SSS	9u  nUR                  U5      u  pEU(       d   e[        US
   S/5        UR                  SS/SS/SS9u  nUR                  U5      u  pEU(       a   eUR                  S5        UR                  U5      u  pEU(       d   e[        US
   S/5        g )Nrp      )r   r   r   r-   T)pickerr   )r,  
pickradiusind)
r    r!   r   bboxwidthheightrB   containsr   set_pickradius)r'   r(   mouse_eventl0foundindicesl1l2s           r   test_pickingr:  7  s+   llnGC!CHHNNa$7$'HHOOq$82$=?K ''1a&1a&'
.CB[[-NE9 ''1a&1a&"'
=CB[[-NEL5wu~s+ ''1a&1a&'
.CB[[-NE9b[[-NEL5wu~s+r   c                     [         R                  " SSS5      nU R                  5       R                  X"S5      u  n[	        S5      US S & UR                  S5        UR                  5       R                  / SQ/ SQSSS9  g )	Nr   ri   rp   z.-r   rl   )r   rp   r   rn   )r   r~   r}   rB   rC   r   )r   r   r   r   s       r   test_input_copyr<  Q  sl     			!QA					$	$Q4	0BA8AaDOOGy)TWMr   c                    SSS/ SQSS/[        SSS	5      S
SSSS/n[        R                  S   nU" [        R                  " SS[        U5      5      5      n[        R                  " SS5      nSUS-  -  nUR                  5       n[        U5       H  u  pUR                  Xh-
  SXU   S9  M     [        UUS9[        R                  S'   U R                  5       n
[        U5       H  u  pU
R                  Xh-
  S5        M     g)z*Test that we can set markevery prop_cycle.N   )r   r>  )      r   r   r   r      r   r   r   g      ?)r{   r   )g?r   jet皙?皙?r-   r>   rp   zo-)r   rG   r   )r   mpl	colormapsr   r   r   r}   r   rB   r   r   r   )r   r   casescmapr   r   r   rv   r   r   r(   r%  s               r   test_markevery_prop_cyclerI  \  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                      [         R                  " 5       u  pUR                  SSS9nUR                  SS5      nUR                  S5        UR	                  S5        UR                  S5        UR                  S5        UR                  5       S:X  d   eUR                  5       S:X  d   eUR                  5       S:X  d   eUR                  5       S:X  d   e[        R                  " [        R                  5         UR                  S	S
5        S S S 5        [        R                  " [        R                  5         UR                  SS5        S S S 5        [        R                  " [        SS9   UR                  S	S
5        S S S 5        [        R                  " [        SS9   UR	                  S5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nd= f! , (       d  f       g = f)N)r   r   333333?slope)rD  r   )rC  r   g333333@)r   rC  )rK  rD  rC  r   rD  z.Cannot set an 'xy2' value while 'slope' is setr+   z-Cannot set a 'slope' value while 'xy2' is setr   )r    r!   axlineset_xy1	set_slopeset_xy2get_xy1	get_slopeget_xy2r.   warnsrE  MatplotlibDeprecationWarningr/   rP   )r'   r(   line1r  s       r   test_axline_settersrX  u  s~   llnGCIIhcI*EIIh)E 
MM(	OOC	MM(	MM( ==?h&&&??###==?h&&&==?h&&&	c66	7b" 
8	c66	7b" 
8 
zM
Ob"
O 
zL
N
N 
N 
8	7	7	7
O 
O
N 
Ns0   :F<9G-G!G/<
G

G
G,/
G=c                      [         R                  " SSS9n U R                  5       R                  S5      nU R                  5       R                  S5      nUS   US   -
  nUS:  d   eUS:  d   eg)	z@Test that small slopes are not coerced to zero in the transform.)r   r   g+=rL  )r-   r-   r-   r   g-=N)r    rN  get_transformtransform_point)r5   p1p2dys       r   test_axline_small_sloper_    sl    ::fE*D					-	-f	5B					-	-f	5B	AAB6M6::r   )@__doc__r   platformtypesr   r   numpyr   numpy.testingr   r.   r   rE  r   matplotlib.lineslinesr   matplotlib.markersr   matplotlib.pathr   matplotlib.pyplotpyplotr    matplotlib.transforms
transformsr   matplotlib.testing.decoratorsr	   r
   r   r)   r6   rD   rL   rR   r^   rb   r:   contextrf   machinery   r   r   r   r   r   r   r   r   r   markparametrizer  r
  r  r&  r)  r:  r<  rI  rX  r_  r\   r   r   <module>rr     s^     !   ,     ! *    + OGB
 =/t?PUV4 W4!' 7! ! +,$o#++-9atE	)E	) , ,%
3 +,$g#++-9atEBEB +,$oV W>- >")4M 5M% J J
 Hf#56)$  7)$XH( %&DH I B B
,4 N N  0>r   