
    ^j %                     6   d dl Z d dlmZ d dlZd dlm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        Zd Z eg d      d        Z eg d      d        Zd Z edgd      d        Zej:                  j=                  dg d      d        Zej:                  j=                  dddg      d        Z ej:                  j=                  ddd g      d!        Z!d" Z"ej:                  jG                  d#$      ej:                  j=                  d%d	d&g      d'               Z$d( Z%	  e
jL                  d)      jN                   ed*      k  Z( ed,gg d-de(rd.nd /      d0        Z*d1 Z+y# e
jR                  $ r d+Z(Y 0w xY w)2    N)TemporaryFile)parse)dviread)_has_tex_package)check_figures_equalimage_comparison)needs_usetextest_usetexpdfpngmpl20)baseline_images
extensionsstylec                  h   dt         j                  d<   t        j                         \  } }ddt	        ddd      d	} |j
                  d
i |  |j
                  di |  |j
                  di |  |j
                  di |  |j
                  di | |j                  D ch c]  }|j                         d    c}D ]  }|j                  |        |j                  D ch c]  }|j                         d    c}D ]  }|j                  |        |j                          y c c}w c c}w )NTtext.usetexbaseline   r   knone)pad	edgecolor	facecolor)verticalalignmentsizebbox)皙?ffffff?zP\LaTeX\ $\left[\int\limits_e^{-2e}\sqrt\frac{\log^3 x}{x}\,\mathrm{d}x \right\}$)r   333333?lg)g?r   z$\frac{1}{2}\pi$)g333333?r   z	$p^{3^A}$)g?r   z	$p_{3_2}$   )mplrcParamspltsubplotsdicttexttextsget_positionaxvlineaxhlineset_axis_off)figaxkwargstxys         g/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/matplotlib/tests/test_usetex.pyr
   r
      s   
 #'CLLllnGC#-rqC6BDFBGG   BGG%f%BGG4V4BGG,V,BGG,V,+-884aannq!4 


1+-884aannq!4 


1OO	 54s   %D*&D/c                    ddl m} ddlm} | j	                  |d|j
                         dt        j                  d<   t        j                         \  }}|j                  ddd       |j                  j                          y )Nr   )RendererBase)RendererAggdraw_texTr   foo_bar)matplotlib.backend_basesr5   matplotlib.backends.backend_aggr6   setattrr7   r$   r#   r%   r'   canvasdraw)monkeypatchr5   r6   r-   r.   s        r3   test_usetex_fallbackr?   /   s[    5;Z1F1FG"&CLLllnGCGGAq)JJOO    )r   r   svg)r   c                 P    dt         j                  d<   | j                  ddd       y )NTr         ?z% a commentr"   r#   r'   fig_testfig_refs     r3   
test_emptyrH   ;   s     "&CLLMM"b-(r@   c                 v    dt         j                  d<   | j                  ddd       |j                  ddd       y )NTr   rC   z$-$u   −rD   rE   s     r3   test_unicode_minusrJ   A   s1    "&CLLMM"b% LLR)*r@   c                      dt         j                  d<   t        j                         } | j                         j	                  dd       dt
        j                  d<   | j                  j                          y )NTzaxes.formatter.use_mathtextr!   r   )r$   r#   figureadd_subplotset_xlimr"   r<   r=   )r-   s    r3   test_mathdefaultrP   H   sQ    26CLL./
**,COOr1% #'CLLJJOOr@   zeqnarray.png)r   c                  b    d} t        j                  d      }|j                  dd| ddd       y )Nz/\begin{eqnarray*}foo\\bar\\baz\\\end{eqnarray*})r!   r!   )figsizerC   Tcenter)usetexhorizontalalignmentr   )r$   rM   r'   )r'   r-   s     r3   test_multiline_eqnarrayrV   R   s;    	 	 **V
$CHHS#tD!)X  Gr@   fontsize)   
      c           	         t         j                  j                  d       | t         j                  d<   i }t	        j
                         }dD ]  }|j                          |D ]  }|j                  ddd| dd        |j                  j                          t        j                  |j                  j                               d   d	k7  j                  d
      j                         ||<    t        h |j!                               d
k(  sJ y )Nr   z	font.size))r!   )rL   )rL   r!   rC   $TrT   ).r      r!   )axis)r"   r   user#   r$   rM   clearr'   r<   r=   nparraybuffer_rgbaanysumlenvalues)rW   heightsr-   valsr1   s        r3   test_minus_no_descentrk   a   s    
 IIMM' (CLLG
**,C& -		 	4AHHRq1XdH3	4

((3::#9#9#;<VDK#1#+cce 	- "!"#q(((r@   pkgxcolorchemformulac                    t        |       st        j                  |  d       dt        j                  d<   t        j                         }|j                  ddd      }|j                  j                          d| z  t        j                  d<   t        j                         }|j                  ddd      }|j                  j                          t        j                  j                  |j                         |j                                y )Nz is not availableTr   rC   zSome text 0123456789z8\PassOptionsToPackage{dvipsnames}{xcolor}\usepackage{%s}text.latex.preamble)r   pytestskipr"   r#   r$   rM   r'   r<   r=   rb   testingassert_array_equalget_window_extent)rl   r-   r'   text2s       r3   test_usetex_packagesrw   u   s    C se,-."&CLL
**,C88C45DJJOO 	DcI LL&'
**,CHHS#56EJJOOJJ!!%"9"9";"&"8"8":<r@   preamblez\usepackage[full]{textcomp}z\usepackage{underscore}c                     | t         j                  d<   t        j                         }|j                  dddd       |j                  j                          y )Nrp   rC   zhello, worldTr]   )r$   r#   rM   r'   r<   r=   )rx   r-   s     r3   test_latex_pkg_already_loadedrz      s@    
 +3CLL&'
**,CHHR^DH1JJOOr@   c                  ,   dt         j                  d<   t        d      d d d   t        d      d} t        j                         \  }}|j	                  dd|        |j                          |j                  d	d	d
d       t        j                          y )NTr      rL   )a_bcr~   r}   )datar   r8   r]   )r$   r#   ranger%   plotlegendr'   r=   )dfr-   r.   s      r3   test_usetex_with_underscorer      sq    "&CLLq$B$eAh	/BllnGCGGCRG IIKGGAq)DG)HHJr@      )rerunsfmtrA   c                    |j                  t        j                  dd        dt        j                  d<   t        j                         \  }}|j                  ddd       t               5 }t        j                  t              5  |j                  ||        ddd       ddd       y# 1 sw Y   xY w# 1 sw Y   yxY w)	z:An error is raised if a TeX font lacks a Type-1 equivalent__getitem__c                 6    t        j                  ddd d d       S )Ns   texfonts	   Some Font)texnamepsnameeffectsencodingfilename)r   PsFont)selfr   s     r3   <lambda>z%test_missing_psfont.<locals>.<lambda>   s    |4$8 r@   Tr   rC   helloformatN)r;   r   
PsfontsMapr"   r#   r$   r%   r'   r   rq   raises
ValueErrorsavefig)r   r>   r-   r.   tmpfiles        r3   test_missing_psfontr      s     M	89
 #'CLLllnGCGGCg	 )GV]]:%> )GC() ) ) ) ) )s$   *B5B)B5)B2	.B55B>c                  &   t        j                  d      } dt        j                  d<   dt        j                  d<   t	        j
                         \  }}|j                  ddd       |j                  dd	d
       t               5 }|j                  |d       |j                  d       | j                  j                  |      }i }|j                  d   }|j                  j                  j                         D ]  \  }}|j                   dk(  sJ d| d| d       t#        |d         j%                  d      }	t'        j(                  d|	      sJ d| d|	 d       d|j*                  v sJ d| d|	 d       |	j-                  dd      \  }
}t/        t1        |d   d               ||<    	 ddd       t3        d       h dj5                  |      sJ d       |j                         D ]  \  }}|d k  rJ d| d| d!        y# 1 sw Y   [xY w)"z2Test that fonts in PDF output are properly subset.pikepdfTr   z\usepackage{amssymb}rp   r   r   z<$\int_{-\infty}^{\aleph}\sqrt{\alpha\beta\gamma}\mathrm{d}x$rC   z3$\mathfrak{x}\circledcirc\mathfrak{y}\in\mathbb{R}$r   r   r   z/Type1zFont =z is not a Type 1 fontz	/BaseFont/z^[A-Z]{6}\+z lacks a subset indicator tagz	/FontFilezType 1 font z is not embedded+r!   z/FontDescriptorNzEmbedded font stream lengths:>   CMR12CMSY8CMEX10CMMI12CMSY10EUFM10MSAM10MSBM10z!Missing expected fonts in the PDFi:  z is larger than expected)rq   importorskipr"   r#   r$   r%   r'   r   r   seekPdfopenpages	ResourcesFontitemsSubtypestrremoveprefixrematchFontDescriptorsplitrg   bytesprintissubset)r   r-   r.   r   r   lengthpage	font_namefont	base_font_original_names               r3   test_pdf_type1_font_subsettingr      s?   !!),G"&CLL*ACLL&'llnGCGGCUVGGCLM	 UGGE*Qkkw'yy|#~~2288: 	UOIt<<8+ 	{!D6)>?+
 D-.;;C@I88NI6 	{!I;.KL6 $"5"55 yk9+5EF5  )sA6A}$'d3D.Ek.R(S$TF=!	UU. 

)62	 hv	 	< <	< 	 $\\^ 
	6 	
I;ax'?@	

KU Us   D)HHgsz9.55Trotation)epsr   r   rA   gHzG@)r   r   r   tolc                     dt         j                  d<   t        j                         } | j	                  d      }|j                  dg dg d       dD ci c]  }||d	   
 }}d
|d<   d|d<   t        g d      D ]  \  }}t        g d      D ]o  \  }}t        g d      D ]Z  \  }}	|dz  }||dz  z   }
||dz  z   }|j                  |
|dd| dd       |j                  |
|d||    ||    d|	 d|	||       \ q  y c c}w )NTr   )r   r   r!   r!   )      r|   )r   r   F)xlimxticksylimyticksframe_on)toprS   bottomleftrightr   Br   Ccenter_baseline)r   rS   r   r   r   )r   rS   r   )r   Z      i     r      rC   )r~   
markersizemarkeredgewidthz$\mathrm{My  z}$)r   rU   r   )	r"   r#   r$   rM   add_axesset	enumerater   r'   )r-   r.   valr'   ivajhar   angler1   r2   s               r3   test_rotationr      sD    #'CLL
**,C	l	#BFF	"9R%FP#OPCCQKPDPD!D	UV 	V2:; 	VEAr%&78 V5aAIAI1cqWSQ1tBxjb
!E7#N!&BRT  VV	V	V	 Qs   Dc                  *   t         j                  j                         } | j                  t         j                  j                         d      d   d   d   }| j                  t         j                  j                         d      d   d   d   }||k(  sJ y )NWr   r   z\textwon)r"   textpath
TextToPathget_glyphs_texfont_managerFontProperties)tpscale1scale2s      r3   test_unicode_sizingr     s    		 	 	"Bs//>>@#FqI!LQOFs//>>@+NqQRSTUVWFVr@   ),r   tempfiler   numpyrb   packaging.versionr   parse_versionrq   
matplotlibr"   r   matplotlib.testingr   matplotlib.testing.decoratorsr   r   matplotlib.testing._markersr	   matplotlib.pyplotpyplotr$   
pytestmarkr
   r?   rH   rJ   rP   rV   markparametrizerk   rw   rz   r   flakyr   r   _get_executable_infoversion_old_gs_versionExecutableNotFoundErrorr   r    r@   r3   <module>r     s   	 "  4    / O 4  
 "Ou~
	0	  56) 7)
  56+ 7+ >"'2G 3G [1) 2)& = 9:< ;<$ #%?@	 !/) 0 )2
~.c..t4<<}V?TTO
 :,;W_T!EVEV.; "" Os   %F FF