
    P/Ph1                        d dl Z d dlZd dlmZ d dlZd dlZd dlm	Z	 d dl
mZ d dlmZmZ d dlmZ d9dZ e	dgd	
          d             Z e	dg          d             Z e	dg          d             Z e	dgdd          d             Z e	dg          d             Z e	dg          d             Z e	dgd	
          d             Z e	dgd
          d             Z e	dg          d             Zd  Zd:d$Z e	d%d&g          d'             Zd( Zej         !                    d)d*d+g          d,             Z"d- Z#d. Z$d/ Z%d0 Z&d1 Z'ej         (                    d2          d3             Z)d4 Z*d5 Z+d6 Z,d7 Z-d8 Z.dS );    N)assert_array_equal)image_comparison)AnchoredOffsetboxDrawingArea)	Rectangle   c                     |                      ddg           |                     d           |                     d|           |                     d|           |                     d|           d S )	N         nbinsx-labelfontsizey-labelTitle)plotlocator_params
set_xlabel
set_ylabel	set_title)axr   s     a/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/matplotlib/tests/test_tightlayout.pyexample_plotr      st    GGQFOOOAMM)hM///MM)hM///LL8L,,,,,    tight_layout1gffffff?)tolc                  z    t          j                    \  } }t          |d           t          j                     dS )z'Test tight_layout for a single subplot.   r   Npltsubplotsr   tight_layoutfigr   s     r   test_tight_layout1r'      s;     lnnGCb!!!!r   tight_layout2c                      t          j        dd          \  } \  \  }}\  }}t          |           t          |           t          |           t          |           t          j                     dS )(Test tight_layout for multiple subplots.r   )nrowsncolsNr!   )r&   ax1ax2ax3ax4s        r   test_tight_layout2r1      sw     %(Lq$B$B$B!C	!*3jsCr   tight_layout3c                      t          j        d          } t          j        d          }t          j        d          }t          |            t          |           t          |           t          j                     dS )r*         z   N)r"   subplotr   r$   )r-   r.   r/   s      r   test_tight_layout3r8   )   sp     +c

C
+c

C
+c

Cr   tight_layout4)z2.5.5z2.6.1Q?)freetype_versionr   c                  Z   t          j        dd          } t          j        ddd          }t          j        dddd          }t          j        ddd	          }t          |            t          |           t          |           t          |           t          j                     d
S )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/   r0   s       r   test_tight_layout4rB   5   s     
66
*
*C

661
5
5
5C

661a
@
@
@C

661
5
5
5Cr   tight_layout5c                      t          j                    } t          j        d                              d          }|                     |d           t          j                     dS )zTest tight_layout for image.d   
   rG   none)interpolationN)r"   r7   nparangereshapeimshowr$   )r   arrs     r   test_tight_layout5rO   D   sU     
B
)C..
 
 
*
*CIIcI(((r   tight_layout6c            
      H   t          j                    5  t          j        dt                     t	          j                    } t          j                            dd          }| 	                    |d                   }| 	                    |d                   }t          |           t          |           |                    | g d           t          j                            dd          }|D ]P}| 	                    |          }t          |           |                    d           |                    d           Q|                    d	d
           |                    | g dd           t          |j        |j                  }t!          |j        |j                  }|                    | dd||j        z
  z   dd|j        |z
  z
  g           |                    | dd||j        z
  z   dd|j        |z
  z
  gd           ddd           dS # 1 swxY w Y   dS )zTest tight_layout for gridspec.ignorer   r
   r   )r   r         ?r
   rectr    r   r   r   )rS   r   r
   r
   g?)rU   h_padNrS   )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44jlll##Aq))ooc!f%%ooc!f%%SS>>>222l##Aq)) 	 	B$$BLLMM"
i"--->>>>>>#'37##SZ,,D!vcj/@*A$'cgck):$< 	= 	= 	=CfSZ.?)@$(!sws{*;$=# 	 	% 	% 	%= %  %  %  %  %  %  %  %  %  %  %  %  %  %  %  %  %  %s   G6HHHtight_layout7c                  r   d} t          j                    \  }}|                    ddg           |                    d           |                    d|            |                    d|            |                    d	d
|            |                    dd|            t          j                     d S )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lnnGCGGQFOOOAMM)hM///MM)hM///LL6HL===LLGhL???r   tight_layout8{Gzt?c                      t          j                    } |                     dd           |                                 }t	          |d           |                                  dS )#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      sb     *,,Cc222			Bb!!!!     r   tight_layout9c                      t          j        dd          \  } }|d         d                             d           t          j                     d S )Nr   r
   F)r"   r#   set_visibler$   )faxarrs     r   test_tight_layout9r      sJ     |Aq!!HAu	!HQKE"""r   c                     t          j                    } |                     d          }|j                            ddd           |j                            ddd           |j                            ddddd	           |j                            ddddd	           |j                            d
gd           |j                            d
gd           |                     d          }|j                            ddd           |j                            ddd           |                     d          }|j                            ddd           |j                            ddd           |                     d          }|j                            ddd           |j                            ddd           t          j                     ddgddggddgddggddgddggddgddggg}t          | j	                  D ]R\  }}t          t          j        |                                                                d          ||                    SdS )rr   r4   out   r   )tickdirlengthwidth    Tminor)r   r   r   tick1Onwhichr   )r      inr5   inout   gK?gCl?gʡE?gB`"?gI+?g/$?gQ?gm?N)r"   r\   r`   xaxisset_tick_paramsyaxis	set_ticksr$   	enumerateaxesr   rJ   roundget_position
get_points)r&   r   expectednns       r   test_outward_ticksr      s   
*,,C			BHU2Q???HU2Q???Hb4w  H H HHb4w  H H HHs$'''Hs$'''			BHT"A>>>HT"A>>>			BHWRqAAAHWRqAAA			BHU2Q???HU2Q??? %(
%(
%(
%(	H CH%% ) )B28BOO$5$5$@$@$B$BAFF#B<	) 	) 	) 	)) )r   rG   rt   blackc           
      <   |d|z   }}| | f| df| |f|dfd|f||fd| f|| fd| fg	}|D ]m}t          ||          }t          d|||ddd          }	|                    |	           t          d|d	d|| j        d	
          }
|                     |
           n|
S )z&
    Surround ax with OffsetBoxes
    r
   rS   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    AfHrAb1"XBx1"b"XBx"b1"XQBx"qb3M  $ $t$$vT&*).)/)*+02 2 2
 	j!!!( <   	l####r   tight_layout_offsetboxes1tight_layout_offsetboxes2c                  V   dxg dddgxfd}  |             }t          j                      |             }|dz
  d          D ]C}|                                D ],}t          |t                    r|                    d           -Dt          j                     d S )Nr   )redbluegreenyellowr   r
   c                      t          j                  \  } }|j        }t          |          D ]/\  }}|                    |           t          |d|           0|S )N)r      )r"   r#   flatzipr   r   )	_axsr   r   colorscolsrowsxys	       r   	_subplotsz0test_tight_layout_offsetboxes.<locals>._subplots   sq    dD))3hS&)) 	1 	1IBGGAqG&&&B%0000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                  T    t          j                    } |                                  dS )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                 T    t          j        d          \  }} |j        di | di dS )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=     l6***GC
BF  eY     r   c                      t          j        ddd          \  } }|d                             d           |d                             d           dS )	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     R    |Aq&111HCFhFhr   c                      t          j        ddd          \  } }|d                             d           |d                             d           dS )	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                      t          j        dd           t          j        dddd           t          j        t                    5  t          j                     d d d            d S # 1 swxY w Y   d S )N)      r=   )r   r   )r   r   r   r   r?   )r"   rA   pytestwarnsr[   r$   r   r   r   test_badsubplotgridr     s    VV$$$VVQ::::	k	"	"                   s   A((A,/A,c                  T   t          j        d          \  } }|                    ddg           |                    ddg           |                    dddd	           |                                }t          j        t                    5  t          j	                     |                                }|j
        |j
        k    sJ 	 d d d            n# 1 swxY w Y   t          j        t                    5  t          j	        g d
           d d d            d S # 1 swxY w Y   d S )NTr$   r   r
   zBIG LONG STRING)g      ?r   )g      %@g      ?F)xyxytextannotation_clip)r   r   皙?r   rT   )r"   r#   set_xlimset_ylimannotater   r   r   r[   r$   r   )r&   r   p1p2s       r   test_collapsedr   %  s   
 l---GCKKAKKAKK!i %  ' ' '			B	k	"	" $ $__x28#####$ $ $ $ $ $ $ $ $ $ $ $ $ $ $
 
k	"	" 0 0...////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s$   :CCC8DD!$D!c                  (   t          j        d          \  } }|                     d          }|                    d          }| j                                         |                                j        |                                j        k    sJ d S )NTr   foobar)	r"   r#   suptitler   canvasdrawget_window_extenty0y1)r&   r   stts       r   test_suptitler   :  s    l---GC	e		B
UAJOO!!$q':':'<'<'???????r   pdfc                     t           j        j        j        fd}|                     t           j        j        d|           t          j                    \  }}|                                 d S )Nc                 l    t          | t          j        j        j                  sJ  | g|R i | d S )N)r   r]   backendsbackend_pdfRendererPdf)selfargskwargsunpatched_inits      r   __init__z'test_non_agg_renderer.<locals>.__init__F  sI     $ 8 DE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  sq    &3<N. . . . . )6
HMMMlnnGCr   c                     t          j        dd          \  } }|d                             ddgddgddg          }|d                                         }|                     |j        dz   |j        d|j        g          }|                     ||           t          j
        t          d	
          5  |                                  d d d            d S # 1 swxY w Y   d S )Nr
   r   r   r   )crp   r:   )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/
3
3C1g""$$G
,,	e	WZ? C LL#L	k)D	E	E	E                   s   4CCCc                  0   t          j        d                              d          } t          j        d          }|                    dd          }|                    dd	          }|                    d
d          }|||fD ]}|                    d           |                    | d d df                   \  }|                    |           }|	                                sJ |	                                sJ t          ddd|j                  }|                    |           |                    |                                |                                           |	                                rJ |	                                rJ d S )NrE   rF   )   r   r      rectilinear)
projection   	mollweide   polarFr   r=   rS   )	transform)rJ   rK   rL   r"   r\   r`   gridr   pcolor_fully_clipped_to_axesr   r   set_clip_pathget_pathget_transform)	rN   r&   r-   r.   r/   r   hr   rU   s	            r   test_clipped_to_axesr/  ^  s    )C..
 
 
*
*C
*V
$
$
$C
//#-/
8
8C
//#+/
6
6C
//#'/
2
2CCo . .
WWSAYIIcNN'')))))'')))))cR\BBB		););)=)=>>>++-----++------. .r   c                      t          j                    \  } }t          j        t          d          5  |                     ddi           d d d            n# 1 swxY w Y   |                                  d S )Nzwill be deprecatedr  rv   333333?)r"   r#   r   r   PendingDeprecationWarningset_tight_layoutrx   r%   s     r   test_tight_padsr4  v  s    lnnGC	/0
2 
2 
2 , ,eT]+++, , , , , , , , , , , , , , ,      s   AAAc                  b    t          j        ddi          \  } }|                                  d S )Nrv   r1  r   )r"   r#   rx   r%   s     r   test_tight_kwargsr6  ~  s4    l666GC     r   c                     t          j                    \  } }t          j        t                    5  |                     d           |                                 sJ |                     d           |                                 rJ |                     d           |                                 sJ 	 d d d            d S # 1 swxY w Y   d S )NTF)r"   r#   r   r   r2  r3  get_tight_layoutr%   s     r   test_tight_toggler9    s   lnnGC	/	0	0 & &T"""##%%%%%U###'')))))T"""##%%%%%%& & & & & & & & & & & & & & & & & &s   BC  CC)r   )rG   rt   r   )/rX   numpyrJ   numpy.testingr   r   
matplotlibr]   matplotlib.testing.decoratorsr   matplotlib.pyplotpyplotr"   matplotlib.offsetboxr   r   matplotlib.patchesr   r   r'   r1   r8   rB   rO   rh   rn   ry   r   r   r   r   r   markparametrizer   r   r   r   r   r   backendr  r  r/  r4  r6  r9  r   r   r   <module>rE     s        , , , , , ,      : : : : : :       ? ? ? ? ? ? ? ? ( ( ( ( ( (- - - - ?#---  .- ?#$$  %$ ?#$$  %$ ?#6H  
 
 
 ?#$$  %$ ?#$$&% &% %$&%R ?#---
 
 .-
 ?#///! ! 0/! ?#$$  %$ )  )  )F   < .0KLMM$ $ NM$N   8X"677! ! 87!            0 0 0*@ @ @ U  
 
 
. . .0! ! !! ! !
& & & & &r   