a
    
do                     @   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 d dlm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* Z*ed+gd,d- Z+ed.gddd/d0 Z,ed1gd2d3 Z-d4d5 Z.d6d7 Z/ej%j&d8d9d:gd;d<gd=d>d? Z0d@dA Z1dBdC Z2dDdE Z3dFdG Z4dHdI Z5dJdK Z6ej%&dLg dMej%&dNg dOdPdQ Z7edRgdSdT Z8edUgdVdW Z9edXgdYdZ Z:d[d\ Z;ed]gd^d_ Z<d`da Z=edbgdcdd Z>ej%&deg dfdgdh Z?didj Z@dkdl ZAdmdn ZBedodp ZCedqdr ZDej%&dsg dtdudv ZEedwgdxdy ZFedzgd{d| ZGd}d~ ZHdd ZIedgddd ZJedgdddd ZKej%&dg ddd ZLdd ZMdd ZNdd ZOedgddd ZPdd ZQdd ZRdd ZSej%&dddggdd ZTdd ZUedgdddd ZVdd ZWdd ZXdd ZYedgdddd ZZedgdddd Z[edd Z\dS )    )datetimeN)assert_almost_equal)
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snJ |
 d
ks~J | d
ksJ | d
ksJ | d
ksJ | 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 i | }|t  d} |dS )N)	directory)fname)mplZget_data_path)kwproppathr   findfont c/var/www/html/stable-diffusion-webui/venv/lib/python3.9/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 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_fontnameZ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    
r5   	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ylimr0   r1   r3   r   r   r   test_multilinem   s$    

rB   Z
multiline2Z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}||| ql|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	linewidth)Z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   r7   F)clip_on	transform)	mpatchesZ	Rectangle	transAxesZ
set_boundsget_window_extentZtransformedinvertedZboundsZ	add_patch)r3   ttrrendererr   r   draw_box   s    
z!test_multiline2.<locals>.draw_boxleftr#   r   bottomhorizontalalignmentverticalalignmentg333333?zBottom alignrF   g?r:   z	Top aligng?baselinezBaseline alignr8   )rV   rW   rotationzBot align, rot20)
r-   rcParamsr.   set_xlimset_ylimZaxhlinecanvasget_renderer	enumerater@   )r2   r3   stsrR   ZhoralnnstrN   r   rP   r   test_multiline2   sH    

	rd   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(   re   Zantialiasedr9   rU         ?z
$\sqrt{x}$)r   r[   r-   r=   r@   r2   r   r   r   test_antialiasing   s    
rj   c                  C   s\   t jjddd} t| d}t j|}W d    n1 s<0    Y  |ddksXJ d S )NZ	Helveticaafm)ZfontextrbZVAVAVAVAVAVA)g     @i  )r   font_managerr   openZ_afmZAFMZstring_width_height)fnfhrk   r   r   r   test_afm_kerning   s    *rq   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(   r7   rh   re      r&   zhello worldr9   )r;   fontsizerZ   ZyellowZredorX   )r-   r=   Zaxesr   r^   npZlinspaceZmeshgridr@   drawzipZflatgcarK   rI   xycontainsZviewLimfrozenplotset)r2   r3   Zmeventxsystxtrz   r{   r|   _rF   Z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 )
NZhello)r&   r&   )333333?r   Z
arrowstylez->)xyxytextZ
arrowpropsrr   )r(   r   F)	r-   r.   r/   r^   rw   r   Z	transDatarI   r|   )r2   r3   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   sZ   t  \}}tj| |d, |jddd|d |j  W d    n1 sL0    Y  d S )Nmatchr   rG   r(   r(   )r   r   )r-   r.   pytestraisesr/   r^   rw   )errr   r   r2   r3   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 )Nr7   z
left titlerS   loczright titleright)r-   r=   r>   r?   r0   r1   rA   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 )Nr7   r   )r   rs   )r:   rT   rY   r9   r(   z TjroundZwheat)boxstyleZ	facecoloralpha)r<   rZ   bboxg      ?z$\sum_{i=0}^{j}$)r<   rZ   r   g      ?)
r-   r=   r>   r@   dictr~   r\   r]   r0   r1   )r3   rz   rZ   	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 )
Nr7   r9   r8   i  )r   rt   Z
fontweightrS      i  r   )r-   r=   r>   r?   rA   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}t|j	|j	D ]\}}|| |ksnJ qn|jddddd}| j  || jj}d}||f|_
| j  || jj}t|j	|j	D ]\}}|| |ksJ qd S )NtestrG   figure pixels)r   
textcoords   )r-   r.   r/   r^   rw   rL   rQ   Zset_positionrx   minZxyann)r2   r3   r   Zinit_posZ	shift_valZpost_posr4   br   r   r   test_set_position6  s.    




r   c                  C   sP  t  } | ddd}|d | }|j|j }|d | }|j|j }|d | }|j}||| dksJ ||dksJ ||d|  dksJ ||d	|  d
ksJ |||d  dksJ |||d  |d  dksJ |||d  |d  dks(J |||d  |d  dksLJ d S )Nr   ? imZiiiimmmmr   gV-?gx&1?r7               
   )r-   r=   r@   Zset_textrL   x1Zx0Z_char_index_at)r2   r@   r   Zsize_iZsize_moriginr   r   r   test_char_index_atV  s&    


$$r   r@   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stJ d S )	Nr(   rS   rT   )r;   r<   r   )dpi皙?Zrtol)r-   r.   r@   r^   rw   r   rL   rv   testingassert_allclose
get_points)r@   r2   r3   t1r   Zbbox1Zbbox2r   r   r   test_non_default_dpip  s    
r   c                   C   s0   t dd dksJ t dd dks,J d S )NZ
horizontalrZ           Z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      .@g333330@gYS@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   s8   t t tdd W d    n1 s*0    Y  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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   )rx   r   r	   r   )r   jr   r   r   test_get_rotation_mod360  s    r   r;   )r9   r   rS   r<   )r9   r:   rT   rY   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   )rZ   r<   r;   )r(   r(   r   Zrotation_modeanchordefault)
r-   r.   r   r@   r^   rw   r   rL   rQ   r   )r;   r<   r2   r3   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?rO   T)ZbackgroundcolorrH   r(   zIs fancy bbox clipped?rH   r   zround, pad=0.1)r-   r@   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+ ptsrs   r8   zaxes points    r   r   r   r   rt   - ptsir:   r   r   r   r   rt   r<   + fracre   r   r   - frac皙+ pixels      zaxes pixels- pixelsir-   r.   r/   r2   r3   r   r   r   "test_annotation_negative_ax_coords  s8    





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  s8    





r   c                  C   s   t dd\} \}}t   |jr&J |jr0J | jr:J |ddd}|jsRJ |js\J | jsfJ |jdddgd}|jsJ |jsJ | jsJ t   |jrJ |jrJ | jrJ d S )Nr7   rE   r(   Zaardvarkr   )r-   r.   Zdraw_allstaler@   r/   )r2   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 )Nr7   rE   r   r   Tr   )rv   randomseedr-   r.   Zrandr@   )r2   r   r   rz   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:J d S )Nr   z	font.sizeZlarger   r'   )r   r[   rm   r   Zget_size_in_points)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(@rf   r   iX  r   +   rE   r   rs   z{fs} pt font size)fs)rt   )r   r[   r-   r.   xaxisZset_major_locatorZNullLocatoryaxisr]   r`   ranger@   format)r2   r3   r   r   r   r   r   test_font_scaling  s    
r   zspacing1, spacing2))r&   rE   )rE   r&   )rE   rE   c           	      C   s   d}t  }|j }|jdd|| d}|jdd||d}|j  |j|d}|j|d}|j|jkslJ | |kr|j|jksJ n|j|jksJ d S )Nzline1
line2rh   r(   ZlinespacingrP   )	r-   r=   r^   r_   r@   rw   rL   widthheight)	Zspacing1Zspacing2Ztext_stringr2   rQ   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 d    n1 s20    Y  d S )Nrh   r(   r   abcr   )r   r   	TypeErrorr-   r@   r   r   r   r   test_validate_linespacing3  s    r  c                  C   s:   t  \} }|dtjd |tjdd | j  d S )Nr   naninf)r-   r.   r@   rv   r	  r
  r^   rw   r   r   r   r   test_nonfinite_pos8  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 )
Nr7   ztext.hinting_factorr(   z	some textsvgr   pngr   r   )r-   r[   r=   r@   savefigioBytesIOrL   Z	intervalxrv   r   r   )r2   r   expectedr   r   r   test_hinting_factor_backends?  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sZJ qZqJd S )NFtext.usetexy   Tz   )
r-   r=   r[   add_subplotr^   rw   r   
majorTickslabel1Z
get_usetex)r2   r   r   r3   usetexr   r   r   r   test_usetex_is_copiedM  s    




r  c                  C   s(   t  } | jddddd | j  d S )Nr(   z	$\frac12$Tr  )r-   r=   r@   r^   rw   ri   r   r   r   test_single_artist_usetex\  s    r  fmt)r  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=   r@   r  r  r  )r  r2   r   r   r   test_single_artist_usenotexf  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 )Nrh   cr   r   r   r(   rX   r(   r4   r   re   rz   r   r   r   r7   r   rF   )r-   r=   ry   set_axis_offr@   r   r   r   r   test_text_as_path_opacityr  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.fonttyperh   z50% using `color`r!  rX   r(   z50% using `alpha`r"  re   z"50% using `alpha` and 100% `color`r#  r$  )r   r[   r-   r=   ry   r%  r@   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Br7   rE   r(   ZBoo)r-   r~   reprr@   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rbJ d S )Nr7   
annotationr   r   gư>r   )
r-   r.   r/   rL   r^   r_   Ztight_layoutrv   Zallcloser   )r2   r3   ZanZextent1Zextent2r   r   r   test_annotation_update  s    r.  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 )
Nr7   ru   rz   r(   )datar   rG   zoffset points)r   r   r   )r   )r  r~   r   nowr/   Zfig_testZfig_refr3   r   r   r   test_annotation_units  s    r3  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 )NrC   rD   zaxes.titleyr7   rE   )	   g      @T)rg   Zconstrained_layoutr   z$\sum_{i} x_i$zNew wayrS   r   g)\(?)r{   zOld Way)r-   r[   r.   r?   Zset_xticklabels)r2   Zaxsr3   r   r   r   test_large_subscript_title  s    



r5  zx, rotation, halign))ffffff?r   rS   )r(   _   rS   )r$   r   r   )r$      rS   c                 C   sD   t jdd}d}|j| d|d||d}|j  | dks@J d S )N)rC   rC   rf   z?This is a very long text that should be wrapped multiple times.r6  T)wraprZ   r;   z?This is a very long
text that should be
wrapped multiple
times.r-   r=   r@   r^   rw   Z_get_wrapped_text)rz   rZ   Zhalignr2   sr@   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sTJ |j|jksdJ d S )N)r   r   rf   z.suptitle that is clearly too long in this caseTr9  z.suptitle that is clearly
too long in this case)r-   r=   ZsuptitleZ	_suptitlerL   Zy0y1)Zfig1Zwindow_extent_testZfig2Z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s8J d S )NrC   r   rf   g      #@r   ZAlonglineoftexttowrapTr=  r:  r2   r@   r   r   r   test_long_word_wrap  s    
rB  c                  C   s<   t jdd} | jddddd}| j  | dks8J d S )Nr@  rf   r   znon wrapped textTr=  r:  rA  r   r   r   test_wrap_no_wrap  s    
rC  c                 C   s`   |   }|ddg |ddg |jjd jd |  }|ddg |ddg d S )Nr   r7   u   €r4   wr   )r  r1   Zset_yticklabelsr   r  r  Z	set_colorr2  r   r   r   test_buffer_size  s    rE  c                  C   sL   t   t jdddd} t jdddd}|  dks8J | dksHJ 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_size)r  r  r   r   r   $test_fontproperties_kwarg_precedence  s
    rI  c                  C   s@   t  } t d}| jddd|dd}| }t|d d S )Nrs   r   r   T)rI   Ztransform_rotates_text)r-   ry   mtransformsZAffine2DZ
rotate_degr@   r   r   )r3   rI   r@   resultr   r   r   test_transform_rotates_text  s    rL  c                  C   sV   t tddd d} t | }t }||  | d |d ks>J | d |d ksRJ d S )Nr!   )r"   )r    r   r    r   )r   r   r	   update)inpcacher   r   r   r   test_update_mutate_input  s    

rP  rZ   zinvalid stringZ   c                 C   sB   t jtdd  tddd| d W d    n1 s40    Y  d S )Nz5rotation must be 'vertical', 'horizontal' or a numberr   r   r   r   r   r   r   r   r   test_invalid_rotation_values  s
    rR  c                   C   s@   t t" tjddddd W d    n1 s20    Y  d S )Nr(   r   Zfoobar)r   )r   r   r   r-   figtextr   r   r   r   test_invalid_color  s    rT  ztext_pdf_kerning.pdfc                   C   s   t   t jddddd d S )Nr   r(   ZATATATATATATATATATArs   r   )r-   r=   rS  r   r   r   r   test_pdf_kerning  s    rU  c                 C   sT   t  }|ddd |j  tdd | D s6J dd | D ddgksPJ d S )	Nr(   u   ০c                 s   s   | ]}t |jtV  qd S N)
isinstancemessager,   .0warnr   r   r   	<genexpr>%      z*test_unsupported_script.<locals>.<genexpr>c                 S   s   g | ]}|j jqS r   )rX  argsrY  r   r   r   
<listcomp>'  r]  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=   r@   r^   rw   all)Zrecwarnr2   r   r   r   test_unsupported_script!  s    
ra  c                  C   sv   t  \} }|jddddd | j  |jddddd tjtdd | j  W d    n1 sh0    Y  d S )Nr   $ \wrong{math} $F)Z
parse_mathTUnknown symbolr   )r-   r.   r@   r^   rw   r   r   r   r   r   r   r   test_parse_math,  s    
rd  c                  C   s   t  \} }|ddd tjtdd | j  W d    n1 sH0    Y  t	ddi4 t  \} }|ddd | j  W d    n1 s0    Y  d S )Nr   rb  rc  r   ztext.parse_mathF)
r-   r.   r@   r   r   r   r^   rw   r   Z
rc_contextr   r   r   r   test_parse_math_rcparams6  s    (re  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ATAVATAVATAVATAVATArs   r   r-   r[   r=   rS  r   r   r   r   test_pdf_font42_kerningD  s    
rg  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$ 𐌈rs   r   rf  r   r   r   r   test_pdf_chars_beyond_bmpK  s    

rh  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sJ t
 d t
 d	   krd
ksn J t jj }|j|jksJ d S )Nr$   r(   zfoo
barTr  c                     s&   | ^}}}}}  |t | d S rV  )
setdefaultr   add)r^  kwargsrQ   rz   r{   r;  r   r   r   r   call_  s    z test_metrics_cache.<locals>.callr   barr7   )r   r@   Z!_get_text_metrics_with_cache_implcache_clearr-   r=   r^   rw   Z_get_rendererZdraw_texlen
cache_infohitsmisses)r2   rQ   rm  infor   rl  r   test_metrics_cacheS  s    

*ru  )]r   r  r*   numpyrv   Znumpy.testingr   r   Z
matplotlibr   Zmatplotlib.backend_basesr   r)   r   Zmatplotlib.patchesZpatchesrJ   Zmatplotlib.pyplotZpyplotr-   Zmatplotlib.transformsZ
transformsrJ  Zmatplotlib.testing.decoratorsr   r   Zmatplotlib.testing._markersr   Zmatplotlib.textr	   r5   rB   rd   rj   rq   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,  r.  r3  r5  r<  r?  rB  rC  rE  rI  rL  rP  rR  rT  rU  ra  rd  re  rg  rh  ru  r   r   r   r   <module>   s   
X

3




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

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