
    zYHh81                     L   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	jF                  jI                  d	
      e	jF                  jK                  dddg      e	jF                  jK                  dddg      e	jF                  jK                  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!        Z)e ed g      d"               Z*d# Z+ed$        Z,ed%        Z-ed&        Z. ed'g      d(        Z/ ed)g      d*        Z0 ed+g      d,        Z1 edg-      d.        Z2ed/        Z3 ed0gd12      d3        Z4e	jF                  jK                  d4d5d6g      d7        Z5d8 Z6d9 Z7d: Z8 ed;gd<=      d>        Z9 ed?gd@=      dA        Z: edBg      dC        Z; edDgdEdFid1G      dH        Z<dI Z=y)J    )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                 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                   Y/var/www/html/planif/env/lib/python3.12/site-packages/matplotlib/tests/test_backend_ps.pytest_savefig_to_stringiorS      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+   r2   r3   r8   r4   r6   r=   )rH   rI   r   s      rR   test_patheffectsr[   t   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   rU   z\textbf{time} (s)ztex_demo.epsr   rY   )mkdirr   _setattr_cmtempfiler1   r*   r+   r2   r8   xlabelr=   )tmp_pathbase_tempdirs     rR   test_tilde_in_tempfilenamerd   }   s     i'L 
		8S->	? @&*]#

'(L>1$?@ @ @s   ABB&z	empty.epsc                      t        j                         \  } }|j                          |j                  ddgdd       |j	                  ddddd       y )Nr   r#   rcoloralpha      ?foo)r2   r3   set_axis_offr8   textrH   rI   s     rR   test_transparencyro      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#   rf   rg   rj   rk   )r*   r+   r2   r3   rl   r8   rm   rn   s     rR   test_transparency_texrq      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   rY   s$   ^%%BoundingBox: (.+) (.+) (.+) (.+)$s)   ^%%HiResBoundingBox: (.+) (.+) (.+) (.+)$r#         .)r2   r3   r4   r6   r=   r@   rC   search	MULTILINErangegroupintr/   approxfloat)rH   rI   bufbbhibbis         rR   	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   rY   N)
r*   r+   r2   ra   r/   raisesr;   r=   r4   r6    r(   rR   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皙?rk   T)usetex皙?barr   rY   zas if usetex=False)	set_levelr2   figtextr=   r4   r6   records
getMessage)caplogrecords     rR   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.preamblerj   rk   r   rY   )r*   r+   r,   r2   r   r=   r4   r6   )r   s    rR   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   rj   qk)r*   r+   r2   r3   rl   axhlinerm   rn   s     rR   test_useafmr      sD     $CLLllnGCOOJJrNGGBDr(   z	type3.epsc                  2    t        j                  ddd       y )Nrj   zI/J)r2   r   r   r(   rR   test_type3_fontr      s    KKB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#   /nonerf   r   )hatch	facecolor	edgecolorrW   )rj   rj   rj   +gr   )r#   r#   g333333?g?\b)r2   gca	add_patchr
   rl   )rI   s    rR   !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_subplotrm   transFigure)fig_testfig_refrI   s      rR   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 )Nrj   defztest.epsF)cache)r2   r   rm   r=   r*   testingcompareconvert)rb   rH   outs      rR   test_d_glyphr      sR     **,CHHRU
Z
CKKKK51r(   ztype42_without_prep.epsmpl20)stylec                  ~    dt         j                  d<   dt         j                  d<   t        j                  ddd       y )N*   ps.fonttypestixzmathtext.fontsetrj   zMass $m$)r*   r+   r2   r   r   r(   rR   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      ?rj   z&Forty-two is the answer to everything!r   rY   s
   /FontType zutf-8)encodings    def)r*   r+   r2   r3   rm   r4   r6   r=   bytesrC   ru   r@   rv   )r   rH   rI   r|   tests        rR   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   rY   N)r2   r3   r8   r4   r6   r=   tell)rH   rI   r|   s      rR   test_linedashr     sR    llnGCGGQFdG#
**,CKKDK!88:>>r(   c                      t               } | j                  ddd       t        j                         }| j	                  |d       | j	                  |d       y )Nrj   z
foo

r   rY   r   )r	   rm   r4   r6   r=   )r   r|   s     rR   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 )NrU   polar)
projection)
subplot_kw)xticksyticksr#   r$   zhello, worldr   rY   r   r    )r	   r3   dictflatsetr8   suptitler4   r5   r=   seek	readlines
startswith	partitionmaxr   values)rH   axsrI   r|   lnwdss         rR   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.epsgRQ?)tolc                  b   t        j                  dg      } t        t        j                  |             j                  dk7  rt        j                  d       t        j                  dddgd       t        j                  d	d
       t        j                         }|j                  ddd       y )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/   r0   r2   rcr   rm   fprH   s     rR   test_multi_font_type3r   A  s    			#6"7	8BBKKO!!%55)*FF6=*=>RHFF4!
**,CHHT5>?r(   zmulti_font_type42.epsg?c                  b   t        j                  dg      } t        t        j                  |             j                  dk7  rt        j                  d       t        j                  dddgd       t        j                  d	d
       t        j                         }|j                  ddd       y )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s     rR   test_multi_font_type42r   N  s    			#6"7	8BBKKO!!%55)*FF6=*=>RHFF4"
**,CHHT5>?r(   zscatter.epsc                  p   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                  |	       |j!                  dd       y c c}w )Ni!N,r   r#   
      d   )g?r   r   <)r   markerr            r$   g{Gz?g{Gz?yellow)zorder
facecolorsoffsets)nprandomdefault_rnguniformr2   r3   scatterrl   rw   r   r   unit_regular_polygonreshapemcollectionsPathCollectionadd_collectionset_xlim)
rngxvalsyvalssizesrH   rI   r   pathsr  pcs
             rR   test_path_collectionr  [  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   &&D3zcolorbar_shift.epsbbox_inchestight)savefig_kwargr   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)rf   r   r   )r  g      rj   r#   r   r#   )ccmapnorm)mcolorsListedColormapBoundaryNormNr2   r  colorbar)rb   r#  r$  s      rR   test_colorbar_shiftr*  m  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)
r2   r   r/   r   
ValueErrorr=   r4   r6   r*   r+   )rH   s    rR   test_auto_papersize_removalr/  v  s    
**,C	z)F	G BBJJL&AB 
z)F	G .'-^$. .B B. .s   'B:B#B #B,)>collectionsr   pathlibr   r4   rC   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pyplotr2   markflakyparametrizerS   r[   rd   ro   rq   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r*  r/  r   r(   rR   <module>r@     s/     	 	    C C $ & G O  - #  !x&:;[(AB4	5"	5$m45	5$f-.	5=$'(
E2
D;%&
EM4()7  "G6# C < (G6T% @  @" ;- / !/ ;- / ! /J$ / / 7 7 + + <.! " ;-  ! -./ 0 ( ) 2 2 ,-W=& >& c4[19 29	%+( )*5	@ 6	@ *+5	@ 6	@ =/" #" '(8P!!.r(   