
    h2                     \	   S SK r S SKJr  S SKrS SKrS SKrS SKJr	  S SK
r
S SKrS SKJr  S SKJrJr  S SKJr  S SKJr  S SKJr  S SKJrJrJr  S S	KJrJrJ r J!r!  \" S
 5      u  r"r#0 S 4S jr$\!\\
RJ                  RM                  S5      S 5       5       5       r'S r(\!\
RJ                  RM                  S5      \" S/SS9S 5       5       5       r) \RT                  " S5      RV                  \	" S5      :  r,\ \
RJ                  R]                  \" S5      (       + SS9\
RJ                  R]                  \" S5      (       + SS9\
RJ                  RM                  S5      \" S/S\,(       a  SOS S9S 5       5       5       5       5       r/\!\ \R`                  Rc                  S5      \
RJ                  RM                  S5      S 5       5       5       5       r2\!\R`                  Rc                  S5      \
RJ                  RM                  S5      S  5       5       5       r3\!\
RJ                  RM                  S5      \" S!/SS9S" 5       5       5       r4\!\R`                  Rc                  S5      \
RJ                  RM                  S5      S# 5       5       5       r5\R`                  Rc                  S5      \
RJ                  RM                  S5      \
RJ                  Rm                  S$\
Rn                  " S%\/S&9\
Rn                  " S'\ /S&9\
Rn                  " S(\!/S&9/5      S) 5       5       5       r8\R`                  Rc                  S5      \
RJ                  RM                  S5      \
RJ                  Rm                  S$\
Rn                  " S%\/S&9\
Rn                  " S'\ /S&9\
Rn                  " S(\!/S&9/5      S* 5       5       5       r9\!S+ 5       r:\!S, 5       r;\!S- 5       r<\!\S. 5       5       r=\!S/ 5       r>\" S0/S19\
RJ                  Rm                  S2S35      \
RJ                  RM                  S5      S4 5       5       5       r?\
RJ                  RM                  S5      S5 5       r@\!\
RJ                  R]                  \" S65      (       + S7S9\
RJ                  RM                  S5      \" S8/SSS99S: 5       5       5       5       rAg! \RZ                   a    Sr, GNf = f);    N)BytesIO)parse)_has_tex_package_check_for_pgf)ImageComparisonFailure)compare_images)PdfPages)_image_directoriescheck_figures_equalimage_comparison)needs_ghostscriptneeds_pgf_lualatexneeds_pgf_pdflatexneeds_pgf_xelatexc                      g)Nz
dummy func r       S/var/www/html/env/lib/python3.13/site-packages/matplotlib/tests/test_backend_pgf.py<lambda>r      s    lr   c                 r   [         R                  R                  [        U 5      n[        R
                  " U40 UD6  [         R                  R                  [        SU -  5      n[        R                  " [         R                  R                  [        U 5      U5        [        XCUS9nU(       a  [        U5      eg )Nzexpected_%stol)ospathjoin
result_dirpltsavefigshutilcopyfilebaseline_dirr   r   )fnamesavefig_kwargsr   actualexpectederrs         r   compare_figurer'      s|    WW\\*e,FKK).)ww||J(=>H
OOBGGLLu5x@
s
3C
$S)) r   pgfc                    [         R                  " 5       nUR                  SSS5        [        5       nUR	                  USSS9  UR                  S5        [         R                  " U5      nUS:H  R                  5       (       a   eg )N      ?z%_^ $a_b^c$pngr(   )formatbackendr      )r   figuretextr   r   seekimreadall)tmp_pathfigbufts       r   test_tex_special_charsr8   %   sg     **,CHHR]#
)CKKE5K1HHQK

3AQ||~~~r   c                  X   [         R                  " 5         [        R                  " SSS5      n [         R                  " X S-  S5        [         R                  " U SU S-  -
  S5        [         R
                  " SS/SS/S	S
SS9  [         R                  " / SQ/ SQS5        [         R                  " S/S/SSS9  [         R                  " SSSSSS9  [         R                  " SSSS9  [         R                  " SSSSSS9  [         R                  " SS5        [         R                  " SS5        g ) Nr   r.         zb-zg>        g?z//	lightgrayred)hatch	facecolor	edgecolor)   rB   皙?rC   rB   )r;   rD   r   r;   bg?r*   rorB   )
markersizeu/   unicode (ü, °, §) and math ($\mu_i = x_i^2$)right   )hafontsizez*sans-serif, blue, $\frac{\sqrt{x}}{y^2}$..
sans-serifblue)familycolorz2should be clipped as default clip_box is Axes bboxT)rK   clip_on)r   r/   nplinspaceplotfill_betweenfillr0   ylabelxlimylim)xs    r   create_figurerZ   2   s    JJL
Aq"A HHQQ HHQAqD$ b"XBxt{$&HH 137 HHcUSE4A.HHS#W"&JJ="&2HHQG$( HHQNHHQNr   zpgf_xelatex.pdfdefault)stylec                  `    SSS.n [         R                  R                  U 5        [        5         g )NserifFfont.familypgf.rcfontsmplrcParamsupdaterZ   )
rc_xelatexs    r   test_xelatexrg   O   s(     ")!&(JLL
#Or   gsz9.50Ttype1eczneeds type1ec.sty)reasonucszneeds ucs.styzpgf_pdflatex.pdfgQk'@)r\   r   c                  d    SSSSS.n [         R                  R                  U 5        [        5         g )Nr^   Fpdflatexz4\usepackage[utf8x]{inputenc}\usepackage[T1]{fontenc})r`   ra   pgf.texsystempgf.preamblerb   )rc_pdflatexs    r   test_pdflatexrq   a   s4     #*"'$.%@BK
 LL$Or   c            	         SSSSSSS.SSS	S
SSSS./n [         (       a  SS/OSS/n[        U 5       H  u  p#[        R                  " U5         S HJ  u  pEU[        R                  S   ;   d  M  [        U5      (       a  M0  [        R                  " SU S35        ML     [        5         [        SUS-    S3X   S9  S S S 5        M     g ! , (       d  f       M  = f)NrL      g?
   Fxelatex)r`   	font.sizefigure.subplot.leftlines.markersizera   rn   	monospaceg?rI   rm   zG\usepackage[utf8x]{inputenc}\usepackage[T1]{fontenc}\usepackage{sfmath})r`   rv   rw   rx   ra   rn   ro   r   gffffff*@))sfmathrz   )utf8xrk   ro   zneeds z.stypgf_rcupdater.   .pdfr   )
_old_gs_version	enumeraterc   
rc_contextrd   r   pytestskiprZ   r'   )rc_setsr   irc_set	substringpkgs         r   test_rcupdater   r   s    
  ,')$&$!*,  +')$&$!+"8:;G '1d)QFCw'	^^F#"J	n!== 0 5 5KK&T 23 #K O\!a%536B $# (##s   C.C ;C
C	c                  *   [         R                  R                  S5        [        R                  R                  SSS.5        [        R                  " SS5      u  pUS   R                  SS	/SS	/5        US   R                  SS5        US   R                  SS5        US   R                  SS/SS/5        US   R                  [         R                  R                  S
S9SSS/S9  US   R                  S5        U R                  [!        5       SS9  g )Ni!N,r^   Fr_   r.   r;   r   r<   g}Ô%ITi  )sizerI   irt   )binsrangelogpdfr,   )rQ   randomseedrc   rd   re   r   subplotsrS   set_xlimset_ylimscatterhistnormal
set_xscaler   r   )r5   axss     r   test_pathclipr      s     IINN8LLFG||Aq!HCFKKUb%[)FOOAqFOOAqFNNAq6Aq6"FKK		  d +"S"IKFFeKK	%K(r   zpgf_mixedmode.pdfc                      [         R                  R                  SSS.5        [        R                  SSS2SSS24   u  p[
        R                  " US-  U S-  -   5      R                  S5        g )	Nr^   Fr_   r.   y              D@r;   T)rc   rd   re   rQ   ogridr   pcolorset_rasterized)YXs     r   test_mixedmoder      s_     LLFG88BqHb3h&'DAJJq!tad{**40r   c                     [         R                  R                  SSS.5        [        R                  " SS5      u  n u  pUR                  [        S5      5        UR                  [        S5      5        [        R                  " 5         UR                  5       R                  U R                  R                  5       5      n[        SSU0S	S
9  g )Nr^   Fr_   r.   r;      zpgf_bbox_inches.pdfbbox_inchesr   )r#   r   )rc   rd   re   r   r   rS   r   tight_layoutget_window_extenttransformeddpi_scale_transinvertedr'   )r5   ax1ax2bboxs       r   test_bbox_inchesr      s     LLFGll1a(OC#HHU1XHHU1X  "..s/B/B/K/K/MND(-9Nr   systemlualatex)marksrm   ru   c                    SSU S.n[         R                  R                  U5        [        R                  " 5       u  p#UR                  [        S5      5        UR                  5         [        R                  " SS9u  pEUR                  [        S5      5        UR                  5         [        R                  R                  [        SU  S35      nS	S
SS[        R                  " SSS[        R                  " [        R                  " S5      5      S9SS.n[        XgS9 nUR!                  U5        UR!                  U5        UR!                  U5        UR#                  5       S:X  d   e S S S 5        g ! , (       d  f       g = f)Nr^   F)r`   ra   rn   r   )rB   r;   figsize	pdfpages_r}   meMultipage PDF with pgf	Test pagetest,pdf,multipage     r.   r   tzinfoUnknownAuthorTitleSubjectKeywordsModDateTrappedmetadatarB   )rc   rd   re   r   r   rS   r   r   r   r   r   r   datetimetimezone	timedeltar	   r   get_pagecount)	r   rp   fig1r   fig2r   r   mdr   s	            r   test_pdf_pagesr      s1    K
 LL$IDHHU1XV,IDHHU1X77<<
ixt$<=D)($$!Qx001C1CA1FGI
B 
$	$DDD  "a''' 
%	$	$s   A
E22
F c                    [         R                  " S5      nU R                  SS5        [        R                  R                  SU05        [        R                  " 5       u  p4UR                  [        S5      5        SSSS	[        R                  " S
SS[        R                  " [        R                  " S5      5      S9SS.n[        R                  R                  [         SU S35      n[#        XeS9 nUR%                  U5        S S S 5        UR&                  R)                  U5       nUR*                  R-                  5        VV	s0 s H  u  pU[/        U	5      _M     n
nn	S S S 5        SW
;   a  U
S	 SU
;   a  U
S	 U
R1                  S5      nUS[        R2                   3:X  d  US:X  a  SU;   d   eU
SSS[        R2                   S3S	SSSSS.:X  d   eg ! , (       d  f       N= fs  sn	nf ! , (       d  f       N= f) NpikepdfSOURCE_DATE_EPOCH0rn   r   r   r   r   r   r   r   r.   r   r   Truer   pdfpages_meta_check_r}   r   z/PTEX.FullBannerz/PTEX.Fullbannerz	/ProducerzMatplotlib pgf backend vr   LuaTeXzD:19700101000000ZzMatplotlib vz, https://matplotlib.orgzD:19680801000000Zz/True)z/Authorz/CreationDatez/Creatorz	/Keywordsz/ModDatez/Subjectz/Titlez/Trapped)r   importorskipsetenvrc   rd   re   r   r   rS   r   r   r   r   r   r   r   r   r	   r   Pdfopendocinfoitemsstrpop__version__)monkeypatchr   r   r5   axr   r   r   kvinfoproducers               r   test_pdf_pages_metadata_checkr      s    !!),G*C0LL&12llnGCGGE!H )($$!Qx001C1CA1FGI
B 77<<
&:6($$GHD	$	$C 
% 
		$	3&)kk&7&7&9:&9da3q6	&9: 
  T!#$T!#$ xx$H1#//1BCCj X%9; ; ,"3??"33KL)'*	 	 	 	# 
%	$ ; 
 	s*   2G'G+G%G+
G"%G++
G9c                 R   U S-  n[        U5       n S S S 5        UR                  5       (       a   eU S-  n[        U5       nUR                  [        R                  " 5       5        S S S 5        UR                  5       (       d   eg ! , (       d  f       Nz= f! , (       d  f       N7= f)Nza.pdfzb.pdf)r	   existsr   r   r/   )r4   fnr   s      r   test_multipage_keep_emptyr   !  s{     
G	B	" 
yy{{? 
G	B	"CJJL! 
99;;; 
 
s   B%B
B
B&c                  d   [         R                  " 5       n U R                  S5        [        R                  " [
        5         U R                  [        5       SS9  S S S 5        [         R                  " 5       n U R                  S5        U R                  [        5       SS9  g ! , (       d  f       NM= f)Nz\oopsr(   r   z
this is ok)r   r/   suptitler   raises
ValueErrorr   r   )r5   s    r   test_tex_restart_after_errorr   0  sp    
**,CLL	z	"GIe, 
# **,CLLKK	%K( 
#	"s   B!!
B/c                      [         R                  " 5       u  pUR                  SS/SS//5        U R                  [	        5       SSSS9  g )	Nr   r.   r;   rB   r   r(   tight)r,   r-   r   )r   r   imshowr   r   )r5   r   s     r   test_bbox_inches_tightr   <  s>    llnGCII1v1vKK	%GKLr   c                      [        5       n [        R                  " 5       R                  U SSSS9  U R	                  S5        [        R
                  " U 5      nUS   S:H  R                  5       (       d   eg )Nr+   r(   T)r,   r-   transparentr   ).rB   )r   r   r/   r   r1   r2   r3   )r6   r7   s     r   test_png_transparencyr   C  s]     )CJJLUEtLHHQK

3AfIN!!!!r   c                 T   U R                  S5         S[        R                  S'   [        R                  " SSS5        [        R
                  " [        5       SS9  S S S 5        SU R                   Vs/ s H  oR                  5       PM     sn;   d   eg ! , (       d  f       N?= fs  snf )	NWARNINGzthis-font-does-not-existr`   r*   zhello, worldr(   r   z/Ignoring unknown font: this-font-does-not-exist)	at_levelrc   rd   r   figtextr   r   records
getMessage)caplogrs     r   test_unknown_fontr   M  s    		#&@]#BN+GIe, 
$ = &A0 .1A0 0 0 0	 
$	#A0s   A	B2B%
B"r   )
extensions	texsystem)rm   ru   r   c                     [        U5      (       d  [        R                  " US-   5        U[        R                  S'   U R                  SSS5        UR                  SSS5        g )Nz + pgf is requiredrn   r*   z$-1$u   $−1$)r   r   r   rc   rd   r0   )fig_testfig_refr  s      r   test_minus_signs_with_texr  W  sP     )$$I 445$-CLL!MM"b&!LLR,-r   c                     [         R                  " SS9u  pUR                  / 5        UR                  / 5        UR	                  S5        UR                  SS/5      u  nUR                  SSSS	9  [        5        nU R                  US
S9  UR                  5       R                  5       nS S S 5        SnUW;   d   eg ! , (       d  f       N= f)N)rB   rB   r   Fr   r.   r   rs   *   )scalelength
randomnessr(   r   aR  \pgfpathmoveto{\pgfqpoint{0.375000in}{0.300000in}}%
\pgfpathlineto{\pgfqpoint{2.700000in}{2.700000in}}%
\usepgfmodule{decorations}%
\usepgflibrary{decorations.pathmorphing}%
\pgfkeys{/pgf/decoration/.cd, segment length = 0.150000in, amplitude = 0.100000in}%
\pgfmathsetseed{42}%
\pgfdecoratecurrentpath{random steps}%
\pgfusepath{stroke}%)r   r   
set_xticks
set_yticksset_frame_onrS   set_sketch_paramsr   r   getvaluedecode)r5   r   handlefdr6   baselines         r   test_sketch_paramsr  b  s    ll6*GCMM"MM"OOEggq!foGF
1RB?	bBu%kkm""$ 
H s?? 
s   :/B<<
C
zunicode-mathzneeds unicode-math.styzpgf_document_font_size.pdf)r\   remove_textc                      [         R                  R                  SSSS.5        [        R                  " 5         [        R
                  " / SS9  [        R
                  " / SS9  [        R                  " 5         g )Nru   Fz\usepackage{unicode-math})rn   ra   ro   zM$this is a very very very long math label a \times b + 10^{-3}$ and some text)labelz:\normalsize the document font size is \the\fontdimen6\font)rc   rd   re   r   r/   rS   legendr   r   r   test_document_font_sizer  ~  s`     LL"4 
 JJLHHR$ HHRP JJLr   )Br   ior   r   r   numpyrQ   packaging.versionr   parse_versionr   
matplotlibrc   matplotlib.pyplotpyplotr   matplotlib.testingr   r   matplotlib.testing.exceptionsr   matplotlib.testing.comparer   matplotlib.backends.backend_pgfr	   matplotlib.testing.decoratorsr
   r   r   matplotlib.testing._markersr   r   r   r   r!   r   r'   markr-   r8   rZ   rg   _get_executable_infoversionr~   ExecutableNotFoundErrorskipifrq   r\   contextr   r   r   r   parametrizeparamr   r   r   r   r   r   r   r  r  r  r   r   r   <module>r/     s$     	   4    ? @ 5 4? ? 
 ..BC j *, * U   : U$%Y7 8    &..v1FF  (33<OP(//HU%&i.eA77  I Q  9UC    C8 9U)   )" U&'y91 :  1 9U    9U
LL$6#78
LL$6#78
LL#4"56$ 
 (   (F 9U
LL$6#78
LL$6#78
LL#4"56$ 
/  /d   ) ) M M "  " 0 0 (&IJU.  K ). U 6 ((1I   U/0	tT U  Q	 "" Os   %R R+*R+