
    P/Ph*                        d dl Z d dlZd dlZd dlZd dlmZmZ d dlm	Z
 d dlmZmZ d Zd Zd Zd Zej                            dd	d
g          d             Zd Zd Zd Zd Z edg ej                    dk    rdn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                                                 Zej                            dddg          ej                            dddg          d                         Zd Zd Zej                            ddg d g          ej                            d!dd"d#gg           ed$g%          d&                                     Zej                            ddg d g          ej                            d!dd"d#gg           ed$g%          d'                                     Z ej                            d(d)d*g          d+             Z!d, Z"dS )-    N)AxesSubplotBase)check_figures_equalimage_comparisonc                 t   t          j        t          |           t          |           t          t          d||g                              D ]i\  \  }}\  }}\  }\  }}	||k    r| d         j        |                             ||          |	||f         k    sJ d|||	||f         rdnd|fz              jd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shareds
             ^/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/matplotlib/tests/test_subplots.pycheck_sharedr      s    
 7@6GcNNcNNc$8 4556678 78 @ @2	S9B2r>D& 881v"4(//S99VBF^KKK:B&R.8b$>@ @ LKKK@ @    c                    t          t          | ||                    D ]\  }\  }}}|                                |j        j        gz   D ]*}|                                |k    sJ d| d|             +|                                |j        j        gz   D ]*}|                                |k    sJ d| d|             +|s|                                dk    sJ |s|	                                dk    sJ dS )z<Check that the x and y ticklabel visibility is as specified.zVisibility of x axis #z is incorrectly zVisibility of y axis #r	   N)
r   r   get_xticklabelsxaxis
offsetTextget_visibleget_yticklabelsyaxis
get_xlabel
get_ylabel)r   	x_visible	y_visibleiaxvxvyls           r   check_ticklabel_visibler-      s@   $Si%C%CDD ) )<BB##%%)<(== 	E 	EA==??b(((DQDDDD )(((##%%)<(== 	E 	EA==??b(((DQDDDD )(((  	)==??b(((( 	)==??b(((() )r   c                 J   t          | |          D ]@\  }}|j                                        D ]!}|j                                        |k    sJ "At          | |          D ]@\  }}|j                                        D ]!}|j                                        |k    sJ "AdS )z
    Check that the x and y tick visibility is as specified.

    Note: This only checks the tick1line, i.e. bottom / left ticks.
    N)r   r   get_major_ticks	tick1liner!   r#   )r   r&   r'   r)   visibleticks         r   check_tick1_visibler3   -   s     C++ ; ;GH,,.. 	; 	;D>--//7:::::	;c9-- ; ;IH,,.. 	; 	;D>--//7:::::	;; ;r   c            
         d} t          j        | d d         t                    t          j        | d d         t                    t          j        g dg dg dg dg          t          j        g dg dg dg dg          d}g d	g d	d
gdz  d
gdz  d
gdz  g d	dg dd
gdz  g dd
gdz  d
gdz  g ddd}|d         |d<   |d         |d
<   t          j        dd          \  }\  \  }}\  }}||||g}t          ||d         |d                    t          j        |           g d}	|	D ]}
|	D ]}t          j        dd|
|          \  }\  \  }}\  }}||||g}t          |||
         ||                    t          ||d         |
         |d         |                    t          j        |           d S )N)   r5      r6   )dtype)FTFF)TFFF)FFFT)FFTF)allnonerowcolFFTTTr5   )r8   r;   r:   r9   FTTFTF)xyr9   Fr8   )FTr8   r9   r:   r;   r      sharexshareyr>   r?   )
nponesboolzerosarraypltsubplotsr   closer-   )rdimsharer1   fa1a2a3a4r   opsxoyos               r   test_sharedrV   ;   s~   D7484000HT"1"XT2228++++++++++++	- . .
 8++++++++++++	- . . E  211111vz
vz000  211vz111
vz000  G$ =E%L,E$K "l1a00AR(2rr2r
CeFmU6]333IaLLL ;
:
:C   	 	B&)l1a2&N&N&N#A#R(2rr2r"CeBir333#Cb)973<;KLLLIaLLLL	 r   remove_ticksTFc                 N   t          j        dddd          \  }}|j        D ]/}|                    dd           |                    |            0t          |j        g dg d	           | rt          |j        g dg d	           d S t          |j        g d
g d
           d S )Nr6   TrA   foobarxlabelylabel)remove_inner_ticksr<   r=   )TTTT)rI   rJ   flatsetlabel_outerr-   r3   )rW   rN   r   r)   s       r   test_label_outerrb   q   s   \!QtD999FAsh 8 8
eE***
,7777,,,.H.H.HJ J J JH0002L2L2L	N 	N 	N 	N 	N 	H...0H0H0H	J 	J 	J 	J 	Jr   c                     t          j                    } |                     dd          }|                     |dddf                   }|                     |dddf                   }|                     |d                   }|                     |d                   }| j        D ]}|                                 t          | j        g dg d           d S )	N   r   r6   r@   )r@   r6   )r6   r@   )FTFT)TTFF)rI   figureadd_gridspecadd_subplotaxesra   r-   )figgsrO   rP   rQ   rR   r)   s          r   test_label_outer_spanrk      s    
*,,C			!Q		B 
AqsF	$	$B	AaCF	$	$B	D	"	"B	D	"	"Bh  
,,,.H.H.HJ J J J Jr   c                  ~    t          j        d          } |                                  t          | gdgdg           d S )Nr   r   r@   r@   T)rI   rh   ra   r-   )r)   s    r   test_label_outer_non_gridspecrn      s?    	,		BNNRD4&4&11111r   c                  ~   t          j        ddd          \  } \  }}t          |gdgdg           |j                                         t          |gdgdg           t          j        ddd          \  } \  }}t          |gdgdg           |j                                         t          |gdgdg           d S )Nr@   r6   TrC   FrB   )rI   rJ   r-   r#   	tick_leftr   tick_bottom)rN   rO   rP   s      r   test_shared_and_movedrt      s     ,q!D111KAxBRD4&5'222HRD4&5'222,q!D111KAxBRD5'D6222HRD5'D622222r   c                  (   t          j        t                    5  t          j        ddd           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        ddd           d d d            d S # 1 swxY w Y   d S )Nr6   blahrq   rp   )pytestraises
ValueErrorrI   rJ    r   r   test_exceptionsr{      s	   	z	"	" * *Q&))))* * * * * * * * * * * * * * *	z	"	" * *Q&))))* * * * * * * * * * * * * * * * * *s!   >AA"BBBsubplots_offset_textarm64gy&1?)tolc                  z   t          j        ddd          } t          j        ddd          dz   }t          j        dddd	
          \  }}|d                             | |            |d                             | |            |d                             ||            |d                             ||            d S )Nr   g    _Bg    eAd   
   g     @r6   r;   r8   rA   )r   r   )r@   r   )r   r@   )r@   r@   )rD   arangerI   rJ   plot)r>   r?   ri   r   s       r   test_subplots_offsettextr      s     		!T3A
	!S"c!A|Aqu===HCINN1aINN1aINN1aINN1ar   topbottomleftrightc                    t          j        | |||d          5  t          j                                        dddd          }d d d            n# 1 swxY w Y   t	          j        |          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    sJ d S )	N)zxtick.labeltopzxtick.labelbottomzytick.labelleftzytick.labelrightrd   TrA   label2Onlabel1Onr   r6   )	rI   
rc_contextre   rJ   rD   ndenumerater   _major_tick_kwr#   )r   r   r   r   r   r(   jr)   xtopxbottomyleftyrights               r   test_subplots_hide_ticklabelsr      s    
3V,0eM M 
N 
N D Djll##Aqd#CCD D D D D D D D D D D D D D D nS)) , ,
Ax&z2()*5'
3(4Q''''6,a1f----!q&))))%*AF+++++, ,s   +AAAxlabel_positionylabel_positionc                 F   t          j                                        dddd          }t          j        |          D ]\  \  }}}|                    dd           |j                            |            |j                            |           |	                                 t          |                                          | dk    r|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 d S )Nrd   TrA   rY   rZ   r[   r   r6   r   r   r   r   )rI   re   rJ   rD   r   r`   r   set_label_positionr#   ra   rF   r$   r%   )r   r   r   r(   r   r)   s         r   test_subplots_hide_axislabelsr      sF    *,,

1T$

?
?CnS)) 
6 
6
A
eE***
##O444
##O444
BMMOO$$x'2AF 3%'2AF4 4 4 4 BMMOO$$v%0!q& 5')4a1f6 6 6 6 6
6 
6r   c                      t          j                    \  } }|                                                                |                                k    sJ d S )N)rI   rJ   get_subplotspecget_gridspec)ri   r)   s     r   test_get_gridspecr      sJ    lnnGC,,.."//2C2CCCCCCCr   c                  |    ddi} dddgi}t          j        dd| |          \  }}| ddik    sJ |dddgik    sJ d S )NrB   r8   width_ratiosr@   r6   )
subplot_kwgridspec_kw)rI   rJ   )r   r   ri   r)   s       r   test_dont_mutate_kwargsr      ss    E"J!Aq6*Kl1aJ'24 4 4GC(E*****>Aq62222222r   r   )r@   rd   r6   height_ratiosr@   r6   png)
extensionsc                 n    |                      dd||           |                     dd||d           d S )Nr6   rd   r   r   r   )rJ   )fig_testfig_refr   r   s       r   test_width_and_height_ratiosr      sc    
 a-#/  1 1 1Q&3%1(3 (3 4 4 4 4 4r   c                 z    g dg dg}|                      |||           |                     |||d           d S )N)ABr   )r   CDr   r   )subplot_mosaic)r   r   r   r   mosaic_specs        r   #test_width_and_height_ratios_mosaicr      sq    
 #??OOO4KK})5  7 7 7;,9+759 59 : : : : :r   zmethod,args)rJ   )r6   rd   )r   )zabc;defc                 \   t          j        t          d          5   t          t          |           |ddgdddgid d d d            n# 1 swxY w Y   t          j        t          d          5   t          t          |           |g ddg did d d d            d S # 1 swxY w Y   d S )	Nr   )matchr@   r6   )r   r   r   )r@   r6   rd   )r   r   )rw   rx   ry   getattrrI   )methodargss     r   test_ratio_overlapping_kwsr     s    
z	9	9	9 D DVd1a&*9Aq6)B	D 	D 	D 	DD D D D D D D D D D D D D D D 
z	8	8	8 F FVd*8))))D	F 	F 	F 	FF F F F F F F F F F F F F F F F F Fs#   #AAA1#B!!B%(B%c                  h   t          j                    } t          |                                 t                    sJ t          |                     g d          t                    rJ t          j        t                    5  t          | g dg d           d d d            d S # 1 swxY w Y   d S )Nrm   )rect)
rI   re   
isinstancerg   r   add_axesrw   rx   	TypeErrorr   )ri   s    r   test_old_subplot_compatr     s    
*,,Ccoo''55555#,,LLL,99;GGGGG	y	!	! 3 3S,,,\\\22223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s   B''B+.B+)#r
   platformnumpyrD   rw   matplotlib.axesr   r   matplotlib.pyplotpyplotrI   matplotlib.testing.decoratorsr   r   r   r-   r3   rV   markparametrizerb   rk   rn   rt   r{   machiner   r   r   r   r   r   r   r   r   rz   r   r   <module>r      s             - - - - - - - -       O O O O O O O O@ @ @ ) ) )"; ; ;3 3 3l $77J J 87JJ J J(2 2 23 3 3* * * )*/x/11W<<ee!E E E E E u..D%=11$//4-00, , 10 0/ 21 /.,$ *Xu,=>>*VW,=>>6 6 ?> ?>6D D D3 3 3 $			):;;4!Q.99(((4 4 )( :9 <;4 $			):;;4!Q.99(((: : )( :9 <;: %)  
F F 
F3 3 3 3 3r   