
    hJ+                        S SK r 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      \R(                  R+                  S/ SQ5      \R(                  R+                  SS	S
/5      S 5       5       5       rS rS rS rS r\" S/\R6                  " 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)0    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
             X/var/www/fran/franai/venv/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_ticksTFlayout_engine)r9   tightconstrainedwith_colorbarc                    [         R                  " US9nUR                  SSSSS9nUR                   HU  nUR	                  SSS9  U(       a,  UR                  [        R                  R                  5       US9  UR                  U S	9  MW     [        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 )N)layoutr6   TrA   foobarxlabelylabelr)   )remove_inner_ticksr<   r=   )TTTT)rI   figurerJ   flatsetcolorbarmplcmScalarMappablelabel_outerr-   r3   )rW   rX   r[   figr   r)   s         r   test_label_outerrn   r   s     **M
*C
,,q!D,
6Chh
eE*LL..0RL8
,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   re   add_gridspecadd_subplotaxesrl   r-   )rm   gsrO   rP   rQ   rR   r)   s          r   test_label_outer_spanru      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   rs   rl   r-   rc   s    r   test_label_outer_non_gridspecrx      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_movedr~      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   blahr{   rz   )pytestraises
ValueErrorrI   rJ    r   r   test_exceptionsr      sW    	z	"Q&) 
#	z	"Q&) 
#	" 
#	"	"	"s   A4B4
B
Bzsubplots_offset_text.png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?   rm   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.labelrightrp   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 )Nrp   TrA   r^   r_   r`   r   r6   r   r   r   r   )rI   re   rJ   rD   r   rg   r   set_label_positionr#   rl   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)rm   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   rm   r)   s       r   test_dont_mutate_kwargsr      s]    E"J!Aq6*Kll1aJ'24GC(E****>Aq62222r   r   )r@   rp   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   rp   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   rp   )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   rp   )r   r   )r   r   r   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)Nrw   )rect)
rI   re   
isinstancerr   r   add_axesr   r   	TypeErrorr   )rm   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   r   
matplotlibri   matplotlib.axesr   r   matplotlib.pyplotpyplotrI   matplotlib.testing.decoratorsr   r   r   r-   r3   rV   markparametrizern   ru   rx   r~   r   machiner   r   r   r   r   r   r   r   r   r   r   r   <module>r      s        -  O@ )";3l $7*JK4-8J 9 L 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   