o
    l’×i¥q  ã                   @   s†  d dl m 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
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 d dlmZmZ d dlmZ d d	l m!Z! e	e
j"ƒZ#ed
gƒdd„ ƒZ$edgƒdd„ ƒZ%edgdddd„ ƒZ&edgƒdd„ ƒZ'dd„ Z(edgƒdd„ ƒZ)dd„ Z*ej+ ,de-e.d fe-d d gd!fe/d"d#fe/d$d%fe/d&d'fe/d(d)ff¡d*d+„ ƒZ0ed,gƒd-d.„ ƒZ1ed/gddd0d1„ ƒZ2ed2gƒd3d4„ ƒZ3d5d6„ Z4d7d8„ Z5ej+j,d9d:d;gd<d=gd>d?d@„ ƒZ6dAdB„ Z7dCdD„ Z8dEdF„ Z9dGdH„ Z:dIdJ„ Z;dKdL„ Z<ej+ ,dMg dN¢¡ej+ ,dOg dP¢¡dQdR„ ƒƒZ=edSgƒdTdU„ ƒZ>edVgƒdWdX„ ƒZ?edYgƒdZd[„ ƒZ@d\d]„ ZAed^gƒd_d`„ ƒZBdadb„ ZCedcgƒddde„ ƒZDej+ ,dfg dg¢¡dhdi„ ƒZEdjdk„ ZFdldm„ ZGdndo„ ZHedpdq„ ƒZIedrds„ ƒZJej+ ,dtg du¢¡dvdw„ ƒZKedxgƒdydz„ ƒZLed{gƒd|d}„ ƒZMd~d„ ZNd€d„ ZOed‚gdƒd„d…„ ƒZPed†gddd‡dˆ„ ƒZQej+ ,d‰g dŠ¢¡d‹dŒ„ ƒZRddŽ„ ZSdd„ ZTd‘d’„ ZUed‚gdƒd“d”„ ƒZVd•d–„ ZWd—d˜„ ZXd™dš„ ZYej+ ,d›dœdgg¡dždŸ„ ƒZZd d¡„ Z[ed¢gddd£d¤„ ƒZ\d¥d¦„ Z]ej+j^e#j_d§kd¨d©dªd«„ ƒZ`ej+j^e#j_d§kd¨d©d¬d­„ ƒZaed®gddd¯d°„ ƒZbed±gddd²d³„ ƒZced´dµ„ ƒZddS )¶é    )ÚdatetimeN)Úassert_almost_equal)Úparse)Ú
MouseEvent)ÚFontProperties)Úcheck_figures_equalÚimage_comparison)Úneeds_usetex)ÚTextÚfont_stylesc            	         s^  ‡ ‡fdd„} ddl m‰ m‰ tjddtdd t ¡ \}}| d	d
d
dd}|jddd|d}| 	¡ dks7J ‚| 
¡ d
ks?J ‚| ¡ d
ksGJ ‚| ¡ d
ksOJ ‚| ¡ d
ksWJ ‚| dd
d
dddd}|jddd|d | ddd
dddd}|jddd|d | d	d
d
dddd}|jddd|d | d	d
d
dd dd}|jd!d"d|d | g ¡ | g ¡ d S )#Nc                     s(   ˆ di | ¤Ž}ˆ|t  ¡ d}ˆ |dS )N)Ú	directory)Úfname© )ÚmplÚget_data_path)ÚkwÚpropÚpath©r   Úfindfontr   úX/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/matplotlib/tests/test_text.pyÚfind_matplotlib_font   s   
z.test_font_styles.<locals>.find_matplotlib_fontr   r   Úignorez>findfont: Font family \[u?'Foo'\] not found. Falling back to .zmatplotlib.font_manager)Úmodulez
sans-serifÚnormalé   )ÚfamilyÚstyleÚvariantÚsizezNormal Font)çš™™™™™¹?r    úaxes fraction)ÚxycoordsÚfontpropertieszDejaVu SansÚFooÚboldiô  )r   r   r   ÚweightÚstretchr   z	Bold Font)r    çš™™™™™É?z
sans serifÚitaliciî  zBold Italic Font)r    ç333333Ó?éÈ   z
Light Font)r    çš™™™™™Ù?éd   zCondensed Font)r    ç      à?)Úmatplotlib.font_managerr   r   ÚwarningsÚfilterwarningsÚUserWarningÚpltÚsubplotsÚannotateÚget_fontnameÚget_fontstyleÚget_fontvariantÚ
get_weightÚget_stretchÚ
set_xticksÚ
set_yticks)	r   ÚfigÚaxÚnormal_fontÚaÚ	bold_fontÚbold_italic_fontÚ
light_fontÚcondensed_fontr   r   r   Útest_font_styles   s¨   üüüúüúüúüúü
rE   Ú	multilinec                  C   s’   t  ¡  t  ddd¡} |  d¡ t jddddddd	 t jddd
dddd	 t jddddddd	 t  dd¡ t  dd¡ |  g ¡ |  g ¡ d S )Né   zmultiline
text alignmentr(   r.   zTpTpTp
$M$
TpTpTpé   ÚcenterÚtop)r   ÚhaÚvazTpTpTp
$M^{M^{M^{M}}}$
TpTpTpgš™™™™™é?zTpTpTp
$M_{q_{q_{q}}}$
TpTpTpr   )	r3   ÚfigureÚsubplotÚ	set_titleÚtextÚxlimÚylimr;   r<   ©r>   r   r   r   Útest_multilineq   s$   
ÿþþ
rT   Ú
multiline2Úmpl20)r   c               	      sÂ  dt jd< t  ¡ \} }| ddg¡ | ddg¡ |jdddd	 g d
¢}| j ¡ ‰ ‡ fdd„}d}t|ƒD ]\}}|j	d| d d||dd}|||ƒ q6|j	ddddd |jdddd	 t|ƒD ]\}}|j	d| d d||dd}|||ƒ qc|j	ddddd |jdddd	 t|ƒD ]\}}|j	d| d d||dd}|||ƒ q|j	ddddd |jdddd	 t|ƒD ]\}}|j	d| d d||ddd}|||ƒ q½|j	ddddd d S )Né   útext.kerning_factorr   gffffffö?é   r.   ÚC2r*   )ÚcolorÚ	linewidth)ÚLinez2 Lineg
 2 Lgz$\sum_i x $zhi $\sum_i x $
testztest
 $\sum_i x $z$\sum_i x $
 $\sum_i x $c                    sB   t jdddd| jd}| | ˆ ¡ | j ¡ ¡j¡ |  |¡ d S )N©r   r   rG   F)Úclip_onÚ	transform)	ÚmpatchesÚ	RectangleÚ	transAxesÚ
set_boundsÚget_window_extentÚtransformedÚinvertedÚboundsÚ	add_patch)r>   ÚttÚr©Úrendererr   r   Údraw_box—   s   ÿýz!test_multiline2.<locals>.draw_boxÚleftr(   r    Úbottom©ÚhorizontalalignmentÚverticalalignmentg333333ó?zBottom align©r[   gÍÌÌÌÌÌô?rJ   z	Top aligngÍÌÌÌÌÌü?ÚbaselinezBaseline alignrH   )rr   rs   ÚrotationzBot align, rot20)
r3   ÚrcParamsr4   Úset_xlimÚset_ylimÚaxhlineÚcanvasÚget_rendererÚ	enumeraterP   )r=   r>   Ústsrn   ÚhoralÚnnÚstrj   r   rl   r   Útest_multiline2‰   sH   

	ÿÿÿÿr‚   zantialiased.pngc                  C   sB   dt jd< tjdd} | jdddddd	 | jdd
dddd	 d S )NTztext.antialiased)g      @ç      è?©Úfigsizer.   rƒ   ÚantialiasedrI   rq   ç      Ð?z
$\sqrt{x}$)r   rw   r3   rM   rP   ©r=   r   r   r   Útest_antialiasing½   s   
ÿ
ÿr‰   c                  C   s\   t jjddd} t| dƒ}t j |¡}W d   ƒ n1 sw   Y  | d¡dks,J ‚d S )NÚ	HelveticaÚafm)ÚfontextÚrbÚVAVAVAVAVAVA)g     ¼@iÎ  )r   Úfont_managerr   ÚopenÚ_afmÚAFMÚstring_width_height)ÚfnÚfhr‹   r   r   r   Útest_afm_kerningÌ   s
   ÿr–   ztext_contains.pngc                  C   sê   t  ¡ } t  ¡ }td| jdddd ƒ}t ddd¡}t ddd¡}t ||¡\}}t jdddd	ddd
}| j 	¡  t
|j|jƒD ]3\}}t  ¡ j ||g¡\|_|_| |¡\}}	|r\dnd}
|j ¡ }|j||d|
d |j |¡ q?d S )NÚbutton_press_eventr.   rG   r‡   rƒ   é   r,   zhello worldrI   )rK   Úfontsizerv   ÚyellowÚredÚort   )r3   rM   Úaxesr   r{   ÚnpÚlinspaceÚmeshgridrP   ÚdrawÚzipÚflatÚgcarc   r`   ÚxÚyÚcontainsÚviewLimÚfrozenÚplotÚset)r=   r>   ÚmeventÚxsÚysÚtxtr¥   r¦   r§   Ú_r[   Úvlr   r   r   Útest_containsÓ   s$   ÿ

ør²   c                  C   sb   t  ¡ \} }|jdddddid}| j ¡  td| jg|j d¡¢R Ž }| |¡d	i fks/J ‚d S )
NÚhello)r,   r,   )ç333333ã?r´   Ú
arrowstylez->)ÚxyÚxytextÚ
arrowpropsr—   )r.   r´   F)	r3   r4   r5   r{   r¡   r   Ú	transDatar`   r§   )r=   r>   ÚannÚeventr   r   r   Útest_annotation_containsò   s   ÿ
ÿ
ÿr¼   zerr, xycoords, matchzUnknown return typez!Unknown coordinate type: \[0, 0\]Úfooz$'foo' is not a recognized coordinatezfoo barz('foo bar' is not a recognized coordinatez
offset fooz'xycoords cannot be an offset coordinatezaxes fooz'foo' is not a recognized unitc                 C   s\   t  ¡ \}}tj| |d |jddd|d |j ¡  W d   ƒ d S 1 s'w   Y  d S )N©Úmatchr¶   r^   ©r.   r.   )r·   r"   )r3   r4   ÚpytestÚraisesr5   r{   r¡   )Úerrr"   r¿   r=   r>   r   r   r   Útest_annotate_errorsþ   s
   	"þrÄ   Útitlesc                  C   sJ   t  ¡  t  ddd¡} | jddd | jddd |  g ¡ |  g ¡ d S )NrG   z
left titlero   ©Úloczright titleÚright)r3   rM   rN   rO   r;   r<   rS   r   r   r   Útest_titles  s   
rÉ   Útext_alignmentc                  C   sÊ   t  ¡  t  ddd¡} d}dD ]'}dD ]"}| j|d|d ||tdddd	d
 | j|dd||d |d7 }qq|  ddgddg¡ |  ddgddg¡ |  ddg¡ |  ddg¡ |  g ¡ |  	g ¡ d S )NrG   r    )r   r˜   )rJ   rp   ru   rI   r.   z TjÚroundÚwheat)ÚboxstyleÚ	facecolorÚalpha)rL   rv   Úbboxg      ð?z$\sum_{i=0}^{j}$)rL   rv   r   g      ø?)
r3   rM   rN   rP   Údictrª   rx   ry   r;   r<   )r>   r¥   rv   Ú	alignmentr   r   r   Útest_alignment  s(   þ
ÿ
ú
rÓ   zaxes_titles.pngc                  C   sP   t  ¡  t  ddd¡} | jddddd | jddddd | jd	d	ddd d S )
NrG   rI   rH   i¼  )rÇ   r™   Ú
fontweightro   é   i  rÈ   )r3   rM   rN   rO   rS   r   r   r   Útest_axes_titles0  s
   rÖ   c                  C   s  t  ¡ \} }|jddddd}| j ¡  | | jj¡}d}| ||f¡ | j ¡  | | jj¡}t|j	|j	ƒD ]\}}|| |ksCJ ‚q7|jddddd}| j ¡  | | jj¡}d}||f|_
| j ¡  | | jj¡}t|j	|j	ƒD ]\}}|| |ksJ ‚qsd S )NÚtestr^   úfigure pixels)r·   Ú
textcoordsé   )r3   r4   r5   r{   r¡   re   rm   Úset_positionr¢   ÚminÚxyann)r=   r>   rº   Úinit_posÚ	shift_valÚpost_posr@   Úbr   r   r   Útest_set_position:  s0   ÿ

ÿ


ÿrâ   c                  C   sJ  t  ¡ } |  ddd¡}| d¡ | ¡ }|j|j }| d¡ | ¡ }|j|j }| d¡ | ¡ }|j}| || ¡dks@J ‚| |¡dksIJ ‚| |d|  ¡dksVJ ‚| |d	|  ¡d
kscJ ‚| ||d  ¡dkspJ ‚| ||d  |d  ¡dksJ ‚| ||d  |d  ¡dks’J ‚| ||d  |d  ¡dks£J ‚d S )Nr    çÍÌÌÌÌÌì?Ú ÚiÚmÚiiiimmmmr   gV-²ïß?gÕxé&1à?rG   é   é   é   é   é
   )r3   rM   rP   Úset_textre   Úx1Úx0Ú_char_index_at)r=   rP   rÐ   Úsize_iÚsize_mÚoriginr   r   r   Útest_char_index_atZ  s&   


""&rô   rP   rä   ÚOÚemptyz	non-empty)Úidsc                 C   sx   t  ¡ \}}|jdd| ddd}|j ¡  |j}| ¡ }|j|d d}tjj	| 
¡ | 
¡ d dd |j|ks:J ‚d S )	Nr.   ro   rp   )rK   rL   rì   )Údpiçš™™™™™©?©Úrtol)r3   r4   rP   r{   r¡   rø   re   rž   ÚtestingÚassert_allcloseÚ
get_points)rP   r=   r>   Út1rø   Úbbox1Úbbox2r   r   r   Útest_non_default_dpit  s   
ÿr  c                   C   s0   t dd ¡ dksJ ‚t dd ¡ dksJ ‚d S )NÚ
horizontal©rv   ç        Úverticalg     €V@©r
   Úget_rotationr   r   r   r   Útest_get_rotation_string„  s   r	  c                  C   s$   dD ]} t | d ¡ | ksJ ‚qd S )N)g      .@g33333³0@gš™™™™YS@r  r  ©rå   r   r   r   Útest_get_rotation_float‰  s   ÿr  c                  C   s(   dD ]} t | d ¡ t| ƒksJ ‚qd S )N)éC   é   é)   r  )r
   r  Úfloatr
  r   r   r   Útest_get_rotation_intŽ  s   ÿr  c                   C   s:   t  t¡ tdd W d   ƒ d S 1 sw   Y  d S )NÚ
hozirontalr  ©rÁ   rÂ   Ú
ValueErrorr
   r   r   r   r   Útest_get_rotation_raises“  s   "ÿr  c                   C   s   t d d ¡ dksJ ‚d S )Nr  r  r  r   r   r   r   Útest_get_rotation_none˜  s   r  c                  C   s4   t g d¢g d¢ƒD ]\} }tt| d ¡ |ƒ q	d S )N)g     €v@g     w@gš™™™™	Œ@)r  g      1@gfffff&f@r  )r¢   r   r
   r  )rå   Újr   r   r   Útest_get_rotation_mod360œ  s   ÿr  rK   )rI   rÈ   ro   rL   )rI   rJ   rp   ru   Úcenter_baselinec                 C   sv   t  ¡ \}}td|| d}|jdddi|¤Ž}|jdddi|¤Ž}|j ¡  t| |jj¡ 	¡ | |jj¡ 	¡ ƒ d S )Nr   )rv   rL   rK   )r.   r.   r×   Úrotation_modeÚanchorÚdefault)
r3   r4   rÑ   rP   r{   r¡   r   re   rm   rþ   )rK   rL   r=   r>   r   Út0rÿ   r   r   r   Ú%test_null_rotation_with_rotation_mode¡  s   
ÿr  Útext_bboxclipc                  C   s8   t jdddddd t jddddd	} |  d
di¡ d S )Nrã   r(   zIs bbox clipped?rk   T)Úbackgroundcolorr_   r.   zIs fancy bbox clipped?©r_   rÍ   zround, pad=0.1)r3   rP   Úset_bbox)Útr   r   r   Útest_bbox_clipping®  s   r#  z!annotation_negative_ax_coords.pngc               	   C   sÊ   t  ¡ \} }|jdddgdddgddd |jdddgdddgddd	d
 |jdddgdddgddd |jdddgdddgddd	d
 |jdddgdddgddd |jdddgdddgddd	d
 d S )Nú+ ptsr˜   rH   zaxes pointsé    ©r·   rÙ   r¶   r"   r™   ú- ptsiìÿÿÿrJ   ©r·   rÙ   r¶   r"   r™   rL   ú+ fracrƒ   rù   r!   ú- fracçš™™™™™©¿ú+ pixelsé    é   zaxes pixelsú- pixelsiçÿÿÿ©r3   r4   r5   ©r=   r>   r   r   r   Ú"test_annotation_negative_ax_coordsµ  ó8   
þ
ý
þ
ý
þ

ýr2  z"annotation_negative_fig_coords.pngc               	   C   sÊ   t  ¡ \} }|jdddgdddgddd |jddd	gddd	gddd
d |jdddgdddgddd |jdddgdddgddd
d |jdddgdddgddd |jdddgdddgddd
d d S )Nr$  rì   éx   zfigure pointsr%  r&  r'  éöÿÿÿé´   rJ   r(  r)  rù   gš™™™™™á?zfigure fractionr*  r+  r.   r,  é2   rØ   r/  iÎÿÿÿr-   r0  r1  r   r   r   Ú#test_annotation_negative_fig_coordsÑ  r3  r8  c                  C   sÀ   t  dd¡\} \}}t  ¡  |jrJ ‚|jrJ ‚| jrJ ‚| ddd¡}|js)J ‚|js.J ‚| js3J ‚|jdddgd}|jsAJ ‚|jsFJ ‚| jsKJ ‚t  ¡  |jrTJ ‚|jrYJ ‚| jr^J ‚d S )NrG   rY   r.   Úaardvark©r¶   )r3   r4   Údraw_allÚstalerP   r5   )r=   Úax1Úax2Útxt1Úann1r   r   r   Útest_text_staleí  s"   










rA  zagg_text_clip.pngc                  C   sZ   t j d¡ t d¡\} \}}t j dd¡D ]\}}|j||ddd | ||d¡ qd S )NrG   rY   rì   r½   Tr   )rž   ÚrandomÚseedr3   r4   ÚrandrP   )r=   r=  r>  r¥   r¦   r   r   r   Útest_agg_text_clip  s   þrE  c                  C   s>   dt jd< t jjdd} |  ¡ }dt jd< ||  ¡ ksJ ‚d S )Nrì   z	font.sizeÚlarge©r   r-   )r   rw   r   r   Úget_size_in_points)ÚfpÚsz1r   r   r   Útest_text_size_binding  s
   

rK  zfont_scaling.pdfc                  C   s‚   dt jd< tjdd\} }|j t ¡ ¡ |j t ¡ ¡ | dd¡ t	t
ddd	ƒƒD ]\}}|jd
|d dj|d|d q+d S )Né*   úpdf.fonttype)gš™™™™™@gÍÌÌÌÌÌ(@r„   r5  iX  ré   é+   rY   r    r˜   z{fs} pt font size)Úfs)r™   )r   rw   r3   r4   ÚxaxisÚset_major_locatorÚNullLocatorÚyaxisry   r}   ÚrangerP   Úformat)r=   r>   rå   rO  r   r   r   Útest_font_scaling  s   
 ÿrV  zspacing1, spacing2))r,   rY   )rY   r,   )rY   rY   c           	      C   sœ   d}t  ¡ }|j ¡ }|jdd|| d}|jdd||d}|j ¡  |j|d}|j|d}|j|jks6J ‚| |krD|j|jksBJ ‚d S |j|jksLJ ‚d S )Nzline1
line2r‡   r.   ©Úlinespacingrl   )	r3   rM   r{   r|   rP   r¡   re   ÚwidthÚheight)	Úspacing1Úspacing2Útext_stringr=   rm   Útext1Útext2Úbox1Úbox2r   r   r   Útest_two_2line_texts"  s   

rb  c                   C   sB   t  t¡ tjddddd W d   ƒ d S 1 sw   Y  d S )Nr‡   r.   r½   ÚabcrW  )rÁ   rÂ   Ú	TypeErrorr3   rP   r   r   r   r   Útest_validate_linespacing7  ó   "ÿre  c                  C   s:   t  ¡ \} }| dtjd¡ | tjdd¡ | j ¡  d S )Nr   ÚnanÚinf)r3   r4   rP   rž   rg  rh  r{   r¡   r1  r   r   r   Útest_nonfinite_pos<  s   ri  c                  C   sj   dt jd< t  ¡ } |  ddd¡}| jt ¡ dd | ¡ j}| jt ¡ dd t	j
j| ¡ j|dd	 d S )
NrG   ztext.hinting_factorr.   z	some textÚsvg©rU  Úpngr    rú   )r3   rw   rM   rP   ÚsavefigÚioÚBytesIOre   Ú	intervalxrž   rü   rý   )r=   r"  Úexpectedr   r   r   Útest_hinting_factor_backendsC  s   


ÿrr  c                  C   sx   t  ¡ } dt jd< |  d¡}dt jd< |  d¡}| j ¡  |df|dffD ]\}}|jjD ]}|j 	¡ |ks8J ‚q-q%d S )NFútext.usetexéy   Téz   )
r3   rM   rw   Úadd_subplotr{   r¡   rP  Ú
majorTicksÚlabel1Ú
get_usetex)r=   r=  r>  r>   Úusetexr"  r   r   r   Útest_usetex_is_copiedQ  s   




ÿÿr{  c                  C   s(   t  ¡ } | jddddd | j ¡  d S )Nr.   z	$\frac12$T©rz  )r3   rM   rP   r{   r¡   rˆ   r   r   r   Útest_single_artist_usetex`  s   r}  Úfmt)rl  Úpdfrj  c                 C   s:   dt jd< t  ¡ }|jddddd |jt ¡ | d d S )NTrs  r.   Ú2_2_2Fr|  rk  )r3   rw   rM   rP   rm  rn  ro  )r~  r=   r   r   r   Útest_single_artist_usenotexj  s   
r  ztext_as_path_opacity.svgc                   C   sP   t  ¡  t  ¡  ¡  t jddddd t jddddd t jddd	dd
d d S )Nr‡   Úc©r   r   r   r.   rt   r.   r@   ©rÏ   rƒ   r¥   ©r   r   r   rG   ©rÏ   r[   )r3   rM   r¤   Úset_axis_offrP   r   r   r   r   Útest_text_as_path_opacityv  s
   rˆ  ztext_as_text_opacity.svgc                   C   sZ   dt jd< t ¡  t ¡  ¡  tjddddd tjddddd	 tjdd
dddd d S )NÚnonezsvg.fonttyper‡   z50% using `color`rƒ  rt   r.   z50% using `alpha`r„  rƒ   z"50% using `alpha` and 100% `color`r…  r†  )r   rw   r3   rM   r¤   r‡  rP   r   r   r   r   Útest_text_as_text_opacity  s   

ÿrŠ  c                   C   s,   t  ddgddg¡ tt  dgdd¡ƒ d S )NÚAÚBrG   rY   r.   ÚBoo)r3   rª   ÚreprrP   r   r   r   r   Útest_text_reprŠ  s   r  c                  C   sf   t  dd¡\} }|jddd}| | j ¡ ¡}|  ¡  | | j ¡ ¡}tj| 	¡ | 	¡ ddr1J ‚d S )NrG   Ú
annotationrÀ   r:  gíµ ÷Æ°>rú   )
r3   r4   r5   re   r{   r|   Útight_layoutrž   Úallcloserþ   )r=   r>   ÚanÚextent1Úextent2r   r   r   Útest_annotation_update  s   ÿr–  rl  )Ú
extensionsc                 C   sl   |   ¡ }| t ¡ dd¡ |jdt ¡ dfdddd |  ¡ }| t ¡ dd¡ |jdt ¡ dfdd	 d S )
NrG   rœ   r¥   r.   )Údatar!   r^   zoffset points)r"   r·   rÙ   )r"   )rv  rª   r   Únowr5   ©Úfig_testÚfig_refr>   r   r   r   Útest_annotation_units›  s   þr  zlarge_subscript_title.pngc                  C   s†   dt jd< d t jd< t jddddd\} }|d	 }| d
¡ |jddd | g ¡ |d }|jd
dd |jddd | g ¡ d S )NrW   rX   zaxes.titleyrG   rY   )é	   g      @T)r…   Úconstrained_layoutr   z$\sum_{i} x_i$zNew wayro   rÆ   g)\Âõ(ð?)r¦   zOld Way)r3   rw   r4   rO   Úset_xticklabels)r=   Úaxsr>   r   r   r   Útest_large_subscript_title§  s   



r¢  zx, rotation, halign))çffffffæ?r   ro   )r.   é_   ro   )r*   r   rÈ   )r*   é¹   ro   c                 C   sD   t jdd}d}|j| d|d||d}|j ¡  | ¡ dks J ‚d S )N)rW   rW   r„   z?This is a very long text that should be wrapped multiple times.r£  T)Úwraprv   rK   z?This is a very long
text that should be
wrapped multiple
times.©r3   rM   rP   r{   r¡   Ú_get_wrapped_text)r¥   rv   Úhalignr=   ÚsrP   r   r   r   Ú	test_wrap¹  s
   
r«  c                  C   sh   t jdd} | jddd | j ¡ }t jdd}| d¡ |j ¡ }|j|jks*J ‚|j|jks2J ‚d S )N)rè   rè   r„   z.suptitle that is clearly too long in this caseT©r¦  z.suptitle that is clearly
too long in this case)r3   rM   ÚsuptitleÚ	_suptitlere   Úy0Úy1)Úfig1Úwindow_extent_testÚfig2Úwindow_extent_refr   r   r   Útest_get_window_extent_wrappedÊ  s   


rµ  c                  C   s<   t jdd} | jddddd}| j ¡  | ¡ dksJ ‚d S )N©rW   ré   r„   g      #@rë   ÚAlonglineoftexttowrapTr¬  r§  ©r=   rP   r   r   r   Útest_long_word_wrapÚ  ó   
r¹  c                  C   s<   t jdd} | jddddd}| j ¡  | ¡ dksJ ‚d S )Nr¶  r„   r   znon wrapped textTr¬  r§  r¸  r   r   r   Útest_wrap_no_wrapá  rº  r»  c                 C   s`   |   ¡ }| ddg¡ | ddg¡ |jjd j d¡ |  ¡ }| ddg¡ | ddg¡ d S )Nr   rG   u   â‚¬r@   Úwrä   )rv  r<   Úset_yticklabelsrS  rw  rx  Ú	set_colorrš  r   r   r   Útest_buffer_sizeè  s   r¿  c                  C   sL   t  ¡  t jdddd} t jdddd}|  ¡ dksJ ‚| ¡ dks$J ‚dS )z>Test that kwargs take precedence over fontproperties defaults.ÚvaluezTimes New Romang      D@)r#   r   Úcounts)r   r#   N)r3   rM   ÚxlabelÚylabelÚget_size)r^  r_  r   r   r   Ú$test_fontproperties_kwarg_precedenceö  s
   rÅ  c                  C   s@   t  ¡ } t ¡  d¡}| jddd|dd}| ¡ }t|dƒ d S )Nr˜   r   r×   T)r`   Útransform_rotates_text)r3   r¤   ÚmtransformsÚAffine2DÚ
rotate_degrP   r  r   )r>   r`   rP   Úresultr   r   r   Útest_transform_rotates_textÿ  s   ÿrË  c                  C   sV   t tddd d} t | ƒ}tƒ }| | ¡ | d |d ksJ ‚| d |d ks)J ‚d S )Nr%   )r&   )r#   rÐ   r#   rÐ   )rÑ   r   r
   Úupdate)ÚinpÚcacher"  r   r   r   Útest_update_mutate_input  s   
ÿ
rÏ  rv   zinvalid stringéZ   c                 C   sD   t jtdd tddd| d W d   ƒ d S 1 sw   Y  d S )Nz5rotation must be 'vertical', 'horizontal' or a numberr¾   r   r½   r  r  r  r   r   r   Útest_invalid_rotation_values  s   þ"ýrÑ  c                   C   sB   t  t¡ tjddddd W d   ƒ d S 1 sw   Y  d S )Nr.   r½   Úfoobar)r‚  )rÁ   rÂ   r  r3   Úfigtextr   r   r   r   Útest_invalid_color  rf  rÔ  ztext_pdf_kerning.pdfc                   C   s   t  ¡  t jddddd d S )Nr    r.   ÚATATATATATATATATATAr˜   rG  )r3   rM   rÓ  r   r   r   r   Útest_pdf_kerning  s   rÖ  c                 C   sT   t  ¡ }| ddd¡ |j ¡  tdd„ | D ƒƒsJ ‚dd„ | D ƒddgks(J ‚d S )	Nr.   u   à§¦c                 s   s    | ]	}t |jtƒV  qd S ©N)Ú
isinstanceÚmessager2   ©Ú.0Úwarnr   r   r   Ú	<genexpr>)  s   € z*test_unsupported_script.<locals>.<genexpr>c                 S   s   g | ]}|j j‘qS r   )rÙ  ÚargsrÚ  r   r   r   Ú
<listcomp>+  s    z+test_unsupported_script.<locals>.<listcomp>)z>Glyph 2534 (\N{BENGALI DIGIT ZERO}) missing from current font.)z7Matplotlib currently does not support Bengali natively.)r3   rM   rP   r{   r¡   Úall)Úrecwarnr=   r   r   r   Útest_unsupported_script%  s   
ÿÿrâ  )rè   rG   r   z1Error messages are incorrect with pyparsing 3.1.0)Úreasonc                  C   sx   t  ¡ \} }|jddddd | j ¡  |jddddd tjtdd | j ¡  W d   ƒ d S 1 s5w   Y  d S )Nr   ú$ \wrong{math} $F)Ú
parse_mathTúUnknown symbolr¾   )r3   r4   rP   r{   r¡   rÁ   rÂ   r  r1  r   r   r   Útest_parse_math1  s   
"ÿrç  c                  C   sª   t  ¡ \} }| ddd¡ tjtdd | j ¡  W d   ƒ n1 s$w   Y  t 	ddi¡ t  ¡ \} }| ddd¡ | j ¡  W d   ƒ d S 1 sNw   Y  d S )Nr   rä  ræ  r¾   ztext.parse_mathF)
r3   r4   rP   rÁ   rÂ   r  r{   r¡   r   Ú
rc_contextr1  r   r   r   Útest_parse_math_rcparams>  s   ÿ"ýré  ztext_pdf_font42_kerning.pdfc                   C   s(   dt jd< t  ¡  t jddddd d S )NrL  rM  r    r.   ÚATAVATAVATAVATAVATAr˜   rG  ©r3   rw   rM   rÓ  r   r   r   r   Útest_pdf_font42_kerningN  s   
rì  ztext_pdf_chars_beyond_bmp.pdfc                   C   s2   dt jd< dt jd< t  ¡  t jddddd	 d S )
NrL  rM  Ústixsanszmathtext.fontsetr    r.   u   Mass $m$ ðŒˆr˜   rG  rë  r   r   r   r   Útest_pdf_chars_beyond_bmpU  s   

rî  c                     sØ   t jj ¡  t ¡ } |  ddd¡ | jddddd | jddddd | j ¡  |  ¡ }i ‰ ‡ fdd„}||_	| j ¡  g ˆ ¢dd	gksFJ ‚t
ˆ d ƒt
ˆ d	 ƒ  krYd
ks\J ‚ J ‚t jj ¡ }|j|jksjJ ‚d S )Nr*   r.   zfoo
barTr|  c                     s&   | ^}}}}}ˆ   |tƒ ¡ |¡ d S r×  )Ú
setdefaultr«   Úadd)rÞ  Úkwargsrm   r¥   r¦   rª  r°   ©r®   r   r   Úcalli  s   z test_metrics_cache.<locals>.callr½   ÚbarrG   )r   rP   Ú!_get_text_metrics_with_cache_implÚcache_clearr3   rM   r{   r¡   Ú_get_rendererÚdraw_texÚlenÚ
cache_infoÚhitsÚmisses)r=   rm   ró  Úinfor   rò  r   Útest_metrics_cache]  s   

,rþ  )er   rn  r0   Únumpyrž   Únumpy.testingr   Úpackaging.versionr   Úparse_versionÚ	pyparsingrÁ   Ú
matplotlibr   Úmatplotlib.backend_basesr   r/   r   Úmatplotlib.patchesÚpatchesra   Úmatplotlib.pyplotÚpyplotr3   Úmatplotlib.transformsÚ
transformsrÇ  Úmatplotlib.testing.decoratorsr   r   Úmatplotlib.testing._markersr	   Úmatplotlib.textr
   Ú__version__Úpyparsing_versionrE   rT   r‚   r‰   r–   r²   r¼   ÚmarkÚparametrizeÚRuntimeErrorÚprintr  rÄ   rÉ   rÓ   rÖ   râ   rô   r  r	  r  r  r  r  r  r  r#  r2  r8  rA  rE  rK  rV  rb  re  ri  rr  r{  r}  r  rˆ  rŠ  r  r–  r  r¢  r«  rµ  r¹  r»  r¿  rÅ  rË  rÏ  rÑ  rÔ  rÖ  râ  ÚxfailÚreleaserç  ré  rì  rî  rþ  r   r   r   r   Ú<module>   sø    

X

3

ú




	 





	



	






þ


		


ÿ
ÿ


