
    hu              
          S SK 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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/\RV                  " 5       S:X  a  S OSS9S 5       r,\" SS/\RV                  " 5       S:X  a  S OSSS9S 5       r-S r.S r/S r0S r1S r2S r3\" S /\RV                  " 5       S:X  a  S OS!S"9S# 5       r4\" S$/5      S% 5       r5S& r6S' r7S( r8\" S)/5      S* 5       r9S+ r:S, r;S- r<\" S./SS/S/S0S1.S29S3 5       r=S4 r>S5 r?S6 r@S7 rAS8 rB\R                  R                  S9/ S:Q5      S; 5       rES< rF\R                  R                  S=5      S> 5       rI\R                  R                  S?S@\R                  4SA\R                  S@4/5      SB 5       rLSC rMSD rNSE rOSF rPSG rQ\R                  R                  SH\R                  " SI\R                  R                  SI5      /SJ9\R                  " SK\R                  R                  SK5      /SJ9/5      SL 5       rTSM rUSN rV\R                  " SOSP05      \" S/SQ9SR 5       5       rXSS rYST rZSU r[\" S/SQ9SV 5       r\\R                  R                  SWSXSY/5      SZ 5       r]S[ r^\" SS\/SQ9S] 5       r_\R                  R                  S^/ S_Q5      S` 5       r`Sa raSb rbSc rc\R                  R                  SdSeSf/5      Sg 5       rdSh re\R                  R                  S5      Si 5       rfSj rg\" Sk/SSlSmSn.SPSo9Sp 5       rh\" / SqQSQ9Sr 5       ri " Ss St5      rjSu rk\" Sv/SSwSm0Sx9Sy 5       rlSz rmS{ rn\" S|/SSwSm0S}S~9S 5       ro\" S/SSwSm0Sx9S 5       rpS rq\R                  R                  S5      S 5       rr\" S/SSPS9S 5       rsS rtS ruS rvS rwS rxS ryS rzS r{\" S/SQ9S 5       r|S r}S r~S r\R                  R                  S^/ SQ5      S 5       r\R                  R                  S^/ SQ5      S 5       rS rS rS 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x86_64{Gz?)
extensions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        N/var/www/html/env/lib/python3.13/site-packages/matplotlib/tests/test_figure.pytest_align_labelsrE      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.pnggI+?mpl20)r   stylec                  ~   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-   subplotsr1   r2   r3   	set_titler6   r7   r8   r9   r:   r;   align_titles)r   r?   axsrA   rC   s        rD   test_align_titlesrU   E   s   
 +<<1V1a&IV
		!S$'(
]/
_(3
^1V
		!S#&'
X
i 
##E*
&&(Db! ) 	% +rF   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,   rA   )r-   rQ   	enumerateflatr6   r1   r2   r3   align_ylabelsalign_xlabelsdraw_without_renderingzerosr7   labelget_positionr<   testingassert_allclose
pcolormeshrandomrandncolorbar)r?   rT   nnrA   xnynpcs          rD   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1rF   c                     [         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[        R                  " [        5         [         R                  " [        5       5        S S S 5        g ! , (       d  f       g = f)Nalltodayr    tomorrowr   r'   )r   r'   r    rY      ) rr   ru   rs   ru   r,   rt   ru   )
r-   closer.   get_fignumsget_figlabelsgcfpytestraises
ValueErrorr   )	fig_todays    rD   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	!!!	z	"

68 
#	"	"s   G..
G<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   r.   rz   warnsmplMatplotlibDeprecationWarningnumberr?   s    rD   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   rz   r{   AttributeErrorr   r   r   r   r-   fignum_existsr   s    rD   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-   r.   r   rv    rF   rD   test_fignum_existsr      s    JJuJJqMJJwJJLU####QW%%%%QIIeIIaL  ''''  #####rF   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-   r.   suptitletextsget_texttextrQ   )text1text2fig0tfig1fig2ax2s          rD   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figure_todaygQ?)r   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-   r.   r0   rR   	get_labelr1   r2   r3   rv   r?   rA   s     rD   test_figurer      s     **W
C		BLL!GGBIIaLJJzHHaVaVS!JJwIIjrF   figure_legendc                  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   r1   legendr?   rT   s     rD   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JJLrF   c                     [         R                  " 5       n U R                  / SQ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-   r.   add_axesgcar0   axessca)r?   ax0ax1s      rD   test_gcar      s    
**,C ,,|
$C779 //#
C779 LL88z!!!779 GGCL88z!!! OOC88z!!!779rF   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-   r.   r0   r
   rz   r{   r|   	TypeErrorr   s    rD   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-   r.   rz   r{   r|   r0   r   rQ   )r?   _rA   s      rD   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figure_suptitlec                  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   )r?   r   s     rD   test_suptitler   E  s1    \\^FCLLL$LLbL1rF   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)r?   rA   fpstxts       rD   test_suptitle_fontpropertiesr   L  sy    llnGC



)
)wv
)
FC
,,(,
=C!7!7!9999>>s~~////rF   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-   r.   
subfiguresset_facecolorrQ   r   get_facecolor)r?   sf1sf2s      rD   test_suptitle_subfiguresr   T  s    
**V
$C~~a#HCgLLNLLNLL./ "6666"6666rF   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     rD   %test_get_suptitle_supxlabel_supylabelr   b  s    llnGC###"$$$"$$$LL+++MM++---MM++---rF   alpha_backgroundr   r'   皙?none)	facecolor	edgecolor)r   savefig_kwargc            	          [         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-   r.   r   patch	set_alphapatchesappendr   CirclePolygonr   s    rD   
test_alphar  o  sk     **aV
$Ck"IIKKs{{00	R3% 1 9 :rF   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'   )rz   r   RuntimeWarningr5   r   rcParamsr-   r.   )rB   s    rD   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       rD   r  7test_iterability_axes_argument.<locals>.MyAxes.__init__  s    MM$000rF   r   )__name__
__module____qualname____firstlineno__r  __static_attributes__r   rF   rD   MyAxesr    s    *. 	1 	1rF   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     rD   __getitem__;test_iterability_axes_argument.<locals>.MyClass.__getitem__  s    s{ !344 rF   c                    > TSU 04$ )Nr  r   )r  r  s    rD   _as_mpl_axes<test_iterability_axes_argument.<locals>.MyClass._as_mpl_axes  s    It,,,rF   r   N)r  r  r  r  r#  r&  r  )r  s   rD   MyClassr    s    	5	- 	-rF   r(  r'   r   )r
   r-   r.   r0   rv   )r(  r?   r  s     @rD   test_iterability_axes_argumentr)    sG    1 1- - **,COOAq!	O2IIcNrF   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-   r.   set_figwidthget_figwidthset_figheightget_figheightset_size_inchesr   s    rD   test_set_fig_sizer0    s    
**,C Q""" a!### 1"""!### """!###rF   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   removeravelr   lenr?   rT   rA   s      rD   test_axes_remover7    su    ||Aq!HCKiik#2XX~~ v;chh&&&sxx=ArF   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-   	figaspectr2   float64rb   )whs     rD   test_figaspectr>    s    ==AA67DA5A::==DA5A::==&)*DA5C<<==&)*DA5A::rF   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+   )r@  rA  r   FrA  )r@  rB  TrB  )mdatesdatestr2numr-   rQ   r1   
yaxis_date
xaxis_dater7   set_minor_locatorr   warningscatch_warningsfilterwarningsset_minor_formatterr   autofmt_xdater   r:   intget_rotation)
r?  datetimeangleminorsr   r   r?   rA   rc   s
             rD   test_autofmt_xdaterY    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   rE  )r!   r    rt   rA  r?  r'   g      >@)r-   rQ   imshowrj   rR  ra   r:   rT  )r?   rA   imrc   s       rD   'test_autofmt_xdate_colorbar_constrainedr^    sz    
 ll-0GC	Iy)	*BLL W-a0E4'''rF   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   i  2      )r-   r.   ra   canvasrendererheightwidthdpir   s    rD   test_change_dpirh    s    
**V
$C ::%%,,,::$$+++CG ::%%,,,::$$+++rF   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   )rz   r{   r|   r-   r.   r/  )rf  re  r?   s      rD   test_invalid_figure_sizerj    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Q/ 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QS
5        S S S 5        g ! , (       d  f       GNQ= 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-   r.   rz   r{   r   r   r|   r2   nanrQ   delaxes)r?   r   rA   s      rD   test_invalid_figure_add_axesrp    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.4F?8G,G!

F
F+.
F<?
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   r@  r[  r'   )
r-   rQ   r^   r1   
set_yscale
set_xscaler5  r7   get_ticklabelsr<   r6  s      rD   test_subplots_shareax_loglabelsry  5  s2   ||AqdEJHChh
l+  MM%MM%!Q$iC//f/=>>>>  !Q$i3rxx..V.<====  !Q$iC//f/=>>>>  !Q$i3rxx..V.<==== rF   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-   r.   rz   r{   r   savefig)r?   msgs     rD   test_savefigr}  J  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-   r.   rz   r{   r   r{  ioBytesIO)r?   r  s     rD   test_savefig_warnsr  Q  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-   r.   rz   r{   ModuleNotFoundErrorr{  r|   r   s    rD   test_savefig_backendr  X  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   r1   r  r  r{  r   openloadrc  _set_device_pixel_ratio)r  r?   rA   bufratio1ratio2s         rD   test_savefig_pixel_ratior  b  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-   r.   r{  r  r  get_layout_engine	_compressr   s    rD   #test_savefig_preserve_layout_enginer  y  s>    
**L
)CKK

'K2  ",,,,rF   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   r2   rh   ri   rj   r{  r  r  r   
transformsBboxrA   rd   bounds)r?   rA   rn   cbars       rD   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 8rF   zsavefig.transparentTr   c                    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$   )rl  rH  333333?r   r2  )xticksyticksF)add_gridspecadd_subfigurer0   
inset_axessetspinesset_visible)fig_testfig_refgs1f1f2ax12r   iax1iax2r   ax3rA   s               rD   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$
		!  ' 0rF   c                  P    [         R                  " SSS9n [        U 5      S:X  d   eg )N)r,   r   r,   )r   rg  z!<Figure size 100x200 with 0 Axes>)r-   r.   reprr   s    rD   test_figure_reprr    s%    
**X2
.C9;;;;rF   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    rD   test_valid_layoutsr    s    

C##%%%%))++++

 C!!!!))++++

&C##%%%%%%''''rF   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   rz   r   UserWarningsubplots_adjust
isinstancer  r   r   r   r{   r|   set_layout_enginerg   r2   rh   ri   rj   RuntimeErrorr   )r?   rA   wstrn   s       rD   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  r?   
autolayoutr   s        rD   &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   rz   r   r  r  )r   r?   rA   s      rD   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    rD   test_repeated_tightlayoutr    s-    
(CrF   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&   rH  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  )	rg  rQ   r-   Line2DCircledpi_scale_trans
add_artistr3  transFigure)	r  r  r  r  r1r2r3r!  r   s	            rD   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 rF   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       rD   test_fspathr   "  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 endgR"@r!   r  g|?5^?FgET@T)bbox_extra_artists)r-   rQ   set_xlimr   rc  get_rendererabsget_tightbboxx1rg  x0set_in_layout)r?   rA   r   rd  x1Nom0x1Noms         rD   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! "$%& & &rF   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rr  r   i  )r-   rQ   r3  r1   r   r  r7   get_major_formatterrI  AutoDateFormatterset_major_formatterr   r   s     rD   test_axes_removalr  E  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%' ' ' 'rF   c                      [         R                  " SSS9u  pUS   R                  5         U R                  R	                  5         g )Nr!   Tr  r   )r-   rQ   r3  rc  drawr   s     rD   test_removed_axisr  W  s/    ||Ad+HCFMMOJJOOrF   
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   .0rA   r?   s     rD   	<genexpr>$test_figure_clear.<locals>.<genexpr>       0"SXX~   c              3   @   >#    U  H  oTR                   ;   v   M     g 7fr  subfigsr  sfigr?   s     rD   r  r          7wts{{"wr"  c              3   @   >#    U  H  oTR                   ;   v   M     g 7fr  r  r  s     rD   r  r     r!  r"  c              3   @   >#    U  H  oTR                   ;   v   M     g 7fr  r$  r&  s     rD   r  r     r(  r"  )r-   r.   r   r   r0   getattrr5   r  r  r%  r3  rq   )r  rA   rB   r   r@   subfigsubaxesmainaxesr%  r'  r?   s             @rD   test_figure_clearr/  ^  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    rD   test_clf_not_redefinedr4    s'    **,ENN*** -rF   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   scatterrc  r  staler   bboxr  rf  y0re  pick)r?   rA   mouse_events      rD   test_picking_does_not_staler?    s    llnGCJJsQC$J-JJOOyy=!BGGJJ1B$B$&GGJJ!1C$C)+d<K HH[yy=yrF   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   rE  )r    rE  )rY   rt   )rE  r    )
r-   r.   r0   get_subplotspecrowspanr5   colspanrz   r{   
IndexError)r?   r   r   r  ax4s        rD   test_add_subplot_twotuplerG    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   )rH   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-   r.   r  r0   set_box_aspect)r?   r@   r   r   s       rD   test_tightbbox_box_aspectrL    se    
 **,C			!Q	B
//"T(
#C
//"T(t/
4Cry!rF   )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   r1   r5   )r  r  ax_refax_tests       rD    test_animated_with_canvas_changerQ    sB    F
KKa!GLLqDL)rF   c                      \ rS rSr\" S/S9\R                  R                  S/ SQ/ SQ// SQ/ SQ/S	S
/5      S 5       5       r\" S/S9S 5       r	\" S/S9S 5       r
\" S/S9S 5       rS rS r\" S/S9\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\" S/S9\R                  R                  S0 SS0S/5      S 5       5       r\" S/S9\R                  R                  S S!\" S!5      /5      S" 5       5       rS# rS$ rS% r\" S/S9\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///S04/5      S1 5       r\" S/S9S2 5       r\R                  R                  S&/ S3Q5      S4 5       rS5 rS6 rS7rg)8TestSubplotMosaici  r   r  r   ArU  BCDrV  r'   r'   r!   r    rY   r!   )rT  rW  )rZ  r[  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   sortedr2   uniquer5  r  r0   )r  r  r  r   	grid_axesr   rA   labelsr@   axAaxBaxCaxDs                rD   
test_basicTestSubplotMosaic.test_basic  s    ++A.	__&EALLO ' 		!%6{c)n,,,!!!Q'!!"RaR!V*-fQi !!"QT(+fQi !!"T(+fQi !!"T(+fQi rF   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 )NrU  rV  rX  rY  EFGHrJ   r'   r!   r  r  )	r  r_  valuesrR   r   r  subgridspecr]   r0   )r  r  r  r   r   rc  rA   r@   gs_leftjr   r   rc   gs_rights                 rD   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 ) !rF   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   rU  rV  rX  rY  rm  r!   r'   r]  r  r  r^  )r  r_  r`  rR   r  rq  r0   )r  r  r  r   r   rc  r   rA   r@   gs_nre  rf  rg  rh  axFs                  rD   test_nestedTestSubplotMosaic.test_nested$  s7    	!!-0""=13Z#s$UQCL++A.	__&EALLO ' !!!Q'$x##Aq)!!$t*-c!!$t*-c!!$t*-c!!$t*-c!!"T(+crF   c                 l    / SQ/ SQ/nSnUR                  S/U//5        UR                  S/U//5        g )NrU  rV  rV  rX  rX  rY  )r}  r~  rm  )r_  )r  r  r  r   xts        rD   test_nested_tuple#TestSubplotMosaic.test_nested_tupleF  s=    o./s|,#.rF   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 )NrU  rV  rX  r!   r'   )rK   )r-   r_  get_gridspecget_width_ratios)r  r   rK   r?   axds        rD   test_nested_width_ratios*TestSubplotMosaic.test_nested_width_ratiosN  s    SEE  1v%%aC3x$$&779\III3x$$&779\IIIrF   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 )NrU  rV  rX  rY  r'   r!   height_ratios)r-   r_  r  get_height_ratios)r  r   r  r?   r  s        rD   test_nested_height_ratios+TestSubplotMosaic.test_nested_height_ratiosX  s    SEE !3Z)A%%aE3x$$&88:mKKK3x$$&88:mKKKrF   zx, empty_sentinelrU  NrV  .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   r^  r'   )r_  r`  rR   ra  r5  r  r0   )r  r  r  r   r  r  rc  r   rA   rownamerd  r@   re  rf  s                  rD   
test_emptyTestSubplotMosaic.test_emptyb  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)rz   r{   r|   r-   r_  r  s    rD   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  )r_  r  r0   )	r  r  r  r  r   rc  r@   re  rf  s	            rD   test_subplot_kw!TestSubplotMosaic.test_subplot_kw  sp     VH++A+E	%2
!!!Q'!!"T(9j9!!"T(9j9rF   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   rY  bluegreen)r  per_subplot_kwr!   )r   r  r  r  r   )r_  r  r  r0   )	r  r  r  r  r   rc  r@   r   specs	            rD   test_per_subplot_kw%TestSubplotMosaic.test_per_subplot_kw  s|     ++#U+k6*k73 , 
	 !!!Q'@"EKE6 FrF   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)rU  rV  rX  zAB;CCrU  rV  rX  zAB;CC;DErY  rl  z7
                         ABC
                         zR
                         AB
                         CC
                         zn
                         AB
                         CC
                         DE
                         )r   _normalize_grid_stringr  	normalizes     rD   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rF   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rU  rV  zThe key rV  z appears multiple timesr   )r  rV  )rV  r  )r   _norm_per_subplot_kwrz   r{   r|   r  s     rD   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 rV  z are inr   rU  )r  )rz   r{   r|   r  r   r_  r  s    rD   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
)r_  stripsplitlist)r  r  r  r  rc  lns         rD   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.rX  rY  z4There are duplicate keys .* between the outer layout)z	AAA
c
BBB'All of the rows must be the same lengthrl  r  c                     [         R                  " 5       n[        R                  " [        US9   UR                  U5        S S S 5        g ! , (       d  f       g = f)Nr   )r-   r.   rz   r{   r|   r_  )r  r   r   r?   s       rD   	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 )NrU  rV  )r_  object)r  r  r  s      rD   test_hashable_keys$TestSubplotMosaic.test_hashable_keys  s0    &(FH!5 67c
|,rF   )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-   r.   r_  r  r   rp  )r  r  r?   ax_dicts       rD   test_user_order!TestSubplotMosaic.test_user_order  sX     jjl$$[1K DM111CHH~gnn&6!7777rF   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 )NrU  rV  rX  rY  rl  rm  rn  r  ro  I	ABCDEFGHIr  r  r   r?   r  s       rD   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7rF   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 )NrU  rV  rX  rY  rl  rm  rn  r  ro  r  T)rr  rs  ru  logit)xscaleyscalec              3   |   #    U  H2  nUR                  5       S :H  =(       a    UR                  5       S:H  v   M4     g7f)ru  r  N)
get_xscale
get_yscale)r  rA   s     rD   r  3TestSubplotMosaic.test_share_all.<locals>.<genexpr>  s5      /-r ==?e+J70JJ-s   :<)r-   r.   r_  r  rq   rp  r  s       rD   test_share_all TestSubplotMosaic.test_share_all  s    C::  #JC3%%! " # $	
 jjl$$VD$Fg6 /$^^-/ / / 	/ /rF   r   )r  r  r  r  r	   rz   markparametrizeri  ru  rz  r  r  r  r  r  r  tupler  r  r  r  r  r  r  r  r  r  r  r   rF   rD   rS  rS    s   UG,[[o.	"."	
! -!. UG,E -E, UG, -B UG,/ -/JL UG,[[DkD#;'.Cj3*%v.AhC!1%$i$#T*#ha!6*!fq!fq!	

!
 -!.@ UG,[[\Bw0G+NO: P -: UG,[[]T5;,?@7 A -7F&1C UG,[[]E
 -
 [[ sc3Z(@ sdc3Z#s$<=>F Gc
SE*+c3Z89	
*"+*"
 UG,- -- [[]GI8I88/rF   rS  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!   rA  rY   )r    r!   )r!   r'   )rD  r?   N)r-   r.   r0   subplot2gridrB  r  )r?   r   r   r  r  gs2gs3s          rD   test_reused_gridspecr  !  s    
**,C
//!Q
'C
//!Q
"C


661#
>C




,
,
.C




,
,
.C




,
,
.C::::rF   ztest_subfigure.pngr   )rH   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)rA   locationz
Right SideFigure suptitlexx-largefontsizert   zLine{}rc   rN   )handlesrM   )r2   rh   seedr-   r.   r   rQ   r^   rg   ri   rj   r   r   r   r5   r  r  
set_zorder
get_zorder)r?   subrT   rA   rn   rB   legs          rD   test_subfigurer  0  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-   r.   r   r2   re   rf   r  rc  r  rf  )r?   r   s     rD   test_subfigure_tightbboxr  N  sV    
**M
*C
..A
CJJcjj5578>>rF   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&   rg  rb  )r-   r.   r   get_dpiset_dpir?   sub_figs     rD   test_subfigure_dpir  X  sl    
**
CnnG??---OOC??###;;=CrF   ztest_subfigure_ss.png{Gz?)rH   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  )r2   rh   r  r-   r.   r  r  rQ   r^   rg   ri   rj   r   r0   r1   r3   rR   )r?   r@   r   rT   rA   rn   s         rD   test_subfigure_ssr  b  s     IINN8
**M
*C			!Q	B


BqEV

4C
,,q!
Chh]]299??2r2!]D LLLLL	A	BGGBIIbMLLLL"ZL8rF   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   r?   r'   r!   gQ?)r  r   coralz
subfigs[0]z
subfigs[1]gffffff?r  zsubfigsnest[0]r   Trs     r   g      g      @r  zx-labelr  zy-labelTitler\   zsubfigsnest[1]r   r    r  ylabelr   r   )r2   rh   r  r-   r.   r   r   r   rQ   rg   ri   r6   r4   rR   rj   r]   r   r   )
r?   r%  subfigsnestaxsnest0rA   r  rn   axsnest1rk   axsRights
             rD   test_subfigure_doubler  y  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(HrF   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-   r.   r  r  r2   re   rf   r;  minmaxr5   r0   ra   )r?   r@   sub_figsr<  r=  rB   s         rD   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!  rF   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   rF  )r  rK      )r  r  r   g!<LgkX.8@i  i  )r   r   r    r  g YI_gRϫW@x   i,  )r-   r.   r   r  r0   r9  rg  ra   
get_xticksr2   re   rf   )	r?   	subfig_bl	subfig_brr@   r   r   r  ticks120ticks300s	            rD   test_subfigure_ticksr+    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2rF   ztest_subfigure_scatter_size.png)rH   rI  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)r-  marker)r    rY   rt   )r   r   r  r   r   )r-  r.  r   r   )r-   r.   r  r0   r9  r  rQ   )r?   r@   r   r'  rT   rA   s         rD   test_subfigure_scatter_sizer/    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 rF   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-   r.   r   r0   r  	bar_labelr  r  r{  )r?   r
  rA   r   buffers        rD   test_subfigure_pdfr3    sa    
**M
*CnnG			S	!B
q!ALLOZZ\FKKuK%rF   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  r]  r   r   r^  r9  )	r-   r.   r   r2   re   rf   r;  r  r   )r!  r<  r=  s      rD   test_subfigures_wspace_hspacer6    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ErF   c                      [         R                  " 5       n U R                  SS5      nUS   R                  5         [	        U R
                  5      S:X  d   eg )Nr!   r^  r    )r-   r.   r   r3  r5  r%  )r?   sfss     rD   test_subfigure_remover9    sD    
**,C
..A
CIs{{q   rF   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-   r.   r0   rv   r  r?   rA   r   s      rD   test_add_subplot_kwargsr=    s   
**,C	Aq	!B
//!Q
"C>>==IIK
**,C	AqW	5B
//!Qg/
6C>>==IIK
**,C	AqW	5B
//!Q
"C>>88}$$$==IIKrF   c                  D   [         R                  " 5       n U R                  / SQ5      nU R                  / SQ5      nUc   eX!Ld   e[         R                  " 5         [         R                  " 5       n U R                  / SQSS9nU R                  / SQSS9nUc   eX!Ld   e[         R                  " 5         [         R                  " 5       n U R                  / SQSS9nU R                  / SQ5      nUc   eUR                  S:X  d   eX!Ld   e[         R                  " 5         g )Nr   r   r   r;  )r-   r.   r   rv   r  r<  s      rD   test_add_axes_kwargsr?  /  s    
**,C	l	#B
,,|
$C>>==IIK
**,C	lw	7B
,,|,
8C>>==IIK
**,C	lw	7B
,,|
$C>>88}$$$==IIKrF   c                   ^^ [         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 )
NrG  cannot show the figurec                  `   > [        ST R                  /T" S5      QSP76 R                  5         g )Nbutton_press_eventrl  rH  r'   )r   rc  _processr?   transs   rD   single_press!test_ginput.<locals>.single_pressM  s)    'IeHoIqIRRTrF   rl  rD  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 )
NrC  rD  r'   key_press_event	backspacer  r   r   r   r  r!   )r   rc  rE  r   rF  s   rD   multi_presses"test_ginput.<locals>.multi_pressesS  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RrF   r    rM  rN  )rN  rP  r-   rQ   	transDatar  r   startginputr2   re   rf   )recwarnrA   rH  rO  r?   rG  s       @@rD   test_ginputrU  H  s    H&>?llnGCLL""EU 
"l!!#::<H:%%%S 
"m""$JJszz!}x.BCrF   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 )NrG  rA  rl  )timeoutrK  r   TrC  r   r'   F)rN  rP  r-   r.   waitforbuttonpressr   r   rc  rE  rR  r   )rT  r?   s     rD   test_waitforbuttonpressrY  ^  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,,,rF   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     rD   test_kwargs_passr[  h  sK    
~
&CnnQn6G==?n,,,,...rF   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)
Nxlabelr   r   )r   r   r  r  lightr   )zfigure.labelweightzfigure.labelsizezfigure.titleweightzfigure.titlesize)r   r   r   r   r  )r  r  s     rD   test_rcparamsr_  p  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    ru  linearrl        Y@)rl  rb  r  )r-   rQ   r1   rv  copydeepcopyr   r  r  ra   get_xlim)r   rA   r   s      rD   test_deepcopyrf  ~  s    ||~HDGGQFQFMM%==D 99Q<r!!!99Q<""$---IIaLH%==?e### KKc!!;;=K'''99Q<  "f,,,rF   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g )Nr   r  rF  i&  )r   rc  r  rg  pickleloadsdumps)r?   r   s     rD   %test_unpickle_with_device_pixel_ratiork    sT    
R.CJJ&&q)77d??<<S)*D88r>>rF   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   rl  r'   r!   )rK   gridspec_kwAB)dictr-   rQ   r_  )r@   gs_origs     rD   test_gridspec_no_mutate_inputrq    sJ    
"B2hGLLAQF;==t1a&bArF   )r  r  r   r  r   svgzc                 \    [        5       R                  [        R                  " 5       U 0 S9  g )Nr  metadata)r   r{  r  r  r  s    rD   test_savefig_metadatarw    s    
HRZZ\#;rF   )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   rt  )rz   r{   r|   r   r{  r  r  rv  s    rD   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   r  gQ?g{Gz?)r  h_padr  r5  r   zwill be deprecatedr   r   )r  rp  r-   r.   r   layout_enginer   rz   r   PendingDeprecationWarningget_constrained_layout_pads)paramsexpectedr?   s      rD    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  )r?   r  s     rD   test_not_visible_figurer    s    
(C
++-CKKEK"HHQKCHHJOOE
++-CKKEK"HHQK
"""rF   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   r\  rj   rz   r   r  r.   r   )r   r   r   ax2_1ax2_2r]  fig3fig4	subfig3_1	subfig3_2	subfig4_1ax3_1ax3_2ax4_1im3_1im3_2im4_1s                    rD   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                  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-   r.   r   rz   r   r   r   
set_figurer{   r|   )r?   sfig1sfig2fs       rD   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-   r.   r   r  r4  r%  )r?   sf_arrr!  r   s       rD   test_subfigure_row_orderr    sC    
**,C^^Aq!FFLLNCKK0vv 1rF   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-   r.   ra   r:  r   )r?   r  r  s      rD    test_subfigure_stale_propagationr    s    
**,C yy=NNE999 yy={{?E999;;; yy={{?{{?EK;;;999rF   )rc  r   r  rh  platform	threadingr   typesr   rN  numpyr2   rz   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datesrI  machinerE   rU   ro   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r)  r0  r7  r>  r  r  rY  r^  rH   contextrh  rn  infrj  rp  ry  r}  r  r  paramr  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r/  r4  r?  rG  rL  rQ  rS  r  r  r  r  r  r  r"  r+  r/  r3  r6  r9  r=  r?  rU  rY  r[  r_  rf  rk  rq  rw  r~  r  r  r  r  r  r  r   rF   rD   <module>r     s     	    !       O   9 0? ? P O  ! ()uen#++-9atE$E$N 28:#++-9au!	!, 2F0-$ 4& >"#++-9auFF ?#$ %8
')X $%&2 '207
. %& $U^.9.4!6	7:7::$, "<=$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 54A9A9* ./w!,f 57$)7$)N!: 73 36 45W#%P%P&F2!22D,-/ (
# )
#-2B  JK< L<  UV@ W@
=#!"H' rF   