U
    Fvfq                     @   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+,dMdNdOdPgej+,dQdNdRdSdTdUgdVdW Z=edXgdYdZ Z>ed[gd\d] Z?ed^gd_d` Z@dadb ZAedcgddde ZBdfdg ZCedhgdidj ZDej+,dkdldmdngdodp ZEdqdr ZFdsdt ZGdudv ZHedwdx ZIedydz ZJej+,d{d|d}d~gdd ZKedgdd ZLedgdd ZMdd ZNdd ZOed|gddd ZPedgdddd ZQej+,dddddgdd ZRdd ZSdd ZTdd ZUed|gddd ZVdd ZWdd ZXdd ZYej+,dddggdd ZZdd Z[edgdddd Z\dd Z]ej+j^e#j_dkdddd Z`ej+j^e#j_dkdddd Zaedgdddd Zbedgdddd Zcedd ZddS )    )datetimeN)assert_almost_equal)parse)
MouseEvent)FontProperties)check_figures_equalimage_comparison)needs_usetex)TextZ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snt
| d
ks~t
| d
kst
| d
kst
| d
kst
| 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 >/tmp/pip-unpacked-wheel-7vhvci0g/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 SansZFooboldi  )r   r   r   weightZstretchr   z	Bold Font)r   皙?z
sans serifZ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annotateZget_fontnameAssertionErrorZget_fontstyleZget_fontvariantZ
get_weightZget_stretch
set_xticks
set_yticks)	r   figaxZnormal_fontaZ	bold_fontZbold_italic_fontZ
light_fontZcondensed_fontr   r   r   test_font_styles   s    
r7   	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   )	r.   figuresubplot	set_titletextZxlimZylimr2   r3   r5   r   r   r   test_multilineq   s>    
             
rD   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}t|D ].\}}|j	d| d d||dd}||| qt|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 ]0\}}|j	d| d d||dd}||| q(|j	ddddd |jdddd	 t|D ]2\}}|j	d| d d||dd d!}||| q|j	ddd"dd d S )#N   text.kerning_factorr   gffffff?   r)   ZC2r%   )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   r9   F)clip_on	transform)	mpatchesZ	Rectangle	transAxesZ
set_boundsget_window_extentZtransformedinvertedZboundsZ	add_patch)r5   ttrrendererr   r   draw_box   s    
z!test_multiline2.<locals>.draw_boxleftr$   r   bottomhorizontalalignmentverticalalignmentg333333?zBottom alignrH   g?r<   z	Top aligng?baselinezBaseline alignr:   )rX   rY   rotationzBot align, rot20)
r.   rcParamsr/   set_xlimset_ylimZaxhlinecanvasget_renderer	enumeraterB   )r4   r5   stsrT   ZhoralnnstrP   r   rR   r   test_multiline2   sP    
 
	 rf   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)   rg   Zantialiasedr;   rW         ?z
$\sqrt{x}$)r   r]   r.   r?   rB   r4   r   r   r   test_antialiasing   s    
rl   c               	   C   sH   t jjddd} t| d}t j|}W 5 Q R X |ddksDtd S )NZ	Helveticaafm)ZfontextrbZVAVAVAVAVAVA)g     @i  )r   font_managerr   openZ_afmZAFMZstring_width_heightr1   )fnfhrm   r   r   r   test_afm_kerning   s    rs   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 ]f\}}t  j||g\|_|_||\}}	|rdnd}
|j }|j||d|
d |j| q~d S )Nbutton_press_eventr)   r9   rj   rg      r'   zhello worldr;   )r=   fontsizer\   ZyellowZredorZ   )r.   r?   Zaxesr   r`   npZlinspaceZmeshgridrB   drawzipZflatgcarM   rK   xycontainsZviewLimfrozenplotset)r4   r5   Zmeventxsystxtr|   r}   r~   _rH   Zvlr   r   r   test_contains   s,         

r   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)r'   r'   )333333?r   Z
arrowstylez->)xyxytextZ
arrowpropsrt   )r)   r   F)
r.   r/   r0   r`   ry   r   Z	transDatarK   r~   r1   )r4   r5   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   sF   t  \}}tj| |d" |jddd|d |j  W 5 Q R X d S )Nmatchr   rI   r)   r)   )r   r    )r.   r/   pytestraisesr0   r`   ry   )errr    r   r4   r5   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 )Nr9   z
left titlerU   loczright titleright)r.   r?   r@   rA   r2   r3   rC   r   r   r   test_titles  s    
r   Ztext_alignmentc                  C   s   t   t ddd} d}dD ]N}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 )Nr9   r   )r   ru   )r<   rV   r[   r;   r)   z TjroundZwheat)boxstyleZ	facecoloralpha)r>   r\   bboxg      ?z$\sum_{i=0}^{j}$)r>   r\   r   g      ?)
r.   r?   r@   rB   dictr   r^   r_   r2   r3   )r5   r|   r\   	alignmentr   r   r   test_alignment  s6            
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 )
Nr9   r;   r:   i  )r   rv   Z
fontweightrU      i  r   )r.   r?   r@   rA   rC   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snt
qn|jddddd}| j  || jj}d}||f|_| j  || jj}t|j	|j	D ]\}}|| |kst
qd S )NtestrI   figure pixels)r   
textcoords   )r.   r/   r0   r`   ry   rN   rS   Zset_positionrz   minr1   Zxyann)r4   r5   r   Zinit_posZ	shift_valZpost_posr6   br   r   r   test_set_position:  s:       

   


r   c                  C   sP  t  } | ddd}|d | }|j|j }|d | }|j|j }|d | }|j}||| dkst||dkst||d|  dkst||d	|  d
kst|||d  dkst|||d  |d  dkst|||d  |d  dks(t|||d  |d  dksLtd S )Nr   ? imZiiiimmmmr   gV-?gx&1?r9               
   )	r.   r?   rB   Zset_textrN   x1Zx0Z_char_index_atr1   )r4   rB   r   Zsize_iZsize_moriginr   r   r   test_char_index_atZ  s&    


$$r   rB   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sttd S )	Nr)   rU   rV   )r=   r>   r   )dpi皙?Zrtol)r.   r/   rB   r`   ry   r   rN   rx   testingassert_allclose
get_pointsr1   )rB   r4   r5   t1r   Zbbox1Zbbox2r   r   r   test_non_default_dpit  s    
r   c                   C   s0   t dd dkstt dd dks,td S )NZ
horizontalr\           Zverticalg     V@r
   get_rotationr1   r   r   r   r   test_get_rotation_string  s    r   c                  C   s$   dD ]} t | d | kstqd S )N)g      .@g333330@gYS@r   r   r   r   r   r   test_get_rotation_float  s    r   c                  C   s(   dD ]} t | d t| kstqd S )N)C      )   r   )r
   r   floatr1   r   r   r   r   test_get_rotation_int  s    r   c                	   C   s$   t t tdd W 5 Q R X d S )NZ
hozirontalr   r   r   
ValueErrorr
   r   r   r   r   test_get_rotation_raises  s    r   c                   C   s   t d d dkstd S )Nr   r   r   r   r   r   r   test_get_rotation_none  s    r   c                  C   s8   t dddgdddgD ]\} }tt| d | qd S )Ng     v@g     w@g	@r   g      1@gfffff&f@r   )rz   r   r
   r   )r   jr   r   r   test_get_rotation_mod360  s    r   r=   r;   r   rU   r>   r<   rV   r[   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   )r\   r>   r=   r)   r   Zrotation_modeanchordefault)r)   r)   r   )r)   r)   r   )
r.   r/   r   rB   r`   ry   r   rN   rS   r   )r=   r>   r4   r5   r   t0r   r   r   r   %test_null_rotation_with_rotation_mode  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 )Nr   r$   zIs bbox clipped?rQ   T)ZbackgroundcolorrJ   r)   zIs fancy bbox clipped?rJ   r   zround, pad=0.1)r.   rB   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 )N+ ptsru   r:   zaxes points    r   r   r   r    rv   - ptsir<   r   r   r   r    rv   r>   + fracrg   r   r   - frac皙+ pixels      zaxes pixels- pixelsir.   r/   r0   r4   r5   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 )Nr   r   x   zfigure pointsr   r   r      r<   r   r   r   g?zfigure fractionr   r   r)   r   2   r   r   ir(   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st|jst| jstt   |jrt|jrt| jrtd S )Nr9   rG   r)   Zaardvarkr   )r.   r/   Zdraw_allstaler1   rB   r0   )r4   ax1ax2Ztxt1Zann1r   r   r   test_text_stale  s"    










r   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 )Nr9   rG   r   r   Tr   )rx   randomseedr.   r/   ZrandrB   )r4   r   r   r|   r}   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   r]   ro   r   Zget_size_in_pointsr1   )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 t	t
ddd	D ]&\}}|jd
|d dj|d|d qVd S )N*   pdf.fonttype)g@g(@rh   r   iX  r   +   rG   r   ru   z{fs} pt font size)fs)rv   )r   r]   r.   r/   xaxisZset_major_locatorZNullLocatoryaxisr_   rb   rangerB   format)r4   r5   r   r   r   r   r   test_font_scaling  s    
r  zspacing1, spacing2)r'   rG   )rG   r'   )rG   rG   c           	      C   s   d}t  }|j }|jdd|| d}|jdd||d}|j  |j|d}|j|d}|j|jkslt| |kr|j	|j	kstn|j	|j	kstd S )Nzline1
line2rj   r)   ZlinespacingrR   )
r.   r?   r`   ra   rB   ry   rN   widthr1   height)	Zspacing1Zspacing2Ztext_stringr4   rS   text1text2Zbox1Zbox2r   r   r   test_two_2line_texts"  s    

r  c                	   C   s,   t t tjddddd W 5 Q R X d S )Nrj   r)   r   abcr  )r   r   	TypeErrorr.   rB   r   r   r   r   test_validate_linespacing7  s    r
  c                  C   s:   t  \} }|dtjd |tjdd | j  d S )Nr   naninf)r.   r/   rB   rx   r  r  r`   ry   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 )
Nr9   ztext.hinting_factorr)   z	some textsvgr   pngr   r   )r.   r]   r?   rB   savefigioBytesIOrN   Z	intervalxrx   r   r   )r4   r   expectedr   r   r   test_hinting_factor_backendsC  s    

r  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sZt
qZqJd S )NFtext.usetexy   Tz   )r.   r?   r]   add_subplotr`   ry   r   
majorTickslabel1Z
get_usetexr1   )r4   r   r   r5   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r  )r.   r?   rB   r`   ry   rk   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 )NTr  r)   Z2_2_2Fr  r  )r.   r]   r?   rB   r  r  r  )r   r4   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 )Nrj   cr   r   r   r)   rZ   r)   r6   r   rg   r|   r   r   r   r9   r   rH   )r.   r?   r{   set_axis_offrB   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.fonttyperj   z50% using `color`r#  rZ   r)   z50% using `alpha`r$  rg   z"50% using `alpha` and 100% `color`r%  r&  )r   r]   r.   r?   r{   r'  rB   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Br9   rG   r)   ZBoo)r.   r   reprrB   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rbt
d S )Nr9   
annotationr   r   gư>r   )r.   r/   r0   rN   r`   ra   Ztight_layoutrx   Zallcloser   r1   )r4   r5   ZanZextent1Zextent2r   r   r   test_annotation_update  s    r0  )
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 )
Nr9   rw   r|   r)   )datar   rI   zoffset points)r    r   r   )r    )r  r   r   nowr0   Zfig_testZfig_refr5   r   r   r   test_annotation_units  s     r5  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 )NrE   rF   zaxes.titleyr9   rG   )	   g      @T)ri   Zconstrained_layoutr   z$\sum_{i} x_i$zNew wayrU   r   g)\(?)r}   zOld Way)r.   r]   r/   rA   Zset_xticklabels)r4   Zaxsr5   r   r   r   test_large_subscript_title  s    



r7  zx, rotation, halign)ffffff?r   rU   )r)   _   rU   )r%   r   r   )r%      rU   c                 C   sD   t jdd}d}|j| d|d||d}|j  | dks@td S )N)rE   rE   rh   z?This is a very long text that should be wrapped multiple times.r8  T)wrapr\   r=   z?This is a very long
text that should be
wrapped multiple
times.r.   r?   rB   r`   ry   Z_get_wrapped_textr1   )r|   r\   Zhalignr4   srB   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sTt|j|jksdtd S )N)r   r   rh   z.suptitle that is clearly too long in this caseTr;  z.suptitle that is clearly
too long in this case)r.   r?   ZsuptitleZ	_suptitlerN   Zy0r1   y1)Zfig1Zwindow_extent_testZfig2Zwindow_extent_refr   r   r   test_get_window_extent_wrapped  s    


rA  c                  C   s<   t jdd} | jddddd}| j  | dks8td S )NrE   r   rh   g      #@r   ZAlonglineoftexttowrapTr?  r<  r4   rB   r   r   r   test_long_word_wrap  s    
rD  c                  C   s<   t jdd} | jddddd}| j  | dks8td S )NrB  rh   r   znon wrapped textTr?  r<  rC  r   r   r   test_wrap_no_wrap  s    
rE  c                 C   s`   |   }|ddg |ddg |jjd jd |  }|ddg |ddg d S )Nr   r9   u   €r6   wr   )r  r3   Zset_yticklabelsr   r  r  Z	set_colorr4  r   r   r   test_buffer_size  s    rG  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.   r?   ZxlabelZylabelget_sizer1   )r  r  r   r   r   $test_fontproperties_kwarg_precedence  s
    rK  c                  C   s@   t  } t d}| jddd|dd}| }t|d d S )Nru   r   r   T)rK   Ztransform_rotates_text)r.   r{   mtransformsZAffine2DZ
rotate_degrB   r   r   )r5   rK   rB   resultr   r   r   test_transform_rotates_text  s    rN  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
   updater1   )inpcacher   r   r   r   test_update_mutate_input  s    

rR  r\   zinvalid stringZ   c              	   C   s.   t jtdd tddd| d W 5 Q R X d S )Nz5rotation must be 'vertical', 'horizontal' or a numberr   r   r   r   r   r   r   r   r   test_invalid_rotation_values  s
    rT  c                	   C   s,   t t tjddddd W 5 Q R X d S )Nr)   r   Zfoobar)r"  )r   r   r   r.   figtextr   r   r   r   test_invalid_color  s    rV  ztext_pdf_kerning.pdfc                   C   s   t   t jddddd d S )Nr   r)   ZATATATATATATATATATAru   r   )r.   r?   rU  r   r   r   r   test_pdf_kerning  s    rW  c                 C   sT   t  }|ddd |j  tdd | D s6tdd | D ddgksPtd S )	Nr)   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   )rZ  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.)r.   r?   rB   r`   ry   allr1   )Zrecwarnr4   r   r   r   test_unsupported_script%  s    
rb  )r   r9   r   z1Error messages are incorrect with pyparsing 3.1.0)reasonc               	   C   sb   t  \} }|jddddd | j  |jddddd tjtdd | j  W 5 Q R X d S )Nr   $ \wrong{math} $F)Z
parse_mathTUnknown symbolr   )r.   r/   rB   r`   ry   r   r   r   r   r   r   r   test_parse_math1  s    
rf  c               	   C   s   t  \} }|ddd tjtdd | j  W 5 Q R X t	ddi* t  \} }|ddd | j  W 5 Q R X d S )Nr   rd  re  r   ztext.parse_mathF)
r.   r/   rB   r   r   r   r`   ry   r   Z
rc_contextr   r   r   r   test_parse_math_rcparams>  s    rg  ztext_pdf_font42_kerning.pdfc                   C   s(   dt jd< t   t jddddd d S )Nr   r   r   r)   ZATAVATAVATAVATAVATAru   r   r.   r]   r?   rU  r   r   r   r   test_pdf_font42_kerningN  s    
ri  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   r   Zstixsanszmathtext.fontsetr   r)   u   Mass $m$ 𐌈ru   r   rh  r   r   r   r   test_pdf_chars_beyond_bmpU  s    

rj  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   dd	gkst
t d t d	   krd
ksn t
t jj }|j|jkst
d S )Nr%   r)   zfoo
barTr  c                     s&   | ^}}}}}  |t | d S rX  )
setdefaultr   add)r_  kwargsrS   r|   r}   r=  r   r   r   r   calli  s    z test_metrics_cache.<locals>.callr   barr9   )r   rB   Z!_get_text_metrics_with_cache_implcache_clearr.   r?   r`   ry   Z_get_rendererZdraw_texr1   len
cache_infohitsmisses)r4   rS   ro  infor   rn  r   test_metrics_cache]  s    

*rw  )er   r  r+   Znumpyrx   Znumpy.testingr   Zpackaging.versionr   parse_version	pyparsingr   Z
matplotlibr   Zmatplotlib.backend_basesr   r*   r   Zmatplotlib.patchesZpatchesrL   Zmatplotlib.pyplotZpyplotr.   Zmatplotlib.transformsZ
transformsrL  Zmatplotlib.testing.decoratorsr   r   Zmatplotlib.testing._markersr	   Zmatplotlib.textr
   __version__Zpyparsing_versionr7   rD   rf   rl   rs   r   r   markZparametrizeRuntimeErrorprintr   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.  r0  r5  r7  r>  rA  rD  rE  rG  rK  rN  rR  rT  rV  rW  rb  Zxfailreleaserf  rg  ri  rj  rw  r   r   r   r   <module>   s  

X

3






	 
 




	



	









		






