
    h*                     P   S SK r S SKrS SKrS SKrS SKJrJr  S SKJ	r
  S SKJrJr  S rS rS rS r\R$                  R'                  SS	S
/5      S 5       rS rS rS rS r\" S/\R2                  " 5       S:X  a  S OSS9S 5       r\R$                  R'                  SS	S
/5      \R$                  R'                  SS	S
/5      \R$                  R'                  SS	S
/5      \R$                  R'                  SS	S
/5      S 5       5       5       5       r\R$                  R'                  SSS/5      \R$                  R'                  SSS/5      S 5       5       rS rS r\R$                  R'                  SS/ S Q/5      \R$                  R'                  S!SS"S#//5      \" S$/S%9S& 5       5       5       r\R$                  R'                  SS/ S Q/5      \R$                  R'                  S!SS"S#//5      \" S$/S%9S' 5       5       5       r \R$                  R'                  S(S)S*/5      S+ 5       r!S, r"g)-    N)AxesSubplotBase)check_figures_equalimage_comparisonc                 <   [         R                  " [        U 5      [        U 5      [        [        SX/5      5      5       HZ  u  u  p4u  pVu  nu  pXS::  a  M  U S   R                  U   R                  XF5      XU4   :X  a  MB   SX5XU4   (       a  SOSU4-  5       e   g)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
             P/var/www/html/env/lib/python3.13/site-packages/matplotlib/tests/test_subplots.pycheck_sharedr      s    
 7@6G6GcNcNc$ 456782	9B2r>D 81v""4(//9VF^K 	@:&R.b$>@ @	@K78    c                     [        [        XU5      5       H  u  nu  pEnUR                  5       UR                  R                  /-    H$  nUR                  5       U:X  a  M   SU SU 35       e   UR                  5       UR                  R                  /-    H$  nUR                  5       U:X  a  M   SU SU 35       e   U(       d  UR                  5       S:X  d   eU(       a  M  UR                  5       S:X  a  M   e   g)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%CD<BB##%)<)<(==A==?b( E,QC/?tDE( > ##%)<)<(==A==?b( E,QC/?tDE( >
 ==?b(((r==?b((( Er   c                 X   [        X5       HF  u  p4UR                  R                  5        H#  nUR                  R	                  5       U:X  a  M#   e   MH     [        X5       HF  u  p2UR
                  R                  5        H#  nUR                  R	                  5       W:X  a  M#   e   MH     g)zz
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+HH,,.D>>--/7::: / , c-HH,,.D>>--/7::: / .r   c            
         Sn [         R                  " U S S [        S9[         R                  " U S S [        S9[         R                  " / SQ/ SQ/ SQ/ SQ/5      [         R                  " / SQ/ SQ/ SQ/ SQ/5      S.n/ S	Q/ S	QS
/S-  S
/S-  S
/S-  / S	QS./ SQS
/S-  / SQS
/S-  S
/S-  / SQS.S.nUS   US'   US   US
'   [
        R                  " SS5      u  nu  u  pEu  pgXEXg/n[        XS   US   5        [
        R                  " U5        / SQn	U	 Ho  n
U	 Hf  n[
        R                  " SSXS9u  nu  u  pEu  pgXEXg/n[        XU
   X   5        [        XS   U
   US   U   5        [
        R                  " U5        Mh     Mq     g )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774840HHT"1XT288++++	- .
 88++++	- .E  21vz
vz0 2vz1
vz0G$ =E%L,E$K "ll1a0A(22
CFmU6]3IIaL ;CB&)ll1a&N#A#(22"CBi3#Cb)973<;KLIIaL  r   remove_ticksTFc                 L   [         R                  " SSSSS9u  pUR                   H"  nUR                  SSS9  UR	                  U S9  M$     [        UR                  / SQ/ S	Q5        U (       a  [        UR                  / SQ/ S	Q5        g [        UR                  / S
Q/ S
Q5        g )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9FAhh
eE*
,7  ,.HJHH02L	N 	HH.0H	Jr   c                  ~   [         R                  " 5       n U R                  SS5      nU R                  USSS24   5      nU R                  USS2S4   5      nU R                  US   5      nU R                  US   5      nU R                   H  nUR                  5         M     [        U R                  / SQ/ SQ5        g )	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hh
 ,.HJr   c                  p    [         R                  " S5      n U R                  5         [        U /S/S/5        g )Nr   r   r@   r@   T)rI   rh   ra   r-   )r)   s    r   test_label_outer_non_gridspecrn      s,    	,	BNNRD4&4&1r   c                  X   [         R                  " SSSS9u  n u  p[        U/S/S/5        UR                  R	                  5         [        U/S/S/5        [         R                  " SSSS9u  n u  p[        U/S/S/5        UR
                  R                  5         [        U/S/S/5        g )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1KAxRD4&5'2HHRD4&5'2,,q!D1KAxRD5'D62HHRD5'D62r   c                  ,   [         R                  " [        5         [        R                  " SSSS9  S S S 5        [         R                  " [        5         [        R                  " SSSS9  S S S 5        g ! , (       d  f       NH= f! , (       d  f       g = f)Nr6   blahrq   rp   )pytestraises
ValueErrorrI   rJ    r   r   test_exceptionsr{      sW    	z	"Q&) 
#	z	"Q&) 
#	" 
#	"	"	"s   A4B4
B
Bsubplots_offset_textx86_64gy&1?)tolc                  <   [         R                  " SSS5      n [         R                  " SSS5      S-   n[        R                  " SSSS	S
9u  p#US   R	                  X 5        US   R	                  X 5        US   R	                  X5        US   R	                  X5        g )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INN1INN1INN1INN1r   topbottomleftrightc                 X   [         R                  " XX#S.5         [         R                  " 5       R                  SSSSS9nS S S 5        [        R
                  " W5       H  u  u  pVnUR                  R                  S   nUR                  R                  S   n	UR                  R                  S   n
UR                  R                  S   nX=(       a    US:H  :X  d   eX=(       a    US:H  :X  d   eX=(       a    US:H  :X  d   eX=(       a    US:H  :X  a  M   e   g ! , (       d  f       N= f)	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    
3,0M 
Njjl##Aqd#C
N nnS)
xx&&z2(())*5''
3((4Q''',a1f---!q&)))*AF+++ *
N 
Ns   &D
D)xlabel_positionylabel_positionc                 V   [         R                  " 5       R                  SSSSS9n[        R                  " U5       H  u  u  p4nUR                  SSS9  UR                  R                  U 5        UR                  R                  U5        UR                  5         [        UR                  5       5      U S:H  =(       a    US:H  =(       d    U S	:H  =(       a    US
:H  :X  d   e[        UR                  5       5      US:H  =(       a    US
:H  =(       d    US:H  =(       a    US:H  :X  a  M   e   g )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      s    **,

1T$

?CnnS)

eE*
##O4
##O4
BMMO$x'2AF 3%'2AF4 	4 4 BMMO$v%0!q& 5')4a1f6 	6 6 *r   c                      [         R                  " 5       u  pUR                  5       R                  5       UR                  5       :X  d   eg )N)rI   rJ   get_subplotspecget_gridspec)ri   r)   s     r   test_get_gridspecr      s6    llnGC,,."//2CCCCr   c                  v    SS0n SSS/0n[         R                  " SSU US9u  p#U SS0:X  d   eUSSS/0:X  d   eg )NrB   r8   width_ratiosr@   r6   )
subplot_kwgridspec_kw)rI   rJ   )r   r   ri   r)   s       r   test_dont_mutate_kwargsr      s]    E"J!Aq6*Kll1aJ'24GC(E****>Aq62222r   r   )r@   rd   r6   height_ratiosr@   r6   png)
extensionsc                 P    U R                  SSUUS9  UR                  SSUUS.S9  g )Nr6   rd   r   r   r   )rJ   )fig_testfig_refr   r   s       r   test_width_and_height_ratiosr      s@    
 a-#/  1Q&3%1(3 4r   c                 Z    / SQ/ SQ/nU R                  XBUS9  UR                  UUUS.S9  g )N)ABr   )r   CDr   r   )subplot_mosaic)r   r   r   r   mosaic_specs        r   #test_width_and_height_ratios_mosaicr      sD    
 #O4KK)5  7;,9+759 :r   zmethod,args)rJ   )r6   rd   )r   )zabc;defc                 D   [         R                  " [        SS9   [        [        U 5      " USS/SSS/0S.6  S S S 5        [         R                  " [        SS9   [        [        U 5      " U/ SQS/ SQ0S.6  S S S 5        g ! , (       d  f       NN= f! , (       d  f       g = f)	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Vd1a&*9Aq6)B	D 
: 
z	8Vd*8))D	F 
9	8 
:	9 
9	8s   B B 
B
Bc                  J   [         R                  " 5       n [        U R                  5       [        5      (       d   e[        U R                  / SQS9[        5      (       a   e[        R                  " [        5         [        U / SQ/ SQS9  S S S 5        g ! , (       d  f       g = f)Nrm   )rect)
rI   re   
isinstancerg   r   add_axesrw   rx   	TypeErrorr   )ri   s    r   test_old_subplot_compatr     si    
**,Ccoo'5555#,,L,9;GGGG	y	!S,\2 
"	!	!s   ;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      sf       -  O@ )";3l $7J 8JJ(23* )*#++-9auFF u.D%=1$/4-0, 1 0 2 /,$ *Xu,=>*VW,=>6 ? ?6D3 $	):;4!Q.9(4 ) : <4 $	):;4!Q.9(: ) : <: %) 
F
F3r   