
    Ng=R                     (   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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% Z.d& Z/d' Z0d( Z1d) Z2d* Z3 ed+gd,          d-             Z4 ed.g          d/             Z5ej6        7                    d0d1d2ie8d3fd1d2gie8d4fd5d2ie8d6fd5d2gie8d7fd8d2ie8d9fd8d2gie8d:fd;d2ie8d<fd=d2ie8d>fd?d@ie9dAfg	          dB             Z:dC Z;ej6        7                    dDg dE          ej6        7                    dFddGg          dH                         Z<dI Z=dS )J    N)BytesIO)Path)Figure)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               ]/var/www/html/ai-engine/env/lib/python3.11/site-packages/matplotlib/tests/test_backend_svg.pytest_visibilityr2      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   kr5   i'  )r(   r)   r,   alphas)r   r   scatterr&   r'   s     r1   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   r6      graynone)cmapinterpolation)r   meshgridaranger   r   r   imshow)XYZr&   r'   s        r1   test_noscalerM   .   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.   r/   expecteds        r1   rO   rO   7   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   rH   
set_xlabel
set_ylabel	set_titler;   s     r1   test_bold_font_outputrb   E   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 )	NrD   svg.fonttyperW   rX   rY   rZ   r[   r]   )	r   rcParamsr   r^   r   rH   r_   r`   ra   r;   s     r1   (test_bold_font_output_with_none_fonttyperf   N   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@-rrW   )r,   lwr6   r+   Tr,   rn   
rasterized)r   rH   cosr   r   r^   fig_testfig_reftr(   r)   ax_refax_tests          r1   test_rasterizedrx   X   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   rj   rk      gg?rl   rm   rW   Tro   r6   r+   FrB   gm)r,   rn   rp   zorderg?gffffff?g333333?)r   rH   rq   r   r   set_xlimset_ylimr^   rr   s          r1   test_rasterized_orderingr   g   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=   rA   r   pdf)rh   
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   r6   r(   blackrB   )markerr,   r}   rJ   g @)r}   T)r   r,   r}   rp   )r   r^   mpl	offsetboxTextArear   
add_artist)rs   rt   locrv   r+   aboxrw   s          r1   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    rS   count)r&   tagr.   r/   s       r1   	count_tagz%test_count_bitmaps.<locals>.count_tag   s    YY 	)"KK5K)))++--&&((C	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) yyS###s   >AA Ar6   rA   r   rg   zb-F)rp   imagepath   T)r   rQ   add_subplotset_axis_offranger^   set_rasterizedsuppressComposite)r   fig1ax1nfig2ax2fig3ax3fig4ax4fig5ax5s               r1   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="z"]r6   #z}use)r   textr   r   r    r!   etreeElementTree
fromstringlenfindallfindattribvalues)r&   r.   r/   treenswon_ids         r1   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 )NrD   	condensed)rd   zfont.stretchzUnlikely to appear by chancez
2019-06-30r6   z
2019-01-01z
2019-12-31r   rB   r   r   )r   re   updater   r   r   
datetime64r~   r   r   r   seekreadrS   )rU   r&   r'   r.   r/   s        r1   "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r6   rB   rz   	myscatter)label)rB   rz   r6   myplot   polar)
projection)r   g      ?rz      3dr6   rB   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 r6   axesr   T)
isinstancer   get_textr   r   Line2Dget_datar   hasattrget_locget_view_intervalminmax)gidobjxdataydatar   vir   r   s         r1   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   rQ   r   rI   r:   r^   legendtwinxbarcanvasdraw	enumeratefindobjget_visible	__class____name__set_gidr   r   r    rS   items)r&   r   ax1ar   r   gdicidxr   r   r.   r/   r   r   r   s               @@r1   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                  L    t          j        t                      dd           d S )Nsvgztight)r   bbox_inches)r   r   r    r=   r1   test_savefig_tightr   .  s%     K		&g>>>>>>r=   c                     t          j                    \  } }|                    g dg d          }|                    g d           t          j        ddgddg          \  }|                    d           t                      }|                     |d	
           |                                }dD ]}d|z   |v sJ d S )Nr   r   rA   r   )zhttps://example.com/foozhttps://example.com/barNr6   rz   r   rA   zhttps://example.com/bazr   r   )s   foos   bars   bazs   https://example.com/)	r   r   r:   set_urlsr^   set_urlr   r   r    )r&   r'   r9   pr+   vs         r1   rT   rT   4  s     lnnGC 	

999iii((AJJKKKLLL 
1a&1a&	!	!BA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'   itickr   b1b2s           r1   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    rS   r   __version__)r  r&   r'   r.   r/   s        r1   test_svg_default_metadatar   c  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    rS   r!   r   r   r   r   tostring)r  metadata_containsSVGNSRDFNSCCNSDCNSr&   r'   namer.   r/   rootworkkeydataxmlstrs                   r1   test_svg_clear_default_metadatar;    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  r%  r)  r  )r   r   r   r   r    rS   r!   r   r   r   r   )r&   r'   r.   r/   r1  r6  s         r1   test_svg_clear_all_metadatar=    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     r6   rB   rz   zdescription
text)r  Descriptionc                     i | ]}|| d 	S )z foor   .0r7   s     r1   
<dictcomp>z%test_svg_metadata.<locals>.<dictcomp>  s     
/
/
/Q1jjj
/
/
/r=   c                 $    i | ]}|| d | dgS )z barz bazr   rL  s     r1   rN  z%test_svg_metadata.<locals>.<dictcomp>  s+    
<
<
<11!zzza:::&
<
<
<r=   r   r  r%  r&  r'  r(  r)  r*  RDFc                     g | ]	}|j         
S r   r   rM  nodes     r1   
<listcomp>z%test_svg_metadata.<locals>.<listcomp>  s    DDDDdiDDDr=   r.  rD  c                 0    g | ]}|j          d          S )resource)r   )rM  rT  r2  s     r1   rU  z%test_svg_metadata.<locals>.<listcomp>  s?     B B B [E+++, B B Br=   zWork/r$  r  rJ  c                     g | ]	}|j         
S r   rR  rS  s     r1   rU  z%test_svg_metadata.<locals>.<listcomp>  s0     N N N ) N N Nr=   rF  c                     g | ]	}|j         
S r   rR  rS  s     r1   rU  z%test_svg_metadata.<locals>.<listcomp>  s0     L L L IL L Lr=   /zAgent/c                     g | ]	}|j         
S r   rR  rS  s     r1   rU  z%test_svg_metadata.<locals>.<listcomp>  s    KKK4TYKKKr=   r#  z1968-08-01/1968-08-02T01:02:03c                     g | ]	}|j         
S r   rR  rS  s     r1   rU  z%test_svg_metadata.<locals>.<listcomp>  s,     O O ODdi O O Or=   zsubject/zBag/li)datetimer#  r   rQ   r   r   r    rS   r!   r   r   r   r   lower)single_valuemulti_valuer  r&   r.   r/   r1  r3  r4  r6  rdftitlestypesr7   r   datesr2  s                   @r1   test_svg_metadatarf    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   rj  sizer   r   fonttype333333?ffffff?"   There are 几个汉字 in between!)fmFontPropertiesr   findfontr5  pytestskipr   rcrQ   r   fpr&   s     r1   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 )Nrh  ri  rk  rl  r   rD   rr  rm  rn  ro  rp  rt  ru  rv  )rw  rx  r   ry  r5  rz  r{  r   rQ   r|  r   r}  s     r1   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  r6   z,Invalid type for Date metadata. Expected strz1Invalid type for Date metadata. Expected iterablerF  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 iterablerD  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  )rz  raisesr   r   rQ   r   )r  errormessager.   r&   s        r1   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   rQ   r   r   r   r    rS   )r&   r.   r/   s      r1   test_svg_escaper  !  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 ]k}|dz  }t/          d t/          |                                          d                             d          D                       d         }|| d|  k    sJ l|t          |j                  k    sJ d S )Nrh  ri  rk  rl  c                 ,    |                      d          S )N'stripr(   s    r1   <lambda>z&test_svg_font_string.<locals>.<lambda>=  s    !''#,, r=   z, zfont.z	font.sizerD   rd   
sans-serif)sansr  z
sans serifr   rv  center)rj  har5   offr   r   r   r   r   z}textr6   c              3      K   | ]:}t          d  |                                                    d                    V  ;dS )c                 *    |                                  S )Nr  r  s    r1   r  z0test_svg_font_string.<locals>.<genexpr>.<lambda>_  s    !'')) r=   :N)mapr  split)rM  r   s     r1   	<genexpr>z'test_svg_font_string.<locals>.<genexpr>^  sX       
 
 ##QWWYY__S%9%9::
 
 
 
 
 
r=   style;rm  zpx )rw  rx  r   ry  r5  rz  r{  r  r  r   r   re   r   r   axisr   r   r    r!   r   r   r   r   dictr   texts)r  r  r~  explicitrestgenericrq  r&   r'   generic_optionsgeneric_namer.   r/   r   r   
text_counttext_element	font_infos                     r1   test_svg_font_stringr  *  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 3 3a
 
 
,,,..//8>>sCC
 
 
 
 
 	
 t222222222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?r5   )zoom)g      ^@g      Tr9  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   rQ   r   r   onesr   r   r   r   r  r   r   r   r   r    rS   )	r&   r'   arr_imgxyimageboxabr.   r/   rU   s	            r1   test_annotationbbox_gidr  g  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)>r^  ior   pathlibr   xml.etree.ElementTreer!   xml.parsers.expatrz  numpyr   
matplotlibr   matplotlib.figurer   matplotlib.textr   matplotlib.pyplotpyplotr   matplotlib.testing.decoratorsr   r   matplotlib.testing._markersr	   r
   rw  r   r   r   r2   r<   rM   rO   rb   rf   rx   r   r   r   r  contextr   r   r   r   rT   r  r   r;  r=  rf  r  r  markparametrize	TypeError
ValueErrorr  r  r  r  r   r=   r1   <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"< < <~? ? ?0 0 0(  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::-' -' ;: -'`    r=   