
    P/PhY                     @   d dl Z d dlmZ d dlmZ d dlZd dlZd dlZd dl	Z
d dlZd dlmZ d dlmZ d dlmZ d dlmZ d dlmZmZ d dlmZ d d	lmZ d d
lmZmZ d Z  edgd          d             Z! edgd          d             Z"d Z# edg          d             Z$ edg          d             Z% ed          d             Z& e            d             Z' edddg          d             Z(d  Z)ej*        +                    d!          ed"                         Z,d# Z-d$ Z.d% Z/d& Z0d' Z1d( Z2d) Z3d* Z4d+ Z5d, Z6 ed-gd.          d/             Z7 ed0g          d1             Z8ej9        :                    d2d3d4ie;d5fd3d4gie;d6fd7d4ie;d8fd7d4gie;d9fd:d4ie;d;fd:d4gie;d<fd=d4ie;d>fd?d4ie;d@fdAdBie<dCfg	          dD             Z=dE Z>ej9        :                    dFg dG          ej9        :                    dHddIg          dJ                         Z?dK Z@dL ZAdS )M    N)BytesIO)Path)Figure)Circle)Text)check_figures_equalimage_comparison)needs_usetex)font_manager)OffsetImageAnnotationBboxc                  H   t          j                    \  } }t          j        ddt          j        z  d          }t          j        |          }t          j        |          }|                    |||d          \  }}}|D ]}|                    d           t                      5 }	| 
                    |	d           |	                                }
d d d            n# 1 swxY w Y   t          j        j                                        }|                    |
           d S )	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               a/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/matplotlib/tests/test_backend_svg.pytest_visibilityr3      s8   lnnGC
Aq25y"%%A
q		A<??Dkk!QTtk44GAq! " "5!!!!	 bBu%%%kkmm               [++--F
LLs   ',CC#&C#zfill_black_with_alpha.svgT)remove_textc                  n    t          j                    \  } }|                    g dg dddd           d S )N)r   皙?   )r   r   r   kr6   i'  )r)   r*   r-   alphas)r   r   scatterr'   r(   s     r2   test_fill_black_with_alphar=   )   s;    lnnGCJJ			SuJEEEEE    noscalec                     t          j        t          j        ddd          t          j        ddd                    \  } }t          j        |dz            }t	          j                    \  }}|                    |dd           d S )N   r7      graynone)cmapinterpolation)r   meshgridaranger   r   r   imshow)XYZr'   r(   s        r2   test_noscalerN   /   sq    ;ryQ**BIb!Q,?,?@@DAq
qAvAlnnGCIIafFI33333r>   c                  <   t          j                    } d}|                     d|           t                      5 }|                     |d           |                                                                }d d d            n# 1 swxY w Y   d| d}||v sJ d S )Nz$http://test_text_urls.matplotlib.orgtest_text_urls)urlr   r   z<a xlink:href="z">)r   figuresuptitler   r    r!   decode)r'   test_urlr/   r0   expecteds        r2   rP   rP   8   s    
*,,C5HLL!xL000	 %bBu%%%kkmm""$$% % % % % % % % % % % % % % % .---Hs??????s   >BB	B	zbold_font_output.svgc                  ,   t          j                    \  } }|                    t          j        d          t          j        d                     |                    d           |                    dd           |                    dd           d S )N
   nonbold-xlabelbold-ylabelbold
fontweight
bold-title)r   r   plotr   rI   
set_xlabel
set_ylabel	set_titler<   s     r2   test_bold_font_outputrc   F   sz    lnnGCGGBIbMM29R==)))MM"###MM-FM333LL&L11111r>   z'bold_font_output_with_none_fonttype.svgc                  J   dt           j        d<   t          j                    \  } }|                    t	          j        d          t	          j        d                     |                    d           |                    dd           |                    dd           d S )	NrE   svg.fonttyperX   rY   rZ   r[   r\   r^   )	r   rcParamsr   r_   r   rI   r`   ra   rb   r<   s     r2   (test_bold_font_output_with_none_fonttyperg   O   s    #)CL lnnGCGGBIbMM29R==)))MM"###MM-FM333LL&L11111r>      )tolc                    t          j        dd          dz  }t          j        |          }t          j        |          }|                                }|                    ||ddd           |                    |dz   |dd	d           |                                 }|                    ||dddd
           |                    |dz   |dd	dd
           d S )Nr   d   ffffff@-rrX   )r-   lwr7   r,   Tr-   ro   
rasterized)r   rI   cosr   r   r_   fig_testfig_reftr)   r*   ax_refax_tests          r2   test_rasterizedry   Y   s    
	!SS!A
q		A
q		AF
KK1cSRK(((
KK!QsrK***!!GLLAscbTL:::LL1atL<<<<<r>   c           	      b   t          j        dd          dz  }t          j        |          }t          j        |          }|                                }|                    dd           |                    dd           |                    ||ddd	d
           |                    |dz   |ddd	d           |                    |dz   |ddd	d
           |                    |dz   |ddd	d
           |                                 }|                    dd           |                    dd           |                    ||ddd	d
d           |                    |dz   |ddd	d
d           |                    |dz   |ddd	d
d           |                    |dz   |ddd	dd           d S )Nr   rk   rl      gg?rm   rn   rX   Trp   r7   r,   FrC   gm)r-   ro   rq   zorderg?gffffff?g333333?)r   rI   rr   r   r   set_xlimset_ylimr_   rs   s          r2   test_rasterized_orderingr   h   s   
	!SS!A
q		A
q		AF
OOAq
OOD#
KK1cSRDK999
KK!QsreK<<<
KK!QsrdK;;;
KK!QsrdK;;;!!GQT3LLAscbT#LFFFLL1atCLHHHLL1atCLHHHLL1auSLIIIIIr>   rB   r   pdf)ri   
extensionsc                 X   ddg}|                                 }|                    |d         g|d         gddd           t          j                            d          }t          j                            ||d	
          }|                    |           |                                  }|                    |d         g|d         gdddd           t          j                            d          }t          j                            ||d	
          }|                    |           d S )Ng?r   r7   r)   blackrC   )markerr-   r~   rK   g @)r~   T)r   r-   r~   rq   )r   r_   mpl	offsetboxTextArear   
add_artist)rt   ru   locrw   r,   aboxrx   s          r2   test_prevent_rasterizationr      s   ,CF
KKQ3q6(3'!KDDDs##A=''3s';;D
d!!GLL#a&CF8C71   " " " 	s##A=''3s';;Dtr>   c                  b   d } t          j                    }|                    ddd          }|                                 t	          d          D ]}|                    ddgd|gdd             | |d	          dk    sJ  | |d
          dk    sJ t          j                    }|                    ddd          }|                                 t	          d          D ]}|                    ddgd|gdd             | |d	          dk    sJ  | |d
          dk    sJ t          j                    }|                    ddd          }|                                 t	          d          D ]<}|                    ddg|dgdd           |                    ddgd|gdd           = | |d	          dk    sJ  | |d
          dk    sJ t          j                    }|                    ddd          }	|	                                 |	                    d           t	          d          D ]<}|	                    ddg|dgdd           |	                    ddgd|gdd           = | |d	          dk    sJ  | |d
          dk    sJ t          j                    }
d|
_        |
                    ddd          }|                                 t	          d          D ]}|                    ddgd|gdd             | |
d	          dk    sJ  | |
d
          dk    sJ d S )Nc                     t                      5 }|                     |d           |                                                                }d d d            n# 1 swxY w Y   |                    d|           S )Nr   r   <)r   r    r!   rT   count)r'   tagr/   r0   s       r2   	count_tagz%test_count_bitmaps.<locals>.count_tag   s    YY 	)"KK5K)))++--&&((C	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) yyS###s   >AA Ar7   rB   r   rh   zb-F)rq   imagepath   T)r   rR   add_subplotset_axis_offranger_   set_rasterizedsuppressComposite)r   fig1ax1nfig2ax2fig3ax3fig4ax4fig5ax5s               r2   test_count_bitmapsr      s   $ $ $ :<<D


1a
#
#C1XX : :!R1a&$599999T7##q((((9T6""a'''' :<<D


1a
#
#C1XX 9 9!R1a&$488889T7##q((((9T6""a'''' :<<D


1a
#
#C1XX 9 9!R1a&$5999!R1a&$488889T7##q((((9T6""a'''' :<<D


1a
#
#Ct1XX 9 9!R1a&$5999!R1a&$488889T7##q((((9T6""a'''' :<<D!D


1a
#
#C1XX 9 9!R1a&$488889T7##q((((9T6""a''''''r>   defaultc            	         t                      } |                     dddd           t                      5 }|                     |d           |                                }d d d            n# 1 swxY w Y   t
          j        j                            |          }d}d}t          |
                    d	| d
| d                    dk    sJ d| |                    d	| d          j                                        v sJ d S )N      ?z\textwonT)usetexr   r   http://www.w3.org/2000/svgzSFSS3583-8e.//{z}path[@d][@id=""]r7   #z}use)r   textr   r    r!   r"   etreeElementTree
fromstringlenfindallfindattribvalues)r'   r/   r0   treenswon_ids         r2   test_unicode_wonr      sG    ((CHHR[H...	 bBu%%%kkmm               9 ++C00D	%BFt||BBBBBBBCCDDIIIIv<<499%6R%6%6%677>EEGGGGGGGGs   ,A..A25A2c                  p   t           j                            ddd           d} t          j                    \  }}|                    t          j        d          d|            |                    t          j        d          t          j        d                     |                    d	d
           t                      5 }|
                    |d           |                    d	           |                                                                }d d d            n# 1 swxY w Y   | |v rd|v sJ d S )NrE   	condensed)re   zfont.stretchzUnlikely to appear by chancez
2019-06-30r7   z
2019-01-01z
2019-12-31r   rC   r   r   )r   rf   updater   r   r   
datetime64r   r   r   r    seekreadrT   )rV   r'   r(   r/   r0   s        r2   "test_svgnone_with_data_coordinatesr      sK   LMMNNN-HlnnGCGGBM,''H555KKl++R]<-H-HIIIKK1	 !bBu%%%



ggii  ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
 s??{c111111s   AD!!D%(D%c                     ddl m ddlm t	          j                    } |                     d          }|                    ddgddggd	           |                    g d
g d
d           |	                    g dd           |
                                 |                                }|                    g d
g d
           |                     dd          }|	                    g dg d
           |                     dd          }|	                    ddgddgddg           | j                                         i }t          |                     d                    D ]E\  }}|                                r,d|j        j         d| }|||<   |                    |           Ft+                      5 }	|                     |	d           |	                                                                }
ddd           n# 1 swxY w Y   fd}|                                D ]\  }} |||          r||
v sJ dS )z+Test that object gid appears in output svg.r   )	OffsetBox)Tick   g      ?g       @g      @auto)aspectr7   rC   r{   	myscatter)label)rC   r{   r7   myplot   polar)
projection)r   g      ?r{      3dr7   rC   T)include_selftest123_r   r   Nc                 X   t          |          rdS t          |t                    r#|                                dk    rdS |j        dS t          |t          j                  r\|                                \  }}t          |          t          |          cxk    rdk    rn ndS t          |d          r|j        dS t          |          rX|	                                }|dk    rdS |
                                }|t          |          k     s|t          |          k    rdS dS )NF r7   axesr   T)
isinstancer   get_textr   r   Line2Dget_datar   hasattrget_locget_view_intervalminmax)gidobjxdataydatar   vir   r   s         r2   includeztest_gid.<locals>.include  s,   c9%% 	5c4   	||~~##u!uc3:&& 	<<>>LE55zzSZZ,,,,1,,,,,uS&)) SX-=uc4   	++--Caxxu&&((BSWW}}c"ggutr>   )matplotlib.offsetboxr   matplotlib.axisr   r   rR   r   rJ   r;   r_   legendtwinxbarcanvasdraw	enumeratefindobjget_visible	__class____name__set_gidr   r    r!   rT   items)r'   r   ax1ar   r   gdicidxr   r   r/   r0   r   r   r   s               @@r2   test_gidr      s   ......$$$$$$
*,,C
//#

CJJR2r(#FJ333KK			999KK888HHYYYhH'''JJLLL99;;DHHYYY			"""
//#'/
2
2CHH[[[)))$$$
//#$/
/
/CHHaVaVaV$$$JOODckktk<<==  S?? 	:CM2::S::CDIKK	 %bBu%%%kkmm""$$% % % % % % % % % % % % % % %     0 JJLL  S73 	#:::: s   >HHHc                  F   t                      t          dd          }} t          d          D ]B}|                                 }|                    |gg          }|                    |           Ct          dd          }|                                 }|                    dgg          }|                    |           t                      5 }|                     |d           |                                }d d d            n# 1 swxY w Y   t          j
        j                            |          }d	}	t                      }
|                    d
|	 d          D ]*}|j        d         }||
vsJ |
                    |           +t#          |
          dk    sJ d S )N)r   r   rX   )radiusrB   r7   r   r   r   r   r   z}clipPath[@id]idrC   )r   r   r   r   rJ   set_clip_pathr   r    r!   r"   r   r   r   setr   r   addr   )r'   circleir(   aimginner_circler/   r0   r   r   clip_path_idsnodenode_ids                r2   test_clip_path_ids_reuser  /  s   ((F6"555C1XX # #__yy1#6""""&+++L			B99qcUD|$$$	 bBu%%%kkmm               9 ++C00D	%BEEM8R88899 # #+d#m++++'""""}""""""s   ,D		DDc                  L    t          j        t                      dd           d S )Nsvgztight)r   bbox_inches)r   r    r    r>   r2   test_savefig_tightr  J  s%     K		&g>>>>>>r>   c                     t          j                    \  } }|                    g dg d          }|                    g d           t          j        g dg d          \  }|                    d           t          j        g dg ddd	          \  }|                    d
           t                      }|                     |d           |                                }dD ]}d|z   |v sJ d S )Nr   r   rB   r   )zhttps://example.com/foozhttps://example.com/barN)rC   r{   r   zhttps://example.com/baz)r{   r   rB   rE   r)   )	linestyler   zhttps://example.com/quuxr   r   )s   foos   bars   bazs   quuxs   https://example.com/)	r   r   r;   set_urlsr_   set_urlr   r    r!   )r'   r(   r:   pr,   vs         r2   rU   rU   P  s    lnnGC 	

999iii((AJJKKKLLL 
)))YYY	'	'BAII'((( 
)))YYY&	E	E	EBAII()))		AKK%K   	

A. 0 0&*a/////0 0r>   c                    |                      dd           t          j                    \  }}|                    g dg d           t	          |j                                                  D ]\  }}|                    d|            t          j                    \  }}|                    g dg d           t	          |j                                                  D ]?\  }}|j                            d|            |j	                            d|            @t                      }|                    |d           |                                }t                      }|                    |d           |                                }t          t          |j                                                            D ]}d|                     d          |v sJ ||k    sJ d S )	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           r2   test_url_tickr#  h  s   *J777|~~HD"JJyyy)))$$$RX557788 1 14/A//0000|~~HD"JJyyy)))$$$RX557788 8 84616677761667777	BLLEL"""	B	BLLEL"""	B3rx//112233 @ @)a))0099R?????888888r>   c           
      ~   |                      dd           t          j                    \  }}t                      5 }|                    |d           |                                                                }d d d            n# 1 swxY w Y   t          j        |v sJ d|v sJ d|v sJ d|v sJ t                      5 }|                    |dd d d d d	           |                                                                }d d d            n# 1 swxY w Y   t          j        |vsJ d|vsJ d|vsJ d|vsJ d S )
Nr  r  r   r   
1970-08-16image/svg+xml
StillImageDateCreatorFormatTyper   metadata)	r  r   r   r   r    r!   rT   r   __version__)r  r'   r(   r/   r0   s        r2   test_svg_default_metadatar0    s   *J777lnnGC	 %bBu%%%kkmm""$$% % % % % % % % % % % % % % %
 ?c!!!!3c!!!!3 
 %bBu:>0N 0N 	O 	O 	Okkmm""$$% % % % % % % % % % % % % % % ?#%%%%s""""#%%%%s""""""s$   >BB	B	 ADDDc           
         |                      dd           t          j        dddd}d}d}d	}d
}t          j                    \  }}|D ] }t                      5 }	|                    |	d|                                d i           |	                                	                                }
d d d            n# 1 swxY w Y   t          j        j                            |
          }|                    d| d| d| d          \  }|D ]]}|                    d| |           }||k    r|rJ '|\  }t          j        j                            |d          }||         |v sJ ^"d S )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   r-  ./	metadata/zRDF/Workunicode)encoding)r  r   r/  r   r   r   r    titler!   rT   r"   r   r   r   r   tostring)r  metadata_containsSVGNSRDFNSCCNSDCNSr'   r(   namer/   r0   rootworkkeydataxmlstrs                   r2   test_svg_clear_default_metadatarK    s    *J777$'O\#2LJ J +E;E-D/DlnnGC! 4 4YY 	)"KK5DJJLL$3GKHHH++--&&((C	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) y$//44G%GG%GGTGGGHH$ 		4 		4C<< 0T 03 0 011Dd{{EDY*33D93MMF$S)V33333		44 4s   AB88B<	?B<	c            
         t          j                    \  } }t                      5 }|                     |dd d d d d           |                                                                }d d d            n# 1 swxY w Y   d}t          j        j        	                    |          }|
                    d| d          rJ d S )Nr   r(  r-  r5  r9  r.  )r   r   r   r    r!   rT   r"   r   r   r   r   )r'   r(   r/   r0   rA  rF  s         r2   test_svg_clear_all_metadatarM    s    lnnGC	 %bBu:>0N 0N 	O 	O 	Okkmm""$$% % % % % % % % % % % % % % %
 +E9 ++C00D||00001111111s   AA55A9<A9c                  4   g d} g d}t          j        ddd          t          j         dddddd          gdd	d
 | D             d |D             }t          j                    }t	                      5 }|                    |d|           |                                                                }d d d            n# 1 swxY w Y   d}dd}d}t          j	        j
                            |          }	|	                    d| d d          \  }
d |	                    d| d          D             }||d         gk    sJ fd|
                    d| d| d          D             }||d         gk    sJ dg| D ]Q}|dk    r	d |
                    d| d| |                                           D             }|||         gk    sJ R|D ]W}|dk    r	d |
                    d| d| |                                 d | d!| d
          D             }|||         k    sJ Xd" |
                    d| d| d#          D             }|d$gk    sJ d% |
                    d| d| d& d' d(	          D             }||d         k    sJ d S ))N)Coverage
IdentifierLanguageRelationSourceTitler,  )Contributorr*  Keywords	PublisherRightsi     r7   rC   r{   zdescription
text)r)  Descriptionc                     i | ]}|| d 	S )z foor  .0r8   s     r2   
<dictcomp>z%test_svg_metadata.<locals>.<dictcomp>  s     
/
/
/Q1jjj
/
/
/r>   c                 $    i | ]}|| d | dgS )z barz bazr  r\  s     r2   r^  z%test_svg_metadata.<locals>.<dictcomp>  s+    
<
<
<11!zzza:::&
<
<
<r>   r   r-  r5  r6  r7  r8  r9  r:  RDFc                     g | ]	}|j         
S r  r   r]  r  s     r2   
<listcomp>z%test_svg_metadata.<locals>.<listcomp>  s    DDDDdiDDDr>   r>  rT  c                 0    g | ]}|j          d          S )resource)r   )r]  r  rB  s     r2   rd  z%test_svg_metadata.<locals>.<listcomp>  s?     B B B [E+++, B B Br>   zWork/r4  r,  rZ  c                     g | ]	}|j         
S r  rb  rc  s     r2   rd  z%test_svg_metadata.<locals>.<listcomp>  s0     N N N ) N N Nr>   rV  c                     g | ]	}|j         
S r  rb  rc  s     r2   rd  z%test_svg_metadata.<locals>.<listcomp>   s0     L L L IL L Lr>   /zAgent/c                     g | ]	}|j         
S r  rb  rc  s     r2   rd  z%test_svg_metadata.<locals>.<listcomp>  s    KKK4TYKKKr>   r3  z1968-08-01/1968-08-02T01:02:03c                     g | ]	}|j         
S r  rb  rc  s     r2   rd  z%test_svg_metadata.<locals>.<listcomp>
  s,     O O ODdi O O Or>   zsubject/zBag/li)datetimer3  r   rR   r   r    r!   rT   r"   r   r   r   r   lower)single_valuemulti_valuer.  r'   r/   r0   rA  rC  rD  rF  rdftitlestypesr8   r   datesrB  s                   @r2   test_svg_metadataru    s   % % %LOOOKtQ**"4Aq!Q779*  0
/,
/
/
/	
 =
<
<
<
<H *,,C	 %bBux888kkmm""$$% % % % % % % % % % % % % % % +E;E-D/D9 ++C00D<<7U77U77788DC EDDLL1Be1B1B1B$C$CDDDFhw'(((((B B B B%?$%?%?T%?%?%?@@B B BEXf%&&&&&+l+ ' ';;N N!kk*Kt*K*K$*K		*K*KLLN N N(1+&&&&&  % %
??L LITIIIaggiiII$IIdIIIK KL L L !$$$$$ LK3;;/ID/I/It/I/I/I#J#JKKKE566666O OkkLtLL$LLLL5LLLMMO O OFXj)))))))s   5?C  CCzmulti_font_aspath.svgg?c                  `   t          j        dg          } t          t          j        |                     j        dk    rt          j        d           t          j        dddgd           t          j        d	d
           t          j	                    }|
                    ddd           d S )NWenQuanYi Zen Heifamilywqy-zenhei.ttcFont may be missingfontDejaVu Sans   ry  sizer   r   fonttype333333?ffffff?"   There are 几个汉字 in between!)fmFontPropertiesr   findfontrE  pytestskipr   rcrR   r   fpr'   s     r2   test_multi_font_type3r    s    		#6"7	8	8	8BBKOO!%555)***F6=*=>RHHHHF56""""
*,,CHHT5>?????r>   zmulti_font_astext.svgc                  `   t          j        dg          } t          t          j        |                     j        dk    rt          j        d           t          j                    }t          j	        dd           t          j	        dd	dgd
           |
                    ddd           d S )Nrw  rx  rz  r{  r   rE   r  r|  r}  r~  r  r  r  r  )r  r  r   r  rE  r  r  r   rR   r  r   r  s     r2   test_multi_font_type42r    s    		#6"7	8	8	8BBKOO!%555)***
*,,CF56""""F6=*=>RHHHHHHT5>?????r>   zmetadata,error,messager)  r7   z,Invalid type for Date metadata. Expected strz1Invalid type for Date metadata. Expected iterablerV  z0Invalid type for Keywords metadata. Expected strz5Invalid type for Keywords metadata. Expected iterabler*  z/Invalid type for Creator metadata. Expected strz4Invalid type for Creator metadata. Expected iterablerT  z-Invalid type for Title metadata. Expected strr+  z.Invalid type for Format metadata. Expected strFooBarzUnknown metadata keyc                    t          j        ||          5  t                      5 }t          j                    }|                    |d|            d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )N)matchr   r-  )r  raisesr   r   rR   r    )r.  errormessager/   r'   s        r2   test_svg_incorrect_metadatar  )  s    & 
uG	,	,	, 9 9gii 92jllBux8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s4   A6,AA6A"	"A6%A"	&A66A:=A:c                  4   t          j                    } |                     dddd           t                      5 }|                     |d           |                                                                }d|v sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   z<'"&>)r   r   r   z&lt;&apos;&quot;&amp;&gt;")r   rR   r   r   r    r!   rT   )r'   r/   r0   s      r2   test_svg_escaper  A  s    
*,,CHHS#yiH000	 3bBu%%%kkmm""$$+s222223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s   ABB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                    t          j        dg          }t          t          j        |                    j        dk    rt          j        d           t          d |                     d                    ^}}}t          |          }|r||gz   }|t          j        d| <   |t          j        d<   d	t          j        d
<   t          j                    \  }}|dk    rg d}	n|g}	|	D ]=}
|                    ddd||
gd           |                    ddd|g||
d           >|                    d           t                      5 }|                    |d           |                                }d d d            n# 1 swxY w Y   t$          j        j                            |          }d}d}|                    d| d          D ]w}|dz  }t/          d t/          |                                          d                             d          D                       }|d         | dk    sJ |d         | k    sJ x|t          |j                  k    sJ d S ) Nrw  rx  rz  r{  c                 ,    |                      d          S )N'stripr)   s    r2   <lambda>z&test_svg_font_string.<locals>.<lambda>]  s    !''#,, r>   z, zfont.z	font.sizerE   re   
sans-serif)sansr  z
sans serifr   r  center)ry  har6   offr   r   r   r   r   z}textr7   c              3      K   | ]:}t          d  |                                                    d                    V  ;dS )c                 *    |                                  S )Nr  r  s    r2   r  z0test_svg_font_string.<locals>.<genexpr>.<lambda>  s    !'')) r>   :N)mapr  split)r]  r   s     r2   	<genexpr>z'test_svg_font_string.<locals>.<genexpr>~  sX       
 
 ##QWWYY__S%9%9::
 
 
 
 
 
r>   style;z	font-sizepxzfont-family)r  r  r   r  rE  r  r  r  r  r   r   rf   r   r   axisr   r    r!   r"   r   r   r   r   dictr   texts)r  r  r  explicitrestgenericr  r'   r(   generic_optionsgeneric_namer/   r0   r   r   
text_counttext_element
font_styles                     r2   test_svg_font_stringr  J  s    
	#6"7	8	8	8BBKOO!%555)***"t 4 4   HtW w<<D  wi&*CL"""# $CL#)CL lnnGC,>>>")' E E
S> ,/H 	 	> 	> 	> 	S> 64668 	 	E 	E 	E 	EGGENNN	 bBu%%%kkmm               9 ++C00D	%BJ%7R%7%7%788 5 5a
 
 
,,,..//8>>sCC
 
 
 
 


 +&T+++5555-(H44444RX&&&&&&s   ,FF
Fc                  0   t          j                    } |                                 }t          j        d          }d}t          |d          }||j        _        t          ||ddddt          d	d
                    }|
                    d           |                    |           t                      5 }|                     |d           |                                                    d          }d d d            n# 1 swxY w Y   d}||v sJ d S )N)    r  )g333333?g?r6   )zoom)g      ^@g      TrI  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   rR   r   r   onesr   r   r   r   r  r   r   r   r    r!   rT   )	r'   r(   arr_imgxyimageboxabr/   r0   rV   s	            r2   test_annotationbbox_gidr    sY    *,,C			BghG	B7---HHN	"*!'"1#''+,L$N $N $N
 
 
B JJ'(((MM"	 ,bBu%%%kkmm""7++, , , , , , , , , , , , , , , 1Hs??????s   8?DD
Dc                     t          j                    \  } }|                    g dg d           | j                                         t                      5 }|                     |d           |                                                                }ddd           n# 1 swxY w Y   t          j
        j                            |          }t           j        d         J |                    d          rJ d}t          j        d|	           t                      5 }|                     |d           |                                                                }ddd           n# 1 swxY w Y   t          j
        j                            |          }t           j        d         |k    sJ |                    d
| d          sJ dS )z=Test that `svg.id` rcparam appears in output svg if not None.r   )r{   rC   r7   r   r   Nzsvg.idz.[@id]za test for issue 28535)r   z.[@id="r   )r   r   r_   r   r   r   r    r!   rT   r"   r   r   r   rf   r   r  )r'   r(   r/   r0   r   svg_ids         r2   
test_svgidr    s    lnnGCGGIIIyyy!!!JOO 
 %bBu%%%kkmm""$$% % % % % % % % % % % % % % % 9 ++C00D<!)))||H%%%%% &FF5V	 %bBu%%%kkmm""$$% % % % % % % % % % % % % % % 9 ++C00D<!V++++<<,&,,,-------s$   >B""B&)B&">E,,E03E0)Brm  ior   pathlibr   xml.etree.ElementTreer"   xml.parsers.expatr  numpyr   
matplotlibr   matplotlib.figurer   matplotlib.patchesr   matplotlib.textr   matplotlib.pyplotpyplotr   matplotlib.testing.decoratorsr   r	   matplotlib.testing._markersr
   r   r  r   r   r   r3   r=   rN   rP   rc   rg   ry   r   r   r   r  contextr   r   r   r  r  rU   r#  r0  rK  rM  ru  r  r  markparametrize	TypeError
ValueErrorr  r  r  r  r  r  r>   r2   <module>r     s                                 $ $ $ $ $ $ % % % % % %                   O O O O O O O O 4 4 4 4 4 4 ) ) ) ) ) ) > > > > > > > >  & ./TBBBF F CBF
 9+40004 4 104   )*++2 2 ,+2 <=>>2 2 ?>2 = = = J J J, u~666  76(6( 6( 6(t 9H H  H2 2 2"< < <~# # #6? ? ?0 0 00  6# # #D4 4 4B2 2 2 6* 6* 6*r *+555	@ 	@ 65	@ *+,,	@ 	@ -,	@ 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% $93 3 3  & & &   *T5M::.' .' ;: .'b  >. . . . .r>   