
    ^j/7                        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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 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
jJ                  jM                  d
      e
jJ                  jO                  dddg      e
jJ                  jO                  dddg      e
jJ                  jO                  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                             Z(d Z)eed                Z* ed!gd"#      d$        Z+e ed!gd"#      d%               Z,d& Z-ed'        Z.ed(        Z/ed)        Z0 ed*gd"#      d+        Z1 ed,gd"#      d-        Z2 edg.      d/        Z3ed0        Z4 ed1gd2#      d3        Z5e
jJ                  jO                  d4d5d6g      d7        Z6d8 Z7d9 Z8d: Z9 ed;gd2#      d<        Z: ed=gd2#      d>        Z; ed?gd2#      d@        Z< edAgd2#      dB        Z= edCgd"#      dD        Z> edEgdFdGid2H      dI        Z?dJ Z@y)K    )CounterN)Path)cbookfont_managerpathpatheffects)Figure)Ellipse)_gen_multi_font_text)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                 l   t         j                  j                  |       t         j                  d   dk(  r	 t        j                  d       nAt         j                  d   dk(  r+	 t        j                  d       t        j                  d       t        j                         \  }}t        j                         5 }t        j                         5 }	|r|j                  d       |j                  ddgddg       d	}
t         j                  d
   s|
dz  }
|j                  |
       g }t         j                  d
   r|j!                  t"               t         j                  d   r|j!                  t         j$                         	 |j'                  || ||       |j'                  |	| ||       |j*                  rJ |	j*                  rJ |j-                         j/                  d      }|	j-                         }| dk(  rt         j                  d   dk(  r-|dk(  rd|j1                         vshJ d|j1                         v sTJ t         j                  d   st         j                  d
   r|dk(  rdnd}|dk(  rd|z   nd}||v sJ |dk(  rd|vsJ d|v sJ t3        j4                  dd|      }t3        j4                  dd|      }||j7                  dd      k(  sJ 	 d d d        d d d        y # t         j                  $ r)}t        j                  t        |             Y d }~d }~ww xY w# t         j                  $ r)}t        j                  t        |             Y d }~d }~ww xY w# t)        |      $ r)}t        j                  t        |             Y d }~d }~ww xY w# 1 sw Y   xY w# 1 sw Y   y xY w)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wanteds                   k/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/matplotlib/tests/test_backend_ps.pytest_savefig_to_stringiorT      sF   * LL!
||%&-7	"$$T* 
'	(F	2	"$$T*$$Y/ llnGC	 76% 76MM% 
AA||M*33E
U!<<& ''5<<$ ''(H(HI	"KKf+"+  -KKf+"+  -
 <<<< ''0 T> ||-.&8 ($EKKM999$555/0CLL4O$/;$>H=F(=R1E9- &(2%???2e;;;
 3S%@3S%@gu5555o76 76 76 ** 	"KKC!!	" ** 	"KKC!!	"2 )* 	"KKC!!	")76 76 76 76s   K& $*L% 9N*B1N *M$*D*NN*&L"9LL"%M!8MM!$N2NNNNN'	#N**N3c                  "   t        j                  dd      gt        j                  d<   t	        j
                         \  } }|j                  g d       t        j                         5 }| j                  |d       d d d        y # 1 sw Y   y xY w)N   w)	linewidth
foregroundzpath.effects)r$   r%   r   r   r&   )
r   
withStroker+   r,   r3   r4   r9   r5   r7   r>   )rI   rJ   r   s      rS   test_patheffectsr\   v   sm    s;$=CLL llnGCGGI	 %Bt$% % %s   (BBc                 R   | dz  }|j                          t        j                  t        t	        |            5  dt
        j                  d<   t        j                  g d       t        j                  d       t        j                  |dz  d	       d d d        y # 1 sw Y   y xY w)
Nzshort-1)tempdirTr   )r$   r%   r   rV   z\textbf{time} (s)ztex_demo.epsr   rZ   )mkdirr   _setattr_cmtempfiler2   r+   r,   r3   r9   xlabelr>   )tmp_pathbase_tempdirs     rS   test_tilde_in_tempfilenamere      s     i'L 
		8S->	? @&*]#

'(L>1$?@ @ @s   ABB&z	empty.eps_classic_test)stylec                      t        j                         \  } }|j                          |j                  ddgdd       |j	                  ddddd       y )Nr   r$   rcoloralpha      ?foo)r3   r4   set_axis_offr9   textrI   rJ   s     rS   test_transparencyrr      sG    llnGCOOGGQF#QG'GGBEAG.r)   c                      dt         j                  d<   t        j                         \  } }|j	                          |j                  ddgdd       |j                  ddddd       y )	NTr   r   r$   ri   rj   rm   rn   )r+   r,   r3   r4   ro   r9   rp   rq   s     rS   test_transparency_texrt      sW     #'CLLllnGCOOGGQF#QG'GGBEAG.r)   c            	      P   t        j                         \  } }t        j                         5 }| j	                  |d       |j                         }d d d        t        j                  dt        j                        }|sJ t        j                  d|t        j                        }|sJ t        dd      D ]b  }d|j                  |      vsJ t        |j                  |            t        j                  t        |j                  |            d      k(  rbJ  y # 1 sw Y   xY w)Nr   rZ   s$   ^%%BoundingBox: (.+) (.+) (.+) (.+)$s)   ^%%HiResBoundingBox: (.+) (.+) (.+) (.+)$r$         .)r3   r4   r5   r7   r>   rA   rD   search	MULTILINErangegroupintr0   approxfloat)rI   rJ   bufbbhibbis         rS   	test_bboxr      s    llnGC	 C&lln 
:C	NBI299A3\\#DK41a[ J288A;&&&288A;6==tzz!}1Eq#IIIIJ s   $DD%c                     dt         j                  d<   t        j                  d       t	        j
                  t              5  t        j                  t        j                         d       ddd       y# 1 sw Y   yxY w)z"Test failing latex subprocess callTr   z$22_2_2$r   rZ   N)
r+   r,   r3   rb   r0   raisesr<   r>   r5   r7    r)   rS   test_failing_latexr      sS     #'CLLJJz	|	$ /BJJL./ / /s   *A55A>c                     | j                  d       t        j                  dddd       t        j                  dddd       t        j                  t	        j
                         d	       | j                  \  }d
|j                         v sJ y )NWARNING皙?rn   T)usetex皙?barr   rZ   zas if usetex=False)	set_levelr3   figtextr>   r5   r7   records
getMessage)caplogrecords     rS   test_partial_usetexr      sj    
YKKBd+KKBd+KK

T*nnGF6#4#4#6666r)   c                     t         j                  j                  ddd       t        j                  ddd       t        j
                  t        j                         d       y )NTz$\usepackage{color,graphicx,textcomp})r   ztext.latex.preamblerm   rn   r   rZ   )r+   r,   r-   r3   r   r>   r5   r7   )r   s    rS   test_usetex_preambler      sE    LLF 
 KKBKK

T*r)   z
useafm.epsc                      dt         j                  d<   t        j                         \  } }|j	                          |j                  d       |j                  ddd       y )NTr   rm   qk)r+   r,   r3   r4   ro   axhlinerp   rq   s     rS   test_useafmr      sD     $CLLllnGCOOJJrNGGBDr)   zcoloredhatcheszerolw.epsc                     t        j                         } | j                  t        ddddddd             | j                  t        dd	d	d
ddd             | j                  t        ddddddd             | j	                          y )N)r   r   r$   /noneri   r   )hatch	facecolor	edgecolorrX   )rm   rm   rm   +gr   )r$   r$   g333333?g?\b)r3   gca	add_patchr
   ro   )rJ   s    rS   !test_colored_hatch_zero_linewidthr      s}    	BLLASF#&!5 6LLS#SF#&#7 8LLc#&!5 6OOr)   )
extensionsc                     | j                         }|j                  ddd| j                  d       |j                          y )Nr   helloT)	transformclip_on)add_subplotrp   transFigure)fig_testfig_refrJ   s      rS   test_text_clipr      s8    				BGGAq'X%9%94GHr)   c                     t        j                         }|j                  ddd       | dz  }|j                  |       t        j
                  j                  j                  |d       y )Nrm   defztest.epsF)cache)r3   r   rp   r>   r+   testingcompareconvert)rc   rI   outs      rS   test_d_glyphr      sR     **,CHHRU
Z
CKKKK51r)   ztype42_without_prep.epsmpl20c                  ~    dt         j                  d<   dt         j                  d<   t        j                  ddd       y )N*   ps.fonttypestixzmathtext.fontsetrm   zMass $m$)r+   r,   r3   r   r   r)   rS   test_type42_font_without_prepr      s1     #%CLL'-CLL#$KKS*%r)   fonttype342c                 ^   | t         j                  d<   t        j                         \  }}|j	                  ddd       t        j                         }|j                  |d       dt        |  d	      z   d
z   }t        j                  ||j                         t        j                        sJ y )Nr   g      ?rm   z&Forty-two is the answer to everything!r   rZ   s
   /FontType zutf-8)encodings    def)r+   r,   r3   r4   rp   r5   r7   r>   bytesrD   rx   rA   ry   )r   rI   rJ   r   tests        rS   test_fonttyper     s    "*CLLllnGCGGD#?@
**,CKKDK!5H:AAGKD99T3<<>2<<888r)   c                      t        j                         \  } }|j                  ddgd       t        j                         }| j                  |d       |j                         dkD  sJ y)z-Test that dashed lines do not break PS outputr   r$   z--)	linestyler   rZ   N)r3   r4   r9   r5   r7   r>   tell)rI   rJ   r   s      rS   test_linedashr     sR    llnGCGGQFdG#
**,CKKDK!88:>>r)   c                      t               } | j                  ddd       t        j                         }| j	                  |d       | j	                  |d       y )Nrm   z
foo

r   rZ   r   )r	   rp   r5   r7   r>   )r   r   s     rS   test_empty_liner   !  sD    XF
KKS+&
**,C
NN3uN%
NN3tN$r)   c                  ,   t               } | j                  ddt        d            }|j                  D ](  }|j	                  g g        |j                  ddg       * | j                  d       t        j                         }| j                  |d	
       |j                  d       |j                         D cg c]'  }|j                  d      r|j                  d      d   ) }}t        t        |      j!                               dk(  sJ y c c}w )NrV   polar)
projection)
subplot_kw)xticksyticksr$   r%   zhello, worldr   rZ   r   r    )r	   r4   dictflatsetr9   suptitler5   r6   r>   seek	readlines
startswith	partitionmaxr   values)rI   axsrJ   r   lnwdss         rS   test_no_duplicate_definitionr   *  s    
(C
,,q!(@,
AChh 
b$
A LL 
++-CKKEK"HHQK "mmC  <<Q "C " ws|""$%***	"s   ;,Dzmulti_font_type3.epsc                      t               \  } }t        j                  d| d       t        j                  dd       t        j                  d      }|j	                  d	d	|d
d
       y )Nfont   familysizer   r   r         figsizerm   centerhorizontalalignmentverticalalignmentr   r3   rcr   rp   fontstest_strrI   s      rS   test_multi_font_type3r   >  sW    *,OE8FF6%b)FF4!
**V
$CHHS#x!)X  Gr)   zmulti_font_type42.epsc                      t               \  } }t        j                  d| d       t        j                  dd       t        j                  d      }|j	                  d	d	|d
d
       y )Nr   r   r   r   r   r   r   r   rm   r   r   r   r   s      rS   test_multi_font_type42r   I  sW    *,OE8FF6%b)FF4"
**V
$CHHS#x!)X  Gr)   zttc_type3.epsc            	      
   t        j                  dg      } t        t        j                  |             j                  dk7  rt        j                  d       ddg}t        j                  dd       t        j                  d	d
       t        j                  dt        |      dz  f      j                  t        |            }t        ||      D ]/  \  }}|j                  dd| dt        j                   |dd       1 y )NWenQuanYi Zen Heir   wqy-zenhei.ttc"Font wqy-zenhei.ttc may be missingWenQuanYi Zen Hei Monor   r   r   pdfr   r      r%   r   rm   : r   r   r   r   r   FontPropertiesr   findfontnamer0   r1   r3   r   r   len
subfiguresziprp   stringascii_uppercasefpr   figsr   rI   s        rS   test_ttc_type3r  T  s    		$	$-@,A	BBL!!"%&++/??89 ":;EFF6FF51::q#e*q.12==c%jID% K	ccdV2f&<&<%=>T%- 	 	KKr)   zttc_type42.epsc            	      
   t        j                  dg      } t        t        j                  |             j                  dk7  rt        j                  d       ddg}t        j                  dd       t        j                  d	d
       t        j                  dt        |      dz  f      j                  t        |            }t        ||      D ]/  \  }}|j                  dd| dt        j                   |dd       1 y )Nr   r   r   r   r   r   r   r  r  r   r   r  r%   r   rm   r  r   r  r  r  s        rS   test_ttc_type42r  d  s    		$	$-@,A	BBL!!"%&++/??89 ":;EFF6FF52::q#e*q.12==c%jID% K	ccdV2f&<&<%=>T%- 	 	KKr)   zscatter.epsc                  t   t         j                  j                  d      } | j                  ddd      }| j                  ddd      }| j                  ddd      }t	        j
                         \  }}|j                  |||g dd	       |j                          t        d
d      D cg c]!  }t        j                  j                  |      # }}| j                  ddd      j                  dd      }ddg}t        j                  ||dd|      }	|j                  |	d       |j!                  dd       y c c}w )Ni!N,r   r$   
      d   )g?r   r   <)r   markerr   r        r%   g{Gz?g{Gz?yellow)zorder
facecolorsoffsetsF)autolim)nprandomdefault_rnguniformr3   r4   scatterro   rz   r   r   unit_regular_polygonreshapemcollectionsPathCollectionadd_collectionset_xlim)
rngxvalsyvalssizesrI   rJ   r   pathsr!  pcs
             rS   test_path_collectionr4  t  s   
))


)CKK1b!EKK1b!EKKC$EllnGCJJueUocJJOO8=aD1TYY++A.DEDkk!S"%--b!4G4LE		$	$UE"08'
KB b%(KK1 Es   &&D5zcolorbar_shift.epsbbox_inchestight)savefig_kwargrg   c                     t        j                  g d      }t        j                  g d|j                        }t	        j
                  ddgddgddg||       t	        j                          y )N)ri   r   r   )r  g      rm   r$   r   r$   )ccmapnorm)mcolorsListedColormapBoundaryNormNr3   r'  colorbar)rc   r:  r;  s      rS   test_colorbar_shiftrA    sT     !!/2D 2DFF;DKKAA1a&t$?LLNr)   c                  ^   t        j                         } t        j                  t        d      5  | j                  t        j                         dd       d d d        t        j                  t        d      5  dt        j                  d<   d d d        y # 1 sw Y   AxY w# 1 sw Y   y xY w)Nz'auto' is not a valid value)matchr   auto)r&   r'   zps.papersize)
r3   r   r0   r   
ValueErrorr>   r5   r7   r+   r,   )rI   s    rS   test_auto_papersize_removalrF    s    
**,C	z)F	G BBJJL&AB 
z)F	G .'-^$. .B B. .s   'B:B#B #B,)Acollectionsr   r5   pathlibr   rD   r  ra   numpyr#  r0   
matplotlibr   r   r   r   matplotlib.figurer	   matplotlib.patchesr
   matplotlib.testingr   matplotlib.testing._markersr   r   matplotlib.testing.decoratorsr   r   r+   matplotlib.collectionsr*  matplotlib.colorscolorsr<  matplotlib.pyplotpyplotr3   markflakyparametrizerT   r\   re   rr   rt   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r4  rA  rF  r   r)   rS   <module>rX     sf    	  	     = = $ & 3 G O  - #  !x&:;[(AB4	5"	5$m45	5$f-.	5=$'(
E2
D;%&
EM4()7  "G6# C < (G6T% @  @" ;-7/ 8/ ;-7/ 8 /J$ / / 7 7 + + <.8 9 -.oF G ( ) 2 2 ,-W=& >& c4[19 29	%+( )*':G ;G *+7;G <G ?#73K 4K #$G4K 5K =/9 :* '(8P!!.r)   