U
    d»{jº$  ã                   @   sj  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
mZ d dlmZ d dlmZ d dlmZ d dlmZmZ d d	lmZmZ d dlZd dlm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dddddddg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d0d1„ ƒZ(ed2gƒd3d4„ ƒZ)ed5gƒd6d7„ ƒZ*ed8gƒd9d:„ ƒZ+edgd;�d<d=„ ƒZ,ed>d?„ ƒZ-ed@gdAdB�dCdD„ ƒZ.ej dEdFdGg¡dHdI„ ƒZ/dJdK„ Z0dLdM„ Z1edNgdOdP�dQdR„ ƒZ2edSgdTdP�dUdV„ ƒZ3dS )Wé    )ÚCounter)ÚPathN)ÚcbookÚpatheffectsÚfont_manager)ÚMatplotlibDeprecationWarning)ÚFigure)ÚEllipse)Úneeds_ghostscriptÚneeds_usetex)Úcheck_figures_equalÚimage_comparisoné   )ZrerunsÚorientationZportraitZ	landscapezformat, use_log, rcParamsÚpsFúps.usedistillerZghostscriptZxpdfútext.usetexTÚepsú	ps.useafmzps with distiller=ghostscriptzps with distiller=xpdfzps with usetexzeps afmzeps with usetex)Zidsc                 C   sˆ  t j |¡ t ¡ \}}t ¡ ��\}t ¡ ��F}|r>| d¡ | 	ddgddg¡ d}t jd sh|d7 }| 
|¡ g }	| d¡rŒ|	 t j¡ | d¡r |	 t¡ | d¡r´|	 t¡ z$|j|| |d	� |j|| |d	� W n6 t|	ƒk
�r }
 zt t|
ƒ¡ W 5 d }
~
X Y nX |j�rt‚|j�r(t‚| ¡  d
¡}| ¡ }t dd|¡}t dd|¡}|| dd¡k�spt‚W 5 Q R X W 5 Q R X 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ÚplotÚ	set_titleÚgetÚappendZExecutableNotFoundErrorÚRuntimeErrorr   ÚsavefigÚtupleÚpytestÚskipÚstrÚclosedÚAssertionErrorÚgetvalueÚencodeÚreÚsubÚreplace)r   Zuse_logr   r   ÚfigÚaxZs_bufZb_bufÚtitleZallowable_exceptionsÚexcZs_valZb_val© r9   ú_/var/www/html/bwave/python/venv/lib/python3.8/site-packages/matplotlib/tests/test_backend_ps.pyÚtest_savefig_to_stringio   s:    







 r;   c               	   C   sX   t jddd�gtjd< t ¡ \} }| dddg¡ t ¡ �}| j	|dd	� W 5 Q R X d S )
Né   Úw)Ú	linewidthÚ
foregroundzpath.effectsr   r   r   r   ©r   )
r   Z
withStroker   r   r   r    r$   r!   r#   r)   )r5   r6   r   r9   r9   r:   Útest_patheffectsQ   s    ÿ

rA   c              	   C   sl   t | dƒ}| ¡  tjtt|ƒd��> dtjd< t 	ddddg¡ t 
d	¡ tj|d
 dd� W 5 Q R X d S )Nzshort-1)ÚtempdirTr   r   r   r   r<   z\textbf{time} (s)ztex_demo.epsr   r@   )r   Úmkdirr   Z_setattr_cmÚtempfiler-   r   r   r   r$   Úxlabelr)   )ZtmpdirZbase_tempdirr9   r9   r:   Útest_tilde_in_tempfilenameZ   s    


rF   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©ÚcolorÚalphaç      à?Úfoo)r   r    Úset_axis_offr$   Útext©r5   r6   r9   r9   r:   Útest_transparencym   s    rP   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   rG   rH   rK   rL   )r   r   r   r    rM   r$   rN   rO   r9   r9   r:   Útest_transparency_texu   s
    
rQ   c               	   C   s´   t  ¡ \} }t ¡ �}| j|dd� | ¡ }W 5 Q R X t d|tj¡}|sNt	‚t d|tj¡}|sft	‚t
ddƒD ]>}d| |¡ks†t	‚t| |¡ƒt t| |¡ƒd¡kspt	‚qpd S )Nr   r@   s$   ^%%BoundingBox: (.+) (.+) (.+) (.+)$s)   ^%%HiResBoundingBox: (.+) (.+) (.+) (.+)$r   é   ó   .)r   r    r!   r#   r)   r0   r2   ÚsearchÚ	MULTILINEr/   ÚrangeÚgroupÚintr+   ZapproxÚfloat)r5   r6   ÚbufZbbZhibbÚir9   r9   r:   Ú	test_bbox   s    
ÿr\   c                	   C   s@   dt jd< t d¡ t t¡� tjt 	¡ dd� W 5 Q R X dS )z"Test failing latex subprocess callTr   z$22_2_2$r   r@   N)
r   r   r   rE   r+   Zraisesr(   r)   r!   r#   r9   r9   r9   r:   Útest_failing_latex‘   s    

r]   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
| ¡ ksXt‚d S )NÚWARNINGgš™™™™™¹?rL   T)Zusetexçš™™™™™É?Úbarr   r@   zas if usetex=False)	Z	set_levelr   Úfigtextr)   r!   r#   ÚrecordsÚ
getMessager/   )ÚcaplogÚrecordr9   r9   r:   Útest_partial_usetex›   s    
rf   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.preamblerK   rL   r   r@   )r   r   r   r   ra   r)   r!   r#   )rd   r9   r9   r:   Útest_usetex_preamble¥   s    ýrg   z
useafm.epsc                  C   s:   dt jd< t ¡ \} }| ¡  | d¡ | ddd¡ d S )NTr   rK   Zqk)r   r   r   r    rM   ZaxhlinerN   rO   r9   r9   r:   Útest_useafm°   s
    

rh   z	type3.epsc                   C   s   t  ddd¡ d S )NrK   zI/J)r   ra   r9   r9   r9   r:   Útest_type3_font¹   s    ri   zcoloredhatcheszerolw.epsc                  C   sh   t  ¡ } |  tdddddddd�¡ |  tdd	d	d
dddd�¡ |  tdddddddd�¡ |  ¡  d S )N)r   r   r   ú/ÚnonerG   r   )ZhatchZ	facecolorZ	edgecolorr>   )rK   rK   rK   ú+Úgr_   )r   r   g333333Ó?gš™™™™™é?ú\Úb)r   ZgcaZ	add_patchr	   rM   )r6   r9   r9   r:   Ú!test_colored_hatch_zero_linewidth¾   s     ÿ ÿ ÿrp   )Ú
extensionsc                 C   s*   |   ¡ }|jddd| jdd� |  ¡  d S )Nr   ZhelloT)Z	transformZclip_on)Zadd_subplotrN   ZtransFigure)Zfig_testZfig_refr6   r9   r9   r:   Útest_text_clipÊ   s    rr   c                 C   s>   t  ¡ }| ddd¡ | d }| |¡ tjjj|dd� d S )NrK   Údefztest.epsF)Úcache)r   ÚfigurerN   r)   r   ZtestingÚcompareÚconvert)Ztmp_pathr5   Úoutr9   r9   r:   Útest_d_glyphÒ   s
    
ry   ztype42_without_prep.epsZmpl20)Ústylec                   C   s&   dt jd< dt jd< t ddd¡ d S )Né*   úps.fonttypeZstixzmathtext.fontsetrK   zMass $m$)r   r   r   ra   r9   r9   r9   r:   Útest_type42_font_without_prepÝ   s    

r}   ÚfonttypeÚ3Z42c                 C   sl   | t jd< t ¡ \}}| ddd¡ t ¡ }|j|dd� dt| › dd	� d
 }t	 
|| ¡ t	j¡sht‚d S )Nr|   g      Ð?rK   z&Forty-two is the answer to everything!r   r@   s
   /FontType zutf-8)Úencodings    def)r   r   r   r    rN   r!   r#   r)   Úbytesr2   rT   r0   rU   r/   )r~   r5   r6   rZ   Útestr9   r9   r:   Útest_fonttypeæ   s    
rƒ   c                  C   sH   t  ¡ \} }|jddgdd� t ¡ }| j|dd� | ¡ dksDt‚dS )z-Test that dashed lines do not break PS outputr   r   z--)Z	linestyler   r@   N)r   r    r$   r!   r#   r)   Útellr/   )r5   r6   rZ   r9   r9   r:   Útest_linedashõ   s
    r…   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s˜t‚d S )Nr<   Zpolar)Z
projection)Z
subplot_kw)ZxticksZyticksr   r   zhello, worldr   r@   r   c                 S   s$   g | ]}|  d ¡r| d¡d ‘qS )rj   ú r   )Ú
startswithÚ	partition)Ú.0Úlnr9   r9   r:   Ú
<listcomp>  s   
þz0test_no_duplicate_definition.<locals>.<listcomp>)r   r    ÚdictZflatÚsetr$   Zsuptitler!   r"   r)   ÚseekÚ	readlinesÚmaxr   Úvaluesr/   )r5   Zaxsr6   rZ   Zwdsr9   r9   r:   Útest_no_duplicate_definition  s    


ÿr’   zmulti_font_type3.epsgR¸…ëQà?)Ztolc                  C   sh   t jdgd�} tt  | ¡ƒjdkr,t d¡ tjdddgdd� tjd	d
d� t 	¡ }| 
ddd¡ d S )NúWenQuanYi Zen Hei©Úfamilyúwqy-zenhei.ttcúFont may be missingÚfontúDejaVu Sansé   ©r•   Úsizer   r   ©r~   ç333333Ã?çffffffÞ?õ"   There are å‡ ä¸ªæ±‰å­— in between!©ÚfmZFontPropertiesr   ZfindfontÚnamer+   r,   r   Úrcru   rN   ©Úfpr5   r9   r9   r:   Útest_multi_font_type3  s    
r§   zmulti_font_type42.epsgš™™™™™ù?c                  C   sh   t jdgd�} tt  | ¡ƒjdkr,t d¡ tjdddgdd� tjd	d
d� t 	¡ }| 
ddd¡ d S )Nr“   r”   r–   r—   r˜   r™   rš   r›   r   r{   r�   rž   rŸ   r    r¡   r¥   r9   r9   r:   Útest_multi_font_type42"  s    
r¨   )4Úcollectionsr   Úpathlibr   r!   r2   rD   r+   Z
matplotlibr   r   r   r¢   Zmatplotlib._apir   Zmatplotlib.figurer   Zmatplotlib.patchesr	   Zmatplotlib.testing._markersr
   r   Zmatplotlib.testing.decoratorsr   r   r   Zmatplotlib.pyplotZpyplotr   ÚmarkZflakyZparametrizer;   rA   rF   rP   rQ   r\   r]   rf   rg   rh   ri   rp   rr   ry   r}   rƒ   r…   r’   r§   r¨   r9   r9   r9   r:   Ú<module>   sŒ   ù	ùø*	

	
	











