a
    ëÝEbà  ã                   @   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)Úidsc                 C   s¶  t j |¡ t ¡ \}}t ¡ ��~}t ¡ ��R}|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 n8 t|	ƒ�y }
 zt t|
ƒ¡ W Y d }
~
n
d }
~
0 0 |j�rJ ‚|j�r*J ‚| ¡  d
¡}| ¡ }t dd|¡}t dd|¡}|| dd¡k�srJ ‚W d   ƒ n1 �sˆ0    Y  W d   ƒ n1 �s¨0    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ÚplotÚ	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© r6   ú`/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/matplotlib/tests/test_backend_ps.pyÚtest_savefig_to_stringio   s:    







$r8   c                  C   sj   t jddd�gtjd< t ¡ \} }| g d¢¡ t ¡ �}| j	|dd� W d   ƒ n1 s\0    Y  d S )Né   Úw)Z	linewidthÚ
foregroundzpath.effects)r   r   r   r   ©r   )
r   Z
withStroker   r   r   r   r"   r   r!   r'   )r2   r3   r   r6   r6   r7   Útest_patheffectsV   s    ÿ

r=   c                 C   s|   t | dƒ}| ¡  tjtt|ƒd��D dtjd< t 	g d¢¡ t 
d¡ tj|d dd	� W d   ƒ n1 sn0    Y  d S )
Nzshort-1)ÚtempdirTr   )r   r   r   r9   z\textbf{time} (s)ztex_demo.epsr   r<   )r   Úmkdirr   Z_setattr_cmÚtempfiler+   r   r   r   r"   Úxlabelr'   )ZtmpdirZbase_tempdirr6   r6   r7   Útest_tilde_in_tempfilename_   s    


rB   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©r2   r3   r6   r6   r7   Útest_transparencyr   s    rL   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   rC   rD   rG   rH   )r   r   r   r   rI   r"   rJ   rK   r6   r6   r7   Útest_transparency_texz   s
    
rM   c                  C   sÈ   t  ¡ \} }t ¡ �&}| j|dd� | ¡ }W d   ƒ n1 s@0    Y  t d|tj¡}|sbJ ‚t d|tj¡}|szJ ‚t	ddƒD ]>}d| 
|¡vsšJ ‚t| 
|¡ƒt t| 
|¡ƒd¡ks„J ‚q„d S )Nr
   r<   s$   ^%%BoundingBox: (.+) (.+) (.+) (.+)$s)   ^%%HiResBoundingBox: (.+) (.+) (.+) (.+)$r   é   ó   .)r   r   r   r!   r'   r-   r/   ÚsearchÚ	MULTILINEÚrangeÚgroupÚintr)   ZapproxÚfloat)r2   r3   ÚbufZbbZhibbÚir6   r6   r7   Ú	test_bbox„   s    
&ÿrX   c                   C   sT   dt jd< t d¡ t t¡�" tjt 	¡ dd� W d  ƒ n1 sF0    Y  dS )z"Test failing latex subprocess callTr   z$22_2_2$r   r<   N)
r   r   r   rA   r)   Zraisesr&   r'   r   r!   r6   r6   r6   r7   Útest_failing_latex–   s    

rY   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 sXJ ‚d S )NÚWARNINGgš™™™™™¹?rH   T)Zusetexgš™™™™™É?Úbarr   r<   zas if usetex=False)Z	set_levelr   Úfigtextr'   r   r!   ÚrecordsÚ
getMessage)ÚcaplogÚrecordr6   r6   r7   Útest_partial_usetex    s    
ra   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.preamblerG   rH   r   r<   )r   r   r   r   r\   r'   r   r!   )r_   r6   r6   r7   Útest_usetex_preambleª   s    ýrb   z
useafm.epsc                  C   s:   dt jd< t ¡ \} }| ¡  | d¡ | ddd¡ d S )NTr   rG   Zqk)r   r   r   r   rI   ZaxhlinerJ   rK   r6   r6   r7   Útest_useafmµ   s
    

rc   z	type3.epsc                   C   s   t  ddd¡ d S )NrG   zI/J)r   r\   r6   r6   r6   r7   Útest_type3_font¾   s    rd   )Ú
extensionsc                 C   s*   |   ¡ }|jddd| jdd� |  ¡  d S )Nr   ZhelloT)Z	transformZclip_on)Zadd_subplotrJ   ZtransFigure)Zfig_testZfig_refr3   r6   r6   r7   Útest_text_clipÃ   s    rf   c                 C   s>   t  ¡ }| ddd¡ | d }| |¡ tjjj|dd� d S )NrG   Údefztest.epsF)Úcache)r   ÚfigurerJ   r'   r   ÚtestingÚcompareÚconvert)Ztmp_pathr2   Úoutr6   r6   r7   Útest_d_glyphË   s
    
rn   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.fontsetrG   zMass $m$)r   r   r   r\   r6   r6   r6   r7   Útest_type42_font_without_prepÖ   s    

rr   ÚfonttypeÚ3Z42c                 C   sl   | t jd< t ¡ \}}| ddd¡ t ¡ }|j|dd� dt| › dd	� d
 }t	 
|| ¡ t	j¡shJ ‚d S )Nrq   g      Ð?rG   z&Forty-two is the answer to everything!r   r<   s
   /FontType zutf-8)Úencodings    def)r   r   r   r   rJ   r   r!   r'   Úbytesr/   rP   r-   rQ   )rs   r2   r3   rV   Útestr6   r6   r7   Útest_fonttypeß   s    
rx   c                  C   sH   t  ¡ \} }|jddgdd� t ¡ }| j|dd� | ¡ dksDJ ‚dS )z-Test that dashed lines do not break PS outputr   r   z--)Z	linestyler   r<   N)r   r   r"   r   r!   r'   Útell)r2   r3   rV   r6   r6   r7   Útest_linedashî   s
    rz   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˜J ‚d S )Nr9   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 )ú/ú r   )Ú
startswithÚ	partition)Ú.0Úlnr6   r6   r7   Ú
<listcomp>  s   
þz0test_no_duplicate_definition.<locals>.<listcomp>)r   r   ÚdictZflatÚsetr"   Zsuptitler   r    r'   ÚseekÚ	readlinesÚmaxr   Úvalues)r2   Zaxsr3   rV   Zwdsr6   r6   r7   Útest_no_duplicate_definitionú   s    


ÿrˆ   )1Úcollectionsr   Úpathlibr   r   r/   r@   r)   Z
matplotlibr   r   Zmatplotlib.cbookr   Zmatplotlib.figurer   Zmatplotlib.testing.decoratorsr   r	   r   Zmatplotlib.pyplotZpyplotr   ÚmarkZskipifrj   rk   Ú	converterZneeds_ghostscriptZcheckdep_usetexZneeds_usetexZflakyZparametrizer8   r=   rB   rL   rM   rX   rY   ra   rb   rc   rd   rf   rn   rr   rx   rz   rˆ   r6   r6   r6   r7   Ú<module>   s~   þ
þùø*	

	
	









