
    
3j               
       $
   S SK r S SKJr  S SKrS SKrS SKrS SKrS SKJr  S SKJ	r	  S SK
r
S SKrS SKrS SKJr  S SKrS SKJr  S SKJrJr  S SKJr  S S	KJrJr  S S
KJrJr  S SKJrJ r J!r!  S SK"J#r#J$r$J%r%  S SK&J'r(  S SK)J*r+  \" S/SS/S\RX                  " 5       S:X  a  S OSS9S 5       r-\" SS/S\RX                  " 5       S:X  a  S OSS9S 5       r.S r/S r0S r1S r2S r3S r4\" S /S\RX                  " 5       S:X  a  S OS!S9S" 5       r5\" S#/SS$9S% 5       r6S& r7S' r8S( r9\" S)/SS$9S* 5       r:S+ r;S, r<S- r=S. r>\" S//SS/S0S1S2.S3S49S5 5       r?S6 r@S7 rAS8 rBS9 rCS: rD\R                  R                  S;/ S<Q5      S= 5       rGS> rH\R                  R                  S?5      S@ 5       rK\R                  R                  SASB\R                  4SC\R                  SB4/5      SD 5       rNSE rOSF rPSG rQSH rRSI rS\R                  R                  SJ\R                  " SK\R                  R                  SK5      /SL9\R                  " SM\R                  R                  SM5      /SL9/5      SN 5       rVSO rWSP rX\R                  " SQSR05      \" 5       SS 5       5       rZST r[SU r\SV r]\" 5       SW 5       r^\R                  R                  SXSYSZ/5      S[ 5       r_S\ r`\" SS]/S^9S_ 5       ra\R                  R                  S`/ SaQ5      Sb 5       rbSc rcSd rdSe re\R                  R                  SfSgSh/5      Si 5       rfSj rg\R                  R                  S5      Sk 5       rhSl ri\" Sm/SSnSoSp.SRSq9Sr 5       rj\" / SsQS^9St 5       rk " Su Sv5      rlSw rm\" Sx/SSySo0Sz9S{ 5       rnS| roS} rp\" S~/SSySo0\R                  S:X  a  S!OS S9S 5       rq\" S/SSySo0Sz9S 5       rrS rs\R                  R                  S5      S 5       rt\" S/SSRS9S 5       ruS rvS rwS rxS ryS rz\R                  R                  \R                  S:H  SS9S 5       r|\R                  R                  \R                  S:H  SS9S 5       r}S r~\" 5       S 5       rS rS rS r\R                  R                  S`/ SQ5      S 5       r\R                  R                  S`/ SQ5      S 5       rS rS rS rS rS rS rS rS r\R                  R                  S/ SQ5      S 5       rS rS rS rg)    N)datetime)Timer)SimpleNamespace)Image)gridspec)image_comparisoncheck_figures_equal)Axes)KeyEvent
MouseEvent)Figure
FigureBase)ConstrainedLayoutEngineTightLayoutEnginePlaceHolderLayoutEngine)AutoMinorLocatorFixedFormatterScalarFormatterfigure_align_labelspngsvgmpl20x86_64{Gz?)
extensionsstyletolc                  4   [         R                  " SS9n [        R                  " SS5      nU R	                  USS S24   5      nUR                  [        R                  " SSS5      5        UR                  S5        U R	                  US	   5      nUR                  [        R                  " SS
S5      5        [        S5       H  nU R	                  USU4   5      nUR                  SU-  5        UR                  SU-  5        US;   a5  UR                  R                  S5        UR                  R                  5         US:X  a(  UR                  5        H  nUR                  S5        M     US:X  d  M  UR                   R                  S5        UR                   R#                  5         M     [        S5       H  nU R	                  USU4   5      nUR                  SU 35        UR                  SU 35        US:X  d  MI  UR                  [        R                  " SS
S5      5        UR                   R                  S5        UR                   R#                  5         UR                  5        H  nUR                  S5        M     M     U R%                  5         g )Ntightlayout   r          .A  z	Ylabel0 0)r        @d      z
YLabel1 %dz
XLabel1 %dr   r#   topZ   rightzXLabel2 zYLabel2 
   )pltfigurer   GridSpecadd_subplotplotnparange
set_ylabelrange
set_xlabelxaxisset_label_positiontick_topget_xticklabelsset_rotationyaxis
tick_rightalign_labels)figgsaxiticks        V/home/wildlama/miniconda3/lib/python3.13/site-packages/matplotlib/tests/test_figure.pytest_align_labelsrG      s	    **G
$C			1a	 B	ArrE	#BGGBIIad#$MM+	E	#BGGBIIac"#1X__R1X&
lQ&'
lQ&';HH''.HH6**,!!"% -6HH''0HH!  1X__R1X&
n%
n%6GGBIIab)*HH''0HH!**,!!"% -      zfigure_align_titles_tight.pngz#figure_align_titles_constrained.pngg/$?)r   r   c                  ~   S GH6  n [         R                  " SSU SS/S9u  pUS   nUR                  [        R                  " SSS5      5        UR                  SS	S
9  UR                  SSS
9  UR                  SSS
9  US   nUR                  [        R                  " SSS5      5        UR                  S5        UR                  S5        UR                  R                  S5        UR                  R                  5         UR                  5        H  nUR                  S5        M     UR                  5         GM9     g )N)r   constrainedr)   r#   )r!   width_ratiosr   r$   r%   zTitle0 leftleft)loczTitle0 centercenterzTitle0 rightr-   r'   r(   Title1Xlabel0r+   r,   )r/   subplotsr3   r4   r5   	set_titler8   r9   r:   r;   r<   r=   align_titles)r!   rA   axsrC   rE   s        rF   test_align_titlesrU   F   s    +<<1V1a&IV
		!S$'(
]/
_(3
^1V
		!S#&'
X
i 
##E*
&&(Db! ) 	% +rH   c                     [         R                  " SS5      u  p[        UR                  5       Hg  u  p#UR	                  S5        UR	                  S5        UR                  [        R                  " S5      U-  [        R                  " S5      U-  5        Mi     U R                  5         U R                  5         U R                  5         [        R                  " S5      n[        R                  " S5      n[        UR                  5       HW  u  p#UR                  R                  R                  5       S   XR'   UR                  R                  R                  5       S   XB'   MY     [        R                   R#                  US S USS  5        [        R                   R#                  US S S2   USS S2   5        [         R                  " SSSS9u  p[        UR                  5       HV  u  p#UR	                  S5        UR	                  S5        UR%                  [        R&                  R)                  S	S	5      5      nMX     U R+                  WWS
9  U R                  5         U R                  5         U R                  5         [        R                  " S5      n[        R                  " S5      n[        UR                  5       HW  u  p#UR                  R                  R                  5       S   XR'   UR                  R                  R                  5       S   XB'   MY     [        R                   R#                  US S USS  5        [        R                   R#                  US S S2   USS S2   5        g )Nr#   BooWho   r)   r   Tconstrained_layoutr.   rC   )r/   rQ   	enumerateflatr8   r3   r4   r5   align_ylabelsalign_xlabelsdraw_without_renderingzerosr9   labelget_positionr>   testingassert_allclose
pcolormeshrandomrandncolorbar)rA   rT   nnrC   xnynpcs          rF   test_align_labels_stray_axesro   _   s   ||Aq!HCCHH%
e
e
		!b "))A,"23 &  	!B	!BCHH%,,.q1,,.q1 & JJr"1vr!"v.JJr#A#w14a41||AqT:HCCHH%
e
e]]299??2r23 & LLL 	!B	!BCHH%,,.q1,,.q1 & JJr"1vr!"v.JJr#A#w14a41rH   c                  Z   [         R                  " S5        [         R                  " S5      n [         R                  " S5        [         R                  " S5        [         R                  " 5         [         R                  " S5        [         R                  " S5        [         R                  " S5        [         R                  " 5       / SQ:X  d   e[         R                  " 5       / SQ:X  d   e[         R                  " S	5        [         R                  " 5         [         R                  " S
5        [         R                  " S5        [         R                  " 5       SS/:X  d   e[         R                  " 5       SS/:X  d   e[         R                  " U 5        [         R
                  " 5       U :X  d   eg )Nalltodayr"   tomorrowr   r)   )r   r)   r"   rY      ) rr   ru   rs   ru   r.   rt   ru   )r/   closer0   get_fignumsget_figlabelsgcf)	fig_todays    rF   test_figure_labelr{      s	   IIe

7#IJJqMJJzJJLJJqMJJqMJJqM??///"CCCCIIbMIIKIIaLIIj??A&&&2w-///JJy779	!!!rH   c                     [         R                  " S5        [         R                  " S5      n [        R                  " [
        R                  SS9   SU l        S S S 5        U R                  S:X  d   eg ! , (       d  f       N!= f)Nrq   r)   &Changing 'Figure.number' is deprecatedmatchr#   )r/   rv   r0   pytestwarnsmplMatplotlibDeprecationWarningnumberrA   s    rF   test_figure_label_replacedr      s_    IIe
**Q-C	c66D
F

F ::??
F 
Fs   A33
Bc                     [        5       n [        R                  " [        5         U R                    S S S 5        [        R
                  " [        R                  SS9   SU l        S S S 5        U R                  S:X  d   e[        R                  " U R                  5      (       a   eg ! , (       d  f       N{= f! , (       d  f       NY= f)Nr}   r~   rt   )
r   r   raisesAttributeErrorr   r   r   r   r/   fignum_existsr   s    rF   test_figure_no_labelr      s    
(C	~	&

 
' 
c66D
F

F ::??  ,,,,, 
'	&
F 
Fs   B'B8'
B58
Cc                  f   [         R                  " S5        [         R                  " S5        [         R                  " S5        [         R                  " 5         [         R                  " S5      (       d   e[         R                  " S5      (       d   e[         R                  " S5      (       d   e[         R                  " S5      (       d   e[         R                  " S5        [         R                  " S5        [         R                  " S5      (       a   e[         R                  " S5      (       a   eg )Noner#   threerY   )r/   r0   r   rv    rH   rF   test_fignum_existsr      s    JJuJJqMJJwJJLU####QW%%%%QIIeIIaL  ''''  #####rH   c                  2   Sn Sn[         R                  " SS9nUR                  U 5        UR                   Vs/ s H  o3R	                  5       PM     snU /:X  d   e[         R                  " SSS9nUR                  SSU5        X$L d   eUR                   Vs/ s H  o3R	                  5       PM     snX/:X  d   e[         R                  " SSSS	S9u  pVX%L d   eUR                   Vs/ s H  o3R	                  5       PM     sn/ :X  d   eg s  snf s  snf s  snf )
NzA fancy plotzReally fancy!r)   )numF)r   clear      ?r#   T)r/   r0   suptitletextsget_texttextrQ   )text1text2fig0tfig1fig2ax2s          rF   test_clf_keywordr      s    EE::!DMM%"&**-*QJJL*-%888::!5)DIIc3<<"&**-*QJJL*-%???Qq5ID<<"&**-*QJJL*-333 .
 . .s   D
D'Dzfigure_today.pnggI+?c                     [         R                  " S5      n U R                  5       nUR                  U R	                  5       5        UR                  [        R                  " S5      5        [         R                  " S5        [         R
                  " SS/SS/S5        [         R                  " S5        [         R                  " S5        g )Nrr   rt   rs   r   r)   r)	r/   r0   r2   rR   	get_labelr3   r4   r5   rv   rA   rC   s     rF   test_figurer      s     **W
C		BLL!GGBIIaLJJzHHaVaVS!JJwIIjrH   zfigure_legend.png)r   c                  N   [         R                  " S5      u  pUS   R                  SS/SS/SSS9  US   R                  SS/SS/SSS9  US   R                  SS/S	S	/SS
S9  US   R                  SS/SS/SSS9  US   R                  SS/SS/SSS9  U R                  5         g )Nr#   r   r)   xg)rc   coloryr   r   k_yzb)r/   rQ   r3   legendrA   rT   s     rF   test_figure_legendr      s    ||AHCFKKAAcK5FKKAAcK5FKKAc
#SK9FKKAAd#K6FKKAAcK5JJLrH   c                     [         R                  " 5       n U R                  S5      nU R                  5       UL d   eU R	                  S5      nU R                  5       UL d   eU R                  U5        U R
                  X/:X  d   eU R                  5       UL d   eU R                  U5        U R
                  X/:X  d   eU R	                  U5        U R
                  X/:X  d   eU R                  5       UL d   eg )Nr   r   r)   r)   o   )r/   r0   add_axesgcar2   axessca)rA   ax0ax1s      rF   test_gcar      s    
**,C ,,|
$C779 //#
C779 LL88z!!!779 GGCL88z!!! OOC88z!!!779rH   c                     [         R                  " 5       n U R                  [        S9  [        R
                  " [        5         U R                  [        SS9  S S S 5        [        R
                  " [        5         U R                  [        SS9  S S S 5        [        R
                  " [        5         U R                  SSS9  S S S 5        [        R
                  " [        5         U R                  SS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nc= f! , (       d  f       g = f)	N)
axes_class3d)r   
projectionT)r   polar)r   r   *   r   )r/   r0   r2   r
   r   r   
ValueError	TypeErrorr   s    rF   test_add_subplot_subclassr   
  s    
**,COOtO$	z	"4D9 
#	z	"4t4 
#	z	"4t4 
#	y	!2& 
"	! 
#	"	"	"	"	"	!	!s0   C=:D1D$D0=
D
D
D-0
D>c                     [         R                  " 5       n [        R                  " [        SS9   U R                  SSS5        S S S 5        [        R                  " [        SS9   U R                  SSS5        S S S 5        [        R                  " [        SS9   U R                  SSS5        S S S 5        [        R                  " [        SS9   U R                  SSS5        S S S 5        [        R                  " [        SS9   U R                  SSS	5        S S S 5        [        R                  " [        S
S9   U R                  S5        S S S 5        [        R                  " [        S
S9   U R                  S5        S S S 5        [        R                  " [        SS9   U R                  SS5        S S S 5        [        R                  " [        SS9   U R                  SSSS5        S S S 5        [        R                  " [        SS9   U R                  SSS5        S S S 5        [        R                  " [        SS9   U R                  SSS5        S S S 5        [         R                  " 5       u  p[        R                  " [        SS9   U R                  U5        S S S 5        g ! , (       d  f       GNh= f! , (       d  f       GNE= f! , (       d  f       GN"= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNx= f! , (       d  f       GNT= f! , (       d  f       GN1= f! , (       d  f       GN= f! , (       d  f       g = f)Nz,Number of columns must be a positive integerr~   r#   r   r)   z)Number of rows must be a positive integerz)num must be an integer with 1 <= num <= 4rt   r   zmust be a three-digit integerr   r%   z2takes 1 or 3 positional arguments but 2 were givenz2takes 1 or 3 positional arguments but 4 were givenr"   rY   z2Number of rows must be a positive integer, not '2'2z5Number of columns must be a positive integer, not 2.0g       @5The Axes must have been created in the present figure)r/   r0   r   r   r   r2   r   rQ   )rA   _rC   s      rF   test_add_subplot_invalidr     s   
**,C	zK
M1a 
M 
zH
J1a 
J 
z *9 
:1a 
: 
z *9 
:1a 
: 
z *9 
:1c"
: 
z)H	I 
J	z)H	I 
J 
y ); 
<1
< 
y ); 
<1a#
< 
z'
( 	Q"
( 
z'
( 	3"
( LLNEA	z.
/ 	
/ 
/I
M 
M
J 
J
: 
:
: 
:
: 
: 
J	I	I	I
< 
<
< 
<
( 
(
( 
(

/ 
/s   J$$J6KKK,8K>+LL"L4M=M	M*$
J36
K
K
K),
K;>
L
L"
L14
M
M
M'*
M8zfigure_suptitle.pngc                  t    [         R                  " 5       u  pU R                  SSS9  U R                  SSSS9  g )Nhellor   )r   titler      )r   rotation)r/   rQ   r   )rA   r   s     rF   test_suptitler   C  s1    \\^FCLLL$LLbL1rH   c                     [         R                  " 5       u  p[        R                  R	                  SSS9nU R                  SUS9nUR                  5       UR                  5       :X  d   eUR                  5       UR                  5       :X  d   eg )Nlargebold)sizeweightzfontprops title)fontproperties)	r/   rQ   r   font_managerFontPropertiesr   get_fontsizeget_size_in_points
get_weight)rA   rC   fpstxts       rF   test_suptitle_fontpropertiesr   J  sy    llnGC



)
)wv
)
FC
,,(,
=C!7!7!9999>>s~~////rH   c                  0   [         R                  " SS9n U R                  SS5      u  pUR                  S5        UR	                  5         UR	                  5         U R                  S5        UR                  5       S:X  d   eUR                  5       S:X  d   eg )	N)rY   r"   figsizer)   r#   whitezThis is a visible suptitle.)        r   r   r   )      ?r   r   r   )r/   r0   
subfiguresset_facecolorrQ   r   get_facecolor)rA   sf1sf2s      rF   test_suptitle_subfiguresr   R  s    
**V
$C~~a#HCgLLNLLNLL./ "6666"6666rH   c                     [         R                  " 5       u  pU R                  5       S:X  d   eU R                  5       S:X  d   eU R	                  5       S:X  d   eU R                  S5        U R                  5       S:X  d   eU R                  S5        U R                  5       S:X  d   eU R                  S5        U R	                  5       S:X  d   eg )Nru   r   	supxlabel	supylabel)r/   rQ   get_suptitleget_supxlabelget_supylabelr   r   r   r   s     rF   %test_get_suptitle_supxlabel_supylabelr   `  s    llnGC###"$$$"$$$LL+++MM++---MM++---rH   c                     [         R                  " 5       n U R                  S5      nU R                  S5      nU R	                  S5      n[        U R                  5      S:X  d   eU R                  c   eU R                  c   eU R                  c   eUR                  5         U R                  b   eUR                  5         U R                  b   eUR                  5         U R                  b   eU R                  (       a   eg )Nr   r   r   r"   )r/   r0   r   r   r   lenr   	_suptitle
_supxlabel
_supylabelremove)rA   r   xlabelylabels       rF   (test_remove_suptitle_supxlabel_supylabelr   m  s    
**,CLL$E]];'F]];'Fsyy>Q==$$$>>%%%>>%%%	LLN==   
MMO>>!!!
MMO>>!!!yy=yrH   alpha_backgroundr   r)   皙?none)	facecolor	edgecolor_classic_test)r   savefig_kwargr   c            	          [         R                  " SS/S9n U R                  S5        U R                  R	                  S5        U R
                  R                  [        R
                  R                  SS/SSS	S
95        g )Nr#   r)   r   r   r         333333?red)radiusalphar   )	r/   r0   r   patch	set_alphapatchesappendr   CirclePolygonr   s    rF   
test_alphar    sk     **aV
$Ck"IIKKs{{00	R3% 1 9 :rH   c                      [         R                  " [        5         [        [        R
                  S   S-   5       H  n [        R                  " 5         M     S S S 5        g ! , (       d  f       g = f)Nzfigure.max_open_warningr)   )r   r   RuntimeWarningr7   r   rcParamsr/   r0   )rD   s    rF   test_too_many_figuresr    sB    	n	%s||$=>BCAJJL D 
&	%	%s   <A  
A.c                     ^  " S S[         5      m " U4S jS5      n [        R                  " 5       nUR                  SSSU " 5       S9  [        R                  " U5        g )Nc                   "    \ rS rSrSS.S jrSrg).test_iterability_axes_argument.<locals>.MyAxesi  N)myclassc                8    [         R                  " U /UQ70 UD6  g N)r
   __init__)selfr  argskwargss       rF   r  7test_iterability_axes_argument.<locals>.MyAxes.__init__  s    MM$000rH   r   )__name__
__module____qualname____firstlineno__r  __static_attributes__r   rH   rF   MyAxesr    s    *. 	1 	1rH   r$  c                   (   > \ rS rSrS rU 4S jrSrg)/test_iterability_axes_argument.<locals>.MyClassi  c                 &    US:w  a  [        S5      eg )Nazitem should be a)r   )r  items     rF   __getitem__;test_iterability_axes_argument.<locals>.MyClass.__getitem__  s    s{ !344 rH   c                    > TSU 04$ )Nr  r   )r  r$  s    rF   _as_mpl_axes<test_iterability_axes_argument.<locals>.MyClass._as_mpl_axes  s    It,,,rH   r   N)r  r   r!  r"  r*  r-  r#  )r$  s   rF   MyClassr&    s    	5	- 	-rH   r/  r)   r   )r
   r/   r0   r2   rv   )r/  rA   r$  s     @rF   test_iterability_axes_argumentr0    sG    1 1- - **,COOAq!	O2IIcNrH   c                     [         R                  " 5       n U R                  S5        U R                  5       S:X  d   eU R	                  S5        U R                  5       S:X  d   eU R                  SS5        U R                  5       S:X  d   eU R                  5       S:X  d   eU R                  S5        U R                  5       S:X  d   eU R                  5       S:X  d   eg )Nrt   r)   r#   rY   )r)   r"   r"   )r/   r0   set_figwidthget_figwidthset_figheightget_figheightset_size_inchesr   s    rF   test_set_fig_sizer7    s    
**,C Q""" a!### 1"""!### """!###rH   c                     [         R                  " SS5      u  pUS   R                  5         UR                  5       S S  H  nX R                  ;   a  M   e   US   U R                  ;  d   e[        U R                  5      S:X  d   eg )Nr#   r&   r&   r&   r"   )r/   rQ   r   ravelr   r   rA   rT   rC   s      rF   test_axes_remover<    su    ||Aq!HCKiik#2XX~~ v;chh&&&sxx=ArH   c                     [         R                  " [        R                  " S5      [        R                  " S5      -  5      u  pX-  S:X  d   e[         R                  " S5      u  pX-  S:X  d   e[         R                  " [        R                  " S5      5      u  pX-  S:X  d   e[         R                  " [        R                  " S5      5      u  pX-  S:X  d   eg )Nr#   r)   r)   r#   r   )r#   r#   )r/   	figaspectr4   float64rb   )whs     rF   test_figaspectrC    s    ==AA67DA5A::==DA5A::==&)*DA5C<<==&)*DA5A::rH   which)bothmajorminorc                 z   / SQn/ SQnSn/ SQn[         R                  " U5      n[         R                  " U5      n[        R                  " 5       u  pxUR	                  XV5        UR                  5         UR                  5         UR                  R                  [        S5      5        [        R                  " 5          [        R                  " SS5        UR                  R                  [        U5      5        S S S 5        UR                  SUS	U 5        U S
;   aE  UR                   S   R#                  SS5       H"  n	[%        U	R'                  5       5      U:X  a  M"   e   U S;   aF  UR                   S   R#                  SS5       H"  n	[%        U	R'                  5       5      U:X  a  M"   e   g g ! , (       d  f       N= f)N)z
3 Jan 2013z
4 Jan 2013z
5 Jan 2013z
6 Jan 2013z
7 Jan 2013z
8 Jan 2013z
9 Jan 2013z10 Jan 2013z11 Jan 2013z12 Jan 2013z13 Jan 2013z14 Jan 2013)z16:44:00z16:45:00z16:46:00z16:47:00z16:48:00z16:49:00z16:51:00z16:52:00z16:53:00z16:55:00z16:56:00z16:57:00<   )r)   r#   r"   rY   rt         r#   ignorez=FixedFormatter should only be used together with FixedLocator皙?r-   )rE  rF  r   FrF  )rE  rG  TrG  )mdatesdatestr2numr/   rQ   r3   
yaxis_date
xaxis_dater9   set_minor_locatorr   warningscatch_warningsfilterwarningsset_minor_formatterr   autofmt_xdater   r<   intget_rotation)
rD  datetimeangleminorsr   r   rA   rC   rc   s
             rF   test_autofmt_xdater^    sn   HD$D E"F4 A4 AllnGCGGAMMMOMMOHH/23		 	 	"K	M 	$$^F%;<	 
# c5'51!!XXa[00@Eu))+,555 A !!XXa[00w?Eu))+,555 @ " 
#	"s   <<F,,
F:c                     [         R                  " SS9u  pUR                  / SQ/ SQ/5      n[         R                  " U5        U R	                  5         U R                  5         UR                  SS9S   nUR                  5       S:X  d   eg )	NrJ   r    )r)   rY   rJ  )r#   r"   rt   rF  rD  r)   g      >@)r/   rQ   imshowrj   rW  ra   r<   rY  )rA   rC   imrc   s       rF   'test_autofmt_xdate_colorbar_constrainedrc    sz    
 ll-0GC	Iy)	*BLL W-a0E4'''rH   defaultc                     [         R                  " SS9n U R                  5         U R                  R                  R
                  S:X  d   eU R                  R                  R                  S:X  d   eSU l        U R                  5         U R                  R                  R
                  S:X  d   eU R                  R                  R                  S:X  d   eg )N)rY   rY   r     2      )r/   r0   ra   canvasrendererheightwidthdpir   s    rF   test_change_dpirn    s    
**V
$C ::%%,,,::$$+++CG ::%%,,,::$$+++rH   zwidth, heightr)   )r&   r)   c                 J   [         R                  " [        5         [        R                  " X4S9  S S S 5        [        R                  " 5       n[         R                  " [        5         UR                  X5        S S S 5        g ! , (       d  f       NX= f! , (       d  f       g = f)Nr   )r   r   r   r/   r0   r6  )rl  rk  rA   s      rF   test_invalid_figure_sizerp  !  sd     
z	"

E?+ 
# **,C	z	"E* 
#	"	 
#	" 
#	"s   B(B
B
B"c                     [         R                  " 5       n [        R                  " [        SS9   U R                  5         S S S 5        [        R                  " [        5         U R                  SSS[        R                  45        S S S 5        [        R                  " [        SS9   U R                  S/ SQS9  S S S 5        [         R                  " 5       u  p[        R                  " [        SS9   U R                  U5        S S S 5        UR                  U5        [        R                  " [        S	S9   UR                  US
5        S S S 5        [        R                  " [        S	S9   U R                  SS
5        S S S 5        g ! , (       d  f       GNM= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nz.missing 1 required positional argument: 'rect'r~   皙?r   z#multiple values for argument 'rect'r   )rectr   z)add_axes\(\) takes 1 positional argumentszextra positional argument)r/   r0   r   r   r   r   r   r4   nanrQ   delaxes)rA   r   rC   s      rF   test_invalid_figure_add_axesrv  /  sP   
**,C	yM
O
O 
z	"b"b"&&)* 
# 
y(M	N\5 
O ||~HD	z&
' 	R
'
 	LL	y(T	Ub56 
V 
y(T	U\#>? 
V	U)
O 
O 
#	" 
O	N
' 
' 
V	U 
V	UsG   F"$F'F*2F;6G*G
F
F'*
F8;
G	
G
G+c                     [         R                  " SSSSSS9u  pUR                   H  nUR                  / SQ/ SQ5        M     WR	                  S5        UR                  S5        USS S 24    H+  nS[        UR                  R                  SS	95      :X  a  M+   e   US
S S 24    H+  nS[        UR                  R                  SS	95      :  a  M+   e   US S 2S
4    H+  nS[        UR                  R                  SS	95      :X  a  M+   e   US S 2S4    H+  nS[        UR                  R                  SS	95      :  a  M+   e   g )Nr#   TF)sharexshareysqueeze)r.   r  r   logr   rE  r`  r)   )
r/   rQ   r^   r3   
set_yscale
set_xscaler   r9   get_ticklabelsr>   r;  s      rF   test_subplots_shareax_loglabelsr  I  s2   ||AqdEJHChh
l+  MM%MM%!Q$iC//f/=>>>>  !Q$i3rxx..V.<====  !Q$iC//f/=>>>>  !Q$i3rxx..V.<==== rH   c                      [         R                  " 5       n Sn[        R                  " [        US9   U R                  SS5        S S S 5        g ! , (       d  f       g = f)Nz9savefig\(\) takes 2 positional arguments but 3 were givenr~   z
fname1.pngz
fname2.png)r/   r0   r   r   r   savefig)rA   msgs     rF   test_savefigr  ^  s:    
**,C
FC	y	,L,/ 
-	,	,s   A
Ac                      [         R                  " 5       n S HJ  n[        R                  " [        5         U R                  [        R                  " 5       USS9  S S S 5        ML     g ! , (       d  f       M^  = f)N)r   pdfr   tifjpgT)formatnon_existent_kwarg)r/   r0   r   r   r   r  ioBytesIO)rA   r  s     rF   test_savefig_warnsr  e  sJ    
**,C5]]9%KK

VKM &% 6%%s   %A''
A6	c                  :   [         R                  " 5       n [        R                  " [        SS9   U R                  SSS9  S S S 5        [        R                  " [        SS9   U R                  SSS9  S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = f)	NzNo module named '@absent'r~   testzmodule://@absent)backendz-The 'pdf' backend does not support png outputztest.pngr  )r/   r0   r   r   ModuleNotFoundErrorr  r   r   s    rF   test_savefig_backendr  l  sy    
**,C	*2M	NF$67 
O	zL
NJ.
N 
N 
O	N
N 
Ns   A;!B;
B	
Br  Agg)marksCairoc                    [         R                  " 5       u  pUR                  / SQ5        [        R                  " 5        nUR                  USS9  [        R                  " U5      nUR                  5         S S S 5        [         R                  " 5       u  pUR                  / SQ5        UR                  R                  S5        [        R                  " 5        nUR                  USS9  [        R                  " U5      nUR                  5         S S S 5        WW:X  d   eg ! , (       d  f       N= f! , (       d  f       N(= f)Nr)   r#   r"   r   r  r#   )r/   rQ   r3   r  r  r  r   openloadri  _set_device_pixel_ratio)r  rA   rC   bufratio1ratio2s         rF   test_savefig_pixel_ratior  v  s    
 llnGCGGI	C&C 

 llnGCGGIJJ&&q)	C&C 

 V 
 
s    7D!7D2!
D/2
E c                      [         R                  " SS9n U R                  [        R                  " 5       SS9  U R                  5       R                  (       d   eg )N
compressedr    r   bbox_inches)r/   r0   r  r  r  get_layout_engine	_compressr   s    rF   #test_savefig_preserve_layout_enginer    s>    
**L
)CKK

'K2  ",,,,rH   c                     [         R                  " 5       u  pUR                  [        R                  R                  SS5      5      nU R                  USS9nU R                  [        R                  " 5       [        R                  R                  SS/SS//5      S9  UR                  R                  SS9R                  UR                  R                  S	S9R                  :w  d   eg )
Nr#   (   )aspectr   rY   r  T)originalF)r/   rQ   rg   r4   rh   ri   rj   r  r  r  r   
transformsBboxrC   rd   bounds)rA   rC   rn   cbars       rF   test_savefig_locate_colorbarr    s    llnGC	ryyq!,	-B<<2<&DKK

#..*=*=1v1v>N*OKP GG  $ /66GG  % 0778 9 8rH   zsavefig.transparentTc                    U R                  SSSSS9nU R                  US S 2S S 24   5      nUR                  US   5      nUR                  US S 2S S 24   5      nUR                  US S2S S 24   5      nUR                  / SQ5      nUR                  / SQ5      nU R                  USS S24   5      n	U R                  US   5      n
XVXxX4 H1  nUR	                  / / S9  UR
                  S S  R                  S	5        M3     g )
Nr"   皙?)rL   wspacer   r   r&   )rr  rM  333333?r   r9  )xticksyticksF)add_gridspecadd_subfigurer2   
inset_axessetspinesset_visible)fig_testfig_refgs1f1f2ax12r   iax1iax2r   ax3rC   s               rF   test_savefig_transparentr    s    
 

14

=C			AqD		*B			#d)	$B>>#ad)$D
..SbS!V
%C>>*+D??+,D


s2ss7|
,C


s6{
+C$c/
b$
		!  ' 0rH   c                  P    [         R                  " SSS9n [        U 5      S:X  d   eg )N)r.   r  r.   r   rm  z!<Figure size 100x200 with 0 Axes>)r/   r0   reprr   s    rF   test_figure_reprr    s%    
**X2
.C9;;;;rH   c                  N   [        S S9n U R                  5       (       a   eU R                  5       (       a   e[        SS9n U R                  5       (       d   eU R                  5       (       a   e[        SS9n U R                  5       (       a   eU R                  5       (       d   eg )Nr    r   rJ   )r   get_tight_layoutget_constrained_layoutr   s    rF   test_valid_layoutsr    s    

C##%%%%))++++

 C!!!!))++++

&C##%%%%%%''''rH   c                  h   [         R                  " SS9u  p[        R                  " [        5         U R                  SS9  S S S 5        [        U R                  5       [        5      (       d   eSn[        R                  " [        US9   [        SSS	9n S S S 5        [        U R                  5       [        5      (       d   eS
n[        R                  " [        US9   [        SSS9n S S S 5        [        U R                  5       [        5      (       a   e[        U R                  5       [        5      (       d   e[        R                  " [        SS9   [        SS9  S S S 5        [         R                  " SS9u  pU R                  S5        [        U R                  5       [        5      (       d   eU R                  S5        [        U R                  5       [        5      (       d   e[         R                  " SS9u  pUR                  [        R                   R#                  SS5      5      nU R%                  U5        [        R                  " [&        SS9   U R                  S5        S S S 5        U R                  S5        [        R                  " [&        SS9   U R                  S5        S S S 5        [         R                  " SS9u  pUR                  [        R                   R#                  SS5      5      nU R%                  U5        [        R                  " [&        SS9   U R                  S5        S S S 5        U R                  S5        [        U R                  5       [(        5      (       d   e[        R                  " [&        SS9   U R                  S5        S S S 5        g ! , (       d  f       GNl= f! , (       d  f       GN+= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN\= f! , (       d  f       N= f! , (       d  f       g = f)NrJ   r    皙?)r+   z1The Figure parameters 'layout' and 'tight_layout'r~   r   F)r!   tight_layoutz7The Figure parameters 'layout' and 'constrained_layout')r!   r[   zInvalid value for 'layout'foobarr#   zColorbar layout of new layoutr   )r/   rQ   r   r   UserWarningsubplots_adjust
isinstancer  r   r   r   r   r   set_layout_enginerg   r4   rh   ri   rj   RuntimeErrorr   )rA   rC   wstrn   s       rF   test_invalid_layoutsr    s   ll-0GC	k	"$ 
# c++-/FGGGG >C	k	-G%8 
.c++-/@AAAA
CC	k	-MeD 
.#//13DEEEEc++-/FGGGG	z9
;h
;
 ll-0GC'"c++-/@AAAA-(c++-/FGGGG ll-0GC	ryyq!,	-BLL	|+J	Kg& 
L&!	|+J	Kg& 
L ll'*GC	ryyq!,	-BLL	|+J	Km, 
L&!c++-/FGGGG	|+J	Km, 
L	K] 
#	" 
.	- 
.	-

; 
; 
L	K 
L	K 
L	K
 
L	Ks_   N&	N8O

OO.P "PP#&
N58
O

O
O+.
O= 
P
P #
P1c                    [        X/SS/5       Hi  u  p#[        R                  " SU05         UR                  SS9nUR	                  SS9  S S S 5        [        UR                  5       [        5      (       a  Mi   e   g ! , (       d  f       N8= f)NFTzfigure.autolayoutr#   )ncolsr.   )w_pad)zipr   
rc_contextrQ   r  r  r  r   )r  r  rA   
autolayoutr   s        rF   &test_tightlayout_autolayout_deconflictr    s{    2UDMB^^0*=><<a<(D2& ? #//13JKKKK	 C>>s   A>>
B	r!   rJ   r  c                     [         R                  " U S9u  p[        R                  " [        SS9   [         R
                  " 5         SSS5        g! , (       d  f       g= f)z^
Raise a warning when a previously assigned layout changes to tight using
plt.tight_layout().
r    z The figure layout has changed tor~   N)r/   rQ   r   r   r  r  )r!   rA   rC   s      rF   test_layout_change_warningr    s<     ll&)GC	k)K	L 
M	L	Ls   A
Ac                  x    [        5       n U R                  5         U R                  5         U R                  5         g r  )r   r  r   s    rF   test_repeated_tightlayoutr    s-    
(CrH   r  )r   c           
         SU l         SUl         U R                  5         [        R                  " SS/SS/SS9n[        R                  " SS/SS/SS9n[        R                  " SSS S	S
9n[        R                  " SSSS9n[        R                  " SSU R
                  SSS9nX#XEU4 H  nU R                  U5        M     UR                  5         UR                  5       n[        R                  " SS/SS/UR                  SSS9n[        R                  " SSS SSS	S9n[        R                  " SSUR                  SSS9n[        R                  " SSUR
                  SSSSS9nX$XV4 H  nUR                  U5        M     g )Nr(   rM  ffffff?l1)gidr  l2)r  r  C1)	transformr  )r  r   r  C2)g      @r  g?crimsonC3)r  r   r     )r  r  zorderFr  )r  clip_onr  r  )r  r   r  r  r  )	rm  rQ   r/   Line2DCircledpi_scale_trans
add_artistr   transFigure)	r  r  r  r  r1r2r3r(  r   s	            rF   test_add_artistr    sk   HLGK	RHr2hD	1B	RHr2hD	1B	HcTt	<B	Hct	,B	Ish.F.F'T
3Bbb!A "IIK



C	RHr2h'2E2ER
)B	HcT5
B	HcW-@-@d
B	Isg.E.E'rt
MBbq rH   fmt)r   r  psepsr   c                     USU  3-  n[         R                  " U5        UR                  S5       nU R                  S5      UR	                  S5      R                  5       ;   d   e S S S 5        g ! , (       d  f       g = f)Nztest.rbasciir(   )r/   r  r  encodereadlower)r  tmp_pathoutfiles       rF   test_fspathr  6  s_    
uSE]
"CKK	$4 zz'"diin&:&:&<<<< 
s   5A//
A=c                  F   [         R                  " 5       u  pUR                  SS5        UR                  SSS5      nU R                  R                  5       nSn[        UR                  U5      R                  X@R                  -  -
  5      S:  d   e[        UR                  U5      R                  X@R                  -  -
  5      S:  d   e[        U R                  U5      R                  U-
  5      S:  d   e[        U R                  U5      R                  S	-
  5      S:  d   eUR                  S
5        Sn[        UR                  U5      R                  XPR                  -  -
  5      S:  d   e[        U R                  U5      R                  U-
  5      S:  d   eUR                  S5        Sn[        UR                  U5      R                  X@R                  -  -
  5      S:  d   e[        UR                  U/ S9R                  XPR                  -  -
  5      S:  d   eg )Nr   r)   r   r   zThis dangles over endg!@r#   r  g|?5^?FgET@T)bbox_extra_artists)r/   rQ   set_xlimr   ri  get_rendererabsget_tightbboxx1rm  x0set_in_layout)rA   rC   r   rj  x1Nom0x1Noms         rF   test_tightbboxr  @  s   llnGCKK1
C01Azz&&(HFqx(++fww.>>?!CCCr),,v/??@1DDDs  *--67$>>>s  *--56=== OOEEr),,uww>?!CCCs  *--56===OODEr),,v/??@1DDDrR@CC! "$%& & &rH   c                     [         R                  " SSSS9u  pUS   R                  5         US   R                  [	        SSS5      [	        SSS5      /SS/5        [        US   R                  R                  5       [        R                  5      (       d   e[         R                  " SSSS9u  pUS   R                  R                  [        5       5        US   R                  5         US   R                  [	        SSS5      [	        SSS5      /SS/5        [        US   R                  R                  5       [        5      (       d   eg )Nr)   r#   Trx  r   i  )r/   rQ   r   r3   r   r  r9   get_major_formatterrN  AutoDateFormatterset_major_formatterr   r   s     rF   test_axes_removalr  Y  s   ||Aq.HCFMMOFKK$1%xa';<q!fEc!fll668..0 0 0 0
 ||Aq.HCFLL$$_%67FMMOFKK$1%xa';<q!fEc!fll668%' ' ' 'rH   c                      [         R                  " SSS9u  pUS   R                  5         U R                  R	                  5         g )Nr#   Tr  r   )r/   rQ   r   ri  drawr   s     rF   test_removed_axisr  k  s/    ||Ad+HCFMMOJJOOrH   
clear_methr   clfc           	        ^
 [         R                  " 5       m
T
R                  5         T
R                  / :X  d   eT
R	                  S5      n[        T
U 5      " 5         T
R                  / :X  d   e[        S5       Vs/ s H  nT
R	                  SSUS-   5      PM     nn[        T
U 5      " 5         T
R                  / :X  d   eT
R                  SSS9nT
R                  US   5      nUR	                  S5      n[        T
U 5      " 5         UT
R                  ;  d   eT
R                  / :X  d   eT
R                  US   5      nUR	                  S5      nT
R	                  US   5      nUR                  5         T
R                  U/:X  d   eT
R	                  US   5      nUR                  5         T
R                  U/:X  d   eUT
R                  ;   d   eUR	                  S5      nUT
R                  ;   d   eUT
R                  ;   d   e[        XP5      " 5         UT
R                  ;   d   eXeR                  ;  d   eUT
R                  ;  d   eUT
R                  ;   d   eUR	                  S5      n[        T
U 5      " 5         T
R                  / :X  d   eT
R                  / :X  d   eS Vs/ s H  nT
R                  XB   5      PM     nnU V	s/ s H  oR	                  S5      PM     nn	[        U
4S jU 5       5      (       d   e[        U
4S jU 5       5      (       d   e[        US   U 5      " 5         US   T
R                  ;  d   eUS   T
R                  ;   d   eUS   T
R                  ;   d   e[        US   U 5      " 5         S Vs/ s H  nT
R                  XB   5      PM     nnU V	s/ s H  oR	                  S5      PM     nn	[        U
4S	 jU 5       5      (       d   e[        U
4S
 jU 5       5      (       d   e[        T
U 5      " 5         T
R                  / :X  d   eT
R                  / :X  d   eg s  snf s  snf s  sn	f s  snf s  sn	f )Nr   r#   r)   )r  nrowsr   r   r)   c              3   @   >#    U  H  oTR                   ;   v   M     g 7fr  r   .0rC   rA   s     rF   	<genexpr>$test_figure_clear.<locals>.<genexpr>       0"SXX~   c              3   @   >#    U  H  oTR                   ;   v   M     g 7fr  subfigsr$  sfigrA   s     rF   r%  r&         7wts{{"wr(  c              3   @   >#    U  H  oTR                   ;   v   M     g 7fr  r"  r#  s     rF   r%  r&    r'  r(  c              3   @   >#    U  H  oTR                   ;   v   M     g 7fr  r*  r,  s     rF   r%  r&    r.  r(  )r/   r0   r   r   r2   getattrr7   r  r  r+  r   rq   )r  rC   rD   r   rB   subfigsubaxesmainaxesr+  r-  rA   s             @rF   test_figure_clearr5  r  s    **,C IIK88r>> 
	BC88r>> 16a91COOAq!A#&D9C88r>> 
				+Br!u%F  %GC$$$88r>> r!u%F  %Gr!u%H OO88y    r!u%HNN88z!!!S[[      %GsxxchhF!S[[   ++%%%#(("""sxx   %GC88r>>;;" 288As  'G8189$G90000007w77777 GAJ
#%1:SXX%%%1:!!!1:$$$ GAJ
#%178As  'G8189$G90000007w77777C;;"88r>>A :Z 99 99s   : P3$P8P=Q)Qc                  `    [         R                  " 5        H  n SU R                  ;  a  M   e   g )Nr  )r   __subclasses____dict__)klasss    rF   test_clf_not_redefinedr:    s'    **,ENN*** -rH   c                     [         R                  " 5       u  pUR                  S/S/S/SS9  U R                  R	                  5         U R
                  (       a   e[        UR                  R                  UR                  R                  S-  -   UR                  R                  UR                  R                  S-  -   US S9nU R                  U5        U R
                  (       a   eg )Nr   r%   T)pickerr#   )r   r   inaxesguiEvent)r/   rQ   scatterri  r  staler   bboxr  rl  y0rk  pick)rA   rC   mouse_events      rF   test_picking_does_not_stalerE    s    llnGCJJsQC$J-JJOOyy=!BGGJJ1B$B$&GGJJ!1C$C)+d<K HH[yy=yrH   c                     [         R                  " 5       n U R                  SSS5      nUR                  5       R                  [        SS5      :X  d   eUR                  5       R                  [        SS5      :X  d   eU R                  SSS5      nUR                  5       R                  [        SS5      :X  d   eUR                  5       R                  [        SS5      :X  d   eU R                  SSS5      nUR                  5       R                  [        SS5      :X  d   eUR                  5       R                  [        SS5      :X  d   eU R                  SSS5      nUR                  5       R                  [        SS5      :X  d   eUR                  5       R                  [        SS5      :X  d   e[        R                  " [        5         U R                  SSS	5        S S S 5        g ! , (       d  f       g = f)
Nr"   r#   r"   rt   r)   r   )rY   rJ  )r"   rJ  )rY   rt   )rJ  r"   )
r/   r0   r2   get_subplotspecrowspanr7   colspanr   r   
IndexError)rA   r   r   r  ax4s        rF   test_add_subplot_twotuplerM    s   
**,C
//!Q
'C ((E!QK777 ((E!QK777
//!Q
'C ((E!QK777 ((E!QK777
//!Q
'C ((E!QK777 ((E!QK777
//!Q
'C ((E!QK777 ((E!QK777	z	"1f% 
#	"	"s   G))
G7ztightbbox_box_aspect.svgr   teal)r  r   )r   r  remove_textc                      [         R                  " 5       n U R                  SS5      nU R                  US   5      nU R                  US   SS9nUR	                  S5        UR	                  S5        g )	Nr)   r#   r  r   r   r   r   )r#   r)   r)   )r/   r0   r  r2   set_box_aspect)rA   rB   r   r   s       rF   test_tightbbox_box_aspectrR    se    
 **,C			!Q	B
//"T(
#C
//"T(t/
4Cry!rH   )r   r  r  r   c                     UR                  5       nUR                  [        S5      5        U R                  5       nUR                  [        S5      SS9  g )Nrt   T)animated)rQ   r3   r7   )r  r  ax_refax_tests       rF    test_animated_with_canvas_changerW    sB    F
KKa!GLLqDL)rH   c                      \ rS rSr\" 5       \R                  R                  S/ SQ/ SQ// SQ/ SQ/SS/5      S	 5       5       r\" 5       S
 5       r	\" 5       S 5       r
\" 5       S 5       rS rS r\" 5       \R                  R                  SSS/SS//S4SS/SS//S4SS/SS//S4SS/SS//S4SS/SS//S4SS/SS//S4/5      S 5       5       rS r\" 5       \R                  R                  S0 SS0S/5      S 5       5       r\" 5       \R                  R                  SS\" S5      /5      S  5       5       rS! rS" rS# r\" 5       \R                  R                  S$/ S%Q5      S& 5       5       r\R                  R                  S'SS/SS//S(4SS/SSS/S)S*////S+4S,SSS)/S*///S-S-//S.4/5      S/ 5       r\" 5       S0 5       r\R                  R                  S$/ S1Q5      S2 5       rS3 rS4 rS5rg)6TestSubplotMosaici   r   Ar[  BCDr\  r)   r)   r#   r"   rY   r#   )rZ  r]  )r`  ra  c                 d   UR                  U5      nUR                  5        H  u  pVUR                  U5        M     [        [        R
                  " U5      5      n[        U5      [        U5      :X  d   eUR                  SS5      nUR                  US S2S S24   5      n	U	R                  US   5        UR                  US S 2S4   5      n
U
R                  US   5        UR                  US   5      nUR                  US   5        UR                  US   5      nUR                  US   5        g )Nr#   r"   r)   r   r)   r   r)   r)   )	subplot_mosaicitemsrR   sortedr4   uniquer   r  r2   )r  r  r  r   	grid_axesr   rC   labelsrB   axAaxBaxCaxDs                rF   
test_basicTestSubplotMosaic.test_basic  s    ++A.	__&EALLO ' 		!%6{c)n,,,!!!Q'!!"RaR!V*-fQi !!"QT(+fQi !!"T(+fQi !!"T(+fQi rH   c                    SS/SS//nSS/SS//nUR                  S	5        UR                  S	5        UR                  X4//5      nUR                  5        H"  nUR                  UR	                  5       5        M$     UR                  S
S5      nUS   R                  SS5      n[        U5       H=  u  p[        U
5       H)  u  pUR                  XU4   5      R                  U5        M+     M?     US   R                  SS5      n[        U5       H=  u  p[        U
5       H)  u  pUR                  XU4   5      R                  U5        M+     M?     g )Nr[  r\  r^  r_  EFGHrJ   r)   r#   r  r   )	r  re  valuesrR   r   r  subgridspecr]   r2   )r  r  r  r   r   ri  rC   rB   gs_leftjr   r   rc   gs_rights                 rF   test_all_nested!TestSubplotMosaic.test_all_nested!  s;   3Z#s$3Z#s$!!-0""=1++aVH5	""$BLL( % !!!Q'T(&&q!,aLDA%aL##GqDM2<<UC ) ! d8''1-aLDA%aL##HTN3==eD ) !rH   c                    UR                  S5        UR                  S5        SS/SS//nS/U//nUR                  U5      nUR                  5        H  u  pgUR                  U5        M     UR	                  SS5      nUS	   R                  SS5      n	UR                  U	S
   5      n
U
R                  S5        UR                  U	S   5      nUR                  S5        UR                  U	S	   5      nUR                  S5        UR                  U	S   5      nUR                  S5        UR                  US
   5      nUR                  S5        g )NrJ   r[  r\  r^  r_  rs  r#   r)   rc  r  r   rd  )r  re  rf  rR   r  rw  r2   )r  r  r  r   r   ri  r   rC   rB   gs_nrk  rl  rm  rn  axFs                  rF   test_nestedTestSubplotMosaic.test_nested8  s7    	!!-0""=13Z#s$UQCL++A.	__&EALLO ' !!!Q'$x##Aq)!!$t*-c!!$t*-c!!$t*-c!!$t*-c!!"T(+crH   c                 l    / SQ/ SQ/nSnUR                  S/U//5        UR                  S/U//5        g )Nr[  r\  r\  r^  r^  r_  )r  r  rs  )re  )r  r  r  r   xts        rF   test_nested_tuple#TestSubplotMosaic.test_nested_tupleZ  s=    o./s|,#.rH   c                     SS/S////nSS/n[         R                  " XS9u  p4US   R                  5       R                  5       U:X  d   eUS   R                  5       R                  5       U:w  d   eg )Nr[  r\  r^  r#   r)   )rK   )r/   re  get_gridspecget_width_ratios)r  r   rK   rA   axds        rF   test_nested_width_ratios*TestSubplotMosaic.test_nested_width_ratiosb  s    SEE  1v%%aC3x$$&779\III3x$$&779\IIIrH   c                     SS/S///SS//nSS/n[         R                  " XS9u  p4US   R                  5       R                  5       U:X  d   eUS   R                  5       R                  5       U:w  d   eg )Nr[  r\  r^  r_  r)   r#   height_ratios)r/   re  r  get_height_ratios)r  r   r  rA   r  s        rF   test_nested_height_ratios+TestSubplotMosaic.test_nested_height_ratiosl  s    SEE !3Z)A%%aE3x$$&88:mKKK3x$$&88:mKKKrH   zx, empty_sentinelr[  Nr\  .SKIPr   r)   r#   c                    US:w  a  SU0nO0 nUR                   " U40 UD6nUR                  5        H  u  pxUR                  U5        M     [        U V	V
s1 s H  o  H  oiM     M     sn
n	US1-
  5      n[	        U5      [	        U5      :X  d   eUR                  SS5      nUR                  US   5      nUR                  US   5        UR                  US   5      nUR                  US   5        g s  sn
n	f )	Nr  empty_sentinelr  r#   r  r   rd  r)   )re  rf  rR   rg  r   r  r2   )r  r  r  r   r  r  ri  r   rC   rownamerj  rB   rk  rl  s                  rF   
test_emptyTestSubplotMosaic.test_emptyv  s     V#&7FF++A88	__&EALLO ' /Qc34T3TQ/>32GG
 6{c)n,,,!!!Q'!!"T(+fQi !!"T(+fQi  0s   C3
c                 d   [         R                  " [        SS9   [        R                  " SS/5        S S S 5        [         R                  " [        SS9   [        R                  " S/5        S S S 5        [         R                  " [        SS9   [        R                  " SS//5        S S S 5        [         R                  " [        SS9   [        R                  " SS/SS	//5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       No= f! , (       d  f       g = f)
Nz
must be 2Dr~   foobar)r  r(  r   )r(  r   c)r   r   r   r/   re  r  s    rF   test_fail_list_of_str'TestSubplotMosaic.test_fail_list_of_str  s    ]]:\:u~. ;]]:\:w' ;]]:\: 123 ;]]:\:c
Z,=>? ;: ;:::::::s/   C.C?DD!.
C<?
D
D!
D/
subplot_kwr   r   c                     SS//nUR                  XCS9nU=(       d    0 nUR                  SS5      nUR                  " US   40 UD6nUR                  " US   40 UD6ng )Nr)   r#   )r  r  r   )re  r  r2   )	r  r  r  r  r   ri  rB   rk  rl  s	            rF   test_subplot_kw!TestSubplotMosaic.test_subplot_kw  sp     VH++A+E	%2
!!!Q'!!"T(9j9!!"T(9j9rH   multi_valueBCc           	          SnUR                  USS0SSS0USS00S9nUR                  SS5      n[        / S	QU5       H  u  pxUR                  XS
9  M     g )NzAB;CDr   r  r_  bluegreen)r  per_subplot_kwr#   )r  r  r  r  r   )re  r  r  r2   )	r  r  r  r  r   ri  rB   r   specs	            rF   test_per_subplot_kw%TestSubplotMosaic.test_per_subplot_kw  s|     ++#U+k6*k73 , 
	 !!!Q'@"EKE6 FrH   c                    [         R                  nU" S5      / SQ/:X  d   eU" S5      SS/SS//:X  d   eU" S5      SS/SS/SS	//:X  d   eU" S
5      / SQ/:X  d   eU" S5      SS/SS//:X  d   eU" S5      SS/SS/SS	//:X  d   eg )NABC)r[  r\  r^  zAB;CCr[  r\  r^  zAB;CC;DEr_  rr  z7
                         ABC
                         zR
                         AB
                         CC
                         zn
                         AB
                         CC
                         DE
                         )r   _normalize_grid_stringr  	normalizes     rF   test_string_parser$TestSubplotMosaic.test_string_parser  s    11	O#4444!sCj3*%====$#sc3Z#s(LLLL  "1!23 	3 3    $'*sCj!9: 	: :    $'*sCj3*!E	F 	F FrH   c                 ~   [         R                  nU" 0 0 S.5      0 0 S.:X  d   eU" S0 05      0 0 S.:X  d   e[        R                  " [        SS< S3S9   U" 0 0 S.5        S S S 5        [        R                  " [        SS< S3S9   U" 0 0 S.5        S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = f)Nr[  r\  zThe key r\  z appears multiple timesr~   )r  r\  )r\  r  )r   _norm_per_subplot_kwr   r   r   r  s     rF   test_per_subplot_kw_expander.TestSubplotMosaic.test_per_subplot_kw_expander  s    //	r+,br0BBBB*b)*BR.@@@@]]HSG3J"K
 2B/0
 ]]HSG3J"K
 BB/0
 
	
 

 
s   BB.
B+.
B<c                     [         R                  " [        S[        S5      < S3S9   [	        5       R                  SS0 0S9  S S S 5        g ! , (       d  f       g = f)Nz	The keys r\  z are inr~   r[  )r  )r   r   r   r  r   re  r  s    rF   test_extra_per_subplot_kw+TestSubplotMosaic.test_extra_per_subplot_kw  sK    ]]Ic#h\"A
 H##Cb	#B
 
 
s   A
Astr_pattern)zAAA
BBBz	
AAA
BBB
zABC
DEFc                     UR                  U5      nUR                  UR                  5       R                  S5       Vs/ s H  n[        U5      PM     sn5      ng s  snf )N
)re  stripsplitlist)r  r  r  r  ri  lns         rF   test_single_str_input'TestSubplotMosaic.test_single_str_input  sS    
 ++K8	** + 1 1 3 9 9$ ?@ ?"T"X ?@
	@s   Azx,matchzS(?m)we found that the label .A. specifies a non-rectangular or non-contiguous area.r^  r_  z4There are duplicate keys .* between the outer layout)z	AAA
c
BBB'All of the rows must be the same lengthrr  r  c                     [         R                  " 5       n[        R                  " [        US9   UR                  U5        S S S 5        g ! , (       d  f       g = f)Nr~   )r/   r0   r   r   r   re  )r  r   r   rA   s       rF   	test_failTestSubplotMosaic.test_fail  s7    , jjl]]:U3q! 433s   A


Ac                 t    UR                  [        5       [        5       //5        UR                  SS//5        g )Nr[  r\  )re  object)r  r  r  s      rF   test_hashable_keys$TestSubplotMosaic.test_hashable_keys  s0    &(FH!5 67c
|,rH   )abccabbcacbaacbbacc                     [         R                  " 5       nUR                  U5      n[        U5      [        U5      :X  d   e[        UR                  5      [        UR                  5       5      :X  d   eg r  r/   r0   re  r  r   rv  )r  r  rA   ax_dicts       rF   test_user_order!TestSubplotMosaic.test_user_order  sX     jjl$$[1K DM111CHH~gnn&6!7777rH   c                    SSS/SS///SS/SS	S
/S//////n[         R                  " 5       nUR                  U5      n[        U5      [        S5      :X  d   e[        UR                  5      [        UR                  5       5      :X  d   eg )Nr[  r\  r^  r_  rr  rs  rt  r  ru  I	ABCDEFGHIr  r  r!   rA   r  s       rF   test_nested_user_order(TestSubplotMosaic.test_nested_user_order  s    C::  #JC3%%! " # $	
 jjl$$V,G}[ 1111CHH~gnn&6!7777rH   c                     SSS/SS///SS/SS	S
/S//////n[         R                  " 5       nUR                  USSS9nUS   R                  SSS9  [	        S UR                  5        5       5      (       d   eg )Nr[  r\  r^  r_  rr  rs  rt  r  ru  r  T)rx  ry  r{  logit)xscaleyscalec              3   |   #    U  H2  nUR                  5       S :H  =(       a    UR                  5       S:H  v   M4     g7f)r{  r  N)
get_xscale
get_yscale)r$  rC   s     rF   r%  3TestSubplotMosaic.test_share_all.<locals>.<genexpr>1  s5      /-r ==?e+J70JJ-s   :<)r/   r0   re  r  rq   rv  r  s       rF   test_share_all TestSubplotMosaic.test_share_all&  s    C::  #JC3%%! " # $	
 jjl$$VD$Fg6 /$^^-/ / / 	/ /rH   r   )r  r   r!  r"  r	   r   markparametrizero  r{  r  r  r  r  r  r  r  tupler  r  r  r  r  r  r  r  r  r  r#  r   rH   rF   rY  rY     s   [[o.	"."	
! !. E E,  B / /JL [[DkD#;'.Cj3*%v.AhC!1%$i$#T*#ha!6*!fq!fq!	

!
 !.@ [[\Bw0G+NO: P : [[]T5;,?@7 A 7F&1C [[]E
 
 [[ sc3Z(@ sdc3Z#s$<=>F Gc
SE*+c3Z89	
*"+*"
 - - [[]GI8I88/rH   rY  c                  x   [         R                  " 5       n U R                  SSS5      nU R                  SSS5      n[         R                  " SSSU S9nUR	                  5       R                  5       nUR	                  5       R                  5       nUR	                  5       R                  5       nXE:X  d   eXF:X  d   eg)	z)Test that these all use the same gridspecr"   r#   rG  rY   )r"   r#   r#   r)   )rJ  rA   N)r/   r0   r2   subplot2gridrH  r  )rA   r   r   r  r  gs2gs3s          rF   test_reused_gridspecr  5  s    
**,C
//!Q
'C
//!Q
"C


661#
>C




,
,
.C




,
,
.C




,
,
.C::::rH   ztest_subfigure.pngr   )r   r  c                  2   [         R                  R                  S5        [        R                  " SS9n U R                  SS5      nUS   R                  SS5      nUR                   H2  nUR                  [         R                  R                  SS5      SSS	9nM4     US   R                  WUS
9  US   R                  S5        US   R                  S5        US   R                  SS5      nUR                   H2  nUR                  [         R                  R                  SS5      SSS	9nM4     US   R                  XBSS9  US   R                  S5        US   R                  S5        U R                  SSS9  U R                  [        S5       Vs/ s H*  n[        R                  " S/S/SR!                  U5      S9PM,     snSS9nUS   R#                  UR%                  5       S-
  5        US   R#                  UR%                  5       S-   5        g s  snf )N!N,rJ   r    r)   r#   r   r   vminvmaxr\   	Left Sider   r"   bottom)rC   locationz
Right SideFigure suptitlexx-largefontsizert   zLine{}rc   rN   )handlesrM   )r4   rh   seedr/   r0   r   rQ   r^   rg   ri   rj   r   r   r   r7   r  r  
set_zorder
get_zorder)rA   subrT   rC   rn   rD   legs          rF   test_subfigurer	  D  s    IINN8
**M
*C
..A
C
a&//!Q
Chh]]299??2r2!]D FOOB3OFOOK F!
a&//!Q
Chh]]299??2r2!]D FOOBO2FOOL!F!LL"ZL8 **#Ah(& "jj!qc9KL&(-5  7CFcnn&*+Fcnn&*+(s   1Hc                      [         R                  " SS9n U R                  SS5      n[        R                  R                  U R                  U R                  R                  5       5      R                  S5        g )NrJ   r    r)   r#   g       @)
r/   r0   r   r4   re   rf   r  ri  r
  rl  )rA   r  s     rF   test_subfigure_tightbboxr  b  sV    
**M
*C
..A
CJJcjj5578>>rH   c                     [         R                  " SS9n U R                  5       nUR                  5       U R                  5       :X  d   eUR	                  S5        UR                  5       S:X  d   eU R                  5       S:X  d   eg )Nr(   rm  rh  )r/   r0   r   get_dpiset_dpirA   sub_figs     rF   test_subfigure_dpir  l  sl    
**
CnnG??---OOC??###;;=CrH   ztest_subfigure_ss.pngdarwin)r   r  r   c                  R   [         R                  R                  S5        [        R                  " SS9n U R                  SS5      nU R                  US   SS9nUR                  SS5      nUR                   H2  nUR                  [         R                  R                  S	S	5      S
SS9nM4     UR                  WUS9  UR                  S5        U R                  US   5      nUR                  [         R                  " S5      5        UR!                  S5        U R                  SSS9  g )Nr  rJ   r    r)   r#   r   pinkr  r   r  r  r\   r  r  r
   r  r  r   )r4   rh   r  r/   r0   r  r  rQ   r^   rg   ri   rj   r   r2   r3   r5   rR   )rA   rB   r  rT   rC   rn   s         rF   test_subfigure_ssr  v  s    
 IINN8
**M
*C			!Q	B


BqEV

4C
,,q!
Chh]]299??2r2!]D LLLLL	A	BGGBIIbMLLLL"ZL8rH   ztest_subfigure_double.pngc                  0   [         R                  R                  S5        [        R                  " SSS9n U R                  S5        U R                  SSSS	9nUS
   R                  S5        US
   R                  S5        US   R                  S5        US   R                  S5        US
   R                  SSSS/S9nUS
   R                  S5        US
   R                  S5        US
   R                  SSSS9nU Hd  nSnUR                  [         R                  R                  SS5      SSS9nUR                  SUS9  UR                  SUS9  UR                  SUS9  Mf     US
   R                  WUS9  US   R                  S5        US   R                  S5        US   R                  S SSS!9n[        U5       H  u  pUR                  S"U 35        M     US   R!                  S#5        US   R#                  S$5        US   R                  SS5      n	g )%Nr  rJ   )r.      )r!   r   rA   r)   r#   gQ?)r  r   coralz
subfigs[0]z
subfigs[1]gffffff?r  zsubfigsnest[0]r   Try     r   g      g      @r  zx-labelr   zy-labelTitler\   zsubfigsnest[1]r   r"   r  r   r   r   )r4   rh   r  r/   r0   r   r   r   rQ   rg   ri   r8   r6   rR   rj   r]   r   r   )
rA   r+  subfigsnestaxsnest0rC   r  rn   axsnest1rk   axsRights
             rF   test_subfigure_doubler!    s    IINN8
**M7
;CLLnnQ$n/GAJW%AJ%AJW%AJ%!*''1QH'EKN,-N  %1~&&q!D&9H]]299??2r2C]H
i(3
i(3
Wx0  NB8,N,-N  %1~&&q!D&9HH%
rdm$ &N[)N[)qz""1a(HrH   c            	      X   [         R                  " SS9n U R                  SS5      nU R                  US   5      U R                  USS2S4   5      U R                  USSS24   5      U R                  USS 2SS 24   5      /nSnS	n[        R
                  R                  US   R                  R                  S
US-  S-  /5        [        R
                  R                  US   R                  R                  US-  U/5        [        R
                  R                  US   R                  R                  US-  US-  /5        [        R
                  R                  US   R                  R                  US-  S-  U/5        [        R
                  R                  US   R                  R                  US-  S/5        [        R
                  R                  US   R                  R                  X4S-  /5        [        S5       H  nX%   R                  5         M     U R                  5         g )NTrZ   r"   r  r   r#   r)       r   rY   )r/   r0   r  r  r4   re   rf   rA  minmaxr7   r2   ra   )rA   rB   sub_figsrA  rB  rD   s         rF   test_subfigure_spanningr(    s   
**
-C			!Q	B"T(#"QqS!V*%"Q!V*%"QRV*%	H 	AAJJx{//33b!a%']CJJx{//33a!eQZ@JJx{//33a!eQU^DJJx{//33a!eAgq\BJJx{//33a!eQZ@JJx{//33aQZ@ 1X!  rH   c                  0   [         R                  " SSS9n U R                  SSSSS/S9u  pUR                  SS	S
9nUR	                  USS S24   5      nUR                  SS/SS/S9  UR	                  USSS24   US9nUR                  SS/SS/S9  UR	                  USSS	24   US9nSU l        U R                  5         UR                  5       nSU l        U R                  5         UR                  5       n[        R                  R                  Xx5        g )NT)r.   r"   )r[   r   r)   r#   r   rK  )r  rK      )r  r  r   g!<LgkX.8@i  i  )r   r   r"   r  g YI_gRϫW@x   i,  )r/   r0   r   r  r2   r?  rm  ra   
get_xticksr4   re   rf   )	rA   	subfig_bl	subfig_brrB   r   r   r  ticks120ticks300s	            rF   test_subfigure_ticksr1    s3    **g
>C ^^Aq:;Q , AY 
		ar		2B


1bqb5	
*CKK%'9:tTlKK


1ac6
3

7CKK%'89dD\KJ


1ad7C

8CCG ~~HCG ~~HJJx2rH   ztest_subfigure_scatter_size.png)r   rO  c            	         [         R                  " 5       n U R                  SS5      nU R                  US   5      nUR	                  / SQ/ SQSSS9  UR	                  / SQ/ SQ/ SQSS9  U R                  US	   5      nUR                  SS5      nX$S	   4 H3  nUR	                  / SQ/ SQSSS
S9  UR	                  / SQ/ SQ/ SQSSS9  M5     g )Nr)   r#   r  r   s)r3  marker)r"   rY   rt   )r  r   r  r   r   )r3  r4  r   r   )r/   r0   r  r2   r?  r  rQ   )rA   rB   r   r-  rT   rC   s         rF   test_subfigure_scatter_sizer5    s     **,C			!Q	B
//"Q%
 CKK	93K7KK	9SKARU#D
--1
CFm


9i2c
E


9i<3
O rH   c                      [         R                  " SS9n U R                  5       nUR                  S5      nUR	                  SS5      nUR                  U5        [        R                  " 5       nU R                  USS9  g )NrJ   r    r   r)   r  r  )	r/   r0   r   r2   r  	bar_labelr  r  r  )rA   r  rC   r   buffers        rF   test_subfigure_pdfr9    sa    
**M
*CnnG			S	!B
q!ALLOZZ\FKKuK%rH   c                     [         R                  " 5       R                  SSSSS9n SnSn[        R                  R                  U S   R                  R                  S	US
-  /5        [        R                  R                  U S   R                  R                  US-  U/5        [        R                  R                  U S   R                  R                  US-  US
-  /5        [        R                  R                  U S   R                  R                  US-  U/5        [        R                  R                  U S   R                  R                  US-  US
-  /5        [        R                  R                  U S   R                  R                  X/5        [        R                  R                  U S   R                  R                  SS/5        [        R                  R                  U S   R                  R                  US-  US-  /5        [        R                  R                  U S   R                  R                  US-  S/5        [        R                  R                  U S   R                  R                  US-  US-  /5        [        R                  R                  U S   R                  R                  US-  S/5        [        R                  R                  U S   R                  R                  XS-  /5        g )Nr#   r"   r   gUUUUUU?)hspacer  r#  r$  r  r   r  r  r   gffffff?g?r*   r  rc  r   r   rd  r>  )	r/   r0   r   r4   re   rf   rA  r%  r&  )r'  rA  rB  s      rF   test_subfigures_wspace_hspacer<    sC   zz|&&q!C&EHAAJJx~2266QWFJJx~2266S!EJJx~2266T1s78KLJJx~2266T1FJJx~2266S!c'8JKJJx~2266?JJx~2266A?JJx~2266S!c'8JKJJx~2266T1FJJx~2266T1s78KLJJx~2266S!EJJx~2266GErH   c                      [         R                  " 5       n U R                  SS5      nUS   R                  5         US   R	                  5         [        U R                  5      S:X  d   eg )Nr#   rd  r"   )r/   r0   r   rQ   r   r   r+  )rA   sfss     rF   test_subfigure_remover?  $  sT    
**,C
..A
CIIs{{q   rH   c                  D   [         R                  " 5       n U R                  SSS5      nU R                  SSS5      nUc   eX!Ld   e[         R                  " 5         [         R                  " 5       n U R                  SSSSS9nU R                  SSSSS9nUc   eX!Ld   e[         R                  " 5         [         R                  " 5       n U R                  SSSSS9nU R                  SSS5      nUc   eUR                  S:X  d   eX!Ld   e[         R                  " 5         g )Nr)   r   r   rectilinear)r/   r0   r2   rv   r  rA   rC   r   s      rF   test_add_subplot_kwargsrC  ,  s   
**,C	Aq	!B
//!Q
"C>>==IIK
**,C	AqW	5B
//!Qg/
6C>>==IIK
**,C	AqW	5B
//!Q
"C>>88}$$$==IIKrH   c                  ,   [         R                  " 5       n U R                  S5      nU R                  S5      nUc   eX!Ld   e[         R                  " 5         [         R                  " 5       n U R                  SSS9nU R                  SSS9nUc   eX!Ld   e[         R                  " 5         [         R                  " 5       n U R                  SSS9nU R                  S5      nUc   eUR                  S:X  d   eX!Ld   e[         R                  " 5         g )Nr   r   r   rA  )r/   r0   r   rv   r  rB  s      rF   test_add_axes_kwargsrE  E  s    
**,C	l	#B
,,|
$C>>==IIK
**,C	lw	7B
,,|,
8C>>==IIK
**,C	lw	7B
,,|
$C>>88}$$$==IIKrH   
emscriptenz#emscripten does not support threads)reasonc                   ^^ [         R                  " SS5        [        R                  " 5       u  mnUR                  R
                  mUU4S jn[        SU5      R                  5         TR                  5       S/:X  d   eUU4S jn[        SU5      R                  5         [        R                  R                  TR                  S5      SS	/5        g )
NrL  cannot show the figurec                  `   > [        ST R                  /T" S5      QSP76 R                  5         g )Nbutton_press_eventrr  rM  r)   )r   ri  _processrA   transs   rF   single_press!test_ginput.<locals>.single_presse  s)    'IeHoIqIRRTrH   rr  rL  c                    > [        ST R                  /T" S5      QSP76 R                  5         [        ST R                  S5      R                  5         [        ST R                  /T" S5      QSP76 R                  5         [        ST R                  /T" S5      QSP76 R                  5         [        ST R                  /T" S5      QS	P76 R                  5         g )
NrK  rL  r)   key_press_event	backspacer  r   r   r  r  r#   )r   ri  rM  r   rN  s   rF   multi_presses"test_ginput.<locals>.multi_pressesk  s    'IeHoIqIRRT"CJJ<EEG'IeHoIqIRRT'IeHoIqIRRT'GeFmGQGPPRrH   r"   rU  rV  )rS  rU  r/   rQ   	transDatar  r   startginputr4   re   rf   )recwarnrC   rP  rW  rA   rO  s       @@rF   test_ginputr]  ^  s     H&>?llnGCLL""EU 
"l!!#::<H:%%%S 
"m""$JJszz!}x.BCrH   c           
         [         R                  " SS5        [        R                  " 5       nUR	                  SS9b   e[        S[        SUR                  S5      R                  5      R                  5         UR	                  5       SL d   e[        S[        SUR                  S	S	S
5      R                  5      R                  5         UR	                  5       SL d   eg )NrL  rI  rr  )timeoutrS  r   TrK  r   r)   F)rS  rU  r/   r0   waitforbuttonpressr   r   ri  rM  rZ  r   )r\  rA   s     rF   test_waitforbuttonpressra  v  s     H&>?
**,C!!"!-555	"h(#**c:CCDJJL!!#t+++	"j-szz1aCLLMSSU!!#u,,,rH   c                      [        SS9n U R                  SSSS9nU R                  5       S:X  d   eUR                  5       S:X  d   eg )Nzwhole Figurer  r)   z
sub figure)r   r   r   r  s     rF   test_kwargs_passrc    sK    
~
&CnnQn6G==?n,,,,...rH   c                 :   UR                  SSSS9  UR                  SSSS9  UR                  SSSS9  [        R                  " SSSSS	.5         U R                  S5        U R                  S5        U R                  S5        S S S 5        g ! , (       d  f       g = f)
Nr   r   r  )r   r   r   r  lightr  )zfigure.labelweightzfigure.labelsizezfigure.titleweightzfigure.titlesize)r   r   r   r   r  )r  r  s     rF   test_rcparamsrf    s    hvB7hvB7WW26	v-//6-/1 
2 	8$8$'"
2 
2 
2s   4B
Bc                  X   [         R                  " 5       u  pUR                  SS/SS/5        UR                  S5        [        R
                  " U 5      nUR                  S   ULd   eUR                  S   R                  5       S:X  d   eUR                  S   R                  S5        UR                  5       S:X  d   eUR                  SS5        U R                  5         UR                  5         UR                  5       S	:X  d   eUR                  S   R                  5       S
:X  d   eg )Nr   r)   r#   r"   r{  linearrr        Y@)rr  ri  r   )r/   rQ   r3   r|  copydeepcopyr   r  r	  ra   get_xlim)r   rC   r   s      rF   test_deepcopyrm    s    ||~HDGGQFQFMM%==D 99Q<r!!!99Q<""$---IIaLH%==?e### KKc!!;;=K'''99Q<  "f,,,rH   c                     [        SS9n U R                  R                  S5        U R                  S:X  d   e[        R
                  " [        R                  " U 5      5      nUR                  S:X  d   e[        [        U R                  R                  UR                  R                  5       VVs/ s H  u  p#US-  U:H  PM     snn5      (       d   eg s  snnf )Nr   r  rK  i&  )r   ri  r  rm  pickleloadsdumpsrq   r  rA  r&  )rA   r   origrestores       rF   %test_unpickle_with_device_pixel_ratiort    s    
R.CJJ&&q)77d??<<S)*D88r>>25chhllDIIMM2RS2RW	2RS   Ss   /C
c                      SS0n [        U 5      n[        R                  " SSSS/U S9  X:X  d   e[        R                  " SSS/U S9  g )NrL   rr  r)   r#   )rK   gridspec_kwAB)dictr/   rQ   re  )rB   gs_origs     rF   test_gridspec_no_mutate_inputrz    sJ    
"B2hGLLAQF;==t1a&bArH   )r  r  r   r  r   svgzc                 \    [        5       R                  [        R                  " 5       U 0 S9  g )Nr  metadata)r   r  r  r  r  s    rF   test_savefig_metadatar    s    
HRZZ\#;rH   )jpegr  r  tiffwebprawrgbac                     [         R                  " [        SS9   [        5       R	                  [
        R                  " 5       U 0 S9  S S S 5        g ! , (       d  f       g = f)Nzmetadata not supportedr~   r}  )r   r   r   r   r  r  r  r  s    rF   test_savefig_metadata_errorr    s;    	z)A	BcB? 
C	B	Bs   -A
Ac                  @   SSSSS.n [        / U R                  5       Q5      n[        R                  " [        R
                  R                  " S	0 U D6S9n[        R                  " [        SS9   UR                  5       U:X  d   e S S S 5        g ! , (       d  f       g = f)
Nr   g{Gz?gQ?g{Gz?)r  h_padr  r;  r    zwill be deprecatedr~   r   )r  rv  r/   r0   r   layout_enginer   r   r   PendingDeprecationWarningget_constrained_layout_pads)paramsexpectedrA   s      rF    test_get_constrained_layout_padsr    s|    dddKF'v}}'(H
**C--EEOO
PC	/7K	L..0H<<< 
M	L	Ls   .B
Bc                  j   [        5       n [        R                  " 5       nU R                  USS9  UR	                  S5        SUR                  5       ;   d   eU R                  S5        [        R                  " 5       nU R                  USS9  UR	                  S5        SUR                  5       ;  d   eg )Nr   r  r   z<g F)r   r  StringIOr  seekr  r  )rA   r  s     rF   test_not_visible_figurer    s    
(C
++-CKKEK"HHQKCHHJOOE
++-CKKEK"HHQK
"""rH   c                  `   [         R                  " 5       u  p[         R                  " S5      u  nu  p4UR                  SS/SS//5      nU R                  U5        [        R
                  " [        SS9   UR                  U5        S S S 5        [        R
                  " [        SS9   UR                  XQS9  S S S 5        [        R
                  " [        SS9   UR                  XSS9  S S S 5        [        R
                  " [        SS9   UR                  XTS9  S S S 5        [         R                  " 5       n[         R                  " 5       nUR                  5       nUR                  5       n	UR                  5       n
UR                  5       nUR                  5       nU
R                  5       nUR                  SS/SS//5      nUR                  SS/SS//5      nUR                  SS/SS//5      nUR                  U5        UR                  U5        UR                  U5        [        R
                  " [        SS9   UR                  U5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN{= f! , (       d  f       g = f)	Nr#   r)   r"   rY   zdifferent Figurer~   r\   )cax)	r/   rQ   ra  rj   r   r   r  r0   r   )r   r   r   ax2_1ax2_2rb  fig3fig4	subfig3_1	subfig3_2	subfig4_1ax3_1ax3_2ax4_1im3_1im3_2im4_1s                    rF   test_warn_colorbar_mismatchr    s   ID<<?D.5	aVaV$	%BMM"	k);	<b 
= 
k);	<b! 
=	k);	<b# 
=	k);	<b$ 
= ::<D::<D!I!I!I E E ELL1a&1a&)*ELL1a&1a&)*ELL1a&1a&)*EMM%uu	k);	<5! 
=	<5 
=	< 
=	<	<	<	<	<& 
=	<s<   4I'I)I;	J<J
I&)
I8;
J

J
J-c                  f   Sn U  Vs0 s H  o[         R                  SU-      _M     nn[         R                  " S5      nUR                  " S0 UR	                  5        VVs0 s H
  u  pEXES-   _M     snnD6  UR                  5         UR                  R                  5       U:X  d   eg s  snf s  snnf )N)rL   r-   r  r+   r  r;  zfigure.subplot.r)   r   r   )r/   r  r0   r  rf  r  subplotparsto_dict)keyskey	rc_paramsrA   r   vs         rF   test_clf_subplotparsr  
  s    ADGKLtcll#4s#:;;tIL
**Q-CD1BC1B1f91BCDGGI??""$	111 M Ds    B( B-c                      [         R                  " 5       n U R                  SS9  U R                  SS9  U R                  R                  S:X  d   eU R                  R
                  S:X  d   eg )Nr   )rL   r)   )r-   )r/   r0   r  r  rL   r-   r   s    rF   test_suplots_adjust_incrementalr    s_    
**,CQa ??1$$$??  A%%%rH   c                  Z   [         R                  " 5       n U R                  5       nUR                  5       nXU4 HA  n[        R                  " [
        R                  5         UR                  U 5        S S S 5        MC     [        R                  " [        SS9   UR                  U5        S S S 5        [        R                  " [        SS9   UR                  [         R                  " 5       5        S S S 5        g ! , (       d  f       M  = f! , (       d  f       Ng= f! , (       d  f       g = f)Nzcannot be changedr~   )
r/   r0   r   r   r   r   r   
set_figurer   r   )rA   sfig1sfig2fs       rF   test_set_figurer    s    
**,CNNEE\\#::;LL <;  
z)<	= 
> 
z)<	=& 
>	= <; 
>	= 
>	=s$   !C9D%D9
D	
D
D*c                      [         R                  " 5       n U R                  SS5      n[        UR	                  5       U R
                  5       H  u  p#X#L a  M   e   g )NrY   r"   )r/   r0   r   r  r:  r+  )rA   sf_arrr(  r   s       rF   test_subfigure_row_orderr  ,  sC    
**,C^^Aq!FFLLNCKK0vv 1rH   c                  ~   [         R                  " 5       n U R                  5         U R                  (       a   eU R	                  5       nU R                  (       d   eU R                  5         U R                  (       a   eUR                  (       a   eUR	                  5       nU R                  (       d   eUR                  (       d   eU R                  5         U R                  (       a   eUR                  (       a   eUR                  (       a   eSUl        UR                  (       d   eU R                  (       d   eg )NT)r/   r0   ra   r@  r   )rA   r  r  s      rF    test_subfigure_stale_propagationr  4  s    
**,C yy=NNE999 yy={{?E999;;; yy={{?{{?EK;;;999rH   zfigsize, figsize_inches))rJ  rY   r  ))rJ  rY   inr  ))gRQ@gRQ@cmr  ))iX  rf  pxr  c                 l    [         R                  " U SS9n[        UR                  5       5      U:X  d   eg )Nr(   r  )r/   r0   r  get_size_inches)r   figsize_inchesrA   s      rF   test_figsizer  O  s0     **W#
.C$$&'>999rH   c                      [         R                  S   u  p[        R                  " SS9nUR	                  5       u  p4X44U S4:X  d   e[        R                  " SS9nUR	                  5       u  p4X44SU4:X  d   eg )Nzfigure.figsize)NrY   r   rY   )rJ  NrJ  )r   r  r/   r0   r  )	default_w	default_hrA   rA  rB  s        rF   test_figsize_partial_noner  Z  sx    <<(89I
**Y
'C DA6i^###
**Y
'C DA6a^###rH   c                      [         R                  " [        SS9   [        R                  " SS9  S S S 5        g ! , (       d  f       g = f)Nz!figsize=\(None, None\) is invalidr~   )NNr   r   r   r   r/   r0   r   rH   rF   test_figsize_both_noner  f  s3    	zA
C

<(
C 
C 
C	   8
Ac                      [         R                  " [        SS9   [        R                  " SS9  S S S 5        g ! , (       d  f       g = f)NzInvalid unit 'um'r~   )rJ  rY   umr   r  r   rH   rF   test_figsize_invalid_unitr  l  s)    	z)<	=

<( 
>	=	=r  )rj  r   r  ro  platformsys	threadingr   typesr   rS  numpyr4   r   PILr   
matplotlibr   r   matplotlib.testing.decoratorsr   r	   matplotlib.axesr
   matplotlib.backend_basesr   r   matplotlib.figurer   r   matplotlib.layout_enginer   r   r   matplotlib.tickerr   r   r   matplotlib.pyplotpyplotr/   matplotlib.datesdatesrN  machinerG   rU   ro   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r0  r7  r<  rC  r  r  r^  rc  r   contextrn  rt  infrp  rv  r  r  r  r  paramr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r5  r:  rE  rM  rR  rW  rY  r  r	  r  r  r  r!  r(  r1  r5  r9  r<  r?  rC  rE  skipifr]  ra  rc  rf  rm  rt  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   rH   rF   <module>r     s     	   
  !       O   9 0? ? P O  ! ()uenG#++-9atE$E$N 28:(*:*:*<*HQeUU, 2F",-$ 4& %&g#++-9auFF &'w7 88
')X ()92 :207
., %& $U^.9 O'):)::$, "<=$6 >$6N( 9, , KVVQK+ 
+
+@4>*0N/ 
LLv{{2259:;
LL!4!4W!= >?% 	&-9 &-.(  /(*<
(1-h L L M<#@A B / 08  BC= D=&2'$ '78N 9Nb+ 7
 
&$ -.g07.4!6"$"	$"  <=* >*r/ r/j	 '(!,f 57,7,8  *+7!,f 5"||x7eQ@9@9* ./w!,f 57$)7$)N!: 73 36 45W#%P%P&F2!22 CLLL0@  BDBD, CLLL0@  B-B-/ 
# 
#-2B  JK< L<  UV@ W@
=#!"H2&' 6 2 5 ::
	$))rH   