a
    ëÝEb<  ã                   @   s  d dl Z d dlZd dlZd dlmZ d dlmZ d dl	m
Z dd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Zedgdd�dd„ ƒZej dddg¡ej dddg¡ej dddg¡ej dddg¡dd„ ƒƒƒƒZej dddg¡ej dddg¡dd„ ƒƒZdd „ Zd!d"„ Zd#d$„ ZdS )%é    N)Úimage_comparisonc           
   	   C   s”   t  t| ƒt| ƒttd||gƒƒ¡D ]j\\}}\}}\}\}}	||krHq$| d j|  ||¡|	||f ks$J d|||	||f r‚dnd|f ƒ‚q$dS )z–
    x_shared and y_shared are n x n boolean matrices; entry (i, j) indicates
    whether the x (or y) axes of subplots i and j should be shared.
    Zxyr   z,axes %i and %i incorrectly %ssharing %s axisznot Ú N)Ú	itertoolsÚproductÚ	enumerateÚzipZ_shared_axesZjoined)
ÚaxsZx_sharedZy_sharedÚi1Zax1Úi2Zax2Zi3ÚnameZshared© r   ú^/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/matplotlib/tests/test_subplots.pyÚcheck_shared   s    ý$ÿÿr   c                 C   s¼   t t| ||ƒƒD ]¦\}\}}}| ¡ |jjg D ]$}| ¡ |ks0J d|› d|› �ƒ‚q0| ¡ |jjg D ]$}| ¡ |kshJ d|› d|› �ƒ‚qh|s¢| ¡ dks¢J ‚|s| 	¡ dksJ ‚qd S )NzVisibility of x axis #z is incorrectly zVisibility of y axis #r   )
r   r   Zget_xticklabelsÚxaxisZ
offsetTextZget_visibleZget_yticklabelsÚyaxisÚ
get_xlabelÚ
get_ylabel)r   Z	x_visibleZ	y_visibleÚiÚaxZvxZvyÚlr   r   r   Úcheck_visible   s    ÿÿr   c               
   C   s"  d} t j| d d… td�t j| d d… td�t  g d¢g d¢g d¢g d¢g¡t  g d¢g d¢g d¢g d¢g¡dœ}g d	¢g d	¢d
gd d
gd d
gd g d	¢dœg d¢d
gd g d¢d
gd d
gd g d¢dœdœ}|d |d< |d |d
< t dd¡\}\\}}\}}||||g}t||d |d ƒ t |¡ g d¢}	|	D ]z}
|	D ]n}tjdd|
|d�\}\\}}\}}||||g}t|||
 || ƒ t	||d |
 |d | ƒ t |¡ �qF�q>tjddd
d
d�\}\\}}\}}||||g}|D ]}|j
ddd� | ¡  �qìt	|g d	¢g d¢ƒ d S )N)é   r   é   r   )Zdtype)FTFF)TFFF)FFFT)FFTF)ÚallÚnoneÚrowÚcol)FFTTTr   )r   r   r   r   FT)TFTF)ÚxÚyr   Fr   )FTr   r   r   r   ©ÚsharexÚshareyr   r   ÚfooÚbar©ZxlabelZylabel)ÚnpZonesÚboolZzerosÚarrayÚpltÚsubplotsr   Úcloser   ÚsetÚlabel_outer)ZrdimÚshareÚvisibleÚfÚa1Úa2Úa3Úa4r   ÚopsZxoZyor   r   r   r   Útest_shared+   sf    üüøú	ú÷
""r5   c                  C   sŠ   t  ¡ } |  dd¡}|  |ddd…f ¡}|  |dd…df ¡}|  |d ¡}|  |d ¡}| jD ]}| ¡  qbt| jg d¢g d¢ƒ d S )	Né   r   r   é   )r7   r   )r   r7   )FTFT)TTFF)r(   ÚfigureZadd_gridspecZadd_subplotÚaxesr,   r   )ÚfigÚgsr0   r1   r2   r3   r   r   r   r   Útest_label_outer_spani   s    

ÿr<   c                  C   s�   t jdddd�\} \}}t|gdgdgƒ |j ¡  t|gdgdgƒ t jdddd�\} \}}t|gdgdgƒ |j ¡  t|gdgdgƒ d S )Nr7   r   T©r!   F©r    )r(   r)   r   r   Z	tick_leftr   Ztick_bottom)r/   r0   r1   r   r   r   Útest_shared_and_moved}   s    

r?   c                   C   sx   t  t¡�  tjdddd� W d   ƒ n1 s00    Y  t  t¡�  tjdddd� W d   ƒ n1 sj0    Y  d S )Nr   Zblahr>   r=   )ÚpytestZraisesÚ
ValueErrorr(   r)   r   r   r   r   Útest_exceptions‹   s    .rB   Zsubplots_offset_textF)Zremove_textc                  C   sz   t  ddd¡} t  ddd¡d }tjdddd	d
�\}}|d  | | ¡ |d  | | ¡ |d  || ¡ |d  || ¡ d S )Nr   g    _ Bg    eÍÍAéd   é
   g     ˆÃ@r   r   r   r   )r   r   )r7   r   )r   r7   )r7   r7   )r%   Zaranger(   r)   Zplot)r   r   r:   r   r   r   r   Útest_subplots_offsettext“   s    rE   ÚtopTÚbottomÚleftÚrightc                 C   sæ   t  | |||dœ¡�& t  ¡ jddddd�}W d   ƒ n1 s@0    Y  t |¡D ]Œ\\}}}|jjd }|jjd }	|jjd }
|jjd }|| oœ|dkks¤J ‚|	|o°|dkks¸J ‚|
|oÄ|dkksÌJ ‚||oØ|dkksTJ ‚qTd S )	N)zxtick.labeltopzxtick.labelbottomzytick.labelleftzytick.labelrightr6   Tr   Zlabel2OnZlabel1Onr   r   )	r(   Z
rc_contextr8   r)   r%   Úndenumerater   Z_major_tick_kwr   )rF   rG   rH   rI   r   r   Újr   ZxtopZxbottomZyleftZyrightr   r   r   Útest_subplots_hide_ticklabelsž   s    ÿ
4rL   Úxlabel_positionÚylabel_positionc                 C   sÀ   t  ¡ jddddd�}t |¡D ]š\\}}}|jddd� |j | ¡ |j |¡ | 	¡  t
| ¡ ƒ| dkrt|dkp‚| d	ko‚|d
kksŠJ ‚t
| ¡ ƒ|dkr¤|d
kp²|dko²|dkks J ‚q d S )Nr6   Tr   r"   r#   r$   rG   r   rF   r   rH   rI   )r(   r8   r)   r%   rJ   r+   r   Zset_label_positionr   r,   r&   r   r   )rM   rN   r   r   rK   r   r   r   r   Útest_subplots_hide_axislabels´   s    
þ
þrO   c                  C   s(   t  ¡ \} }| ¡  ¡ | ¡ ks$J ‚d S ©N)r(   r)   Zget_subplotspecZget_gridspec)r:   r   r   r   r   Útest_get_gridspecÅ   s    rQ   c                  C   sR   ddi} dddgi}t jdd| |d�\}}| ddiks:J ‚|dddgiksNJ ‚d S )Nr    r   Zwidth_ratiosr7   r   )Ú
subplot_kwÚgridspec_kw)r(   r)   )rR   rS   r:   r   r   r   r   Útest_dont_mutate_kwargsË   s    
ÿ
rT   c                   C   s0   t  t j¡t ju sJ ‚t  t j¡t ju s,J ‚d S rP   )ÚmaxesZsubplot_class_factoryZAxesZSubplotr   r   r   r   Ú"test_subplot_factory_reapplicationÔ   s    rV   )r   Únumpyr%   r@   Zmatplotlib.pyplotZpyplotr(   Zmatplotlib.testing.decoratorsr   Zmatplotlib.axesr9   rU   r   r   r5   r<   r?   rB   rE   ÚmarkZparametrizerL   rO   rQ   rT   rV   r   r   r   r   Ú<module>   s0   >

	