
    rbi6                     ,   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 ej                            d          gZd6dZ e	d	gd
          d             Z e	dgd
          d             Z e	dgd
          d             Z e	dgd
          d             Z e	dgd
          d             Z e	dgd
          d             Z e	dgd
          d             Z e	dgd
d          d             Z e	dgd
          d             Zd Zd7d#Z d$ Z!d% Z"ej        #                    d&d'd(g          d)             Z$d* Z%d+ Z&d, Z'd- Z(d. Z)ej        *                    d/          d0             Z+d1 Z,d2 Z-d3 Z.d4 Z/d5 Z0dS )8    N)assert_array_equal)image_comparison)AnchoredOffsetboxDrawingArea)	Rectangletext_placeholders   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     q/var/www/html/mdtn/previsions/meteo_cartes/venv/lib/python3.11/site-packages/matplotlib/tests/test_tightlayout.pyexample_plotr      st    GGQFOOOAMM)hM///MM)hM///LL8L,,,,,    tight_layout1mpl20)stylec                  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_layout2r3   #   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/   r0   r1   s      r   test_tight_layout3r:   .   sp     +c

C
+c

C
+c

Cr   tight_layout4c                  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/   r0   r1   r2   s       r   test_tight_layout4rB   :   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$   r9   nparangereshapeimshowr&   )r   arrs     r   test_tight_layout5rO   H   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/   r0   gs2ssr   rb   rd   s	            r   test_tight_layout6rh   Q   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   {   s     HlnnGCGGQFOOOAMM)hM///MM)hM///LL6HL===LLGhL???r   tight_layout8{Gzt?)r    tolc                      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_layout8rz      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 )rs   r6   out   r   )tickdirlengthwidth    Tminor)r   r   r   tick1Onwhichr   )r      inr7   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   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   ru   blackc           
      4   |d|z   }}| | f| df| |fd|f||f|df|| fd| fg}|D ]m}t          ||          }t          d|||ddd          }	|                    |	           t          d|d	d|| j        d	
          }
|                     |
           ndS )z&
    Surround ax with OffsetBoxes
    r   rS   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     AfHrAb1"XBx1"b"XBx"b1"XQBx)M  $ $t$$vT&*).)/)*+02 2 2
 	j!!!( <   	l####%$ $r   c                     dxg dddgxfd}  | d          \  }}|                                   | d          \  }}|                                  t          |j        |j                  D ]u\  }}|                                }|                                }|j        |j        k    sJ |j        |j        k     sJ |j        |j        k    sJ |j        |j        k     sJ vg }	|j        D ]t}|                                D ]]}
t          |
t                    s|
                                }|	D ]}|                    |          rJ |	                    |           ^u | d          \  }}|j        D ]C}|                                D ],}
t          |
t                    r|
                    d           -D|                                  t          |j        |j                  D ]a\  }}|                                }|                                }t          |                                |                                           bd S )Nr   )redbluegreenyellowr   r   c                     t          j                  \  }}t          |j                  D ]1\  }}|                    	|           | rt          |d|           2||fS )N)r      )r$   r%   zipflatr   r   )

with_boxesr(   axsr   r   colorscolsrowsxys
        r   	_subplotsz0test_tight_layout_offsetboxes.<locals>._subplots   sv    <d++SSXv.. 	5 	5IBGGAqG&&& 5Be4444Cx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   r0   bbox2r   r   r   r   r   s                     @@@@@r   test_tight_layout_offsetboxesr      s     OD4///FFNA         5!!JD$ 4JD$ 	49-- # #S  ""  ""x%(""""x%(""""x%(""""x%(""""" Fy    %%'' 	  	 Ee%677 **,,D$ 5 5
==444444MM$	  4JD$i ) )__&& 	) 	)E%!233 )!!%(((	) 	 	49-- C CS  ""  ""5++--u/?/?/A/ABBBBC C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   1  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   8  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  H  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drawr   r   r   )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__i  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!  e  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   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/
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/   r0   r1   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%  rw   333333?)r$   r%   r   r   PendingDeprecationWarningset_tight_layoutry   r'   s     r   test_tight_padsrC    s    lnnGC	/0
2 
2 
2 , ,eT]+++, , , , , , , , , , , , , , ,      s   AAAc                  b    t          j        ddi          \  } }|                                  d S )Nrw   r@  r   )r$   r%   ry   r'   s     r   test_tight_kwargsrE    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   rA  rB  get_tight_layoutr'   s     r   test_tight_togglerH    s   lnnGC	/	0	0 & &T"""##%%%%%U###'')))))T"""##%%%%%%& & & & & & & & & & & & & & & & & &s   BC  CC)r	   )rG   ru   r   )1rX   numpyrJ   numpy.testingr   r   
matplotlibr]   matplotlib.testing.decoratorsr   matplotlib.pyplotpyplotr$   matplotlib.offsetboxr   r   matplotlib.patchesr   markusefixtures
pytestmarkr   r)   r3   r:   rB   rO   rh   rn   rz   r   r   r   r   r   parametrizer   r   r   r   r  r  backendr!  r,  r>  rC  rE  rH  r   r   r   <module>rV     s        , , , , , ,      : : : : : :       ? ? ? ? ? ? ? ? ( ( ( ( ( ( K/00

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