o
    Õjš6  ã                   @   sä  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dPdd	„Ze	d
gdddd„ ƒZe	dgdddd„ ƒZe	dgdddd„ ƒZe	dgdddd„ ƒZe	dgdddd„ ƒZe	dgdddd„ ƒZe	dgdddd „ ƒZe	d!gdd"d#d$d%„ ƒZe	d&gddd'd(„ ƒZd)d*„ ZdQd.d/„Z d0d1„ Z!d2d3„ Z"ej #d4d5d6g¡d7d8„ ƒZ$d9d:„ Z%d;d<„ Z&d=d>„ Z'd?d@„ Z(dAdB„ Z)ej *dC¡dDdE„ ƒZ+dFdG„ Z,dHdI„ Z-dJdK„ Z.dLdM„ Z/dNdO„ Z0dS )Ré    N)Úassert_array_equal)Úimage_comparison)ÚAnchoredOffsetboxÚDrawingArea)Ú	RectangleZtext_placeholdersé   c                 C   sH   |   ddg¡ | jdd | jd|d | jd|d | jd|d d S )	Né   é   é   ©Znbinsúx-label©Úfontsizeúy-labelZTitle)ÚplotÚlocator_paramsÚ
set_xlabelÚ
set_ylabelÚ	set_title)Úaxr   © r   úb/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/matplotlib/tests/test_tightlayout.pyÚexample_plot   s
   r   Ztight_layout1Zmpl20)Ústylec                  C   s$   t  ¡ \} }t|dd t  ¡  dS )z'Test tight_layout for a single subplot.é   r   N©ÚpltÚsubplotsr   Útight_layout©Úfigr   r   r   r   Útest_tight_layout1   s   r!   Ztight_layout2c                  C   sJ   t jddd\} \\}}\}}t|ƒ t|ƒ t|ƒ t|ƒ t  ¡  dS )ú(Test tight_layout for multiple subplots.r	   )ZnrowsZncolsNr   )r    Úax1Úax2Úax3Úax4r   r   r   Útest_tight_layout2#   s   r'   Ztight_layout3c                  C   sB   t  d¡} t  d¡}t  d¡}t| ƒ t|ƒ t|ƒ t  ¡  dS )r"   éÝ   éß   éz   N)r   Úsubplotr   r   )r#   r$   r%   r   r   r   Útest_tight_layout3.   s   


r,   Ztight_layout4c                  C   sj   t  dd¡} t jdddd}t jddddd}t jdddd	}t| ƒ t|ƒ t|ƒ t|ƒ t  ¡  d
S )z#Test tight_layout for subplot2grid.)r
   r
   ©r   r   )r   r   r	   )Úcolspan)r   r   ©r.   Úrowspan)r   r	   )r0   N)r   Úsubplot2gridr   r   )r#   r$   r%   r&   r   r   r   Útest_tight_layout4:   s   r2   Ztight_layout5c                  C   s2   t  ¡ } t d¡ d¡}| j|dd t  ¡  dS )zTest tight_layout for image.éd   ©é
   r5   Únone)ÚinterpolationN)r   r+   ÚnpÚarangeÚreshapeZimshowr   )r   Úarrr   r   r   Útest_tight_layout5H   s   r<   Ztight_layout6c            	   	   C   s`  t  ¡ ¢ t  dt¡ t ¡ } tj dd¡}|  	|d ¡}|  	|d ¡}t
|ƒ t
|ƒ |j| g d¢d tj dd¡}|D ]}|  	|¡}t
|ƒ | d¡ | d¡ q>|jd	d
d |j| g d¢dd t|j|jƒ}t|j|jƒ}|j| dd||j  dd|j|  gd |j| dd||j  dd|j|  gdd W d  ƒ dS 1 s©w   Y  dS )zTest tight_layout for gridspec.Úignorer	   r   r   )r   r   ç      à?r   ©Úrectr
   Ú r   r   r   )r>   r   r   r   gÍÌÌÌÌÌÜ?)r@   Zh_padNr>   )ÚwarningsÚcatch_warningsÚsimplefilterÚUserWarningr   ÚfigureÚmplZgridspecZGridSpecÚadd_subplotr   r   r   r   ÚminÚtopÚmaxÚbottom)	r    Zgs1r#   r$   Zgs2Ússr   rJ   rL   r   r   r   Útest_tight_layout6Q   s8   


ÿÿþ"ârN   Ztight_layout7c                  C   sr   d} t  ¡ \}}| ddg¡ |jdd |jd| d |jd| d |jd	d
| d |jdd| d t  ¡  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   r   r   r   Útest_tight_layout7{   s   rR   Ztight_layout8ç{®Gázt?)r   Ztolc                  C   s6   t  ¡ } | jddd |  ¡ }t|dd |  ¡  dS )ú#Test automatic use of tight_layout.Ztightçš™™™™™¹?)ZlayoutÚpadr   r   N)r   rF   Zset_layout_enginerH   r   Údraw_without_renderingr   r   r   r   Útest_tight_layout8‰   s
   rX   Ztight_layout9c                  C   s.   t  dd¡\} }|d d  d¡ t  ¡  d S )Nr	   r   F)r   r   Úset_visibler   )ÚfZaxarrr   r   r   Útest_tight_layout9“   s   r[   c                  C   sŠ  t  ¡ } |  d¡}|jjdddd |jjdddd |jjdddddd	 |jjdddddd	 |jjd
gdd |jjd
gdd |  d¡}|jjdddd |jjdddd |  d¡}|jjdddd |jjdddd |  d¡}|jjdddd |jjdddd t  ¡  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 ]\}}t
t | ¡  ¡ d¡|| ƒ q¯dS )rT   r(   Úouté   r
   )ÚtickdirÚlengthÚwidthé    TÚminor)r^   r_   r`   Ztick1OnÚwhichr   )rb   éÞ   Úinr)   Zinoutéà   gZd;ßO·?g\Âõ(\ã?gƒÀÊ¡E¶Û?gB`åÐ"Ûí?gd;ßO—â?g/Ý$í?gD‹lçû©Á?gmçû©ñÒÝ?N)r   rF   rH   ZxaxisZset_tick_paramsZyaxisZ	set_ticksr   Ú	enumerateÚaxesr   r8   ÚroundÚget_positionÚ
get_points)r    r   ÚexpectedÚnnr   r   r   Útest_outward_ticksœ   s@   

ÿ
ÿ


üÿÿrn   r5   rU   Úblackc              
   C   s¨   |d| }}| | f| df| |fd|f||f|df|| fd| fg}|D ](}t ||ƒ}td|||dddd}	| |	¡ td|d	d|| jd	d
}
|  |
¡ q)dS )z&
    Surround ax with OffsetBoxes
    r   r>   r-   ÚNoner   F)r`   ÚheightZ	facecolorZ	edgecolorZ	linewidthZantialiasedÚcenterg        )rP   ÚchildrV   ZframeonZbbox_to_anchorZbbox_transformZ	borderpadN)r   r   Z
add_artistr   Ú	transAxes)r   ÚsizeÚmarginÚcolorÚmÚmpZanchor_pointsÚpointÚdaÚ
backgroundZanchored_boxr   r   r   Úadd_offsetboxes¿   s4   þ
û
ùîr}   c                     s”  d ‰‰g d¢‰ ddg ‰‰‡ ‡‡‡‡fdd„} | dƒ\}}|  ¡  | dƒ\}}|  ¡  t|j|jƒD ],\}}| ¡ }| ¡ }|j|jksGJ ‚|j|jk sOJ ‚|j|jksWJ ‚|j|jk s_J ‚q3g }	|jD ]$}| ¡ D ]}
t	|
t
ƒssqk|
 ¡ }|	D ]	}| |¡r‚J ‚qy|	 |¡ qkqe| dƒ\}}|jD ]}| ¡ D ]}
t	|
t
ƒr¥|
 d¡ q™q“|  ¡  t|j|jƒD ]\}}| ¡ }| ¡ }t| ¡ | ¡ ƒ q²d S )	Nr	   )ÚredÚblueÚgreenÚyellowr   r   c                    sP   t  ˆˆ¡\}}t|jˆ ƒD ]\}}|jˆˆ|d | r#t|d|d q||fS )N)rw   é   )r   r   ÚzipÚflatr   r}   )Z
with_boxesr    Úaxsr   rw   ©ÚcolorsÚcolsÚrowsÚxÚyr   r   Ú	_subplotsð   s   €z0test_tight_layout_offsetboxes.<locals>._subplotsFT)r   rƒ   r„   rj   Zx0Úx1Úy0Úy1Zget_childrenÚ
isinstancer   Úget_window_extentÚoverlapsÚappendrY   r   rk   )rŒ   Zfig0Zaxs0Zfig1Zaxs1Zax0r#   Zbbox0Zbbox1Zbboxesrs   ZbboxZ
other_bboxZfig2Zaxs2r   r$   Zbbox2r   r†   r   Útest_tight_layout_offsetboxesÜ   sL   	

ú	


€þýr”   c                  C   s   t  ¡ } |  ¡  dS )zETest that tight layout doesn't cause an error when there are no Axes.N)r   Zgcfr   )r    r   r   r   Útest_empty_layout$  s   r•   ÚlabelZxlabelZylabelc                 C   s(   t jdd\}}|jdi | di¤Ž dS )z8Test that no warning emitted when xlabel/ylabel too big.©r
   r	   ©ZfigsizeZdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNr   )r   r   Úset)r–   r    r   r   r   r   Útest_verybig_decorators*  s   rš   c                  C   s4   t jdddd\} }|d  d¡ |d  d¡ dS )	z+Test that doesn't warn when xlabel too big.r   r	   r—   r˜   r   ZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbN)r   r   r   ©r    r…   r   r   r   Útest_big_decorators_horizontal1  ó   rœ   c                  C   s4   t jdddd\} }|d  d¡ |d  d¡ dS )	z+Test that doesn't warn when ylabel too big.r	   r   r—   r˜   r   ZaaaaaaaaaaaaaaaaaaaaZbbbbbbbbbbbbbbbbbbbbN)r   r   r   r›   r   r   r   Útest_big_decorators_vertical8  r   rž   c                   C   sV   t  dd¡ t jddddd t t¡ t  ¡  W d   ƒ d S 1 s$w   Y  d S )N)é   é   r-   )r    r    )r   r
   r
   r    r/   )r   r1   ÚpytestÚwarnsrE   r   r   r   r   r   Útest_badsubplotgrid?  s
   
"ÿr£   c                  C   sÐ   t jdd\} }| ddg¡ | ddg¡ |jddddd	 | ¡ }t t¡ t  	¡  | ¡ }|j
|j
ks9J ‚W d   ƒ n1 sCw   Y  t t¡ t j	g d
¢d W d   ƒ d S 1 saw   Y  d S )NT©r   r   r   zBIG LONG STRING)g      ô?r	   )g      %@g      ü?F)ZxyZxytextZannotation_clip)r   r   çš™™™™™é?r¥   r?   )r   r   Zset_xlimZset_ylimZannotaterj   r¡   r¢   rE   r   r`   )r    r   Úp1Zp2r   r   r   Útest_collapsedH  s   
ÿý"ÿr§   c                  C   sJ   t jdd\} }|  d¡}| d¡}| j ¡  | ¡ j| ¡ jks#J ‚d S )NTr¤   ZfooÚbar)	r   r   Zsuptitler   ZcanvasZdrawr‘   rŽ   r   )r    r   ÚstÚtr   r   r   Útest_suptitle]  s
   


r«   Zpdfc                    s@   t jjj‰ ‡ fdd„}|  t jjd|¡ t ¡ \}}| ¡  d S )Nc                    s.   t | tjjjƒs
J ‚ˆ | g|¢R i |¤Ž d S )N)r   rG   ÚbackendsZbackend_pdfZRendererPdf)ÚselfÚargsÚkwargs©Zunpatched_initr   r   Ú__init__i  s   z'test_non_agg_renderer.<locals>.__init__r±   )rG   Zbackend_basesZRendererBaser±   Úsetattrr   r   r   )ZmonkeypatchZrecwarnr±   r    r   r   r°   r   Útest_non_agg_renderere  s
   
r³   c                  C   s¢   t  dd¡\} }|d jddgddgddgd}|d  ¡ }|  |jd |jd|jg¡}| j||d t	j
td	d
 |  ¡  W d   ƒ d S 1 sJw   Y  d S )Nr   r	   r   r    )ÚcrS   g¸…ëQ¸Ž?)ÚcaxzThis figure includes Axes©Úmatch)r   r   Zscatterrj   Zadd_axesr   rŽ   rq   Zcolorbarr¡   r¢   rE   r   )r    rh   ZptsZax_rectrµ   r   r   r   Útest_manual_colorbart  s    ÿ
"ÿr¸   c            	      C   sæ   t  d¡ d¡} tjdd}|jddd}|jdd	d}|jd
dd}|||fD ]H}| d¡ | | d d …df ¡\}| | ¡}| 	¡ sFJ ‚| 	¡ sLJ ‚t
ddd|jd}| |¡ | | ¡ | ¡ ¡ | 	¡ rjJ ‚| 	¡ rpJ ‚q(d S )Nr3   r4   )é   r	   r˜   éƒ   Zrectilinear)Z
projectioné„   Z	mollweideé…   ZpolarFr   r-   r>   )Ú	transform)r8   r9   r:   r   rF   rH   Úgridr   ZpcolorZ_fully_clipped_to_axesr   rt   Zset_clip_pathÚget_pathZget_transform)	r;   r    r#   r$   r%   r   Úhrx   r@   r   r   r   Útest_clipped_to_axes  s"   


ôrÁ   c                  C   sT   t  ¡ \} }tjtdd |  ddi¡ W d   ƒ n1 sw   Y  |  ¡  d S )Nzwill be deprecatedr¶   rV   ç333333Ã?)r   r   r¡   r¢   ÚPendingDeprecationWarningÚset_tight_layoutrW   r   r   r   r   Útest_tight_pads™  s   ÿþrÅ   c                  C   s    t jddid\} }|  ¡  d S )NrV   rÂ   r¤   )r   r   rW   r   r   r   r   Útest_tight_kwargs¡  s   rÆ   c                  C   s~   t  ¡ \} }t t¡* |  d¡ |  ¡ sJ ‚|  d¡ |  ¡ r"J ‚|  d¡ |  ¡ s-J ‚W d   ƒ d S 1 s8w   Y  d S )NTF)r   r   r¡   r¢   rÃ   rÄ   Zget_tight_layoutr   r   r   r   Útest_tight_toggle¦  s   


"úrÇ   )r   )r5   rU   ro   )1rB   Únumpyr8   Znumpy.testingr   r¡   Z
matplotlibrG   Zmatplotlib.testing.decoratorsr   Zmatplotlib.pyplotZpyplotr   Zmatplotlib.offsetboxr   r   Zmatplotlib.patchesr   ÚmarkZusefixturesZ
pytestmarkr   r!   r'   r,   r2   r<   rN   rR   rX   r[   rn   r}   r”   r•   Zparametrizerš   rœ   rž   r£   r§   r«   Úbackendr³   r¸   rÁ   rÅ   rÆ   rÇ   r   r   r   r   Ú<module>   s`    
ÿ







)

	

#H
	

