B
    ·ôJd^^  ã            	   @   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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 ejje	 d¡ d	d
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d gƒd!d"„ ƒZ'ed#gddd$d%„ ƒZ(ed&gƒd'd(„ ƒZ)d)d*„ Z*ejj+d+d,d-gd.d/gd0d1d2„ ƒZ,d3d4„ Z-d5d6„ Z.d7d8„ Z/d9d:„ Z0d;d<„ Z1d=d>„ Z2ej +d?d@dAdBg¡ej +dCd@dDdEdFdGg¡dHdI„ ƒƒZ3edJgƒdKdL„ ƒZ4edMgƒdNdO„ ƒZ5edPgƒdQdR„ ƒZ6dSdT„ Z7edUgƒdVdW„ ƒZ8dXdY„ Z9edZgƒd[d\„ ƒZ:ej +d]d^d_d`g¡dadb„ ƒZ;dcdd„ Z<dedf„ Z=edgdh„ ƒZ>edidj„ ƒZ?ej +dkdldmdng¡dodp„ ƒZ@edqgƒdrds„ ƒZAedtgƒdudv„ ƒZBdwdx„ ZCdydz„ ZDedlgd{d|d}„ ƒZEed~gdddd€„ ƒZFdd‚„ ZGdƒd„„ ZHd…d†„ ZIedlgd{d‡dˆ„ ƒZJd‰dŠ„ ZKd‹dŒ„ ZLddŽ„ ZMdd„ ZNed‘gddd’d“„ ƒZOd”d•„ ZPd–d—„ ZQed˜gddd™dš„ ƒZRed›gdddœd„ ƒZSdS )žé    )ÚdatetimeN)Úassert_almost_equal)Ú
MouseEvent)ÚFontProperties)Úcheck_figures_equalÚimage_comparison)ÚTextTz"This test needs a TeX installation)ÚreasonZ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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$   ˆ f | Ž}ˆ|t  ¡ d}ˆ |dS )N)Ú	directory)Úfname)ÚmplZget_data_path)ÚkwÚpropÚpath)r   Úfindfont© úL/var/www/html/venv/lib/python3.7/site-packages/matplotlib/tests/test_text.pyÚfind_matplotlib_font   s    
z.test_font_styles.<locals>.find_matplotlib_fontr   )r   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)gš™™™™™¹?gš™™™™™¹?zaxes fraction)ÚxycoordsÚfontpropertiesZFooÚboldiô  )r   r   r   ÚweightZstretchr   z	Bold Font)gš™™™™™¹?gš™™™™™É?z
sans serifÚitaliciî  zBold Italic Font)gš™™™™™¹?g333333Ó?éÈ   z
Light Font)gš™™™™™¹?gš™™™™™Ù?éd   zCondensed Font)gš™™™™™¹?g      à?)Úmatplotlib.font_managerr   r   ÚwarningsÚfilterwarningsÚUserWarningÚpltÚsubplotsÚannotateÚ
set_xticksÚ
set_yticks)r   ÚfigÚaxZnormal_fontZ	bold_fontZbold_italic_fontZ
light_fontZcondensed_fontr   )r   r   r   Útest_font_styles   sˆ    
r.   Ú	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 alignmentgš™™™™™É?g      à?zTpTpTp
$M$
TpTpTpé   ÚcenterÚtop)r   ÚhaÚvazTpTpTp
$M^{M^{M^{M}}}$
TpTpTpgš™™™™™é?zTpTpTp
$M_{q_{q_{q}}}$
TpTpTpr   )	r'   ÚfigureÚsubplotÚ	set_titleÚtextZxlimZylimr*   r+   )r-   r   r   r   Útest_multilinel   s    



r:   Z
multiline2Zmpl20)r   c           	      sÞ  dt jd< t  ¡ \} }| ddg¡ | ddg¡ |jdddd	 d
dddddg}| j ¡ ‰ ‡ fdd„}d}x:t|ƒD ].\}}|j	d| d d||dd}|||ƒ qvW |j	ddddd |jdddd	 x:t|ƒD ].\}}|j	d| d d||dd}|||ƒ qÔW |j	ddddd |jdddd	 x<t|ƒD ]0\}}|j	d| d d||dd}|||ƒ q2W |j	ddddd |jdddd	 x>t|ƒD ]2\}}|j	d| d d||dd d!}|||ƒ q’W |j	ddd"dd d S )#Né   ztext.kerning_factorr   gffffffö?é   g      à?ZC2g333333Ó?)ÚcolorZ	linewidthZ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   r0   F)Úclip_onÚ	transform)	ÚmpatchesZ	RectangleÚ	transAxesZ
set_boundsÚget_window_extentZtransformedÚinvertedZboundsZ	add_patch)r-   ÚttÚr)Úrendererr   r   Údraw_box’   s    

z!test_multiline2.<locals>.draw_boxÚleftgš™™™™™É?gš™™™™™¹?Úbottom)ÚhorizontalalignmentÚverticalalignmentg333333ó?zBottom align)r=   gÍÌÌÌÌÌô?r3   z	Top aligngÍÌÌÌÌÌü?ÚbaselinezBaseline alignr1   )rJ   rK   ÚrotationzBot align, rot20)
r'   ÚrcParamsr(   Úset_xlimÚset_ylimZaxhlineÚcanvasÚget_rendererÚ	enumerater9   )r,   r-   ÚstsrG   ZhoralÚnnÚstrD   r   )rF   r   Útest_multiline2„   sB    

	
rW   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      @g      è?)Úfigsizeg      à?g      è?Zantialiasedr2   )rJ   rK   g      Ð?z
$\sqrt{x}$)r   rN   r'   r6   r9   )r,   r   r   r   Útest_antialiasing¸   s    
rY   c           	   C   sH   t jjddd} t| dƒ}t j |¡}W d Q R X | d¡dksDt‚d S )NZ	HelveticaÚafm)ZfontextÚrbZVAVAVAVAVAVA)g     ¼@iÎ  )r   Úfont_managerr   ÚopenrZ   ZAFMZstring_width_heightÚAssertionError)ÚfnÚfhrZ   r   r   r   Útest_afm_kerningÇ   s    ra   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 	¡  xxt
|j|jƒD ]f\}}t  ¡ j ||g¡\|_|_| |¡\}}	|rºdnd}
|j ¡ }|j||d|
d |j |¡ q€W d S )NÚbutton_press_eventg      à?r0   g      Ð?g      è?é   gš™™™™™Ù?zhello worldr2   )r4   ÚfontsizerM   ÚyellowÚredÚo)r=   )r'   r6   Zaxesr   rQ   ÚnpZlinspaceZmeshgridr9   ÚdrawÚzipZflatÚgcarA   r?   ÚxÚyÚcontainsZviewLimÚfrozenÚplotÚset)r,   r-   ZmeventZxsZysÚtxtrl   rm   rn   Ú_r=   Zvlr   r   r   Útest_containsÎ   s     

rt   c              C   s`   t  ¡ \} }|jdddddid}| j ¡  td| jf|j d¡žŽ }| |¡d	i fks\t	‚d S )
NZhello)gš™™™™™Ù?gš™™™™™Ù?)g333333ã?g333333ã?Z
arrowstylez->)ÚxyÚxytextZ
arrowpropsrb   )g      à?g333333ã?F)
r'   r(   r)   rQ   ri   r   Z	transDatar?   rn   r^   )r,   r-   ÚannÚeventr   r   r   Útest_annotation_containsí   s    
ry   Útitlesc              C   sJ   t  ¡  t  ddd¡} | jddd | jddd |  g ¡ |  g ¡ d S )Nr0   z
left titlerH   )Úloczright titleÚright)r'   r6   r7   r8   r*   r+   )r-   r   r   r   Útest_titlesù   s    
r}   Ztext_alignmentc              C   sÒ   t  ¡  t  ddd¡} d}xZdD ]R}xLdD ]D}| j|d|d ||tdddd	d
 | j|dd||d |d7 }q*W q W |  ddgddg¡ |  ddgddg¡ |  ddg¡ |  ddg¡ |  g ¡ |  	g ¡ d S )Nr0   gš™™™™™¹?)r   rc   )r3   rI   rL   r2   g      à?z TjÚroundZwheat)ÚboxstyleZ	facecolorÚalpha)r5   rM   Úbboxg      ð?z$\sum_{i=0}^{j}$)r5   rM   r   g      ø?)
r'   r6   r7   r9   Údictrp   rO   rP   r*   r+   )r-   rl   rM   Z	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 )
Nr0   r2   r1   i¼  )r{   rd   Z
fontweightrH   é   i  r|   )r'   r6   r7   r8   )r-   r   r   r   Útest_axes_titles  s
    r…   c              C   s  t  ¡ \} }|jddddd}| j ¡  | | jj¡}d}| ||f¡ | j ¡  | | jj¡}x*t|j	|j	ƒD ]\}}|| |kspt
‚qpW |jddddd}| j ¡  | | jj¡}d}||f|_| j ¡  | | jj¡}x*t|j	|j	ƒD ]\}}|| |ksìt
‚qìW d S )NÚtest)r   r   zfigure pixels)rv   Ú
textcoordsé   )r'   r(   r)   rQ   ri   rB   rF   Zset_positionrj   Úminr^   Zxyann)r,   r-   rw   Zinit_posZ	shift_valZpost_posÚaÚbr   r   r   Útest_set_position&  s*    




rŒ   r9   Ú ÚOÚemptyz	non-empty)Zidsc             C   sx   t  ¡ \}}|jdd| ddd}|j ¡  |j}| ¡ }|j|d d}tjj	| 
¡ | 
¡ d dd |j|kstt‚d S )	Ng      à?rH   rI   )r4   r5   é
   )Údpigš™™™™™©?)Úrtol)r'   r(   r9   rQ   ri   r‘   rB   rh   ÚtestingÚassert_allcloseÚ
get_pointsr^   )r9   r,   r-   Út1r‘   Zbbox1Zbbox2r   r   r   Útest_non_default_dpiF  s    
r—   c               C   s@   t j d¡dkst‚t j d¡dks(t‚t j d¡dks<t‚d S )NÚ
horizontalg        Úverticalg     €V@z15.g      .@)r   r9   Úget_rotationr^   r   r   r   r   Útest_get_rotation_stringV  s    r›   c              C   s&   x dD ]} t j | ¡| kst‚qW d S )N)g      .@g33333³0@gš™™™™YS@)r   r9   rš   r^   )Úir   r   r   Útest_get_rotation_float\  s    
r   c              C   s*   x$dD ]} t j | ¡t| ƒkst‚qW d S )N)éC   é   é)   )r   r9   rš   Úfloatr^   )rœ   r   r   r   Útest_get_rotation_inta  s    
r¢   c            	   C   s&   t  t¡ tj d¡ W d Q R X d S )NZ
hozirontal)ÚpytestÚraisesÚ
ValueErrorr   r9   rš   r   r   r   r   Útest_get_rotation_raisesf  s    r¦   c               C   s   t j d ¡dkst‚d S )Ng        )r   r9   rš   r^   r   r   r   r   Útest_get_rotation_nonek  s    r§   c              C   s:   x4t dddgdddgƒD ]\} }ttj | ¡|ƒ qW d S )Ng     €v@g     w@gš™™™™	Œ@g        g      1@gfffff&f@)rj   r   r   r9   rš   )rœ   Újr   r   r   Útest_get_rotation_mod360o  s     r©   r4   r2   r|   rH   r5   r3   rI   rL   Z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   )rM   r5   r4   ç      à?r†   Zrotation_modeÚanchorÚdefault)rª   rª   r†   )rª   rª   r†   )
r'   r(   r‚   r9   rQ   ri   r   rB   rF   r•   )r4   r5   r,   r-   r   Út0r–   r   r   r   Ú%test_null_rotation_with_rotation_modet  s    
r®   Ztext_bboxclipc              C   s8   t jdddddd t jddddd	} |  d
di¡ d S )NgÍÌÌÌÌÌì?gš™™™™™É?zIs bbox clipped?rE   T)Zbackgroundcolorr>   g      à?zIs fancy bbox clipped?)r>   r   zround, pad=0.1)r'   r9   Z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 )Nz+ ptsrc   r1   zaxes pointsé    )rv   r‡   ru   r   rd   z- ptsiìÿÿÿr3   )rv   r‡   ru   r   rd   r5   z+ fracg      è?gš™™™™™©?zaxes fractionz- fracgš™™™™™©¿z+ pixelsé    é   zaxes pixelsz- pixelsiçÿÿÿ)r'   r(   r)   )r,   r-   r   r   r   Ú"test_annotation_negative_ax_coordsˆ  s,    


r´   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 )Nz+ ptsr   éx   zfigure pointsr±   )rv   r‡   ru   r   rd   z- ptsiöÿÿÿé´   r3   )rv   r‡   ru   r   rd   r5   z+ fracgš™™™™™©?gš™™™™™á?zfigure fractionz- fracgš™™™™™©¿g      à?z+ pixelsé2   zfigure pixelsz- pixelsiÎÿÿÿr"   )r'   r(   r)   )r,   r-   r   r   r   Ú#test_annotation_negative_fig_coords¤  s,    


r¸   c              C   sÀ   t  dd¡\} \}}t  ¡  |jr&t‚|jr0t‚| jr:t‚| ddd¡}|jsRt‚|js\t‚| jsft‚|jdddgd}|js‚t‚|jsŒt‚| js–t‚t  ¡  |jr¨t‚|jr²t‚| jr¼t‚d S )Nr0   r<   g      à?Zaardvark)ru   )r'   r(   Zdraw_allÚstaler^   r9   r)   )r,   Úax1Úax2Ztxt1Zann1r   r   r   Útest_text_staleÀ  s"    










r¼   zagg_text_clip.pngc              C   s^   t j d¡ t d¡\} \}}x:t j dd¡D ](\}}|j||ddd | ||d¡ q.W d S )Nr0   r<   r   ÚfooT)r>   )rh   ÚrandomÚseedr'   r(   Zrandr9   )r,   rº   r»   rl   rm   r   r   r   Útest_agg_text_clip×  s
    rÀ   c              C   s>   dt jd< t jjdd} |  ¡ }dt jd< ||  ¡ ks:t‚d S )Nr   z	font.sizeZlarge)r   r"   )r   rN   r\   r   Zget_size_in_pointsr^   )ÚfpZsz1r   r   r   Útest_text_size_bindingà  s
    

rÂ   zfont_scaling.pdfc              C   s†   dt jd< tjdd\} }|j t ¡ ¡ |j t ¡ ¡ | dd¡ x:t	t
ddd	ƒƒD ]&\}}|jd
|d dj|d|d qXW d S )Né*   zpdf.fonttype)gš™™™™™@gÍÌÌÌÌÌ(@)rX   iöÿÿÿiX  é   é+   r<   gš™™™™™¹?rc   z{fs} pt font size)Úfs)rd   )r   rN   r'   r(   ÚxaxisZset_major_locatorZNullLocatorÚyaxisrP   rS   Úranger9   Úformat)r,   r-   rœ   rÆ   r   r   r   Útest_font_scalingé  s    
rË   zspacing1, spacing2)gš™™™™™Ù?r<   )r<   gš™™™™™Ù?)r<   r<   c       	      C   sš   d}t  ¡ }|j ¡ }t jdd|| d}t jdd||d}|j ¡  |j|d}|j|d}|j|jkslt‚| |kr†|j	|j	ks–t‚n|j	|j	ks–t‚d S )Nzline1
line2g      Ð?g      à?)Zlinespacing)rF   )
r'   r6   rQ   rR   r9   ri   rB   Úwidthr^   Úheight)	Zspacing1Zspacing2Ztext_stringr,   rF   Útext1Útext2Zbox1Zbox2r   r   r   Útest_two_2line_textsõ  s    

rÐ   c              C   s:   t  ¡ \} }| dtjd¡ | tjdd¡ | j ¡  d S )Nr   ÚnanÚinf)r'   r(   r9   rh   rÑ   rÒ   rQ   ri   )r,   r-   r   r   r   Útest_nonfinite_pos
  s    rÓ   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 )
Nr0   ztext.hinting_factorg      à?z	some textÚsvg)rÊ   Úpnggš™™™™™¹?)r’   )r'   rN   r6   r9   ÚsavefigÚioÚBytesIOrB   Z	intervalxrh   r“   r”   )r,   r¯   Úexpectedr   r   r   Útest_hinting_factor_backends  s    

rÚ   c              C   s€   t  ¡ } dt jd< |  d¡}dt jd< |  d¡}| j ¡  x@|df|dfgD ],\}}x"|jjD ]}|j 	¡ |ks^t
‚q^W qLW d S )NFztext.usetexéy   Téz   )r'   r6   rN   Úadd_subplotrQ   ri   rÇ   Ú
majorTicksÚlabel1Z
get_usetexr^   )r,   rº   r»   r-   Úusetexr¯   r   r   r   Útest_usetex_is_copied  s    




rá   c              C   s(   t  ¡ } | jddddd | j ¡  d S )Ng      à?z	$\frac12$T)rà   )r'   r6   r9   rQ   ri   )r,   r   r   r   Útest_single_artist_usetex.  s    râ   ÚfmtrÕ   ZpdfrÔ   c             C   s:   dt jd< t  ¡ }|jddddd |jt ¡ | d d S )NTztext.usetexg      à?Z2_2_2F)rà   )rÊ   )r'   rN   r6   r9   rÖ   r×   rØ   )rã   r,   r   r   r   Útest_single_artist_usenotex8  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 )Ng      Ð?Úc)r   r   r   g      à?)r=   g      à?rŠ   )r€   g      è?rl   )r   r   r   r0   )r€   r=   )r'   r6   rk   Úset_axis_offr9   r   r   r   r   Útest_text_as_path_opacityD  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.fonttypeg      Ð?z50% using `color`)r   r   r   g      à?)r=   g      à?z50% using `alpha`)r€   g      è?z"50% using `alpha` and 100% `color`)r   r   r   r0   )r€   r=   )r   rN   r'   r6   rk   ræ   r9   r   r   r   r   Útest_text_as_text_opacityM  s    
ré   c               C   s,   t  ddgddg¡ tt  dgdd¡ƒ d S )NÚAÚBr0   r<   g      à?ÚBoo)r'   rp   Úreprr9   r   r   r   r   Útest_text_reprX  s    rî   c              C   sf   t  dd¡\} }|jddd}| | j ¡ ¡}|  ¡  | | j ¡ ¡}tj| 	¡ | 	¡ ddrbt
‚d S )Nr0   Ú
annotation)g      à?g      à?)ru   gíµ ÷Æ°>)r’   )r'   r(   r)   rB   rQ   rR   Ztight_layoutrh   Zallcloser•   r^   )r,   r-   ZanZextent1Zextent2r   r   r   Útest_annotation_update^  s    rð   )Ú
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 )
Nr0   rg   rl   g      à?)Údatazaxes fraction)r   r   zoffset points)r   rv   r‡   )r   )rÝ   rp   r   Únowr)   )Úfig_testÚfig_refr-   r   r   r   Útest_annotation_unitsi  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 )Nr;   ztext.kerning_factorzaxes.titleyr0   r<   )é	   g      @T)rX   Zconstrained_layoutr   z$\sum_{i} x_i$zNew wayrH   )r{   g)\Âõ(ð?)rm   zOld Way)r'   rN   r(   r8   Zset_xticklabels)r,   Zaxsr-   r   r   r   Útest_large_subscript_titleu  s    



rø   c              C   s@   t jdd} d}| jdd|dd}| j ¡  | ¡ dks<t‚d S )	N)r;   rÄ   )rX   z?This is a very long text that should be wrapped multiple times.gffffffæ?g      à?T)Úwrapz?This is a very long
text that should be
wrapped multiple
times.)r'   r6   r9   rQ   ri   Ú_get_wrapped_textr^   )r,   Úsr9   r   r   r   Ú	test_wrap‡  s
    
rü   c              C   s<   t jdd} | jddddd}| j ¡  | ¡ dks8t‚d S )N)r;   rÄ   )rX   g      #@é   ZAlonglineoftexttowrapT)rù   )r'   r6   r9   rQ   ri   rú   r^   )r,   r9   r   r   r   Útest_long_word_wrap’  s    
rþ   c              C   s<   t jdd} | jddddd}| j ¡  | ¡ dks8t‚d S )N)r;   rÄ   )rX   r   znon wrapped textT)rù   )r'   r6   r9   rQ   ri   rú   r^   )r,   r9   r   r   r   Útest_wrap_no_wrap™  s    
rÿ   c             C   s`   |   ¡ }| ddg¡ | ddg¡ |jjd j d¡ |  ¡ }| ddg¡ | ddg¡ d S )Nr   r0   u   â‚¬rŠ   Úwr   )rÝ   r+   Zset_yticklabelsrÈ   rÞ   rß   Z	set_color)rô   rõ   r-   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s8t‚| ¡ dksHt‚dS )z>Test that kwargs take precedence over fontproperties defaults.ÚvaluezTimes New Romang      D@)r   r   Úcounts)r   r   N)r'   r6   ZxlabelZylabelÚget_sizer^   )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 )Nrc   r   r†   T)r?   Ztransform_rotates_text)r'   rk   ÚmtransformsZAffine2DZ
rotate_degr9   rš   r   )r-   r?   r9   Úresultr   r   r   Útest_transform_rotates_text·  s    r  c              C   sV   t tddd d} t | ƒ}tƒ }| | ¡ | d |d ks>t‚| d |d ksRt‚d S )Nr   )r   )r   r   r   r   )r‚   r   r   Úupdater^   )ZinpÚcacher¯   r   r   r   Útest_update_mutate_inputÀ  s    

r  c            	   C   s,   t  t¡ tjddddd W d Q R X d S )Ng      à?r½   Zfoobar)rå   )r£   r¤   r¥   r'   Úfigtextr   r   r   r   Útest_invalid_colorÊ  s    r  ztext_pdf_kerning.pdfc               C   s   t  ¡  t jddddd d S )Ngš™™™™™¹?g      à?ZATATATATATATATATATArc   )r   )r'   r6   r  r   r   r   r   Útest_pdf_kerningÏ  s    r  c             C   sT   t  ¡ }| ddd¡ |j ¡  tdd„ | D ƒƒs6t‚dd„ | D ƒddgksPt‚d S )	Ng      à?u   à§¦c             s   s   | ]}t |jtƒV  qd S )N)Ú
isinstanceÚmessager&   )Ú.0Úwarnr   r   r   ú	<genexpr>Ù  s    z*test_unsupported_script.<locals>.<genexpr>c             S   s   g | ]}|j j‘qS r   )r  Úargs)r  r  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.)r'   r6   r9   rQ   ri   Úallr^   )Zrecwarnr,   r   r   r   Útest_unsupported_scriptÕ  s    
r  c           	   C   sb   t  ¡ \} }|jddddd | j ¡  |jddddd tjtdd | j ¡  W d Q R X d S )Nr   z$ \wrong{math} $F)Z
parse_mathTzUnknown symbol)Úmatch)r'   r(   r9   rQ   ri   r£   r¤   r¥   )r,   r-   r   r   r   Útest_parse_mathà  s    
r  ztext_pdf_font42_kerning.pdfc               C   s(   dt jd< t  ¡  t jddddd d S )NrÃ   zpdf.fonttypegš™™™™™¹?g      à?ZATAVATAVATAVATAVATArc   )r   )r'   rN   r6   r  r   r   r   r   Útest_pdf_font42_kerningê  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 )
NrÃ   zpdf.fonttypeZstixsanszmathtext.fontsetgš™™™™™¹?g      à?u   Mass $m$ ðŒˆrc   )r   )r'   rN   r6   r  r   r   r   r   Útest_pdf_chars_beyond_bmpñ  s    

r  )Tr   r×   r$   Únumpyrh   Znumpy.testingr   r£   Z
matplotlibr   Zmatplotlib.backend_basesr   r#   r   Zmatplotlib.patchesZpatchesr@   Zmatplotlib.pyplotZpyplotr'   Zmatplotlib.transformsZ
transformsr  Zmatplotlib.testing.decoratorsr   r   Zmatplotlib.textr   ÚmarkZskipifZcheckdep_usetexZneeds_usetexr.   r:   rW   rY   ra   rt   ry   r}   rƒ   r…   rŒ   Zparametrizer—   r›   r   r¢   r¦   r§   r©   r®   r°   r´   r¸   r¼   rÀ   rÂ   rË   rÐ   rÓ   rÚ   rá   râ   rä   rç   ré   rî   rð   rö   rø   rü   rþ   rÿ   r  r  r  r  r  r  r  r  r  r  r   r   r   r   Ú<module>   sŠ   
T4
 "		
			

