o
    tBh<                     @   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 ]5\\}}\}}\}\}}	||kr$q| d j| |||	||f ksGJ d|||	||f rAd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.
    xyr   z,axes %i and %i incorrectly %ssharing %s axisznot  N)	itertoolsproduct	enumeratezip_shared_axesjoined)
axsx_sharedy_sharedi1ax1i2ax2i3nameshared r   u/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/matplotlib/tests/test_subplots.pycheck_shared   s   $r   c                 C   s   t t| ||D ]S\}\}}}| |jjg D ]}| |ks*J d| d| q| |jjg D ]}| |ksFJ d| d| q4|sQ| dksQJ |s[|	 dks[J qd S )NzVisibility of x axis #z is incorrectly zVisibility of y axis #r   )
r   r   get_xticklabelsxaxis
offsetTextget_visibleget_yticklabelsyaxis
get_xlabel
get_ylabel)r   	x_visible	y_visibleiaxvx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 ];}
|	D ]6}tjdd|
|d\}\\}}\}}||||g}t|||
 ||  t	||d |
 |d |  t| qqtjddd
d
d\}\\}}\}}||||g}|D ]}|j
ddd |  qt	|g d	g d d S )N)   r(      r)   )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/   r0   foobarxlabelylabel)nponesboolzerosarraypltsubplotsr   closer'   setlabel_outer)rdimsharevisiblefa1a2a3a4r   opsxoyor#   r   r   r   test_shared+   sh   	
""
rN   c                  C   s   t  } | dd}| |dddf }| |dddf }| |d }| |d }| jD ]}|  q1t| jg dg d d S )	N   r   r)      )rP   r)   )r)   rP   )FTFT)TTFF)r>   figureadd_gridspecadd_subplotaxesrB   r'   )figgsrG   rH   rI   rJ   r#   r   r   r   test_label_outer_spani   s   

rW   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 )NrP   r)   Tr3   Fr2   )r>   r?   r'   r   	tick_leftr   tick_bottom)rF   rG   rH   r   r   r   test_shared_and_moved}   s   

r\   c                   C   sz   t t tjdddd W d    n1 sw   Y  t t tjdddd W d    d S 1 s6w   Y  d S )Nr)   blahrY   rX   )pytestraises
ValueErrorr>   r?   r   r   r   r   test_exceptions   s   "ra   subplots_offset_textF)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    eAd   
   g     @r)   r.   r+   r1   )r   r   )rP   r   )r   rP   )rP   rP   )r9   aranger>   r?   plot)r/   r0   rU   r   r   r   r   test_subplots_offsettext   s   rh   topTbottomleftrightc                 C   s   t | |||d t  jddddd}W d    n1 s w   Y  t|D ]F\\}}}|jjd }|jjd }	|jjd }
|jjd }|| oN|dkksRJ |	|oX|dkks\J |
|ob|dkksfJ ||ol|dkkspJ q*d S )	N)zxtick.labeltopzxtick.labelbottomzytick.labelleftzytick.labelrightrO   Tr1   label2Onlabel1Onr   r)   )	r>   
rc_contextrQ   r?   r9   ndenumerater   _major_tick_kwr   )ri   rj   rk   rl   r   r"   jr#   xtopxbottomyleftyrightr   r   r   test_subplots_hide_ticklabels   s   
rw   xlabel_positionylabel_positionc                 C   s   t  jddddd}t|D ]M\\}}}|jddd |j|  |j| |	  t
| | dkr:|dkpA| d	koA|d
kksEJ t
| |dkrR|d
kpY|dkoY|dkks]J qd S )NrO   Tr1   r4   r5   r6   rj   r)   ri   r   rk   rl   )r>   rQ   r?   r9   rp   rA   r   set_label_positionr   rB   r;   r   r   )rx   ry   r   r"   rr   r#   r   r   r   test_subplots_hide_axislabels   s   


r{   c                  C   s(   t  \} }|  | ksJ d S N)r>   r?   get_subplotspecget_gridspec)rU   r#   r   r   r   test_get_gridspec   s   r   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s'J d S )Nr2   r+   width_ratiosrP   r)   )
subplot_kwgridspec_kw)r>   r?   )r   r   rU   r#   r   r   r   test_dont_mutate_kwargs   s   

r   c                   C   s0   t t jt ju sJ t t jt ju sJ d S r|   )maxessubplot_class_factoryAxesSubplotr   r   r   r   "test_subplot_factory_reapplication   s   r   )r   numpyr9   r^   matplotlib.pyplotpyplotr>   matplotlib.testing.decoratorsr   matplotlib.axesrT   r   r   r'   rN   rW   r\   ra   rh   markparametrizerw   r{   r   r   r   r   r   r   r   <module>   s2    >

	