
    h1                     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  S SKJrJr  S SKJr  S5S jr\	" S/SS	9S
 5       r\	" S/5      S 5       r\	" S/5      S 5       r\	" S/SSS9S 5       r\	" S/5      S 5       r\	" S/5      S 5       r\	" S/SS	9S 5       r\	" S/SS	9S 5       r\	" S/5      S 5       rS rS6S  jr\	" S!S"/5      S# 5       rS$ r\R@                  RC                  S%S&S'/5      S( 5       r"S) r#S* r$S+ r%S, r&S- r'\R@                  RQ                  S.5      S/ 5       r)S0 r*S1 r+S2 r,S3 r-S4 r.g)7    N)assert_array_equal)image_comparison)AnchoredOffsetboxDrawingArea)	Rectanglec                     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     S/var/www/html/env/lib/python3.13/site-packages/matplotlib/tests/test_tightlayout.pyexample_plotr      sR    GGQFOAMM)hM/MM)hM/LL8L,    tight_layout1gffffff?)tolc                  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_layout2r0      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-   r.   s      r   test_tight_layout3r7   )   sR     ++c
C
++c
C
++c
Cr   tight_layout4)z2.5.5z2.6.1Q?)freetype_versionr   c                  :   [         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-   r.   r/   s       r   test_tight_layout4rA   5   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!   r6   nparangereshapeimshowr#   )r   arrs     r   test_tight_layout5rN   D   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   M   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   w   s     HllnGCGGQFOAMM)hM/MM)hM/LL6HL=LLGhL?r   tight_layout8{Gzt?c                      [         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_layout8ry      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)rr   r3   out   r   )tickdirlengthwidth    Tminor)r   r   r   tick1Onwhichr   )r      inr4   inout   gK?gCl?gʡE?gB`"?gI+?g/$?gQ?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US4SU4XU4SU* 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     W
$ )z
Surround ax with OffsetBoxes
r	   rR   r<   Noner   F)r   height	facecolor	edgecolor	linewidthantialiasedcenterg        )rl   childrv   frameonbbox_to_anchorbbox_transform	borderpad)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Bx"1"XBx"qb3M $vT&*).)/)*+02
 	j!( << 	l#% & r   tight_layout_offsetboxes1tight_layout_offsetboxes2c                  P  ^^^^^ S=mm/ SQmSS/=mmUUUUU4S jn U " 5       n[         R                  " 5         U " 5       nUTS-
  S T2    HB  nUR                  5        H+  n[        U[        5      (       d  M  UR                  S5        M-     MD     [         R                  " 5         g )Nr
   )redbluegreenyellowr   r	   c                     > [         R                  " TT5      u  pUR                  n[        UT5       H!  u  p#UR	                  TTUS9  [        USUS9  M#     U$ )N)r      )r!   r"   flatzipr   r   )	_axsr   r   colorscolsrowsxys	       r   	_subplots0test_tight_layout_offsetboxes.<locals>._subplots   sV    dD)hhS&)IBGGAqG&B%0 * 
r   F)r!   r#   get_children
isinstancer   r|   )	r   r   r   r   r   r   r   r   r   s	       @@@@@r   test_tight_layout_offsetboxesr      s     OD4/FFNA  +C +C46<4< __&E%!233!!%( ' !
 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     :    ||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     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   %  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drawget_window_extenty0y1)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__F  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  B  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   r9   )caxzThis figure includes Axesmatch)r!   r"   scatterr   add_axesx1r   r   colorbarr   r   r[   r#   )r%   r   ptsax_rectr  s        r   test_manual_colorbarr  Q  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-   r.   r   hr   rT   s	            r   test_clipped_to_axesr0  ^  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  rv   333333?)r!   r"   r   r   PendingDeprecationWarningset_tight_layoutrx   r$   s     r   test_tight_padsr5  v  sQ    llnGC	/0
2eT]+
2  
2 
2s   A
A,c                  T    [         R                  " SS0S9u  pU R                  5         g )Nrv   r2  r   )r!   r"   rx   r$   s     r   test_tight_kwargsr7  ~  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   r3  r4  get_tight_layoutr$   s     r   test_tight_toggler:    s    llnGC	/	0T"##%%%%U#''))))T"##%%%% 
1	0	0s   A9B55
C)rV   )rF   rt   black)/rX   numpyrI   numpy.testingr   r   
matplotlibr]   matplotlib.testing.decoratorsr   matplotlib.pyplotpyplotr!   matplotlib.offsetboxr   r   matplotlib.patchesr   r   r&   r0   r7   rA   rN   rh   rn   ry   r   r   r   r   r   markparametrizer   r   r   r   r   r   backendr  r  r0  r5  r7  r:  r   r   r   <module>rG     s     ,   :  ? (- ?#- . ?#$ % ?#$ % ?#6H

 ?#$ % ?#$&% %&%R ?#-
 .
 ?#/! 0! ?#$ % )F< .0KLM$ N$N 8X"67! 8!  0*@ U 
.0!!
&r   