U
    ÙfÞ  ã                   @   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dddg¡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_usetexZpdfZpngÚmpl20)Zbaseline_imagesÚ
extensionsÚstylec                  C   s´   dt jd< t ¡ \} }ddtddddd	œ}|jd|Ž |jd|Ž |jd|Ž |jd|Ž |jd|Ž dd„ |jD ƒD ]}| |¡ qxdd„ |jD ƒD ]}| |¡ q˜| 	¡  d S )NTútext.usetexZbaselineé   r   ÚkÚnone)ÚpadZ	edgecolorZ	facecolor)ÚverticalalignmentÚsizeZbboxçš™™™™™É?çffffffæ?úO\LaTeX\ $\left[\int\limits_e^{2e}\sqrt\frac{\log^3 x}{x}\,\mathrm{d}x \right\}$ç333333Ó?Úlgçš™™™™™Ù?ú$\frac{1}{2}\pi$ç333333ã?ú	$p^{3^A}$çš™™™™™é?ú	$p_{3_2}$c                 S   s   h | ]}|  ¡ d  ’qS )r   ©Zget_position©Ú.0Út© r"   úC/tmp/pip-target-lpfmz8o1/lib/python/matplotlib/tests/test_usetex.pyÚ	<setcomp>%   s     ztest_usetex.<locals>.<setcomp>c                 S   s   h | ]}|  ¡ d  ’qS ©é   r   r   r"   r"   r#   r$   '   s     )r   r   r   )r   r   r   )r   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    
r5   c                 C   s*   dt jd< |  ddd¡ | ddd¡ d S )NTr   r2   z$-$u   âˆ’r3   r4   r"   r"   r#   Útest_unicode_minus2   s    
r6   c                  C   s:   dt jd< t  ¡ } |  ¡  dd¡ dtjd< | j ¡  d S )NTzaxes.formatter.use_mathtextéÿÿÿÿr&   r   )r)   r(   ÚfigureZadd_subplotZset_xlimr'   ÚcanvasÚdraw)r-   r"   r"   r#   Útest_mathdefault9   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figsizer2   TÚcenter)ÚusetexZhorizontalalignmentr   )r)   r8   r,   )r,   r-   r"   r"   r#   Útest_multiline_eqnarrayC   s    ÿ ÿr>   Úfontsizeé   é
   é   c                 C   s¤   t j d¡ | t jd< i }t ¡ }dD ]b}| ¡  |D ]}|jddd|› ddd q6|j 	¡  t
 |j ¡ ¡d d	kjd
d ¡ ||< q&t| ¡ ™ƒd
ks t‚d S )Nr	   z	font.size)r%   )r7   )r7   r&   r2   ú$T©r=   ).r   éÿ   r&   )Zaxis)r'   r   Zuser(   r)   r8   Úclearr,   r9   r:   ÚnpÚarrayZbuffer_rgbaÚanyÚsumÚlenÚvaluesÚAssertionError)r?   Zheightsr-   Úvalsr0   r"   r"   r#   Útest_minus_no_descentR   s    

ÿrO   Ú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   r2   zSome text 0123456789z8\PassOptionsToPackage{dvipsnames}{xcolor}\usepackage{%s}útext.latex.preamble)r   ÚpytestÚskipr'   r(   r)   r8   r,   r9   r:   rG   ÚtestingZassert_array_equalZget_window_extent)rP   r-   r,   Ztext2r"   r"   r#   Útest_usetex_packagesf   s    

ÿ
ÿrU   Úpreamblez\usepackage[full]{textcomp}z\usepackage{underscore}c                 C   s2   | t jd< t  ¡ }|jddddd |j ¡  d S )NrQ   r2   zhello, worldTrD   )r)   r(   r8   r,   r9   r:   )rV   r-   r"   r"   r#   Útest_latex_pkg_already_loadedy   s    
rW   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   é   r7   )Úa_bÚcrZ   rY   )Údatar   Zfoo_barrD   )r)   r(   Úranger*   ZplotZlegendr,   r:   )Zdfr-   r.   r"   r"   r#   Útest_usetex_with_underscore„   s    
r]   é   )ZrerunsÚfmtÚsvgc              
   C   sr   |  tjddd„ ¡ dtjd< t ¡ \}}| ddd¡ tƒ *}t	 
t¡ |j|| d W 5 Q R X W 5 Q R X 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   r2   Zhello)ÚformatN)Úsetattrr   Z
PsfontsMapr'   r(   r)   r*   r,   r   rR   ZraisesÚ
ValueErrorZsavefig)r_   Zmonkeypatchr-   r.   Ztmpfiler"   r"   r#   Útest_missing_psfontŽ   s     þ
ri   ) Útempfiler   ÚnumpyrG   rR   Z
matplotlibr'   r   Zmatplotlib.testingr   Zmatplotlib.testing.decoratorsr   r   Zmatplotlib.testing._markersr   Zmatplotlib.pyplotZpyplotr)   Z
pytestmarkr   r5   r6   r;   r>   ÚmarkZparametrizerO   rU   rW   r]   Zflakyri   r"   r"   r"   r#   Ú<module>   sF   ý






þ

