
    (ph6                        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  S SKJrJr  S SKJr  \R$                  R'                  S5      /rS2S jr\	" S/S	S
9S 5       r\	" S/S	S
9S 5       r\	" S/S	S
9S 5       r\	" S/S	S
9S 5       r\	" S/S	S
9S 5       r\	" S/S	S
9S 5       r\	" S/S	S
9S 5       r\	" S/S	SS9S 5       r\	" S/S	S
9S 5       rS rS3S jr S  r!S! r"\R$                  RG                  S"S#S$/5      S% 5       r$S& r%S' r&S( r'S) r(S* r)\R$                  RU                  S+5      S, 5       r+S- r,S. r-S/ r.S0 r/S1 r0g)4    N)assert_array_equal)image_comparison)AnchoredOffsetboxDrawingArea)	Rectangletext_placeholdersc                     U R                  SS/5        U R                  SS9  U R                  SUS9  U R                  SUS9  U R	                  SUS9  g )	N         nbinsx-labelfontsizey-labelTitle)plotlocator_params
set_xlabel
set_ylabel	set_title)axr   s     T/var/www/html/venv/lib/python3.13/site-packages/matplotlib/tests/test_tightlayout.pyexample_plotr      sR    GGQFOAMM)hM/MM)hM/LL8L,    tight_layout1mpl20)stylec                  p    [         R                  " 5       u  p[        USS9  [         R                  " 5         g)z'Test tight_layout for a single subplot.   r   Npltsubplotsr   tight_layoutfigr   s     r   test_tight_layout1r(      s'     llnGCb!r   tight_layout2c                      [         R                  " SSS9u  n u  u  pu  p4[        U5        [        U5        [        U5        [        U5        [         R                  " 5         g)(Test tight_layout for multiple subplots.r   )nrowsncolsNr"   )r'   ax1ax2ax3ax4s        r   test_tight_layout2r2   #   sN     %(LLq$B!C	!*3jsr   tight_layout3c                      [         R                  " S5      n [         R                  " S5      n[         R                  " S5      n[        U 5        [        U5        [        U5        [         R                  " 5         g)r+         z   N)r#   subplotr   r%   )r.   r/   r0   s      r   test_tight_layout3r9   .   sR     ++c
C
++c
C
++c
Cr   tight_layout4c                  :   [         R                  " SS5      n [         R                  " SSSS9n[         R                  " SSSSS9n[         R                  " SSSS	9n[        U 5        [        U5        [        U5        [        U5        [         R                  " 5         g
)z#Test tight_layout for subplot2grid.)r   r   r   r   )r   r
   r   )colspan)r
   r   r=   rowspan)r
   r   )r?   N)r#   subplot2gridr   r%   )r.   r/   r0   r1   s       r   test_tight_layout4rA   :   s     

66
*C


661
5C


661a
@C


661
5Cr   tight_layout5c                      [         R                  " 5       n [        R                  " S5      R	                  S5      nU R                  USS9  [         R                  " 5         g)zTest tight_layout for image.d   
   rF   none)interpolationN)r#   r8   nparangereshapeimshowr%   )r   arrs     r   test_tight_layout5rN   H   sC     
B
))C.
 
 
*CIIcI(r   tight_layout6c            
         [         R                  " 5          [         R                  " S[        5        [        R
                  " 5       n [        R                  R                  SS5      nU R                  US   5      nU R                  US   5      n[        U5        [        U5        UR                  U / SQS9  [        R                  R                  SS5      nU HA  nU R                  U5      n[        U5        UR                  S5        UR                  S5        MC     WR                  S	S
S9  UR                  U / SQSS9  [        UR                  UR                  5      n[!        UR"                  UR"                  5      nUR                  U SSXR"                  -
  -   SSUR                  U-
  -
  /S9  UR                  U SSXR"                  -
  -   SSUR                  U-
  -
  /SS9  SSS5        g! , (       d  f       g= f)zTest tight_layout for gridspec.ignorer   r
   r   )r   r         ?r
   rectr    r      r   )rR   r   r
   r
   g?)rT   h_padNrR   )warningscatch_warningssimplefilterUserWarningr#   figuremplgridspecGridSpecadd_subplotr   r%   r   r   mintopmaxbottom)	r'   gs1r.   r/   gs2ssr   rb   rd   s	            r   test_tight_layout6rh   Q   s    
	 	 	"h4jjlll##Aq)ooc!f%ooc!f%SS>2ll##Aq)B$BLLMM"	  	i"->>#''377#SZZ,D!vjj/@*A$'cggck):$< 	=CfZZ.?)@$(!swws{*;$=# 	 	%= 
#	"	"s   GG11
G?tight_layout7c                  (   Sn [         R                  " 5       u  pUR                  SS/5        UR                  SS9  UR	                  SU S9  UR                  SU S9  UR                  S	S
U S9  UR                  SSU S9  [         R                  " 5         g )Nr!   r
   r   r   r   r   r   r   z
Left Titleleft)locr   zRight Titleright)r#   r$   r   r   r   r   r   r%   )r   r'   r   s      r   test_tight_layout7rn   {   s     HllnGCGGQFOAMM)hM/MM)hM/LL6HL=LLGhL?r   tight_layout8{Gzt?)r   tolc                      [         R                  " 5       n U R                  SSS9  U R                  5       n[	        USS9  U R                  5         g)#Test automatic use of tight_layout.tight皙?)layoutpadr!   r   N)r#   r\   set_layout_enginer`   r   draw_without_renderingr&   s     r   test_tight_layout8rz      sD     **,Cc2		Bb! r   tight_layout9c                      [         R                  " SS5      u  pUS   S   R                  S5        [         R                  " 5         g )Nr   r
   F)r#   r$   set_visibler%   )faxarrs     r   test_tight_layout9r      s8     ||Aq!HA	!HQKE"r   c                  f   [         R                  " 5       n U R                  S5      nUR                  R	                  SSSS9  UR
                  R	                  SSSS9  UR                  R	                  SSSSSS	9  UR
                  R	                  SSSSSS	9  UR                  R                  S
/SS9  UR
                  R                  S
/SS9  U R                  S5      nUR                  R	                  SSSS9  UR
                  R	                  SSSS9  U R                  S5      nUR                  R	                  SSSS9  UR
                  R	                  SSSS9  U R                  S5      nUR                  R	                  SSSS9  UR
                  R	                  SSSS9  [         R                  " 5         SS/SS//SS/SS//SS/SS//SS/SS///n[        U R                  5       HD  u  p1[        [        R                  " UR                  5       R                  5       S5      X#   5        MF     g)rs   r5   out   r   )tickdirlengthwidth    Tminor)r   r   r   tick1Onwhichr   )r      inr6   inout   gZd;O?g\(\?gʡE?gB`"?gd;O?g/$?gDl?gm?N)r#   r\   r`   xaxisset_tick_paramsyaxis	set_ticksr%   	enumerateaxesr   rI   roundget_position
get_points)r'   r   expectednns       r   test_outward_ticksr      s   
**,C		BHHU2Q?HHU2Q?HHb4w  HHHb4w  HHHs$'HHs$'		BHHT"A>HHT"A>		BHHWRqAHHWRqA		BHHU2Q?HHU2Q? %(
%(
%(
%(	H CHH%288BOO$5$@$@$BAF#<	) &r   c                    USU-   pTU* U* 4U* S4U* U4SU4XU4US4XT* 4SU* 4/nU HX  n[        X5      n[        SUUUSSSS9n	UR                  U	5        [        SUS	SUU R                  S	S
9n
U R                  U
5        MZ     g)z
Surround ax with OffsetBoxes
r
   rR   r<   Noner   F)r   height	facecolor	edgecolor	linewidthantialiasedcenterg        )rl   childrw   frameonbbox_to_anchorbbox_transform	borderpadN)r   r   
add_artistr   	transAxes)r   sizemargincolormmpanchor_pointspointda
backgroundanchored_boxs              r   add_offsetboxesr      s     AfHrb1"XBx1"b"Xx"b"XQBx)M $vT&*).)/)*+02
 	j!( << 	l#% r   c                    ^^^^^ S=mm/ SQmSS/=mmUUUUU4S jn U " S5      u  pUR                  5         U " S5      u  p4UR                  5         [        UR                  UR                  5       H  u  pVUR                  5       nUR                  5       nUR                  UR                  :  d   eUR
                  UR
                  :  d   eUR                  UR                  :  d   eUR                  UR                  :  a  M   e   / n	UR                   Hs  nUR                  5        H\  n
[        U
[        5      (       d  M  U
R                  5       nU	 H  nUR                  U5      (       d  M   e   U	R                  U5        M^     Mu     U " S5      u  pUR                   HB  nUR                  5        H+  n
[        U
[        5      (       d  M  U
R                  S5        M-     MD     UR                  5         [        UR                  UR                  5       HN  u  nnUR                  5       nUR                  5       n[        UR!                  5       UR!                  5       5        MP     g )Nr   )redbluegreenyellowr   r
   c                    > [         R                  " TT5      u  p[        UR                  T5       H*  u  p4UR	                  TT	US9  U (       d  M  [        USUS9  M,     X4$ )N)r      )r#   r$   zipflatr   r   )

with_boxesr'   axsr   r   colorscolsrowsxys
        r   	_subplots0test_tight_layout_offsetboxes.<locals>._subplots   sX    <<d+SXXv.IBGGAqG&zBe4 / xr   FT)r%   r   r   r   x0x1y0y1get_children
isinstancer   get_window_extentoverlapsappendr}   r   r   )r   fig0axs0fig1axs1ax0r.   bbox0bbox1bboxesr   bbox
other_bboxfig2axs2r   r/   bbox2r   r   r   r   r   s                     @@@@@r   test_tight_layout_offsetboxesr      s     OD4/FFNA  5!JD 4JD 		499-  "  "xx%(("""xx%(("""xx%(("""xx%((""" . Fyy%%'Ee%677**,D$
==4444 %MM$ (  4JDii__&E%!233!!%( '  	 		499-S  "  "5++-u/?/?/AB .r   c                  N    [         R                  " 5       n U R                  5         g)zETest that tight layout doesn't cause an error when there are no Axes.N)r#   gcfr%   )r'   s    r   test_empty_layoutr   $  s    
'')Cr   labelxlabelylabelc                 X    [         R                  " SS9u  pUR                  " S0 U S0D6  g)z8Test that no warning emitted when xlabel/ylabel too big.r   r   figsizedaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaN )r#   r$   set)r   r'   r   s      r   test_verybig_decoratorsr   *  s(     ll6*GCFF eY r   c                      [         R                  " SSSS9u  pUS   R                  S5        US   R                  S5        g)	z+Test that doesn't warn when xlabel too big.r
   r   r   r   r   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbN)r#   r$   r   r'   r   s     r   test_big_decorators_horizontalr   1  :    ||Aq&1HCFhFhr   c                      [         R                  " SSSS9u  pUS   R                  S5        US   R                  S5        g)	z+Test that doesn't warn when ylabel too big.r   r
   r   r   r   aaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbN)r#   r$   r   r   s     r   test_big_decorators_verticalr   8  r   r   c                      [         R                  " SS5        [         R                  " SSSSS9  [        R                  " [        5         [         R
                  " 5         S S S 5        g ! , (       d  f       g = f)N)      r<   )r   r   )r   r   r   r   r>   )r#   r@   pytestwarnsr[   r%   r   r   r   test_badsubplotgridr   ?  sJ    VV$VVQ:	k	" 
#	"	"s   	A((
A6c                  @   [         R                  " SS9u  pUR                  SS/5        UR                  SS/5        UR	                  SSSSS	9  UR                  5       n[        R                  " [        5         [         R                  " 5         UR                  5       nUR                  UR                  :X  d   e S S S 5        [        R                  " [        5         [         R                  " / S
QS9  S S S 5        g ! , (       d  f       NH= f! , (       d  f       g = f)NTr%   r   r
   zBIG LONG STRING)g      ?r   )g      %@g      ?F)xyxytextannotation_clip)r   r   皙?r  rS   )r#   r$   set_xlimset_ylimannotater   r   r   r[   r%   r   )r'   r   p1p2s       r   test_collapsedr  H  s    
 ll-GCKKAKKAKK!i %  '		B	k	"__xx288### 
#
 
k	"./ 
#	" 
#	"
 
#	"s   9AC>D>
D
Dc                     [         R                  " SS9u  pU R                  S5      nUR                  S5      nU R                  R                  5         UR                  5       R                  UR                  5       R                  :  d   eg )NTr   foobar)	r#   r$   suptitler   canvasdrawr   r   r   )r'   r   stts       r   test_suptitler  ]  sh    ll-GC	e	B
UAJJOO!$$q':':'<'?'????r   pdfc                    ^ [         R                  R                  R                  mU4S jnU R	                  [         R                  R                  SU5        [
        R                  " 5       u  p4UR                  5         g )Nc                    > [        U [        R                  R                  R                  5      (       d   eT" U /UQ70 UD6  g )N)r   r]   backendsbackend_pdfRendererPdf)selfargskwargsunpatched_inits      r   __init__'test_non_agg_renderer.<locals>.__init__i  s:     $ 8 8 D DEEEEt-d-f-r   r  )r]   backend_basesRendererBaser  setattrr#   r$   r%   )monkeypatchrecwarnr  r'   r   r  s        @r   test_non_agg_rendererr"  e  sX    &&33<<N. ))66
HMllnGCr   c                     [         R                  " SS5      u  pUS   R                  SS/SS/SS/S9nUS   R                  5       nU R	                  UR
                  S-   UR                  SUR                  /5      nU R                  X$S9  [        R                  " [        S	S
9   U R                  5         S S S 5        g ! , (       d  f       g = f)Nr
   r   r   r   )crp   gQ?)caxzThis figure includes Axesmatch)r#   r$   scatterr   add_axesr   r   r   colorbarr   r   r[   r%   )r'   r   ptsax_rectr%  s        r   test_manual_colorbarr-  t  s    Q"IC
q'//1a&1a&QF/
3C1g""$G
,,	e	WZZ?C LLL	k)D	E 
F	E	Es   %B??
Cc                     [         R                  " S5      R                  S5      n [        R                  " SS9nUR                  SSS9nUR                  SS	S9nUR                  S
SS9nX#U4 H  nUR                  S5        UR                  U S S 2S4   5      u  nUR                  U 5      nUR                  5       (       d   eUR                  5       (       d   e[        SSSUR                  S9nUR                  U5        UR                  UR                  5       UR                  5       5        UR                  5       (       a   eUR                  5       (       d  M   e   g )NrD   rE   )   r   r      rectilinear)
projection   	mollweide   polarFr   r<   rR   )	transform)rI   rJ   rK   r#   r\   r`   gridr   pcolor_fully_clipped_to_axesr   r   set_clip_pathget_pathget_transform)	rM   r'   r.   r/   r0   r   hr   rT   s	            r   test_clipped_to_axesr?    s/    ))C.
 
 
*C
**V
$C
//#-/
8C
//#+/
6C
//#'/
2Co
WWSAYIIcN''))))''))))cR\\B		););)=>++----++---- r   c                      [         R                  " 5       u  p[        R                  " [        SS9   U R                  SS05        S S S 5        U R                  5         g ! , (       d  f       N= f)Nzwill be deprecatedr&  rw   333333?)r#   r$   r   r   PendingDeprecationWarningset_tight_layoutry   r&   s     r   test_tight_padsrD    sQ    llnGC	/0
2eT]+
2  
2 
2s   A
A,c                  T    [         R                  " SS0S9u  pU R                  5         g )Nrw   rA  r   )r#   r$   ry   r&   s     r   test_tight_kwargsrF    s"    ll6GC r   c                     [         R                  " 5       u  p[        R                  " [        5         U R                  S5        U R                  5       (       d   eU R                  S5        U R                  5       (       a   eU R                  S5        U R                  5       (       d   e S S S 5        g ! , (       d  f       g = f)NTF)r#   r$   r   r   rB  rC  get_tight_layoutr&   s     r   test_tight_togglerI    s    llnGC	/	0T"##%%%%U#''))))T"##%%%% 
1	0	0s   A9B55
C)rV   )rF   ru   black)1rX   numpyrI   numpy.testingr   r   
matplotlibr]   matplotlib.testing.decoratorsr   matplotlib.pyplotpyplotr#   matplotlib.offsetboxr   r   matplotlib.patchesr   markusefixtures
pytestmarkr   r(   r2   r9   rA   rN   rh   rn   rz   r   r   r   r   r   parametrizer   r   r   r   r  r  backendr"  r-  r?  rD  rF  rI  r   r   r   <module>rX     s     ,   :  ? ( KK/0

- ?#73 4 ?#73 4 ?#73 4 ?#73
 4
 ?#73 4 ?#73&% 4&%R ?#73
 4
 ?#7>! ?! ?#73 4 )F$:ECP 8X"67! 8!  0*@ U 
.0!!
&r   