o
    i                     @   s  d dl m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mZ d dlmZ d dlmZ eZedgd	d
gdddd Ze dd Ze dd Zdd Zedgdd Zejdg ddd Zejdddgdd Zejd d!d"gd#d$ Zd%d& Z ejj!d'd(ejd)d	d*gd+d, Z"ze	#d-j$ed.k Z%W n e	j&y   d/Z%Y nw ed0gg d1de%rd2nd d3d4d5 Z'dS )6    )TemporaryFileN)parse)dviread)_has_tex_package)check_figures_equalimage_comparison)needs_usetextest_usetexpdfpngmpl20)baseline_images
extensionsstylec                  C   s   dt jd< t \} }ddtddddd	}|jd
i | |jdi | |jdi | |jdi | |jdi | dd |jD D ]}|| qFdd |jD D ]}|| qV|	  d S )NTtext.usetexbaseline   r   knone)padZ	edgecolorZ	facecolor)verticalalignmentsizeZbbox)皙?gffffff?zO\LaTeX\ $\left[\int\limits_e^{2e}\sqrt\frac{\log^3 x}{x}\,\mathrm{d}x \right\}$)r   333333?Zlg)g?r   z$\frac{1}{2}\pi$)g333333?r   z	$p^{3^A}$)g?r   z	$p_{3_2}$c                 S      h | ]}|  d  qS r   Zget_position.0t r    k/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/matplotlib/tests/test_usetex.py	<setcomp>&       ztest_usetex.<locals>.<setcomp>c                 S   r      r   r   r    r    r!   r"   (   r#   )
mplrcParamspltsubplotsdicttextZtextsZaxvlineZaxhlineZset_axis_off)figaxkwargsxyr    r    r!   r	      s"   
c                 C   s   dt jd< | ddd d S )NTr         ?z% a commentr&   r'   r+   Zfig_testZfig_refr    r    r!   
test_empty-   s   
r4   c                 C   s*   dt jd< | ddd |ddd d S )NTr   r1   z$-$u   −r2   r3   r    r    r!   test_unicode_minus3   s   
r5   c                  C   s:   dt jd< t  } |  dd dtjd< | j  d S )NTzaxes.formatter.use_mathtextr%   r   )r(   r'   figureZadd_subplotZset_xlimr&   canvasdraw)r,   r    r    r!   test_mathdefault:   s
   

r:   zeqnarray.pngc                  C   s*   d} t jdd}|jdd| dddd d S )Nz/\begin{eqnarray*}foo\\bar\\baz\\\end{eqnarray*})r%   r%   )Zfigsizer1   Tcenter)usetexhorizontalalignmentr   )r(   r7   r+   )r+   r,   r    r    r!   test_multiline_eqnarrayD   s   
r>   fontsize)   
      c                 C   s   t jd | t jd< i }t }dD ]1}|  |D ]}|jddd| ddd q|j	  t
|j d d	kjd
d ||< qth | d
ksQJ d S )Nr   z	font.size)r$   )r6   )r6   r%   r1   $Tr<   ).r      r%   )Zaxis)r&   r   Zuser'   r(   r7   clearr+   r8   r9   nparrayZbuffer_rgbaanysumlenvalues)r?   Zheightsr,   valsr/   r    r    r!   test_minus_no_descentS   s   

rN   pkgZxcolorZchemformulac                 C   s   t | st|  d dtjd< t }|ddd}|j	  d|  tjd< t }|ddd}|j	  t
j| |  d S )Nz is not availableTr   r1   zSome text 0123456789z8\PassOptionsToPackage{dvipsnames}{xcolor}\usepackage{%s}text.latex.preamble)r   pytestskipr&   r'   r(   r7   r+   r8   r9   rG   testingZassert_array_equalZget_window_extent)rO   r,   r+   Ztext2r    r    r!   test_usetex_packagesg   s   


rT   preamblez\usepackage[full]{textcomp}z\usepackage{underscore}c                 C   s2   | t jd< t  }|jddddd |j  d S )NrP   r1   zhello, worldTrD   )r(   r'   r7   r+   r8   r9   )rU   r,   r    r    r!   test_latex_pkg_already_loadedz   s   
rV   c                  C   sh   dt jd< tdd d d tdd} t  \}}|jdd| d |  |jd	d	d
dd t   d S )NTr      r6   )a_bcrY   rX   )datar   Zfoo_barrD   )r(   r'   ranger)   plotZlegendr+   r9   )Zdfr,   r-   r    r    r!   test_usetex_with_underscore   s   
r]      )Zrerunsfmtsvgc              	   C   s   | tjddd  dtjd< t \}}|ddd t -}t	
t |j|| d W d	   n1 s7w   Y  W d	   d	S W d	   d	S 1 sOw   Y  d	S )
z:An error is raised if a TeX font lacks a Type-1 equivalent__getitem__c                 S   s   t jddd d d dS )Ns   texfonts	   Some Font)ZtexnameZpsnameZeffectsencodingfilename)r   ZPsFont)selfr   r    r    r!   <lambda>   s    z%test_missing_psfont.<locals>.<lambda>Tr   r1   Zhello)formatN)setattrr   Z
PsfontsMapr&   r'   r(   r)   r+   r   rQ   Zraises
ValueErrorZsavefig)r_   Zmonkeypatchr,   r-   Ztmpfiler    r    r!   test_missing_psfont   s   
Pri   gsz9.55Trotation)Zepsr
   r   r`   gHzG@)r   r   r   Ztolc                  C   s  dt jd< t } | g d}|jddgg ddgg dd d	d
 dD }d|d< d|d< tg dD ]P\}}tg dD ]E\}}tg dD ]:\}}|d }||d  }	||d  }
|j|	|
dd| ddd |j|	|
d||  ||  d| d|||d qGq=q3d S )NTr   )r   r   r%   r%   g      rW   r^   F)ZxlimZxticksZylimZyticksZframe_onc                 S   s   i | ]}||d  qS r   r    )r   valr    r    r!   
<dictcomp>   s    z!test_rotation.<locals>.<dictcomp>)topr;   bottomleftrightBr   Ccenter_baseline)rn   r;   ro   r   rt   )rp   r;   rq   )r   Z      i     +   r1   )rY   Z
markersizeZmarkeredgewidthz$\mathrm{My  z}$)rk   r=   r   )	r&   r'   r(   r7   Zadd_axesset	enumerater\   r+   )r,   r-   r+   ivajZhar   Zangler/   r0   r    r    r!   test_rotation   s(   
$r   )(tempfiler   numpyrG   Zpackaging.versionr   parse_versionrQ   Z
matplotlibr&   r   Zmatplotlib.testingr   Zmatplotlib.testing.decoratorsr   r   Zmatplotlib.testing._markersr   Zmatplotlib.pyplotZpyplotr(   Z
pytestmarkr	   r4   r5   r:   r>   markZparametrizerN   rT   rV   r]   Zflakyri   Z_get_executable_infoversionZ_old_gs_versionZExecutableNotFoundErrorr   r    r    r    r!   <module>   s\    








