o
    h81                     @   s  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	Z	d dl
mZmZmZ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 d dlmZ d dl m!Z" e	j#j$d	d
e	j#%dddg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d0gd1d2 Z/ed3gd4d5 Z0ed6gd7d8 Z1edgd9d:d; Z2ed<d= Z3ed>gd?d@dAdB Z4e	j#%dCdDdEgdFdG Z5dHdI Z6dJdK Z7dLdM Z8edNgdOdPdQdR Z9edSgdTdPdUdV Z:edWgdXdY Z;edZgd[d\id?d]d^d_ Z<d`da Z=dS )b    )Counter)PathN)cbookpathpatheffectsfont_manager)Figure)Ellipse)needs_ghostscriptneeds_usetex)check_figures_equalimage_comparison   )reruns	papersizeletterfigureorientationportrait	landscapezformat, use_log, rcParamspsFps.usedistillerghostscriptxpdftext.usetexTeps	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 jd dkr/zt d W nH t jy. } ztt| W Y d }~n3d }~ww t jd dkr]zt d t d W n t jy\ } ztt| W Y d }~nd }~ww t	 \}}t
 }t
  }	|rv|d |ddgddg d	}
t jd
 s|
d7 }
||
 g }t jd
 r|t t jd r|t j z|j|| ||d |j|	| ||d W n t|y } ztt| W Y d }~nd }~ww |jrJ |	jrJ | d}|	 }| dkrNt jd dkr|dkrd| vsJ nFd| v sJ n<t jd st jd
 r:|dkr%dnd}|dkr0d| nd}||v s9J n|dkrGd|vsFJ nd|v sNJ tdd|}tdd|}||ddksgJ W d    n1 srw   Y  W d    d S W d    d S 1 sw   Y  d S )Nr   r   gsr   pdftopslog      u	   Déjà vur   u    −€r   )formatr   	papertypeasciir   r   s   letterr   s   432.0s   576.0s   -dDEVICEWIDTHPOINTS=s   -sPAPERSIZEs   %%DocumentPaperSizess   (?<=
%%CreationDate: ).*    s   
   
)mplrcParamsupdate_get_executable_infoExecutableNotFoundErrorpytestskipstrpltsubplotsioStringIOBytesIO
set_yscaleplot	set_titleappendRuntimeErrorMatplotlibDeprecationWarningsavefigtupleclosedgetvalueencodelowerresubreplace)r#   use_logr)   r   r   excfigaxs_bufb_buftitleallowable_exceptionss_valb_valwidthwanted rP   t/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/matplotlib/tests/test_backend_ps.pytest_savefig_to_stringio   s~   














TrR   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)	linewidth
foregroundzpath.effects)r!   r"   r   r   r#   )
r   
withStroker(   r)   r0   r1   r6   r2   r4   r;   )rF   rG   r   rP   rP   rQ   test_patheffectst   s   

"rY   c                 C   s|   | 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 s7w   Y  d S )
Nzshort-1)tempdirTr   )r!   r"   r   rS   z\textbf{time} (s)ztex_demo.epsr   rW   )mkdirr   _setattr_cmtempfiler/   r(   r)   r0   r6   xlabelr;   )tmp_pathbase_tempdirrP   rP   rQ   test_tilde_in_tempfilename}   s   

"ra   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)r0   r1   set_axis_offr6   textrF   rG   rP   rP   rQ   test_transparency   s   rk   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!   rb   rc   rf   rg   )r(   r)   r0   r1   rh   r6   ri   rj   rP   rP   rQ   test_transparency_tex   s
   
rl   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   rW   s$   ^%%BoundingBox: (.+) (.+) (.+) (.+)$s)   ^%%HiResBoundingBox: (.+) (.+) (.+) (.+)$r!         .)r0   r1   r2   r4   r;   r>   rA   search	MULTILINErangegroupintr-   approxfloat)rF   rG   bufbbhibbirP   rP   rQ   	test_bbox   s   

*rz   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   rW   N)
r(   r)   r0   r^   r-   raisesr9   r;   r2   r4   rP   rP   rP   rQ   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
| v s,J d S )NWARNING皙?rg   T)usetex皙?barr   rW   zas if usetex=False)	set_levelr0   figtextr;   r2   r4   records
getMessage)caplogrecordrP   rP   rQ   test_partial_usetex   s   
r   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.preamblerf   rg   r   rW   )r(   r)   r*   r0   r   r;   r2   r4   )r   rP   rP   rQ   test_usetex_preamble   s   r   z
useafm.epsc                  C   s:   dt jd< t \} }|  |d |ddd d S )NTr   rf   qk)r(   r)   r0   r1   rh   axhlineri   rj   rP   rP   rQ   test_useafm   s
   

r   z	type3.epsc                   C   s   t ddd d S )Nrf   zI/J)r0   r   rP   rP   rP   rQ   test_type3_font   s   r   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!   /nonerb   r   )hatch	facecolor	edgecolorrU   )rf   rf   rf   +gr   )r!   r!   g333333?g?\b)r0   gca	add_patchr	   rh   )rG   rP   rP   rQ   !test_colored_hatch_zero_linewidth   s   r   )
extensionsc                 C   s*   |   }|jddd| jdd |   d S )Nr   helloT)	transformclip_on)add_subplotri   transFigure)fig_testfig_refrG   rP   rP   rQ   test_text_clip   s   r   c                 C   s>   t  }|ddd | d }|| tjjj|dd d S )Nrf   defztest.epsF)cache)r0   r   ri   r;   r(   testingcompareconvert)r_   rF   outrP   rP   rQ   test_d_glyph   s
   
r   ztype42_without_prep.epsmpl20)stylec                   C   s&   dt jd< dt jd< tddd d S )N*   ps.fonttypestixzmathtext.fontsetrf   zMass $m$)r(   r)   r0   r   rP   rP   rP   rQ   test_type42_font_without_prep   s   

r   fonttype3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 )Nr   g      ?rf   z&Forty-two is the answer to everything!r   rW   s
   /FontType zutf-8)encodings    def)r(   r)   r0   r1   ri   r2   r4   r;   bytesrA   ro   r>   rp   )r   rF   rG   rv   testrP   rP   rQ   test_fonttype	  s   
r   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--)	linestyler   rW   N)r0   r1   r6   r2   r4   r;   tell)rF   rG   rv   rP   rP   rQ   test_linedash  s
   r   c                  C   s<   t  } | ddd t }| j|dd | j|dd d S )Nrf   z
foo

r   rW   r   )r   ri   r2   r4   r;   )r   rv   rP   rP   rQ   test_empty_line$  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sLJ d S )NrS   polar)
projection)
subplot_kw)xticksyticksr!   r"   zhello, worldr   rW   r   c                 S   s$   g | ]}| d r|dd qS )r    r   )
startswith	partition).0lnrP   rP   rQ   
<listcomp>:  s    z0test_no_duplicate_definition.<locals>.<listcomp>)r   r1   dictflatsetr6   suptitler2   r3   r;   seek	readlinesmaxr   values)rF   axsrG   rv   wdsrP   rP   rQ   test_no_duplicate_definition-  s   


r   zmulti_font_type3.epsgRQ?)tolc                  C   h   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!fmFontPropertiesr   findfontnamer-   r.   r0   rcr   ri   fprF   rP   rP   rQ   test_multi_font_type3A     
r   zmulti_font_type42.epsg?c                  C   r   )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rP   rP   rQ   test_multi_font_type42N  r   r   zscatter.epsc            	      C   s   t jd} | ddd}| ddd}| ddd}t \}}|j|||g ddd	 |  d
d tddD }| ddd	dd}ddg}t
j||dd|d}|| |dd d S )Ni!N,r   r!   
      d   )g?r   r~   <)r   markerc                 S   s   g | ]}t j|qS rP   )r   r   unit_regular_polygon)r   ry   rP   rP   rQ   r   d  s    z(test_path_collection.<locals>.<listcomp>r            r"   g{Gz?g{Gz?yellow)zorder
facecolorsoffsets)nprandomdefault_rnguniformr0   r1   scatterrh   rq   reshapemcollectionsPathCollectionadd_collectionset_xlim)	rngxvalsyvalssizesrF   rG   pathsr   pcrP   rP   rQ   test_path_collection[  s   

r
  zcolorbar_shift.epsbbox_inchestight)savefig_kwargr   c                 C   sL   t g d}t g d|j}tjddgddgddg||d t  d S )N)rb   r   r   )r   g      rf   r!   r   r!   )ccmapnorm)mcolorsListedColormapBoundaryNormNr0   r   colorbar)r_   r  r  rP   rP   rQ   test_colorbar_shiftm  s    r  c                  C   s   t  } tjtdd | jt ddd W d    n1 s w   Y  tjtdd dtj	d< W d    d S 1 s=w   Y  d S )Nz'auto' is not a valid value)matchr   auto)r#   r$   zps.papersize)
r0   r   r-   r{   
ValueErrorr;   r2   r4   r(   r)   )rF   rP   rP   rQ   test_auto_papersize_removalv  s   "r  )>collectionsr   pathlibr   r2   rA   r]   numpyr   r-   
matplotlibr   r   r   r   r   matplotlib.figurer   matplotlib.patchesr	   matplotlib.testing._markersr
   r   matplotlib.testing.decoratorsr   r   r(   matplotlib.collectionsr   matplotlib.colorscolorsr  matplotlib.pyplotpyplotr0   markflakyparametrizerR   rY   ra   rk   rl   rz   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r
  r  r  rP   rP   rP   rQ   <module>   s    J	

	
	










	



