o
    li                     @   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
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dS ),    )TemporaryFileN)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)pad	edgecolor	facecolor)verticalalignmentsizebbox)皙?gffffff?zO\LaTeX\ $\left[\int\limits_e^{2e}\sqrt\frac{\log^3 x}{x}\,\mathrm{d}x \right\}$)r   333333?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   get_position.0t r#   Z/home/ubuntu/SoloSpeech/.venv/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texttextsaxvlineaxhline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.   fig_testfig_refr#   r#   r$   
test_empty,   s   
r=   c                 C   s*   dt jd< | ddd |ddd d S )NTr   r8   z$-$u   −r9   r:   r#   r#   r$   test_unicode_minus2   s   
r>   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*   figureadd_subplotset_xlimr)   canvasdraw)r3   r#   r#   r$   test_mathdefault9   s
   

rE   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(   )figsizer8   Tcenter)usetexhorizontalalignmentr   )r+   r@   r.   )r.   r3   r#   r#   r$   test_multiline_eqnarrayC   s   
rJ   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'   )r?   )r?   r(   r8   $TrH   ).r      r(   )axis)r)   r   user*   r+   r@   clearr.   rC   rD   nparraybuffer_rgbaanysumlenvalues)rK   heightsr3   valsr6   r#   r#   r$   test_minus_no_descentR   s   

r^   pkgxcolor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   r8   zSome text 0123456789z8\PassOptionsToPackage{dvipsnames}{xcolor}\usepackage{%s}text.latex.preamble)r   pytestskipr)   r*   r+   r@   r.   rC   rD   rU   testingassert_array_equalget_window_extent)r_   r3   r.   text2r#   r#   r$   test_usetex_packagesf   s   


ri   preamblez\usepackage[full]{textcomp}z\usepackage{underscore}c                 C   s2   | t jd< t  }|jddddd |j  d S )Nrb   r8   zhello, worldTrP   )r+   r*   r@   r.   rC   rD   )rj   r3   r#   r#   r$   test_latex_pkg_already_loadedy   s   
rk   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      r?   )a_bcrn   rm   )datar   foo_barrP   )r+   r*   ranger,   plotlegendr.   rD   )dfr3   r4   r#   r#   r$   test_usetex_with_underscore   s   
ru      )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)texnamepsnameeffectsencodingfilename)r   PsFont)selfr   r#   r#   r$   <lambda>   s    z%test_missing_psfont.<locals>.<lambda>Tr   r8   hello)formatN)setattrr   
PsfontsMapr)   r*   r+   r,   r.   r   rc   raises
ValueErrorsavefig)rx   monkeypatchr3   r4   tmpfiler#   r#   r$   test_missing_psfont   s   
Pr   ) tempfiler   numpyrU   rc   
matplotlibr)   r   matplotlib.testingr   matplotlib.testing.decoratorsr   r   matplotlib.testing._markersr   matplotlib.pyplotpyplotr+   
pytestmarkr   r=   r>   rE   rJ   markparametrizer^   ri   rk   ru   flakyr   r#   r#   r#   r$   <module>   sH    




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