o
    ¡:´aà  ã                   @   s4  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Zd dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZmZ d dlZd dlmZ ejjdejjjvd	d
Zejje d¡ dd
Zejjddej dddg¡ejjdddi fddddifddddifddddifddi fddddifddddifgg d¢ddd„ ƒƒƒZ dd„ Z!eed d!„ ƒƒZ"ed"gƒd#d$„ ƒZ#eed"gƒd%d&„ ƒƒZ$d'd(„ Z%ed)d*„ ƒZ&ed+d,„ ƒZ'ed-d.„ ƒZ(ed/gƒd0d1„ ƒZ)ed2gƒd3d4„ ƒZ*edgd5d6d7„ ƒZ+ed8d9„ ƒZ,ed:gd;d<d=d>„ ƒZ-ej d?d@dAg¡dBdC„ ƒZ.dDdE„ Z/dFdG„ Z0dS )Hé    )ÚCounter)ÚPathN)ÚcbookÚpatheffects)ÚMatplotlibDeprecationWarning)ÚFigure)Úcheck_figures_equalÚimage_comparisonÚepsz*This test needs a ghostscript installation)ÚreasonTz"This test needs a TeX installationé   )ZrerunsÚorientationZportraitZ	landscapezformat, use_log, rcParamsÚpsFúps.usedistillerZghostscriptZxpdfútext.usetexú	ps.useafm)r   zps with distiller=ghostscriptzps with distiller=xpdfzps with usetexr
   zeps afmzeps with usetex)Zidsc                 C   s¸  t j |¡ t ¡ \}}t ¡ Â}t ¡ ¥}|r| d¡ | 	ddgddg¡ d}t jd s2|d7 }| 
|¡ g }	| d¡rD|	 t j¡ | d¡rN|	 t¡ | d¡rX|	 t¡ z|j|| |d	 |j|| |d	 W n t|	ƒy… }
 zt t|
ƒ¡ W Y d }
~
nd }
~
ww |jr‹J ‚|jrJ ‚| ¡  d
¡}| ¡ }t dd|¡}t dd|¡}|| dd¡ks³J ‚W d   ƒ n1 s½w   Y  W d   ƒ d S W d   ƒ d S 1 sÕw   Y  d S )NÚlogé   é   u	   DÃ©jÃ  vur   u    âˆ’â‚¬r   r   )Úformatr   Úasciis   (?<=
%%CreationDate: ).*ó    s   
ó   
)ÚmplÚrcParamsÚupdateÚpltÚsubplotsÚioÚStringIOÚBytesIOZ
set_yscaleÚplotZ	set_titleÚgetÚappendZExecutableNotFoundErrorÚRuntimeErrorr   ÚsavefigÚtupleÚpytestÚskipÚstrÚclosedÚgetvalueÚencodeÚreÚsubÚreplace)r   Zuse_logr   r   ÚfigÚaxZs_bufZb_bufÚtitleZallowable_exceptionsÚexcZs_valZb_val© r4   úB/usr/lib/python3/dist-packages/matplotlib/tests/test_backend_ps.pyÚtest_savefig_to_stringio   s@   







€ÿ

PÞr6   c                  C   sl   t jdddgtjd< t ¡ \} }| g d¢¡ t ¡ }| j	|dd W d   ƒ d S 1 s/w   Y  d S )Né   Úw)Z	linewidthZ
foregroundzpath.effects)r   r   r   r   ©r   )
r   Z
withStroker   r   r   r   r!   r   r    r%   )r0   r1   r   r4   r4   r5   Útest_patheffectsV   s   
ÿ
"ÿr:   c                 C   s~   t | dƒ}| ¡  tjtt|ƒd# dtjd< t 	g d¢¡ t 
d¡ tj|d dd	 W d   ƒ d S 1 s8w   Y  d S )
Nzshort-1)ZtempdirTr   )r   r   r   r7   z\textbf{time} (s)ztex_demo.epsr   r9   )r   Úmkdirr   Z_setattr_cmÚtempfiler)   r   r   r   r!   Úxlabelr%   )ZtmpdirZbase_tempdirr4   r4   r5   Útest_tilde_in_tempfilename_   s   


"úr>   z	empty.epsc                  C   s@   t  ¡ \} }| ¡  |jddgddd |jdddddd d S )Nr   r   Úr©ZcolorZalphaç      à?Úfoo)r   r   Úset_axis_offr!   Útext©r0   r1   r4   r4   r5   Útest_transparencyr   s   rF   c                  C   sJ   dt jd< t ¡ \} }| ¡  |jddgddd |jdddddd d S )	NTr   r   r   r?   r@   rA   rB   )r   r   r   r   rC   r!   rD   rE   r4   r4   r5   Útest_transparency_texz   s
   
rG   c                  C   sÈ   t  ¡ \} }t ¡ }| j|dd | ¡ }W d   ƒ n1 s w   Y  t d|tj¡}|s1J ‚t d|tj¡}|s=J ‚t	ddƒD ]}d| 
|¡vsMJ ‚t| 
|¡ƒt t| 
|¡ƒd¡ksaJ ‚qBd S )Nr
   r9   s$   ^%%BoundingBox: (.+) (.+) (.+) (.+)$s)   ^%%HiResBoundingBox: (.+) (.+) (.+) (.+)$r   é   ó   .)r   r   r   r    r%   r+   r-   ÚsearchÚ	MULTILINEÚrangeÚgroupÚintr'   ZapproxÚfloat)r0   r1   ÚbufZbbZhibbÚir4   r4   r5   Ú	test_bbox„   s   

þÿ*ýrR   c                   C   sV   dt jd< t d¡ t t¡ tjt 	¡ dd W d  ƒ dS 1 s$w   Y  dS )z"Test failing latex subprocess callTr   z$22_2_2$r   r9   N)
r   r   r   r=   r'   Zraisesr$   r%   r   r    r4   r4   r4   r5   Útest_failing_latex–   s
   

"ÿrS   c                 C   s\   |   d¡ tjddddd tjddddd tjt ¡ dd	 | j\}d
| ¡ v s,J ‚d S )NZWARNINGgš™™™™™¹?rB   T)Zusetexgš™™™™™É?Zbarr   r9   zas if usetex=False)Z	set_levelr   Úfigtextr%   r   r    ZrecordsZ
getMessage)ÚcaplogÚrecordr4   r4   r5   Útest_partial_usetex    s   
rW   c                 C   s6   t j dddœ¡ t ddd¡ tjt ¡ dd d S )NTz$\usepackage{color,graphicx,textcomp})r   ztext.latex.preamblerA   rB   r   r9   )r   r   r   r   rT   r%   r   r    )rU   r4   r4   r5   Útest_usetex_preambleª   s   ýrX   z
useafm.epsc                  C   s:   dt jd< t ¡ \} }| ¡  | d¡ | ddd¡ d S )NTr   rA   Zqk)r   r   r   r   rC   ZaxhlinerD   rE   r4   r4   r5   Útest_useafmµ   s
   

rY   z	type3.epsc                   C   s   t  ddd¡ d S )NrA   zI/J)r   rT   r4   r4   r4   r5   Útest_type3_font¾   s   rZ   )Ú
extensionsc                 C   s*   |   ¡ }|jddd| jdd |  ¡  d S )Nr   ZhelloT)Z	transformZclip_on)Zadd_subplotrD   ZtransFigure)Zfig_testZfig_refr1   r4   r4   r5   Útest_text_clipÃ   s   r\   c                 C   s>   t  ¡ }| ddd¡ | d }| |¡ tjjj|dd d S )NrA   Údefztest.epsF)Úcache)r   ZfigurerD   r%   r   ÚtestingÚcompareZconvert)Ztmp_pathr0   Úoutr4   r4   r5   Útest_d_glyphË   s
   
rb   ztype42_without_prep.epsZmpl20)Zstylec                   C   s&   dt jd< dt jd< t ddd¡ d S )Né*   úps.fonttypeZstixzmathtext.fontsetrA   zMass $m$)r   r   r   rT   r4   r4   r4   r5   Útest_type42_font_without_prepÖ   s   

re   ÚfonttypeÚ3Z42c                 C   sl   | t jd< t ¡ \}}| ddd¡ t ¡ }|j|dd dt| › dd	 d
 }t	 
|| ¡ t	j¡s4J ‚d S )Nrd   g      Ð?rA   z&Forty-two is the answer to everything!r   r9   s
   /FontType zutf-8)Úencodings    def)r   r   r   r   rD   r   r    r%   Úbytesr-   rJ   r+   rK   )rf   r0   r1   rP   Útestr4   r4   r5   Útest_fonttypeß   s   
rk   c                  C   sH   t  ¡ \} }|jddgdd t ¡ }| j|dd | ¡ dks"J ‚dS )z-Test that dashed lines do not break PS outputr   r   z--)Z	linestyler   r9   N)r   r   r!   r   r    r%   Útell)r0   r1   rP   r4   r4   r5   Útest_linedashî   s
   rm   c                  C   sœ   t ƒ } | jddtddd}|jD ]}|jg g d | ddg¡ q|  d¡ t ¡ }| j	|d	d
 | 
d¡ dd„ | ¡ D ƒ}tt|ƒ ¡ ƒdksLJ ‚d S )Nr7   Zpolar)Z
projection)Z
subplot_kw)ZxticksZyticksr   r   zhello, worldr
   r9   r   c                 S   s$   g | ]}|  d ¡r| d¡d ‘qS )ú/ú r   )Ú
startswithÚ	partition)Ú.0Zlnr4   r4   r5   Ú
<listcomp>  s    þz0test_no_duplicate_definition.<locals>.<listcomp>)r   r   ÚdictZflatÚsetr!   Zsuptitler   r   r%   ÚseekÚ	readlinesÚmaxr   Úvalues)r0   Zaxsr1   rP   Zwdsr4   r4   r5   Útest_no_duplicate_definitionú   s   


ÿrz   )1Úcollectionsr   Zpathlibr   r   r-   r<   r'   Z
matplotlibr   r   Zmatplotlib.cbookr   Zmatplotlib.figurer   Zmatplotlib.testing.decoratorsr   r	   r   Zmatplotlib.pyplotZpyplotr   ZmarkZskipifr_   r`   Z	converterZneeds_ghostscriptZcheckdep_usetexZneeds_usetexZflakyZparametrizer6   r:   r>   rF   rG   rR   rS   rW   rX   rY   rZ   r\   rb   re   rk   rm   rz   r4   r4   r4   r5   Ú<module>   s€    þ
þùø*	

	
	









