U
    Fv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   ©Úget_position©Ú.0Út© r#   ú@/tmp/pip-unpacked-wheel-7vhvci0g/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    
r6   c                 C   s*   dt jd< |  ddd¡ | ddd¡ d S )NTr   r3   z$-$u   âˆ’r4   r5   r#   r#   r$   Útest_unicode_minus2   s    
r7   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figsizer3   TÚcenter)ÚusetexZhorizontalalignmentr   )r*   r9   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&   )r8   )r8   r'   r3   ú$T©r>   ).r   éÿ   r'   )Zaxis)r(   r   Zuser)   r*   r9   Úclearr-   r:   r;   ÚnpÚarrayZbuffer_rgbaÚanyÚsumÚlenÚvaluesÚAssertionError)r@   Zheightsr.   Úvalsr1   r#   r#   r$   Útest_minus_no_descentR   s    

ÿrP   Ú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   r3   zSome text 0123456789z8\PassOptionsToPackage{dvipsnames}{xcolor}\usepackage{%s}útext.latex.preamble)r   ÚpytestÚskipr(   r)   r*   r9   r-   r:   r;   rH   ZtestingZassert_array_equalZget_window_extent)rQ   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 )NrR   r3   zhello, worldTrE   )r*   r)   r9   r-   r:   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   é   r8   )Úa_bÚcrZ   rY   )Údatar   Zfoo_barrE   )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   r3   Zhello)ÚformatN)Úsetattrr   Z
PsfontsMapr(   r)   r*   r+   r-   r   rS   ZraisesÚ
ValueErrorZsavefig)r_   Zmonkeypatchr.   r/   Ztmpfiler#   r#   r$   Útest_missing_psfontŽ   s     þ
ri   ) Útempfiler   ZnumpyrH   rS   Z
matplotlibr(   r   Zmatplotlib.testingr   Zmatplotlib.testing.decoratorsr   r   Zmatplotlib.testing._markersr   Zmatplotlib.pyplotZpyplotr*   Z
pytestmarkr   r6   r7   r<   r?   ÚmarkZparametrizerP   rU   rW   r]   Zflakyri   r#   r#   r#   r$   Ú<module>   sF   ý






þ

