
    
3j)Z                        S SK r S SKJr  S SKJr  S SKrS SK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Jr  S S	KJr  S S
KJr  S SKJ r J!r!  S r"\" S/SSS9S 5       r#\" S/SSS9S 5       r$S r%\" S/SS9S 5       r&\" S/SS9S 5       r'\" S/SS9S 5       r(\" S/S9S  5       r)\" S!SS"/S#9S$ 5       r*S% r+\RX                  R[                  S&5      \S' 5       5       r.S( r/S) r0S* r1S+ r2S, r3S- r4S. r5S/ r6S0 r7S1 r8\" S2/SS9S3 5       r9\" S4/SS9S5 5       r:\Rv                  Ry                  S6S7S80\=S94S7S8/0\=S:4S;S80\=S<4S;S8/0\=S=4S>S80\=S?4S>S8/0\=S@4SAS80\=SB4SCS80\=SD4SESF0\>SG4/	5      SH 5       r?SI r@\Rv                  Ry                  SJ/ SKQ5      \Rv                  Ry                  SLSSM/5      SN 5       5       rASO rBSP rCg)Q    N)BytesIO)Path)Figure)Circle)Text)_gen_multi_font_text)check_figures_equalimage_comparison)needs_usetex)font_manager)OffsetImageAnnotationBboxc                  2   [         R                  " 5       u  p[        R                  " SS[        R                  -  S5      n[        R
                  " U5      n[        R                  " U5      nUR                  X#USS9u  pVnU H  nUR                  S5        M     [        5        n	U R                  U	SS9  U	R                  5       n
S S S 5        [        R                  R                  R                  5       nUR!                  W
5        g ! , (       d  f       NH= f)	Nr      2   ko)yerrfmtFsvgformat)pltsubplotsnplinspacepisin	ones_likeerrorbarset_visibler   savefiggetvaluexmlparsersexpatParserCreateParse)figaxxyr   abcartistfdbufparsers               [/home/wildlama/miniconda3/lib/python3.13/site-packages/matplotlib/tests/test_backend_svg.pytest_visibilityr4      s    llnGC
Aq255y"%A
q	A<<?Dkk!Ttk4GA!5!  
bBu%kkm 
 [[++-F
LL 
s   %!D
Dzfill_black_with_alpha.svgT_classic_test)remove_textstylec                  `    [         R                  " 5       u  pUR                  / SQ/ SQSSSS9  g )N)r   皙?   )r   r   r   kr9   i'  )r*   r+   r.   alphas)r   r   scatterr(   r)   s     r3   test_fill_black_with_alphar@   *   s'     llnGCJJ	SuJE    noscalec                     [         R                  " [         R                  " SSS5      [         R                  " SSS5      5      u  p[         R                  " US-  5      n[        R
                  " 5       u  p4UR                  USSS9  g )N   r:      graynone)cmapinterpolation)r   meshgridaranger   r   r   imshow)XYZr(   r)   s        r3   test_noscalerQ   1   s^    ;;ryyQ*BIIb!Q,?@DA
qAvAllnGCIIafFI3rA   c                     [         R                  " 5       n SnU R                  SUS9  [        5        nU R	                  USS9  UR                  5       R                  5       nS S S 5        SU S3nUW;   d   eg ! , (       d  f       N= f)Nz$http://test_text_urls.matplotlib.orgtest_text_urls)urlr   r   z<a xlink:href="z" target="_blank">)r   figuresuptitler   r!   r"   decode)r(   test_urlr0   r1   expecteds        r3   rS   rS   :   sx    
**,C5HLL!xL0	bBu%kkm""$ 
 !
*<=Hs?? 
s   /A88
Bzbold_font_output.svgmpl20)r7   c                     [         R                  " 5       u  pUR                  [        R                  " S5      [        R                  " S5      5        UR                  S5        UR                  SSS9  UR                  SSS9  g )N
   nonbold-xlabelbold-ylabelbold
fontweight
bold-titleX  )r   r   plotr   rL   
set_xlabel
set_ylabel	set_titler?   s     r3   test_bold_font_outputrh   H   sZ    llnGCGGBIIbM299R=)MM"#MM-FM3LL#L.rA   z'bold_font_output_with_none_fonttype.svgc                  .   S[         R                  S'   [         R                  " 5       u  pUR                  [        R
                  " S5      [        R
                  " S5      5        UR                  S5        UR                  SSS9  UR                  SS	S9  g )
NrH   svg.fonttyper\   r]   r^   r_   r`   rb   rc   )	r   rcParamsr   rd   r   rL   re   rf   rg   r?   s     r3   (test_bold_font_output_with_none_fonttyperl   R   sh    #)CLL llnGCGGBIIbM299R=)MM"#MM-FM3LL#L.rA   r      )
extensionstolc           	      t   [         R                  " SS5      S-  n[         R                  " U5      n[         R                  " U5      nUR	                  5       nUR                  X4SSSS9  UR                  US-   USS	SS9  U R	                  5       nUR                  X4SSSS
S9  UR                  US-   USS	SS
S9  g )Nr   d   ffffff@-rr\   )r.   lwr:   r-   Tr.   ru   
rasterized)r   rL   cosr   r   rd   fig_testfig_reftr*   r+   ax_refax_tests          r3   test_rasterizedr   ]   s    
		!SS!A
q	A
q	AF
KKcSRK(
KK!QsrK*!GLLscbTL:LL1atL<rA   )rn   c           
         [         R                  " SS5      S-  n[         R                  " U5      n[         R                  " U5      nUR	                  5       nUR                  SS5        UR                  SS5        UR                  X4SSS	S
S9  UR                  US-   USSS	SS9  UR                  US-   USSS	S
S9  UR                  US-   USSS	S
S9  U R	                  5       nUR                  SS5        UR                  SS5        UR                  X4SSS	S
SS9  UR                  US-   USSS	S
SS9  UR                  US-   USSS	S
SS9  UR                  US-   USSS	SSS9  g )Nr   rq   rr      gg?rs   rt   r\   Trv   r:   r-   FrF   gm)r.   ru   rw   zorderg?gffffff?g333333?)r   rL   rx   r   r   set_xlimset_ylimrd   ry   s          r3   test_rasterized_orderingr   l   se   
		!SS!A
q	A
q	AF
OOAq
OOD#
KKcSRDK9
KK!QsreK<
KK!QsrdK;
KK!QsrdK;!GQT3LLscbT#LFLL1atCLHLL1atCLHLL1auSLIrA   rE   pdf)ro   rn   c           	         SS/nUR                  5       nUR                  US   /US   /SSSS9  [        R                  R	                  S5      n[        R                  R                  XBS	S
9nUR                  U5        U R                  5       nUR                  US   /US   /SSSSS9  [        R                  R	                  S5      n[        R                  R                  XBS	S
9nUR                  U5        g )Ng?r   r:   r*   blackrF   )markerr.   r   rN   g @)r   T)r   r.   r   rw   )r   rd   mpl	offsetboxTextArear   
add_artist)rz   r{   locr}   r-   aboxr~   s          r3   test_prevent_rasterizationr      s    ,CF
KKQ3q6(3'!KDs#A==''s';D
d!GLL#a&CF8C71   " 	s#A==''s';DtrA   c                  ~   S n [         R                  " 5       nUR                  SSS5      nUR                  5         [	        S5       H  nUR                  SS/SU/SSS9  M     U " US	5      S:X  d   eU " US
5      S:X  d   e[         R                  " 5       nUR                  SSS5      nUR                  5         [	        S5       H  nUR                  SS/SU/SSS9  M     U " US	5      S:X  d   eU " US
5      S:X  d   e[         R                  " 5       nUR                  SSS5      nUR                  5         [	        S5       H/  nUR                  SS/US/SSS9  UR                  SS/SU/SSS9  M1     U " US	5      S:X  d   eU " US
5      S:X  d   e[         R                  " 5       nUR                  SSS5      n	U	R                  5         U	R                  S5        [	        S5       H/  nU	R                  SS/US/SSS9  U	R                  SS/SU/SSS9  M1     U " US	5      S:X  d   eU " US
5      S:X  d   e[         R                  " 5       n
SU
l        U
R                  SSS5      nUR                  5         [	        S5       H  nUR                  SS/SU/SSS9  M     U " U
S	5      S:X  d   eU " U
S
5      S:X  d   eg )Nc                     [        5        nU R                  USS9  UR                  5       R                  5       nS S S 5        WR	                  SU 35      $ ! , (       d  f       N"= f)Nr   r   <)r   r!   r"   rW   count)r(   tagr0   r1   s       r3   	count_tag%test_count_bitmaps.<locals>.count_tag   sQ    Y"KK5K)++-&&(C  yy1SE## Ys   /A
A$r:   rE   r   rm   zb-F)rw   imagepath   T)r   rU   add_subplotset_axis_offrangerd   set_rasterizedsuppressComposite)r   fig1ax1nfig2ax2fig3ax3fig4ax4fig5ax5s               r3   test_count_bitmapsr      s   $ ::<D


1a
#C1X!R1a&$59 T7#q(((T6"a''' ::<D


1a
#C1X!R1a&$48 T7#q(((T6"a''' ::<D


1a
#C1X!R1a&$59!R1a&$48  T7#q(((T6"a''' ::<D


1a
#Ct1X!R1a&$59!R1a&$48  T7#q(((T6"a''' ::<D!D


1a
#C1X!R1a&$48 T7#q(((T6"a'''rA   defaultc            	         [        5       n U R                  SSSSS9  [        5        nU R                  USS9  UR	                  5       nS S S 5        [
        R                  R                  R                  W5      nSnSn[        UR                  S	U S
U S35      5      S:X  d   eSU 3UR                  S	U S35      R                  R                  5       ;   d   eg ! , (       d  f       N= f)N      ?z\textwonT)usetexr   r   http://www.w3.org/2000/svgzSFSS1728-232.//{z}path[@d][@id=""]r:   #z}use)r   textr   r!   r"   r#   etreeElementTree
fromstringlenfindallfindattribvalues)r(   r0   r1   treenswon_ids         r3   test_unicode_wonr      s     (CHHR[H.	bBu%kkm 
 99  ++C0D	%BFt||eB4'7xrBCDIIIvh<499uRD%67>>EEGGGG 
s   !C
C)c                  B   [         R                  R                  SSS.5        Sn [         R                  " 5       u  pUR	                  [
        R                  " S5      SU 5        UR                  [
        R                  " S5      [
        R                  " S5      5        UR                  S	S
5        [        5        nUR                  USS9  UR                  S	5        UR                  5       R                  5       nS S S 5        U W;   a  SU;   d   eg ! , (       d  f       N= f)NrH   	condensed)rj   zfont.stretchzUnlikely to appear by chancez
2019-06-30r:   z
2019-01-01z
2019-12-31r   rF   r   r   )r   rk   updater   r   r   
datetime64r   r   r   r!   seekreadrW   )rY   r(   r)   r0   r1   s        r3   "test_svgnone_with_data_coordinatesr      s    LLMN-HllnGCGGBMM,'H5KKl+R]]<-HIKK1	bBu%

ggi  

 s?{c1111 
s   9A D
Dc                    ^^ SSK Jm  SSKJm  [        R
                  " 5       n U R                  S5      nUR                  SS/SS//SS	9  UR                  / S
Q/ S
QSS9  UR                  / SQSS9  UR                  5         UR                  5       nUR                  / S
Q/ S
Q5        U R                  SSS9nUR                  / SQ/ S
Q5        U R                  SSS9nUR                  SS/SS/SS/5        U R                  R                  5         0 n[        U R!                  SS95       HM  u  pgUR#                  5       (       d  M  SUR$                  R&                   SU 3nXuU'   UR)                  U5        MO     [+        5        n	U R-                  U	SS9  U	R/                  5       R1                  5       n
SSS5        UU4S jnUR3                  5        H  u  pU" X5      (       d  M  UW
;   a  M   e   g! , (       d  f       NF= f)z+Test that object gid appears in output svg.r   )	OffsetBox)Tick   g      ?g       @g      @auto)aspectr:   rF   r   	myscatter)label)rF   r   r:   myplot   polar)
projection)r   g      ?r      3dr:   rF   T)include_selftest123_r   r   Nc                 ,  > [        UT5      (       a  g[        U[        5      (       a#  UR                  5       S:X  a  gUR                  c  g[        U[        R
                  5      (       aS  UR                  5       u  p#[        U5      [        U5      s=:X  a  S:X  a   g  [        US5      (       a  UR                  c  g[        UT5      (       aF  UR                  5       nUS:X  a  gUR                  5       nU[        U5      :  d  U[        U5      :  a  gg)NF r:   axesr   T)
isinstancer   get_textr   r   Line2Dget_datar   hasattrget_locget_view_intervalminmax)gidobjxdataydatar   vir   r   s         r3   includetest_gid.<locals>.include  s    c9%%c4  ||~#!c3::&&<<>LE5zSZ,1, -S&))SXX-=c4  ++-Cax&&(BSW}c"grA   )matplotlib.offsetboxr   matplotlib.axisr   r   rU   r   rM   r>   rd   legendtwinxbarcanvasdraw	enumeratefindobjget_visible	__class____name__set_gidr   r!   r"   rW   items)r(   r   ax1ar   r   gdicidxr   r   r0   r1   r   r   r   s               @@r3   test_gidr      s   .$
**,C
//#
CJJR2r(#FJ3KK	9KK8HHYhH'JJL99;DHHY	"
//#'/
2CHH[)$
//#$/
/CHHaVaVaV$JJOODckktk<=??CMM2231SE:CIKK	 > 
bBu%kkm""$ 
0 JJL3#:: !9 
s   /G55
Hc                     [        5       [        SSS9p[        S5       H7  nU R                  5       nUR	                  U//5      nUR                  U5        M9     [        SSS9nU R                  5       nUR	                  S//5      nUR                  U5        [        5        nU R                  USS9  UR                  5       nS S S 5        [        R                  R                  R                  W5      nS	n	[        5       n
UR                  S
U	 S35       H*  nUR                  S   nX;  d   eU
R!                  U5        M,     [#        U
5      S:X  d   eg ! , (       d  f       N= f)N)r   r   r\   )radiusrE   r:   r   r   r   r   r   z}clipPath[@id]idrF   )r   r   r   r   rM   set_clip_pathr   r!   r"   r#   r   r   r   setr   r   addr   )r(   circleir)   aimginner_circler0   r1   r   r   clip_path_idsnodenode_ids                r3   test_clip_path_ids_reuser  3  s6   (F6"51X__yy1#6" 
 &+L		B99qcUD|$	bBu%kkm 
 99  ++C0D	%BEMuRD89++d#+++'" : }""" 
s   "!E
E#c                  @    [         R                  " [        5       SSS9  g )Nsvgztight)r   bbox_inches)r   r!   r    rA   r3   test_savefig_tightr  N  s     KK	&g>rA   c                     [         R                  " 5       u  pUR                  / SQ/ SQ5      nUR                  / SQ5        [         R                  " / SQ/ SQ5      u  nUR                  S5        [         R                  " / SQ/ SQSSS	9u  nUR                  S
5        [        5       nU R                  USS9  UR                  5       nS H  nSU-   U;   a  M   e   g )Nr   r   rE   r   )zhttps://example.com/foozhttps://example.com/barN)rF   r   r   zhttps://example.com/baz)r   r   rE   rH   r*   )	linestyler   zhttps://example.com/quuxr   r   )s   foos   bars   bazs   quuxs   https://example.com/)	r   r   r>   set_urlsrd   set_urlr   r!   r"   )r(   r)   r=   pr-   vs         r3   rX   rX   T  s     llnGC 	

9i(AJJKL 
)Y	'BAII'( 
)Y&	EBAII()	AKK%K 	

A.&*a/// /rA   c                 |   U R                  SS5        [        R                  " 5       u  pUR                  / SQ/ SQ5        [	        UR
                  R                  5       5       H  u  p4UR                  SU 35        M     [        R                  " 5       u  pRUR                  / SQ/ SQ5        [	        UR
                  R                  5       5       HA  u  p4UR                  R                  SU 35        UR                  R                  SU 35        MC     [        5       nUR                  USS9  UR                  5       n[        5       nUR                  USS9  UR                  5       n[        [        UR
                  R                  5       5      5       H  nSU 3R                  S5      U;   a  M   e   Xg:X  d   eg )	NSOURCE_DATE_EPOCH19680801r   r  zhttps://example.com/r   r   ascii)setenvr   r   r>   r   yaxisget_major_ticksr  label1label2r   r!   r"   r   r   encode)monkeypatchr   r)   r  tickr   b1b2s           r3   test_url_tickr*  l  s_   *J7||~HDJJy)$RXX5578+A3/0 9 ||~HDJJy)$RXX557821#6721#67 9 
BLLEL"	B	BLLEL"	B3rxx//123%aS)009R??? 48O8rA   c           
      b   U R                  SS5        [        R                  " 5       u  p[        5        nUR	                  USS9  UR                  5       R                  5       nS S S 5        [        R                  W;   d   eSU;   d   eSU;   d   eSU;   d   e[        5        nUR	                  USS S S S S.S	9  UR                  5       R                  5       nS S S 5        [        R                  U;  d   eSU;  d   eSU;  d   eSU;  d   eg ! , (       d  f       N= f! , (       d  f       NN= f)
Nr  r  r   r   
1970-08-16image/svg+xml
StillImageDateCreatorFormatTyper   metadata)	r   r   r   r   r!   r"   rW   r   __version__)r&  r(   r)   r0   r1   s        r3   test_svg_default_metadatar7    s    *J7llnGC	bBu%kkm""$ 

 ??c!!!3c!!!3 
bBu:>0N 	Okkm""$ 
 ??#%%%s"""#%%%s"""5 
 
s   /D#5D 
D 
D.c           
         U R                  SS5        [        R                  SSSS.nSnSnS	nS
n[        R                  " 5       u  pgU GH  n[        5        n	UR                  U	SUR                  5       S 0S9  U	R                  5       R                  5       n
S S S 5        [        R                  R                  R                  W
5      nUR                  SU SU SU S35      u  nU H_  nUR                  SU U 35      nX:X  a  U(       a   eM)  Uu  n[        R                  R                  R                  USS9nX   U;   a  M_   e   GM     g ! , (       d  f       N= f)Nr  r  r,  r-  r.  )creatordater   type{http://www.w3.org/2000/svg}-{http://www.w3.org/1999/02/22-rdf-syntax-ns#} {http://creativecommons.org/ns#}"{http://purl.org/dc/elements/1.1/}r   r4  ./	metadata/zRDF/Workunicode)encoding)r   r   r6  r   r   r   r!   titler"   rW   r#   r   r   r   r   tostring)r&  metadata_containsSVGNSRDFNSCCNSDCNSr(   r)   namer0   r1   rootworkkeydataxmlstrs                   r3   test_svg_clear_default_metadatarR    sF    *J7$'OO\#2LJ +E;E-D/DllnGC!Y"KK5DJJL$3GKH++-&&(C  yy$$//4r%	%TF$GH$C<<"TF3% 01D{xEDYY**33D93MF$)V333 % "Ys   A E
E	c            
      p   [         R                  " 5       u  p[        5        nU R                  USS S S S S.S9  UR	                  5       R                  5       nS S S 5        Sn[        R                  R                  R                  W5      nUR                  SU S35      (       a   eg ! , (       d  f       NV= f)Nr   r/  r4  r<  r@  r5  )r   r   r   r!   r"   rW   r#   r   r   r   r   )r(   r)   r0   r1   rH  rM  s         r3   test_svg_clear_all_metadatarT    s     llnGC	bBu:>0N 	Okkm""$ 

 +E99  ++C0D||bx011111 
s   5B''
B5c                     / SQn / SQn[         R                  " SSS5      [         R                   " SSSSSS5      /SS	.U  Vs0 s H  o"U S
3_M
     snEU Vs0 s H  o"U S3U S3/_M     snEn[        R                  " 5       n[	        5        nUR                  USUS9  UR                  5       R                  5       nS S S 5        SnSnSn	Sn
[        R                  R                  R                  W5      nUR                  SU SU S35      u  nUR                  SU S35       Vs/ s H  oR                  PM     nnXS   /:X  d   eUR                  SU	 SU
 S35       Vs/ s H  nUR                  U S3   PM     nnXS   /:X  d   eS/U Q HW  nUS:X  a  M  UR                  SU	 SU
 UR                  5        35       Vs/ s H  nUR                  PM     nnUX2   /:X  a  MW   e   U H]  nUS:X  a  M  UR                  SU	 SU
 UR                  5        SU	 SU
 S3
5       Vs/ s H  nUR                  PM     nnUX2   :X  a  M]   e   UR                  SU	 SU
 S 35       Vs/ s H  oR                  PM     nnUS!/:X  d   eUR                  SU	 SU
 S"U S#U S$3	5       Vs/ s H  oR                  PM     nnUUS   :X  d   eg s  snf s  snf ! , (       d  f       GN = fs  snf s  snf s  snf s  snf s  snf s  snf )%N)Coverage
IdentifierLanguageRelationSourceTitler3  )Contributorr1  Keywords	PublisherRightsi     r:   rF   r   zdescription
text)r0  Descriptionz fooz barz bazr   r4  r<  r=  r>  r?  r@  rA  RDFrE  r[  zWork/r;  resourcer3  ra  r]  /zAgent/r:  z1968-08-01/1968-08-02T01:02:03zsubject/zBag/li)datetimer:  r   rU   r   r!   r"   rW   r#   r   r   r   r   r   r   lower)single_valuemulti_valuer;   r5  r(   r0   r1   rH  rI  rJ  rK  rM  rdfr  titlestypesr   datess                     r3   test_svg_metadatarn    s   %LOKtQ*""4Aq!Q79* #/
/,Q4j=,
/	
 1<
<1!DzaS:&&
<H **,C	bBux8kkm""$ 
 +E;E-D/D99  ++C0D<<"UG9UG378DC %)LL2eWE1B$CD$CDii$CFDw'((((r$uTF$%?@B@ [[E7(+,@ 
 Bf%&&&&+l+;!kkBtfE$	{*KLNLd ))L 	 N(+&&& , 
? TF%vaggi[$vdV5IKLK IIK 	 L $$$  $';;D6tfD/I#JK#J4YY#JEK56666 kkBtfE$xwd5'LMOM !iiM  OXj))))] 0
< 
 EBNL LOs<   KK0K)K*%K/K4+K9+K>+L
K'zmulti_font_aspath.svgc                      [        5       u  p[        R                  " SU SS9  [        R                  " SSS9  [        R                  " SS9nUR	                  S	S	US
S
S9  g )Nfont   familysizer   r   fonttyper`  r   figsizer   centerhorizontalalignmentverticalalignmentr   r   rcrU   r   fontstest_strr(   s      r3   test_multi_font_aspathr    U    *,OEFF6%b)FF56"
**V
$CHHS#x!)X  GrA   zmulti_font_astext.svgc                      [        5       u  p[        R                  " SU SS9  [        R                  " SSS9  [        R                  " SS9nUR	                  S	S	US
S
S9  g )Nrp  rq  rr  r   rH   ru  rw  rx  r   rz  r{  r~  r  s      r3   test_multi_font_astextr    r  rA   zmetadata,error,messager0  r:   z,Invalid type for Date metadata. Expected strz1Invalid type for Date metadata. Expected iterabler]  z0Invalid type for Keywords metadata. Expected strz5Invalid type for Keywords metadata. Expected iterabler1  z/Invalid type for Creator metadata. Expected strz4Invalid type for Creator metadata. Expected iterabler[  z-Invalid type for Title metadata. Expected strr2  z.Invalid type for Format metadata. Expected strFooBarzUnknown metadata keyc                     [         R                  " XS9   [        5        n[        R                  " 5       nUR                  USU S9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)N)matchr   r4  )pytestraisesr   r   rU   r!   )r5  errormessager0   r(   s        r3   test_svg_incorrect_metadatar  )  sJ    & 
u	,gi2jjlBux8 /8	,	,ii	,	,s"   A)'AA)
A&	"A))
A7c                     [         R                  " 5       n U R                  SSSSS9  [        5        nU R	                  USS9  UR                  5       R                  5       nSU;   d   e S S S 5        g ! , (       d  f       g = f)Nr   z<'"&>)r   r   r   z&lt;&apos;&quot;&amp;&gt;")r   rU   r   r   r!   r"   rW   )r(   r0   r1   s      r3   test_svg_escaper  A  sd    
**,CHHS#yiH0	bBu%kkm""$+s222 
s   7A33
Bfont_str)z7'DejaVu Sans', 'WenQuanYi Zen Hei', 'Arial', sans-serifz='DejaVu Serif', 'WenQuanYi Zen Hei', 'Times New Roman', serifz%'Arial', 'WenQuanYi Zen Hei', cursivez&'Impact', 'WenQuanYi Zen Hei', fantasyzA'DejaVu Sans Mono', 'WenQuanYi Zen Hei', 'Courier New', monospaceinclude_genericFc           	      p   [         R                  " S/S9n[        [         R                  " U5      5      R                  S:w  a  [
        R                  " S5        [        S U R                  S5      5      Gtp4n[        U5      nU(       a  XE/-   nU[        R                  SU 3'   U[        R                  S'   S	[        R                  S
'   [        R                  " 5       u  pxUS:X  a  / SQn	OU/n	U	 H/  n
UR                  SSSX:/SS9  UR                  SSSU/UQU
PSS9  M1     UR                  S5        [        5        nUR!                  USS9  UR#                  5       nS S S 5        [$        R&                  R(                  R+                  W5      nSnSnUR-                  SU S35       H\  nUS-  n[/        S [/        UR1                  5       5      S   R                  S5       5       5      nUS   U S3:X  d   eUS   U :X  a  M\   e   U[        UR2                  5      :X  d   eg ! , (       d  f       N= f) NzWenQuanYi Zen Hei)rs  zwqy-zenhei.ttczFont may be missingc                 $    U R                  S5      $ )N'stripr*   s    r3   <lambda>&test_svg_font_string.<locals>.<lambda>]  s    !''#,rA   z, zfont.z	font.sizerH   rj   
sans-serif)sansr  z
sans serifr   u"   There are 几个汉字 in between!rz  )rs  har9   offr   r   r   r   r   z}textr:   c              3   v   #    U  H/  n[        S  UR                  5       R                  S5      5      v   M1     g7f)c                 "    U R                  5       $ )Nr  r  s    r3   r  0test_svg_font_string.<locals>.<genexpr>.<lambda>  s
    !'')rA   :N)mapr  split).0r   s     r3   	<genexpr>'test_svg_font_string.<locals>.<genexpr>~  s1      
C #QWWY__S%9::Cs   79r7   ;z	font-sizepxzfont-family)fmFontPropertiesr   findfontrL  r  skipr  r  r   r   rk   r   r   axisr   r!   r"   r#   r   r   r   r   dictr   texts)r  r  fpexplicitrestgenericrt  r(   r)   generic_optionsgeneric_namer0   r1   r   r   
text_counttext_element
font_styles                     r3   test_svg_font_stringr  J  s!    
		#6"7	8BBKKO!!%55)*"t 4 HW w<Di&*CLL5	"# $CLL#)CLL llnGC,>")'
S> /H 	 	> 	S> 64668 	 	E ( GGEN	bBu%kkm 
 99  ++C0D	%BJuRD%78a
 
,,,./8>>sC
 


 +&TF"+555-(H444 9 RXX&&&! 
s    !H''
H5c                     [         R                  " 5       n U R                  5       n[        R                  " S5      nSn[        USS9nXR                  l        [        XCSSSS[        S	S
S9S9nUR                  S5        UR                  U5        [        5        nU R                  USS9  UR                  5       R                  S5      nS S S 5        SnUW;   d   eg ! , (       d  f       N= f)N)    r  )g333333?g?r9   )zoom)g      ^@g      TrP  zoffset pointsr   z->zangle,angleA=0,angleB=90,rad=3)
arrowstyleconnectionstyle)xyboxxycoords	boxcoordspad
arrowpropsza test for issue 20044r   r   zutf-8z<g id="a test for issue 20044">)r   rU   r   r   onesr   r   r   r   r  r   r   r   r!   r"   rW   )	r(   r)   arr_imgxyimageboxabr0   r1   rY   s	            r3   test_annotationbbox_gidr    s     **,C		BgghG	B7-HNN	*!'"1#''+,L$N
B JJ'(MM"	bBu%kkm""7+ 
 1Hs?? 
s   0C
C+c                  t   [         R                  " 5       u  pUR                  / SQ/ SQ5        U R                  R	                  5         [        5        nU R                  USS9  UR                  5       R                  5       nSSS5        [        R                  R                  R                  W5      n[         R                  S   b   eUR                  S5      (       a   eSn[         R                  " SUS	9  [        5        nU R                  USS9  UR                  5       R                  5       nSSS5        [        R                  R                  R                  U5      n[         R                  S   U:X  d   eUR                  S
U S35      (       d   eg! , (       d  f       GN= f! , (       d  f       N= f)z=Test that `svg.id` rcparam appears in output svg if not None.r   )r   rF   r:   r   r   Nzsvg.idz.[@id]za test for issue 28535)r  z.[@id="r   )r   r   rd   r   r   r   r!   r"   rW   r#   r   r   r   rk   r   r  )r(   r)   r0   r1   r   svg_ids         r3   
test_svgidr    sK    llnGCGGIy!JJOO 
bBu%kkm""$ 
 99  ++C0D<<!)))||H%%%% &FFF5V	bBu%kkm""$ 
 99  ++C0D<<!V+++<<'&,----) 
 
s   /F/F)
F&)
F7)Drf  ior   pathlibr   xml.etree.ElementTreer#   xml.parsers.expatr  numpyr   
matplotlibr   matplotlib.figurer   matplotlib.patchesr   matplotlib.textr   matplotlib.pyplotpyplotr   matplotlib.testingr   matplotlib.testing.decoratorsr	   r
   matplotlib.testing._markersr   r   r  r   r   r   r4   r@   rQ   rS   rh   rl   r   r   r   r   r7   contextr   r   r   r  r  rX   r*  r7  rR  rT  rn  r  r  markparametrize	TypeError
ValueErrorr  r  r  r  r  r  rA   r3   <module>r     s           $ %    3 O 4 ) >& ./T')F)F
 9+4G4 H4 )*':/ ;/ <=_U/ V/ R0= 1= (J )J, u~6 7(6(t 9H  H2"<~#6?006#D4B2 6*r *+7;G <G *+7;G <G 1a[)KLqc]I8:!_i791#	<>^Y68!y;=q\946]I57U^Z!78!4 $9%$93  &  *T5M:.' ;.'b>.rA   