o
    jI                     @   sV  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 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'm(Z(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dd Z/dd Z0e#dgdd Z1d d! Z2ej34d"e5e6d#fe5d d gd$fe7d%d&fe7d'd(fe7d)d*fe7d+d,ffd-d. Z8e#d/gd0d1 Z9e#d2gddd3d4 Z:e#d5gd6d7 Z;d8d9 Z<d:d; Z=ej3j4d<d=d>gd?d@gdAdBdC Z>dDdE Z?dFdG Z@dHdI ZAdJdK ZBdLdM ZCdNdO ZDej34dPg dQej34dRg dSdTdU ZEe#dVgdWdX ZFe#dYgdZd[ ZGe#d\gd]d^ ZHd_d` ZIe#dagdbdc ZJddde ZKe#dfgdgdh ZLej34dig djdkdl ZMdmdn ZNdodp ZOdqdr ZPe%dsdt ZQe%dudv ZRej34dwg dxdydz ZSe#d{gd|d} ZTe#d~gdd ZUdd ZVdd ZWe"dgddd ZXe#dgdddd ZYej34dg ddd ZZdd Z[dd Z\dd Z]dd Z^e"dgddd Z_dd Z`dd Zadd Zbej34dddggdd Zcdd Zde#dgdddd Zedd Zfej3jge+jhdkdddd Ziej3jge+jhdkdddd Zje#dgdddd Zke#dgdddd Zle%dd Zmdd Zndd Zodd Zpe"dgddd Zqe" ddĄ Zre" ddƄ ZsddȄ Ztddʄ Zudd̄ Zvdd΄ Zwe#dgdgdЍdd҄ Zxe#dgdgdЍddՄ ZydS )    )datetimeN)assert_almost_equal)parse)
MouseEvent)RendererAgg)Figure)FontProperties)GridSpec)check_figures_equalimage_comparison)needs_usetex)Text
Annotation
OffsetFromZ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 )mplZget_data_path)kwproppathr   findfontr   [/var/www/html/Deteccion_Ine/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 SansZFooboldi  )r   r    r!   weightZstretchr"   z	Bold Font)r#   皙?
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_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   
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 alignmentr)   r0   zTpTpTp
$M$
TpTpTp   centertop)r"   havazTpTpTp
$M^{M^{M^{M}}}$
TpTpTpg?zTpTpTp
$M_{q_{q_{q}}}$
TpTpTpr   )	r5   figuresubplot	set_titletextZxlimZylimr9   r:   r<   r   r   r   test_multilinet   s$   

rK   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}||| 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?   r0   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   r@   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leftr)   r#   bottom)horizontalalignmentverticalalignmentg333333?zBottom alignrO   g?rC   z	Top aligng?baselinezBaseline alignrA   )r^   r_   rotationzBot align, rot20)
r5   rcParamsr6   set_xlimset_ylimZaxhlinecanvasget_renderer	enumeraterI   )r;   r<   stsr[   ZhoralnnstrW   r   rY   r   test_multiline2   sH   

	rl   zantialiased.pngc                  C   s   dt jd< tjdd} | jdddddd	d
 | jdddddd	d
 d	t jd< | jddddddd
 | jddddddd
 dt jd< d S )NFtext.antialiased)g      @      ?figsizer,   rn   antialiasedrB   T)r^   r_   rq         ?z
$\sqrt{x}$ffffff?znot antialiased)r   rc   r5   rF   rI   r;   r   r   r   test_antialiasing   s    

ru   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 )NZ	Helveticaafm)ZfontextrbZVAVAVAVAVAVA)g     @i  )r   font_managerr   openZ_afmZAFMZstring_width_height)fnfhrv   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_eventr0   r@   rr   rn      r.   zhello worldrB   )rD   fontsizerb   yellowredor`   )r5   rF   Zaxesr   rf   npZlinspaceZmeshgridrI   drawzipZflatgcarT   rR   xycontainsZviewLimfrozenplotset)r;   r<   ZmeventZxsystxtr   r   r   _rO   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xytext
arrowpropsr}   )r0   r   F)	r5   r6   r7   rf   r   r   Z	transDatarR   r   )r;   r<   anneventr   r   r   test_annotation_contains   s   

r   zerr, xycoords, matchz<xycoords callable must return a BboxBase or Transform, not az,'xycoords' must be an instance of str, tuplefooz'foo' is not a valid coordinatezfoo barz#'foo bar' is not a valid 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   rP   r0   r0   )r   r%   )r5   r6   pytestraisesr7   rf   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 )Nr@   z
left titler\   loczright titleright)r5   rF   rG   rH   r9   r:   rJ   r   r   r   test_titles  s   
r   Z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 | dd | g  | 	g  d S )Nr@   r#   )r   r~   )rC   r]   ra   rB   r0   z TjroundZwheat)boxstyle	facecoloralpha)rE   rb   bboxg      ?z$\sum_{i=0}^{j}$)rE   rb   r   g      ?)
r5   rF   rG   rI   dictr   rd   re   r9   r:   )r<   r   rb   	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 )
Nr@   rB   rA   i  )r   r   Z
fontweightr\      i  r   )r5   rF   rG   rH   rJ   r   r   r   test_axes_titles7  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testrP   figure pixels)r   
textcoords   )r5   r6   r7   rf   r   rU   rZ   Zset_positionr   minZxyann)r;   r<   r   Zinit_posZ	shift_valZpost_posr=   br   r   r   test_set_positionA  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sJ |||d  |d  dksJ d S )Nr#   ? imZiiiimmmmr   gV-?gx&1?r@               
   )r5   rF   rI   Zset_textrU   x1Zx0Z_char_index_at)r;   rI   r   Zsize_iZsize_moriginr   r   r   test_char_index_ata  s&   


""&r   rI   r   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s:J d S )	Nr0   r\   r]   )rD   rE   r   dpi皙?Zrtol)r5   r6   rI   rf   r   r   rU   r   testingassert_allclose
get_points)rI   r;   r<   t1r   Zbbox1Zbbox2r   r   r   test_non_default_dpi{  s   
r   c                   C   s0   t dd dksJ t dd dksJ d S )N
horizontalrb           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   s:   t t tdd W d    d S 1 sw   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   )r   r   r   r   )r   jr   r   r   test_get_rotation_mod360  s   r   rD   )rB   r   r\   rE   )rB   rC   r]   ra   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   )rb   rE   rD   )r0   r0   r   Zrotation_modeanchordefault)
r5   r6   r   rI   rf   r   r   rU   rZ   r   )rD   rE   r;   r<   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?rX   T)ZbackgroundcolorrQ   r0   zIs fancy bbox clipped?rQ   r   zround, pad=0.1)r5   rI   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+ ptsr~   rA   zaxes points    r   r   r   r%   r   - ptsirC   r   r   r   r%   r   rE   + fracrn   r   r$   - frac皙+ pixels      zaxes pixels- pixelsir5   r6   r7   r;   r<   r   r   r   "test_annotation_negative_ax_coords  8   






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      rC   r   r   r   g?zfigure fractionr   r   r0   r   2   r   r   ir/   r   r   r   r   r   #test_annotation_negative_fig_coords  r   r   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 )Nr@   rN   r0   Zaardvarkr   )r5   r6   Zdraw_allstalerI   r7   )r;   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 )Nr@   rN   r   r   Tr   )r   randomseedr5   r6   ZrandrI   )r;   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J d S )Nr   z	font.sizeZlarger"   r/   )r   rc   rx   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|d q+d S )N*   pdf.fonttype)g@g(@ro   r   iX  r   +   rN   r#   r~   z pt font size)r   )r   rc   r5   r6   xaxisZset_major_locatorZNullLocatoryaxisre   rh   rangerI   )r;   r<   r   fsr   r   r   test_font_scaling  s   
r  zspacing1, spacing2))r.   rN   )rN   r.   )rN   rN   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
line2rr   r0   ZlinespacingrY   )	r5   rF   rf   rg   rI   r   rU   widthheight)	Zspacing1Zspacing2Ztext_stringr;   rZ   text1text2Zbox1Zbox2r   r   r   test_two_2line_texts)  s   

r  c                   C   sB   t t tjddddd W d    d S 1 sw   Y  d S )Nrr   r0   r   abcr  )r   r   	TypeErrorr5   rI   r   r   r   r   test_validate_linespacing>     "r  c                  C   s:   t  \} }|dtjd |tjdd | j  d S )Nr   naninf)r5   r6   rI   r   r  r  rf   r   r   r   r   r   test_nonfinite_posC  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 )
Nr@   ztext.hinting_factorr0   z	some textsvgformatpngr#   r   )r5   rc   rF   rI   savefigioBytesIOrU   Z	intervalxr   r   r   )r;   r   expectedr   r   r   test_hinting_factor_backendsJ  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s8J q-q%d S )NFtext.usetexy   Tz   )
r5   rF   rc   add_subplotrf   r   r  
majorTickslabel1Z
get_usetex)r;   r   r   r<   usetexr   r   r   r   test_usetex_is_copiedX  s   




r-  c                  C   s(   t  } | jddddd | j  d S )Nr0   z	$\frac12$Tr,  )r5   rF   rI   rf   r   rt   r   r   r   test_single_artist_usetexg  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&  r0   Z2_2_2Fr.  r  )r5   rc   rF   rI   r!  r"  r#  )r0  r;   r   r   r   test_single_artist_usenotexq  s   
r1  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 )Nrr   cr   r   r   r0   r`   r0   r=   r   rn   r   r   r   r   r@   r   rO   )r5   rF   r   set_axis_offrI   r   r   r   r   test_text_as_path_opacity}  s
   r8  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.fonttyperr   z50% using `color`r3  r`   r0   z50% using `alpha`r4  rn   z"50% using `alpha` and 100% `color`r5  r6  )r   rc   r5   rF   r   r7  rI   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Br@   rN   r0   Boo)r5   r   reprrI   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 )Nr@   
annotationr   r   gư>r   )
r5   r6   r7   rU   rf   rg   Ztight_layoutr   Zallcloser   )r;   r<   ZanZextent1Zextent2r   r   r   test_annotation_update  s   rA  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 )
Nr@   r   r   r0   )datar$   rP   offset points)r%   r   r   )r%   )r)  r   r   nowr7   fig_testfig_refr<   r   r   r   test_annotation_units  s   rI  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 )NrL   rM   zaxes.titleyr@   rN   )	   g      @T)rp   Zconstrained_layoutr   z$\sum_{i} x_i$zNew wayr\   r   g)\(?)r   zOld Way)r5   rc   r6   rH   Zset_xticklabels)r;   Zaxsr<   r   r   r   test_large_subscript_title  s   



rK  zx, rotation, halign))rs   r   r\   )r0   _   r\   )r,   r   r   )r,      r\   c                 C   s`   t jdd}tdd|d}||d }d}|j| d|d||d	}|j  | d
ks.J d S )N)   rN  ro   r   )ZnrowsZncolsrF   r@   r@   z?This is a very long text that should be wrapped multiple times.rs   T)wraprb   rD   z?This is a very long
text that should be
wrapped multiple
times.)r5   rF   r	   Zadd_subfigurerI   rf   r   _get_wrapped_text)r   rb   Zhalignr;   gsZsubfigsrI   r   r   r   	test_wrap  s   
rT  c                  C   sB   t jdd} d}| jdd|ddd}| j  | d	ksJ d S )
NrL   r   ro   z;This is a very $\overline{\mathrm{long}}$ line of Mathtext.r   r0   (   T)r"   rP  z;This is a very $\overline{\mathrm{long}}$
line of Mathtext.r5   rF   rI   rf   r   rQ  )r;   rS  rI   r   r   r   test_mathwrap  s
   
rX  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   ro   z.suptitle that is clearly too long in this caseTrP  z.suptitle that is clearly
too long in this case)r5   rF   ZsuptitleZ	_suptitlerU   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sJ d S )NrU  ro   g      #@r   ZAlonglineoftexttowrapTrY  rW  r;   rI   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 )NrU  ro   r   znon wrapped textTrY  rW  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   r@   u   €r=   wr   )r)  r:   Zset_yticklabelsr  r*  r+  Z	set_colorrF  r   r   r   test_buffer_size  s   ra  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)r5   rF   ZxlabelZylabelget_size)r  r  r   r   r   $test_fontproperties_kwarg_precedence
  s
   re  c                  C   s@   t  } t d}| jddd|dd}| }t|d d S )Nr~   r   r   T)rR   Ztransform_rotates_text)r5   r   mtransformsZAffine2DZ
rotate_degrI   r   r   )r<   rR   rI   resultr   r   r   test_transform_rotates_text  s   rh  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   

rl  rb   zinvalid stringZ   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   "rn  c                   C   sB   t t tjddddd W d    d S 1 sw   Y  d S )Nr0   r   Zfoobar)r2  )r   r   r   r5   figtextr   r   r   r   test_invalid_color.  r  rp  ztext_pdf_kerning.pdfc                   C   s   t   t jddddd d S )Nr#   r0   ZATATATATATATATATATAr~   r  )r5   rF   ro  r   r   r   r   test_pdf_kerning3  s   rq  c                 C   sd   t  }|ddd}|j  tdd | D sJ dd | D d|  d fd	gks0J d S )
Nr0   u   ০c                 s   s    | ]	}t |jtV  qd S N)
isinstancemessager4   .0warnr   r   r   	<genexpr>=  s    z*test_unsupported_script.<locals>.<genexpr>c                 S   s   g | ]}|j jqS r   )rt  argsru  r   r   r   
<listcomp>?  s    z+test_unsupported_script.<locals>.<listcomp>z9Glyph 2534 (\N{BENGALI DIGIT ZERO}) missing from font(s) .)z7Matplotlib currently does not support Bengali natively.)r5   rF   rI   rf   r   allr8   )Zrecwarnr;   r   r   r   r   test_unsupported_script9  s   
r}  )r   r@   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)Z
parse_mathTUnknown symbolr   )r5   r6   rI   rf   r   r   r   r   r   r   r   r   test_parse_mathF  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)
r5   r6   rI   r   r   r   rf   r   r   Z
rc_contextr   r   r   r   test_parse_math_rcparamsS  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  r	  r#   r0   ZATAVATAVATAVATAVATAr~   r  r5   rc   rF   ro  r   r   r   r   test_pdf_font42_kerningc  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  r	  Zstixsanszmathtext.fontsetr#   r0   u   Mass $m$ 𐌈r~   r  r  r   r   r   r   test_pdf_chars_beyond_bmpj  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,   r0   foo
barTr.  c                     s&   | ^}}}}}  |t | d S rr  )
setdefaultr   add)ry  kwargsrZ   r   r   rS  r   r   r   r   call~  s   z test_metrics_cache.<locals>.callr   barr@   )r   rI   Z!_get_text_metrics_with_cache_implcache_clearr5   rF   rf   r   Z_get_rendererZdraw_texlen
cache_infohitsmisses)r;   rZ   r  infor   r  r   test_metrics_cacher  s   

,r  c                     sj   t  \}  ddgddg fddtdD }dd	 |D \}}| j  t|t|ks3J d S )
NrD  zoffset fontsize)r   r   rO  c              
      s*   g | ]} j d d| dd| dqS )r   r   10rC  )r   r   r   r%   r   )r7   )rv  r   r<   Ztext_coordsZxy_textr   r   rz    s    
z1test_annotate_offset_fontsize.<locals>.<listcomp>rN   c                 s   s    | ]}|  V  qd S rr  )rU   )rv  r   r   r   r   rx    s    z0test_annotate_offset_fontsize.<locals>.<genexpr>)r5   r6   r  rf   r   str)r;   ZannsZpoints_coordsZfontsize_coordsr   r  r   test_annotate_offset_fontsize  s   
r  c                  C   s   t ddd} | jtjd ksJ |  tjd ksJ | d | jdu s'J |  | jks0J | d | jdu s<J |  | jksEJ d S )Nr0   r  rm   TF)r   _antialiasedr   rc   get_antialiasedset_antialiased)r   r   r   r   test_get_set_antialiased  s   

r  c                  C   s   t dddd} | jdu sJ |  | jksJ t dddd}|jdu s%J | |jks.J t dddd}|d | du sBJ |jdu sIJ t dd}|jtjd ksXJ d S )Nr  r   Trq   Frm   )r   r  r  r  r   rc   )ZannotZannot2Zannot3Zannot4r   r   r   test_annotation_antialiased  s   

r  c                 C   s   |   }|ddgddg\}tddg}|jdt||ddd d|d d < |  }|ddgddg\}tddg}|jd||dd	d
 d|d d < d S )Nr   rN   r0   r   )r   r   rP   )r   r   r   r@   rD  )r   r%   r   r   )r)  r   r   arrayr7   r   )rG  rH  r<   lZof_xyZan_xyr   r   r   'test_annotate_and_offsetfrom_copy_input  s   r  c                 C   .   | j ddddd dtjd< | ddd d S )Nr0   6 inches x 2 inchesFr  rm   rI   r   rc   rG  rH  r   r   r   +test_text_antialiased_off_default_vs_manual  s
   

r  c                 C   r  )Nr0   r  Tr  rm   r  r  r   r   r   *test_text_antialiased_on_default_vs_manual  s   
r  c                  C   s  t dd} tddd}tdddd}||  tdddd	}||  |j|d
}|j|d
}|j|jks7J |j|jks?J |jd|j	dd\}}}|jd|j	dd\}}}t
||}	| }
|
d dkshJ |
d |jksqJ |
d |	 kszJ |
d |j|	 ksJ d S )Nr/   r   r-   r   rP   r   )r   r%   r   )rI   r   r   rY   rI   F)ZismathZlpr   r@   r   r   r@   rO  )r   r   r   
set_figurer   rU   r  r  Zget_text_width_height_descentZ_fontpropertiesmaxr   )rF   rZ   r@  rI   r   	text_bboxr   dZlp_dZ
below_linepointsr   r   r   &test_text_annotation_get_window_extent  s,   



r  c               
   C   s   d} t jdd\}}|jdddd}|jdddd	d
d| ddd}t   |jj}|j|d}|j|d}|j|}t	|}	|j
|j
d ksJJ |	j|jksRJ |	j
|j
ksZJ tj|	|g}
t|j|
j d S )N   r/   r   r   r   )rS  r   r   r         I@r  r  r   blackrN   r   r   r  	headwidthshrinkr   r   r%   r   rY   r  )r5   r6   rI   r7   r   rf   rZ   rU   Zarrow_patchr   r  r  rf  ZBboxunionr   )r  r;   r<   r   r   rZ   r  r   Z
arrow_bboxZann_txt_bboxZexpected_bboxr   r   r   1test_text_with_arrow_annotation_get_window_extent  s,   
r  c               
   C   s   d} | d }t | d}|d |d tddd}tdddd	d
ddddd}|| || | }| }|j	dksBJ t
|jd|  |d dksRJ |d dd|  ks^J d S )Nr/   H   r          @r-   r   r  r  r   r  r   r   r   r  r  r  g      $@rP   r     )r   set_figwidthset_figheightr   r   r  r   rU   r   r  r   r  )r   Zdots_per_pointrF   rZ   r@  r   r  r   r   r   'test_arrow_annotation_get_window_extent$  s&   




r  c                  C   s   t dd} | d | d tddd}tddddd}||  || | }| }|d	 d
ks7J |d d
ks?J |d dksGJ |d dksOJ d S )Nr/   r   r  r-   r   r  r   )r   r   r%   rP   r   r  rO  r  r  )	r   r  r  r   r   r  r   rU   r   )rF   rZ   r@  r   r  r   r   r   'test_empty_annotation_get_window_extent=  s   




r  Zbasictext_wrap)Zbaseline_imagesrB  c               
   C   s   t  } t g d d}t jdd|dddd t jd	d
|dddd t jd
d
|dddd t jd
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 S )Nr   r   r   r   This is a really long string that I'd rather have wrapped so that it doesn't go outside of the figure, but if it's long enough it will go off the top or bottom!r   r@   r\   r   T)rD   rb   rP  rL   r  r   r   rN  ZobliquerB   rC   )r   r    rD   rE   rP  r   serifr+   )r   r    rD   rP  r   r5   rF   ZaxisrI   r;   r   r   r   r   test_basic_wrapR  s   r  Zfonttext_wrapc               
   C   s   t  } t g d d}t jd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 jdd|ddd	d t jdd|ddddd	d d S )Nr  r  r   r  rN  r  r\   r   T)r   r   rD   rb   rP  rL   r  r*   )r   rD   rb   rP  r   ZheavyrB   rC   )r(   rD   rE   rP  r   Z	monospacer   )r   rD   rP  r   r   r+   r  )r   r    rD   rb   rP  r  r  r   r   r   test_font_wrapc  s   
r  )zr   r"  r2   numpyr   Znumpy.testingr   Zpackaging.versionr   parse_versionZ	pyparsingr   Z
matplotlibr   Zmatplotlib.backend_basesr   Zmatplotlib.backends.backend_aggr   Zmatplotlib.figurer   r1   r   Zmatplotlib.patchesZpatchesrS   Zmatplotlib.pyplotZpyplotr5   Zmatplotlib.gridspecr	   Zmatplotlib.transformsZ
transformsrf  Zmatplotlib.testing.decoratorsr
   r   Zmatplotlib.testing._markersr   Zmatplotlib.textr   r   r   __version__Zpyparsing_versionr>   rK   rl   ru   r|   r   r   markZparametrizer  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/  r1  r8  r:  r?  rA  rI  rK  rT  rX  r[  r]  r_  ra  re  rh  rl  rn  rp  rq  r}  Zxfailreleaser  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r   <module>   s*   

X

3





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

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











#
