
    hR              	       	   S SK r S SKrS SKrS SKrS SKrS SKJr  S SKrS SKr	S SK
Jr  S SKrS SKJrJr  S SKJr  S SKJr  S SKrS SKJr  S SKJr  S SKJ r  S SKJ r!  S SK"J#r#  S SK$J%r&  S SKJ'r'  S SK(J)r)  S	 r*S
 r+\" S/SS9S 5       r,\" S/SS9S 5       r-\" S/5      S 5       r.S r/S r0\" S/SS9S 5       r1\" S/S\Rd                  " 5       S:X  a  S OSS9S 5       r3\" S/S\Rd                  " 5       S:X  a  S OSS9S 5       r4\" S/S\Rd                  " 5       S:X  a  S OSS9S  5       r5\" S!/S\Rd                  " 5       S:X  a  S OSS9S" 5       r6\" S#/SS$S9S% 5       r7\" S&/S\Rd                  " 5       S:X  a  S OS'S9S( 5       r8\" S)S*/SS9S+ 5       r9\" S,/SS9S- 5       r:\" S./SS/S09S1 5       r;S2 r<S3 r=\" S4/S59S6 5       r> " S7 S85      r? " S9 S:5      r@S; rA\" S</\Rd                  " 5       S:X  a  S OS=S>9S? 5       rBS@ rCSA rDSB rE\" SC/5      SD 5       rF\" SE/5      SF 5       rGSG rHSH rISI rJSJ rK\" SK/SSL\Rd                  " 5       S:X  a  S OSMSN9SO 5       rLSP rMSQ rNSR rOSS rPST rQSU rR\R                  R                  SVSW5      SX 5       rU\R                  R                  SYSZ5      S[ 5       rV\R                  R                  SYS\5      S] 5       rW\R                  R                  SVSW5      S^ 5       rX\R                  R                  S_S`5      Sa 5       rYSb rZSc r[Sd r\Se r]Sf r^Sg r_Sh r`Si raSj rbSk rcSl rdSm reSn rf\R                  R                  S_S`5      So 5       rgSp rhSq riSr rjSs rkSt rl\R                  R                  Su5      Sv 5       rn\R                  R                  SwSx5      Sy 5       roSz rp\S{ 5       rqS| rrS} rs\R                  R                  S~SS/S\	R                  " SS/5      /5      S 5       ru\R                  R                  SSS\v/5      S 5       rw\R                  R                  S~SS/S\	R                  " SS/5      /5      S 5       rxS ryS rzS r{S r|S r}S r~S rS r\" S4/S59S 5       rS rS rS rS rS rS rS rS rS rS r\R                  R                  Su5      S 5       rS rS rS rS rg)    N)mock)assert_allclose)check_figures_equalimage_comparison)needs_usetex)HandlerTuple)
rc_context)FontPropertiesc                     [         R                  R                  S5      n [         R                  R                  S5      nS/S-  S/S-  -   nS/S-  S/S-  -   n[        R                  " 5       u  pE[        XX#5       H  u  pgpUR                  XgXS9  M     UR                  5       u  p[        R                  " [        X*5      5      nUR                  UR                  5       UR                  5       SS	S
9  g )N
   a   brglabelccenter left)         ?)locbbox_to_anchor)nprandomrandnpltsubplotszipscatterget_legend_handles_labelscollectionsOrderedDictlegendvalueskeys)XYlabelscolorsfigaxxyr   colorhandlesr$   s               V/var/www/fran/franai/venv/lib/python3.13/site-packages/matplotlib/tests/test_legend.pytest_legend_ordereddictr2      s     			A
		AUQY#"FUQY#"FllnGC!!7e


1u
. 8 224OG$$S%9:FIIfmmov{{}  9    c                      [         R                  " 5       u  pUR                  SS/5        UR                  SS/5        S UR                  5        5       nS S 5       nUR	                  X#SS9  g )	Nr   r      c              3   $   #    U  H  ov   M     g 7fN ).0lines     r1   	<genexpr>(test_legend_generator.<locals>.<genexpr>3   s     /t   c              3   $   #    U  H  ov   M     g 7fr7   r8   )r9   r   s     r1   r;   r<   4   s     2!1e!1r=   )spameggs
upper leftr   )r   r   plot	get_linesr$   )r+   r,   r0   r)   s       r1   test_legend_generatorrE   -   sX    llnGCGGQFOGGQFO//G2!12FIIg<I0r3   zlegend_auto1.pngT)remove_textc                      [         R                  " 5       u  p[        R                  " S5      nUR	                  USU-
  SSS9  UR	                  X"S-
  SSS9  UR                  SS9  g	)
Test automatic legend placementd   2   oy=1r   y=-1bestrB   N)r   r   r   arangerC   r$   )r+   r,   r-   s      r1   test_legend_auto1rQ   9   sZ     llnGC
		#AGGArAvs%G(GGA2vs&G)II&Ir3   zlegend_auto2.pngc                      [         R                  " 5       u  p[        R                  " S5      nUR	                  X"SSS9nUR	                  X"SSS2   SSS9nUR                  US   US   /S	S
/SS9  g)rH   rI   edgem)alignr/   Nr   r   updownrO   rB   )r   r   r   rP   barr$   )r+   r,   r-   b1b2s        r1   test_legend_auto2r\   C   sp     llnGC
		#A	F#	.B	TrT7&	4BIIr!ubentVn&I9r3   zlegend_auto3.pngc                      [         R                  " 5       u  p/ SQn/ SQnUR                  X#SSS9  UR                  SS5        UR	                  SS5        UR                  SS	9  g
)rH   ?皙?r`   r_   r_   r   ffffff?rb   皙?rc   r   r   o-r:   rM                 ?rO   rB   N)r   r   rC   set_xlimset_ylimr$   )r+   r,   r-   r.   s       r1   test_legend_auto3ri   M   sW     llnGC&A*AGGA$fG%KKSKKSII&Ir3   c                  R   [         R                  " SSS9u  p/ n[        UR                  S5       H  u  p4UR	                  U5        UR                  S/SS/-  -   [        S5      S	US
9  UR                  SS9nU R                  R                  5         UR                  UR                  5       R                  UR                  R                  5       5      5        M     [        US   R                   US   R                   5        [        US   R                   US   R                   5        g)z~
Check that the legend location with automatic placement is the same,
whatever the histogram type is. Related to issue #9580.
   )g@g333333@ncolsfigsize)rY   step
stepfilledr   r   	   r   Legend)binsr   histtyperO   rB   r   r5   N)r   r   r   flat	set_titlehistranger$   canvasdrawappendget_window_extenttransformed	transAxesinvertedr   bounds)r+   axs
leg_bboxesr,   htlegs         r1   test_legend_auto4r   Y   s     ||!Z8HCJchh =>
R
ae%)8bIiiFi#

!!#//0E0E0GH	J ? JqM((*Q-*>*>?JqM((*Q-*>*>?r3   c                     [         R                  " SSS9u  p/ n[        UR                  S5       GH  u  p4[        R
                  " SSSSS	9[        R                  " [        R                  " S
S/S
S
/SS
/SS/SS/SS/SS/SS/SS//	5      SS9[        R                  " SSS
SSSS94 H  nUR                  U5        M     UR                  SS/SS/SS9  UR                  US9nU R                  R                  5         UR                  UR!                  5       R#                  UR$                  R'                  5       5      5        GM     [)        US   R*                  US
   R*                  5        g)zu
Check that the automatic placement handle a rather complex
case with non rectangular patch. Related to issue #9580.
r5   )g333333#@g333333@rl   centerrO   )r   r_   皙?皙?C1)xywidthheightfcr   r   r_   rf   r`   )r   )r   r   r   ih  rc   C0)r   r   z	A segmentrM   rB   N)r   r   r   ru   mpatchesEllipsePolygonr   arrayWedge	add_patchrC   r$   ry   rz   r{   r|   r}   r~   r   r   r   )r+   r   r   r,   r   _patchr   s          r1   test_legend_auto5r   o   sf   
 ||!Z8HCJsxx!34
   !STC  FQFQFQFS#Jc
#Jc
S#J+8 "9=AC z33dtLF LL  	c
S#Jk:iiCi 

!!#//0E0E0GH	J% 5* JqM((*Q-*>*>?r3   zlegend_various_labels.pngc                  T   [         R                  " 5       n U R                  S5      nUR                  [        R
                  " S5      SSS9  UR                  [        R                  " SS5      SSS9  UR                  [        R
                  " SSS5      SS	S9  UR                  SS
S9  g )Ny      rK   r   rM   gffffff@u   DéveloppésrV   __nolegend__rO   )	numpointsr   )r   figureadd_subplotrC   r   rP   linspacer$   r+   r,   s     r1   test_various_labelsr      s     **,C		BGGBIIaL#QG'GGBKK3NG;GGBIIaBNG;IIvI&r3   zlegend_labels_first.pngx86_64g9v?)rF   tolc                  :   [         R                  " 5       u  pUR                  [        R                  " S5      SSS9  UR                  [        R
                  " S5      S-  SSS9  UR                  [        R                  " SSS	5      S
SS9  UR                  SSS9  g )Nr   -or   rM   r   z:xr-      rV   ddiamondrO   F)r   markerfirst)r   r   rC   r   rP   onesr$   r   s     r1   test_labels_firstr      sx     llnGCGGBIIbM4qG)GGBGGBKM4sG+GGBIIb"b!3iG8II&eI,r3   zlegend_multiple_keys.pngc                     [         R                  " 5       u  pUR                  / SQS5      u  nUR                  / SQS5      u  nUR                  / SQS5      u  nUR                  X#4X24U// SQSX#4[	        S S	9X24[	        S S
S90S9  g )Nr   r5   rk   r   r5   rk   r   z-xrk   r   r   z-d)ztwo keyszpad=0zone keyr   )ndivider   )r   pad)r   handler_map)r   r   rC   r$   r   )r+   r,   p1p2p3s        r1   test_multiple_keysr      s     llnGC
'')T
"CB
'')T
"CB
'')T
"CBIIx"2&(H8\$%?8\$A%FH  Ir3   zrgba_alpha.pnggQ?c                      [         R                  " 5       u  pUR                  [        S5      SS9  [         R                  " S/SS9nUR
                  R                  / SQ5        g )Nr   r   lwLonglabel that will go awayr   rB   r   r   r   r   )r   r   rC   rx   r$   legendPatchset_facecolorr+   r,   r   s      r1   test_alpha_rgbar      sK     llnGCGGE"I!G
**34(
CCOO!!.1r3   zrcparam_alpha.pngc                  *   [         R                  " 5       u  pUR                  [        S5      SS9  [        R
                  " SS0S9   [         R                  " S/SS	9nUR                  R                  / S
Q5        S S S 5        g ! , (       d  f       g = f)Nr   r   r   zlegend.framealphag      ?)rcr   r   rB   r   )	r   r   rC   rx   mplr	   r$   r   r   r   s      r1   test_alpha_rcparamr      sk     llnGCGGE"I!G	/5	6jj78hG
 	%%n5 
7	6	6s   4B
Bz	fancy.pngrc   c            	         [         R                  " S5        [         R                  " S/S-  SSS9  [         R                  " [        R
                  " S5      [        R
                  " SSS5      S	S9  [         R                  " [        R
                  " S5      [        R
                  " S5      S
S
SS9  [         R                  " SSS
/SSSSS9  g )Nr   r   r   zo--XXrM   r   rV   zXX
XXr   )xerryerrr   r   rf   r5   T	My legendr   )r   r   rm   shadowtitler   )r   subplotrC   r    r   rP   errorbarr$   r8   r3   r1   
test_fancyr      s    
 KKHHaS2XuD)KK		"ryyQ38DLL2		"C'JJ=#st;!Er3   
framealphag~jt?c                      [         R                  " SSS5      n U n[        R                  " XSSS9  [        R                  " SS9  g )Nr   rI   mylabelr   )r   r   r   )r   )r   r   r   rC   r$   )r-   r.   s     r1   test_framealphar      s7     	AsC A	AHHQr*JJ#r3   zscatter_rc3.pngzscatter_rc1.pngc                     [         R                  " 5         [         R                  " S5      n U R                  [        R
                  " S5      [        R
                  " SSS5      SS9  U R                  SSS	/S
S9  S[        R                  S'   [         R                  " 5         [         R                  " S5      n U R                  [        R
                  " S5      [        R
                  " SSS5      SS9  U R                  SSS	/S
S9  g )Nr   r   r   rV   threerM   r   rf   r   r   )r   r   r   r   zlegend.scatterpointsone)	r   r   r   r    r   rP   r$   r   rcParams)r,   s    r1   test_rcr      s     JJL	S	BJJryy}biiAr2'JBII-c
  ! ,-CLL'(JJL	S	BJJryy}biiAr2%J@II-c
  !r3   zlegend_expand.pngc                     SS/n [         R                  " [        U 5      S5      u  p[        R                  " S5      n[        X 5       H  u  pEUR                  USU-
  SSS9  UR                  S	US
9nUR                  U5        UR                  X3S-
  SSS9  UR                  SUS
9nUR                  U5        UR                  SUSS9  M     g)zTest expand modeNexpandr   rI   rJ   rK   rL   rM   rA   )r   moderN   right
lower leftr5   )r   r   rm   )	r   r   lenr   rP   r   rC   r$   
add_artist)legend_modesr+   r   r-   r,   r   l1l2s           r1   test_legend_expandr      s     (#L||C-q1HC
		#A*
263e,YY<dY3
b
r63f-YY7Y.
b
		lQ	7 +r3   hatchingdefault)rF   stylec            
      v   S[         R                  S'   [         R                  " 5       u  p[         R                  " SSSSSS9nUR	                  U5        [         R                  " SSSS	S
SS9nUR	                  U5        [         R                  " SSSSSSS9nUR	                  U5        [         R                  " SSSS	SS
SS9nUR	                  U5        UR                  / SQ/ SQ/ SQSSS9  UR                  / SQ/ SQ/ SQSSSS9  UR                  SS5        UR                  SS5        UR                  SSS9  g ) N   ztext.kerning_factor)r   r   333333?xxzPatch
default color
filled)hatchr   )Q?r   z||r   zPatch
explicit color
filled)r   	edgecolorr   )r   皙?FzPatch
default color
unfilled)r   fillr   )r   r   zPatch
explicit color
unfilled)r   r   r   r   )r   g333333?r   )r   r   r   )r_   rf   r_   +zPath
default color)r   gQ?g)\(?C2zPath
explicit colorg{Gz皙?r   )handlelengthhandleheight)	r   r   r   	Rectangler   fill_betweenrg   rh   r$   )r+   r,   patchs      r1   test_hatchingr     s2    +,CLL&'llnGC MM&#s$ >@ELLMM)S#TT ?AELLMM(CDu @BELLMM+sCt%$( ACE LL OOL,%:  <OOO\=5K  M KKsKKsII11I-r3   c                  6   [         R                  " 5       u  pUR                  [        S5      5      nU R	                  US5      nUR                  5         U R                  / :X  d   eUR	                  S5      nUR                  5         UR                  5       b   eg )Nr   test)r   r   rC   rx   r$   removelegends
get_legend)r+   r,   linesr   s       r1   test_legend_remover   $  su    llnGCGGE"IE
**UF
#CJJL;;"
))F
CJJL==?"""r3   c                     [         R                  " 5       u  pSnSn/ SQn/ SQnUR                  X#US   US   S9  UR                  X#US   US   S9  UR                  X#US   US   S9  UR                  SS9nUR	                  5        Vs/ s H  owR                  5       PM     nnUR                   V	s/ s H  oR                  5       PM     n
n	U[        [        U5      5      :X  d   eU
[        [        U5      5      :X  d   eg	s  snf s  sn	f )
z6Check that the legend handles and labels are reversed.r   )zFirst labelzSecond labelzThird label).,rK   r   rM   r5   TreverseN)
r   r   rC   r$   	get_textsget_textlegend_handles
get_markerlistreversed)r+   r,   r-   r.   r)   markersr   tactual_labelshactual_markerss              r1   &test_reverse_legend_handles_and_labelsr  /  s    llnGC	A	A;FGGGA'!*F1IG.GGA'!*F1IG.GGA'!*F1IG.
))D)
!C+.==?;?aZZ\?M;.1.@.@A.@lln.@NAD&!12222T(7"34444 <As   
D3Dpng)
extensionsc                    U R                  5       nUR                  S/SSS9  UR                  S/SSS9  UR                  SS	9  UR                  5       nUR                  S/SSS9  UR                  S/SSS9  UR                  5         g
)z3Check that the rendered legend entries are reversedr   rofirstrM   r5   bxsecondTr  N)r   rC   r$   )fig_testfig_refr,   s      r1   test_reverse_legend_displayr  A  s     
			BGGQCWG%GGQCXG&IIdI				BGGQCXG&GGQCWG%IIKr3   c                   V    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rSrg)TestLegendFunctioniO  c                    [         R                  " [        S5      SS9n[        R                  " S5       n[         R
                  " 5         S S S 5        WR                  [         R                  " 5       US/5        g ! , (       d  f       N6= f)Nr   hello worldrM   matplotlib.legend.Legendr   rC   rx   r   r   r$   assert_called_withgcaselfr   rr   s      r1   test_legend_no_args&TestLegendFunction.test_legend_no_argsQ  sV    r-8ZZ23vJJL 4!!#'')U]OD 43s   A;;
B	c                     [         R                  " [        S5      5      n[        R                  " S5       n[         R
                  " US/5        S S S 5        WR                  [         R                  " 5       US/5        g ! , (       d  f       N6= f)Nr   r  r  r  r"  s      r1   %test_legend_positional_handles_labels8TestLegendFunction.test_legend_positional_handles_labelsW  s[    r#ZZ23vJJu}o. 4!!#'')U]OD 43s   A??
Bc                     [         R                  " [        S5      5      n[        R                  " [
        SS9   [         R                  " U5        S S S 5        g ! , (       d  f       g = f)Nr   zbut found an Artistmatch)r   rC   rx   pytestraises	TypeErrorr$   )r#  r   s     r1   #test_legend_positional_handles_only6TestLegendFunction.test_legend_positional_handles_only]  s>    r#]]9,AB JJu CBBs   A
A'c                    [         R                  " [        S5      SS9n[        R                  " S5       n[         R
                  " S/5        S S S 5        WR                  [         R                  " 5       US/5        g ! , (       d  f       N6= f)Nr   r  rM   r  foobarr  r"  s      r1   "test_legend_positional_labels_only5TestLegendFunction.test_legend_positional_labels_onlyd  s[    r-8ZZ23vJJz" 4!!#'')UXJ? 43s   A==
Bc                    [         R                  " [        S5      SS9n[        R                  " S5       n[         R
                  " US/SS9  S S S 5        WR                  [         R                  " 5       US/SS9  g ! , (       d  f       N5= f)Nr   r  rM   r  r2  r   rB   r  r"  s      r1   test_legend_three_args)TestLegendFunction.test_legend_three_argsj  sd    r-8ZZ23vJJuxjg6 4!!#'')UXJG!L 43s   A<<
B
c                 0   [         R                  " [        S5      SS9n[        R                  " S5       nUS/4Ul        [         R                  " SS0S9  S S S 5        WR                  [         R                  " 5       /SS05        g ! , (       d  f       N7= f)Nr   r  rM   z,matplotlib.legend._get_legend_handles_labels1r5   )r   )	r   rC   rx   r   r   return_valuer$   r   r!  )r#  r   handles_labelss      r1   test_legend_handler_map*TestLegendFunction.test_legend_handler_mapp  sw    r-8ZZ 5 69G*/-*@N'JJC8,6 	))3779+Qx@	6 6s   !B
Bc                    [         R                  " 5       u  p[        R                  " SSS5      nUR	                  X3SS9u  nUR	                  USU-  SS9u  nUR	                  USU-  S	S9u  n[
        R                  " S
5       nUR                  Xe/S9  S S S 5        WR                  X&U/S	S/5        g ! , (       d  f       N%= f)Nr   r      r-   rM   r5   2xrk   3xr  )r0   	r   r   r   r   rC   r   r   r$   r   )r#  r+   r,   r-   ln1ln2ln3rr   s           r1   test_legend_kwargs_handles_only2TestLegendFunction.test_legend_kwargs_handles_onlyx  s    ,,.KK1b!wwq3w'wwq!A#Tw*wwq!A#Tw*ZZ23vIIsjI) 4!!"Cj4,? 43s   B44
Cc                 d   [         R                  " 5       u  p[        R                  " SSS5      nUR	                  X35      u  nUR	                  USU-  5      u  n[
        R                  " S5       nUR                  SS/S9  S S S 5        WR                  X$U/SS/5        g ! , (       d  f       N%= f)	Nr   r   r?  r5   r  r-   r@  r)   rB  )r#  r+   r,   r-   rC  rD  rr   s          r1   test_legend_kwargs_labels_only1TestLegendFunction.test_legend_kwargs_labels_only  s    ,,.KK1b!wwq}wwq!A#ZZ23vIIc4[I) 4!!"Cj3+> 43s   0B!!
B/c                    [         R                  " 5       u  p[        R                  " SS[        R                  -  S5      nUR                  U[        R                  " U5      SS9u  nUR                  U[        R                  " U5      SS9u  n[        R                  " S5       nUR                  SXT4S	9  S S S 5        WR                  X%U4S5        g ! , (       d  f       N#= f)
Nr   r5      sinrM   cosr  r   r   )r)   r0   )r   r   r   r   pirC   rN  rO  r   r   r$   r   )r#  r+   r,   thlnslncrr   s          r1   !test_legend_kwargs_handles_labels4TestLegendFunction.test_legend_kwargs_handles_labels  s    ,,.[[AbeeGT*wwr266":Uw3wwr266":Uw3ZZ23vIIZ#I< 4 	!!"Cj*= 43s   %C
C"c                 (   [         R                  " 5       u  p[        R                  " SS[        R                  -  S5      nUR                  U[        R                  " U5      SS9u  nUR                  U[        R                  " U5      SS9u  n[        R                  " [        5       nUR                  XT4SS9  S S S 5        [        W5      S	:X  d   e[        US   R                  5      R                  S
5      (       d   eg ! , (       d  f       NN= f)Nr   r5   rM  rN  rM   rO  rP  rI  r   MYou have mixed positional and keyword arguments, some input may be discarded.)r   r   r   r   rQ  rC   rN  rO  r,  warnsDeprecationWarningr$   r   strmessage
startswith)r#  r+   r,   rR  rS  rT  records          r1   test_warn_mixed_args_and_kwargs2TestLegendFunction.test_warn_mixed_args_and_kwargs  s    ,,.[[AbeeGT*wwr266":Uw3wwr266":Uw3\\,-IIsjI4 .6{a6!9$$%00  	  .-s   )D
Dc                 R   SSK Jn  U" S5      nUR                  5       nUR                  / SQ/ SQSS9u  nUR                  / SQ/ SQSS9u  n[        R
                  " S	5       n[        R                  " 5         S S S 5        WR                  X$U/SS/5        g ! , (       d  f       N%= f)
Nr   )host_subploto   r   r   r5   DensityrM   )r   rk   r5   Temperaturer  )	mpl_toolkits.axes_grid1rb  twinxrC   r   r   r   r$   r   )r#  rb  hostparr   r   rr   s          r1   test_parasite TestLegendFunction.test_parasite  s    8C jjlii	9Ii>hhy)=hAZZ23vJJL 4!!$R9m2LM 43s   #B
B&r8   N)__name__
__module____qualname____firstlineno__r$  r'  r/  r3  r6  r<  rF  rJ  rU  r_  rk  __static_attributes__r8   r3   r1   r  r  O  s@    EE@MA@?>
Nr3   r  c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestLegendFigureFunctioni  c                 $   [         R                  " 5       u  pUR                  [        S5      5      n[        R
                  " S5       nUR                  US/5        S S S 5        WR                  XS/UR                  S9  g ! , (       d  f       N+= f)Nr   r  r  bbox_transform	r   r   rC   rx   r   r   r$   r   transFigurer#  r+   r,   r   rr   s        r1   test_legend_handle_label1TestLegendFigureFunction.test_legend_handle_label  so    ,,.b	"ZZ23vJJu}o. 4!!#}o14 	" 	B 43s   B
Bc                    [         R                  " 5       u  pUR                  [        S5      SS9n[        R
                  " S5       nUR                  5         S S S 5        WR                  XS/UR                  S9  g ! , (       d  f       N+= f)Nr   r  rM   r  ru  rw  ry  s        r1   r$  ,TestLegendFigureFunction.test_legend_no_args  sl    ,,.b	7ZZ23vJJL 4!!#}o14 	" 	B 43s   A==
Bc                 "   [         R                  " 5       u  pUR                  [        S5      5      n[        R
                  " S5       nUR                  S/5        S S S 5        WR                  XS/UR                  S9  g ! , (       d  f       N+= f)Nr   r  r2  ru  rw  ry  s        r1   test_legend_label_arg.TestLegendFigureFunction.test_legend_label_arg  sm    ,,.b	"ZZ23vJJz" 4!!#xj14 	" 	B 43s   B  
Bc                    [         R                  " 5       u  pUR                  [        S5      5      n[        R
                  " [        SS9   UR                  US/S5        S S S 5        [        R
                  " [        SS9   UR                  US/SSS9  S S S 5        g ! , (       d  f       ND= f! , (       d  f       g = f)Nr   z0-2r*  r2  r   leftrB   )r   r   rC   rx   r,  r-  r.  r$   )r#  r+   r,   r   s       r1   test_legend_label_three_args5TestLegendFigureFunction.test_legend_label_three_args  s    ,,.b	"]]9E2JJuxj'2 3]]9E2JJuxj'vJ> 32 3222s   BB/
B,/
B=c                    [         R                  " SS5      u  pUS   R                  [        S5      5      nUS   R                  [        R
                  " S5      S-  5      n[        R                  " S5       nUR                  SSX44S	9  S S S 5        WR                  XU4SSUR                  S
9  g ! , (       d  f       N-= f)Nr   r5   r   r          @r  r   rP  )r   r)   r0   )r   rv  )r   r   rC   rx   r   rP   r   r   r$   r   rx  )r#  r+   r   r   lines2rr   s         r1   test_legend_kw_args,TestLegendFigureFunction.test_legend_kw_args  s    <<1%AE"I&QRYYr]R/0ZZ23vJJ7:JO 4!!*'?? 	" 	, 43s   8B22
C c                    [         R                  " SS5      u  pUS   R                  [        S5      5      nUS   R                  [        R
                  " S5      S-  5      n[        R                  " [        5       nUR                  X44SS9  S S S 5        [        W5      S:X  d   e[        US   R                  5      R                  S5      (       d   eg ! , (       d  f       NN= f)	Nr   r5   r   r   r  rP  rI  rX  )r   r   rC   rx   r   rP   r,  rY  rZ  r$   r   r[  r\  r]  )r#  r+   r   r   r  r^  s         r1   test_warn_args_kwargs.TestLegendFigureFunction.test_warn_args_kwargs  s    <<1%AE"I&QRYYr]R/0\\,-JJzJ: .6{a6!9$$%00  	  .-s   <C
C$r8   N)rm  rn  ro  rp  rz  r$  r  r  r  r  rq  r8   r3   r1   rs  rs    s#    BBB?,	r3   rs  c                     S V s/ s H  n SU -   PM
     nn US V s/ s H  n SU -   PM
     sn -  nUS V s/ s H  n SU -   PM
     sn -  nUS V s/ s H  n SU -   PM
     sn -  n/ SQn/ SQn/ S	Qn/ S
QnX"UX3UXDUXUU/n/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/n[        U5       H  u  p[        U	5        [        R                  " SSS9u  pUR	                  [        S5      SS9  U
R                  SU	-   S9nU
R                  5         [        UR                  5       R                  Xh   5        [        UR                  5       R                  Xx   5        M     g s  sn f s  sn f s  sn f s  sn f )N)r  r   r   zupper zlower )lowerr   upperzleft zright )QnX4@Qn;@l@gE@)r  g Q@r  lf@)gLNb@r  r  r  )r  r  gE@r  )      $@     X@     `@     p@)     (u@r       |@r  )  r       @r  )r  r  r       F@)r  r  r  r  )     ؄@r  r  r  )r       q@r       s@)r  r  r  r  )r  r  r  r  )r  r  r  r  TrI   )constrained_layoutdpir   Boo1rM   zoutside rB   )	enumerateprintr   r   rC   rx   r$   draw_without_renderingr   r|   extents)postodosupperextlowerextleftextrightextaxbblegbbnntodor+   r   r   s                r1   test_figure_legend_outsider    s   'BC'BX^'BEC	(CD(Chn(CDDE	'CD'Cgm'CDDE	(DE(Dhn(DEEE8H8H7G8Hg*D
 %'%#&$"&$"'%'E e$d<<4SAr&)jjZ$.j/""$--/77	"--/77		# %7 DDDEs   EE$E)E.zlegend_stackplot.pnggX9v?)r   c                     [         R                  " 5       u  p[        R                  " SSS5      nSU-  nSU-  S-   nSU-  S-   nUR	                  X#XE/ SQS	9  UR                  S
5        UR                  S5        UR                  SS9  g)z/Test legend for PolyCollection using stackplot.r   r   rf   r  r   g      @r5   )y1y2y3rI  )r   r   )r   F   rO   rB   N)r   r   r   r   	stackplotrg   rh   r$   )r+   r,   r-   r  r  r  s         r1   test_legend_stackplotr    s    
 llnGC
Ar2A	qB	q1B	q1BLL'9L:KKKKII&Ir3   c                      [         R                  " 5       u  p[         R                  " 5       u  p#UR                  [        S5      [        S5      5      nUR	                  US5        g )Nrk   foo)r   r   rY   rx   r$   )r+   r,   fig2ax2brss        r1   test_cross_figure_patch_legendr     sB    llnGCID
&&q58
$CKKUr3   c                     [         R                  " 5       u  pUR                  [        R                  /[        R                  /SSSSS9nUR                  U/S/5        [         R                  " 5       u  pS H\  nSn[        R                  R                  SU5      u  pVS	[        R                  R                  U5      -  nUR                  XVX7US
SS9  M^     UR                  5         UR                  S5        g )NrK   r   rk   )marker	facecolorr   sr    )redgreenbluei  r5   g      i@r   none)r   r  r   alpha
edgecolorsT)	r   r   r    r   nanr$   r   randgrid)r+   r,   r  r/   nr-   r.   scales           r1   test_nanscatterr  (  s    llnGC


BFF8bffXc C1 	 	6A IIqcI;llnGC)yy~~a#		q))


15 	 	1	 * IIKGGDMr3   c                     [         R                  " 5       u  pUR                  SSSSSS9  UR                  SSSS	SS9  UR                  5         [        R
                  " U/5      u  p#[        U5      S
:X  d   e[         R                  " 5       u  pUR                  SSSSSS9  UR                  SSSS	SS9  UR                  5         [        R
                  " U/5      u  p#[        U5      S
:X  d   eg )Nre   rf   krK   r   )r/   r  r   r   r   vr5   )r   r   r    r$   mlegend_get_legend_handles_labelsr   )r+   r,   handlabs       r1   test_legend_repeatcheckokr  <  s    llnGCJJsCs3fJ=JJsCs3fJ=IIK22B48IDs8q==llnGCJJsCs3fJ=JJsCs3fJ=IIK22B48IDs8q==r3   znot_covering_scatter.pngc                  &   / SQn [        S5       H  n[        R                  " U/U/X   S9  M     [        R                  " / SQSS9  [        R                  " 5       R                  SS5        [        R                  " 5       R                  SS5        g )	N)r   r   r   rk   )r/   )r  r  r  rO   rB   g      皙@)rx   r   r    r$   r!  rg   rh   )r*   r  s     r1   test_not_covering_scatterr  K  sh    F1XQC!FI.  JJ$&1GGItS!GGItS!r3   z"not_covering_scatter_transform.pngc                  H   [         R                  " 5       R                  SS5      n [        R                  " SSS5      n[
        R                  " X5        [
        R                  " S/S/U [
        R                  " 5       R                  -   S9  [
        R                  " SS	/S
S9  g )Nir   r      i  r   )	transformr  rY   rO   rB   )mtransformsAffine2D	translater   r   r   rC   r    r!  	transDatar$   )offsetr-   s     r1   #test_not_covering_scatter_transformr  W  ss     !!#--c26F
Ar4 AHHQNKKrdfswwy/B/B&BCJJu~6*r3   c                  ,   SS/SS//n SS/SS//S	S/S
S///nS
S/SS//S	S/SS///n[         R                  " U SSS9n[         R                  " USS9n[         R                  " USS	S9n[        R                  " 5       u  pgUR	                  U5        UR	                  U5        UR	                  U5        UR                  X4U// SQ5      nUR                  u  pn[        X4U4XU45       H(  u  pUR                  5       S   UR                  :X  a  M(   e   g )N)r   r   )r   r   )r   333333?)r   r   gffffff?r   r   r   r   r  r`   z--rk   )
linestylesr   z-.)r  :)line1line2zline 3r   )
mcollectionsLineCollectionr   r   add_collectionr$   r  r   get_linestyles_dash_pattern)lines1r  lines3lc1lc2lc3r+   r,   r   h1h2h3ohlhs                 r1   !test_linecollection_scaled_dashesr  c  s0    8X"67FRy2r(#r2hR%9:FRy2r(#r2hR%9:F

%
%f!
DC

%
%f
>C

%
%f
DCllnGCccc
))SsO%A
BC##JBBso|4  "1%)9)9999 5r3   c                      [         R                  " 5       u  pUR                  [        S5      SS9  UR	                  SS9  g)z(Test legend handler with numpoints <= 1.r   r   rM   r   r   N)r   r   rC   rx   r$   r   s     r1   test_handler_numpointsr  w  s3     llnGCGGE!HFG#IIIr3   c                  Z   [         R                  " 5       u  pUR                  S/SS9  UR                  SSSSS9  [        R
                  " [        5       nUR                  5         SSS5        [        W5      S:X  d   e[         R                  " 5       u  p1UR                  [        R                  R                  SSS	5      5        [        R                  " 5          [        R                  " S
5        UR!                  5         SSS5        g! , (       d  f       N= f! , (       d  f       g= f)z2Test that Text artists with labels raise a warningr   	mock datarM   textr   )r-   r.   r  r   Nr   )r   r   error)r   r   rC   r  r,  rY  UserWarningr$   r   
pcolormeshr   r   uniformwarningscatch_warningssimplefilterr!   )r+   r,   r^  fs       r1   test_text_nohandler_warningr    s    llnGCGGQC{G#GGa1gG.	k	"f
		 
#v;! LLNEAMM"))##Aq(34		 	 	"g&
$$& 
#	" 
#	" 
#	"s   D'D
D
D*c                  Z    [         R                  " / / SS9  [         R                  " 5         g)z1Test legend when bar chart is empty with a label.r   rM   N)r   rY   r$   r8   r3   r1    test_empty_bar_chart_with_legendr	    s     GGB&!JJLr3   zshadow_argument_types.pngmpl20gy&1?)rF   r   r   c            
      T   [         R                  " 5       u  pUR                  / SQSS9  UR                  SSS9UR                  SSS9UR                  S	S
SS.S9UR                  SSSS.S9UR                  SSSS.S94nU H  nUR	                  U5        M     UR                  SS9  g )Nr   r   rM   rA   Tr   r   upper rightFr   r  r`   )r/   r  center right)r`   r   r   )r/   oyr   ztab:cyanr   )r/   oxlower rightrB   )r   r   rC   r$   r   )r+   r,   legsls       r1   test_shadow_argument_typesr    s     llnGCGGIVG$ II,tI4II-I6II-',s;  =II.'6bA  CII,'1<  >D 
a II-I r3   c                      [         R                  " 5       u  pUR                  / SQSS9  [        R                  " [
        SS9   UR                  SSS9  S S S 5        g ! , (       d  f       g = f)	Nr   r   rM   zdict or boolr*  rA   aardvarkr  )r   r   rC   r,  r-  
ValueErrorr$   r   s     r1   test_shadow_invalid_argumentr    sK     llnGCGGIVG$	z	8
		l:	6 
9	8	8s   A
A+c                      [         R                  " 5       u  pUR                  [        S5      SS9  UR	                  SSS9nUR                  5       R                  5       S:X  d   eg )NrI   r   rM   Tw)r   r  r   )r   r   rC   rx   r$   	get_frame	get_alphar   s      r1   test_shadow_framealphar    sT     llnGCGGE#JfG%
))43)
/C==?$$&!+++r3   c                     [         R                  " 5       u  pUR                  [        S5      SS9  UR	                  5       nUR                  5       R                  5       S:X  d   eUR                  5       R                  5       (       a   eg )Nr   r  rM    )r   r   rC   rx   r$   	get_titler  get_visibler   s      r1   test_legend_title_emptyr#    sk     llnGCGGE"I[G)
))+C==?##%+++}}**,,,,,r3   c                     [         R                  " SS9u  pUR                  [        S5      SS9  UR	                  5       nUR                  U R                  R                  5       5      R                  n[         R                  " SS9u  pUR                  [        S5      SS9  UR	                  5       nUR                  U R                  R                  5       5      R                  n[        R                  " US-  S5      U:X  d   eg )	NrI   r  r   AardvarkrM      r5   r`   )r   r   rC   rx   r$   r|   ry   get_rendererx0r,  approx)r+   r,   r   x01x02s        r1    test_legend_proper_window_extentr-    s    lls#GCGGE"IZG(
))+C




 7 7 9
:
=
=Clls#GCGGE"IZG(
))+C




 7 7 9
:
=
=C==Q$+++r3   c                     [         R                  " SS9u  pUR                  [        S5      SS9  UR	                  5       nU R	                  5       nU R
                  R                  5         UR                  5         UR                  5         g )NrI   r%  r   r&  rM   )r   r   rC   rx   r$   ry   rz   r|   )r+   r,   r   leg2s       r1   "test_window_extent_cached_rendererr0    sb    lls#GCGGE"IZG(
))+C::<DJJOOr3   c                  $   [         R                  " [        S5      SS9  [        R                  " [
        5         [         R                  " SSSSS.S9  S S S 5        [         R                  " S[        SSS9S	9n U R                  5       R                  5       S:X  d   e[         R                  " S
SSS9u  pUR                  nUS   R                  [        S5      SS9  US   R                  SSS9nUR                  5       R                  5       S:X  d   eUS   R                  [        S5      SS9  US   R                  SSSS.S	9nUR                  5       R                  5       S:X  d   eUS
   R                  [        S5      SS9  S [        R                  S'   US
   R                  SSS0S	9nUR                  5       R                  5       [        R                  S   :X  d   eUS   R                  [        S5      SS9  US   R                  SS9nUR                  5       R                  5       [        R                  S   :X  d   eUS   R                  [        S5      SS9  S[        R                  S'   US   R                  SSS0S	9nUR                  5       R                  5       S:X  d   eUS   R                  [        S5      SS9  US   R                  SS9nUR                  5       R                  5       S:X  d   eg ! , (       d  f       GN= f)Nr   r  rM   r&     serif)familysize)r   title_fontsizetitle_fontproperties)r   r7  r5   rk   )r   r   )rn   r   )r   r6  r   zlegend.title_fontsizer4  z	font.sizer   r   r   r   )r   rC   rx   r,  r-  r  r$   r
   r!  get_sizer   ru   get_fontsizer   r   )	r   r+   axesleg0leg1r/  leg3leg4leg5s	            r1   #test_legend_title_fontprop_fontsizerA    s   HHU2Yk*	z	"

B3:B(G	I 
# **:N.5B=@ AC==?##%+++Q73IC99DGLLr+L.7>>
2>>D>>((*b000GLLr+L.7>>
:A2/N  PD>>((*b000GLLr+L.,0CLL()7>>
08'/B  DD>>((*cll;.GGGGGLLr+L.7>>
>+D>>((*cll;.GGGGGLLr+L.,.CLL()7>>
08'/B  DD>>((*b000GLLr+L.7>>
>+D>>((*b000A 
#	"s   L  
L	alignment)r   r  r   c                     [         R                  " 5       u  pUR                  [        S5      SS9  UR	                  SU S9nUR                  5       S   R                  U :X  d   eUR                  5       U :X  d   eg )Nr   r   rM   r&  )r   rB  r   )r   r   rC   rx   r$   get_childrenrU   get_alignmentrB  r+   r,   r   s       r1   test_legend_alignmentrG    sn    llnGCGGE"IVG$
))*	)
:Ca &&)333)+++r3   r   r   c                    [         R                  " 5       u  pUR                  [        S5      SS9  UR	                  5       nUR                  U 5        UR                  5       [        R                  R                  U    :X  d   eg )Nr   r   rM   )
r   r   rC   rx   r$   set_loc_get_locr  rr   codesr   r+   r,   r   s       r1   test_ax_legend_set_locrM    s]    llnGCGGE"IVG$
))+CKK<<>W^^11#6666r3   )zoutside rightr   c                 ^   [         R                  " 5       u  pUR                  [        S5      SS9  UR	                  5       nUR                  U 5        U R                  S5      (       a  U R                  5       S   OU n UR                  5       [        R                  R                  U    :X  d   eg )Nr   r   rM   outsider   )r   r   rC   rx   r$   rI  r]  splitrJ  r  rr   rK  rL  s       r1   test_fig_legend_set_locrQ    s|    llnGCGGE"IVG$
**,CKKNN955#))+a.3C<<>W^^11#6666r3   c                    [         R                  " 5       u  pUR                  [        S5      SS9  UR	                  5       nUR                  U 5        UR                  5       S   R                  U :X  d   eUR                  5       U :X  d   eg )Nr   r   rM   r   )	r   r   rC   rx   r$   set_alignmentrD  rU   rE  rF  s       r1   test_legend_set_alignmentrT  (  su    llnGCGGE"IVG$
))+Ci a &&)333)+++r3   r/   )r  r  )r   r   r   c                 P   [         R                  " 5       u  pUR                  [        R                  " S5      [        R                  " S5      S-  SS9  UR                  [        R                  " S5      [        R                  " S5      S-  SS9  UR                  [        R                  " S5      [        R                  " S5      S-  SS9  UR                  U S	9nUR                  5        H8  n[        R                  R                  UR                  5       U 5      (       a  M8   e   g )
Nr   r   #1rM   r5   #2rk   #3
labelcolor)r   r   rC   r   rP   r$   r  r   r*   
same_color	get_colorr/   r+   r,   r   r  s        r1   test_legend_labelcolor_singler^  2  s     llnGCGGBIIbM299R=?$G7GGBIIbM299R=?$G7GGBIIbM299R=?$G7
))u)
%Czz$$T^^%5u====  r3   c                  p   [         R                  " 5       u  pUR                  [        R                  " S5      [        R                  " S5      S-  SS9  UR                  [        R                  " S5      [        R                  " S5      S-  SS9  UR                  [        R                  " S5      [        R                  " S5      S-  SS9  UR                  / S	QS
9n[        UR                  5       / S	Q5       H:  u  p4[        R                  R                  UR                  5       U5      (       a  M:   e   g )Nr   r   rV  rM   r5   rW  rk   rX  r   r   r   rY  r   r   rC   r   rP   r$   r   r  r   r*   r[  r\  r+   r,   r   r  r/   s        r1   test_legend_labelcolor_listrc  ?  s    llnGCGGBIIbM299R=?$G7GGBIIbM299R=?$G7GGBIIbM299R=?$G7
)))
/C3==?O<zz$$T^^%5u==== =r3   c                  r   [         R                  " 5       u  pUR                  [        R                  " S5      [        R                  " S5      S-  SSS9  UR                  [        R                  " S5      [        R                  " S5      S-  SSS9  UR                  [        R                  " S5      [        R                  " S5      S	-  S
SS9  UR                  SS9n[        UR                  5       / SQ5       H:  u  p4[        R                  R                  UR                  5       U5      (       a  M:   e   g )Nr   r   rV  r   r   r/   r5   rW  r   rk   rX  r   	linecolorrY  r`  ra  rb  s        r1    test_legend_labelcolor_linecolorrg  K  s    llnGCGGBIIbM299R=?$cGBGGBIIbM299R=?$cGBGGBIIbM299R=?$cGB
)){)
+C3==?O<zz$$T^^%5u==== =r3   c                  r   [         R                  " 5       u  pUR                  [        R                  " S5      [        R                  " S5      S-  SSS9  UR                  [        R                  " S5      [        R                  " S5      S-  SSS9  UR                  [        R                  " S5      [        R                  " S5      S	-  S
SS9  UR                  SS9n[        UR                  5       / SQ5       H:  u  p4[        R                  R                  UR                  5       U5      (       a  M:   e   g )Nr   r   rV  r   r   r5   rW  r   rk   rX  r   rf  rY  r`  r   r   r    r   rP   r$   r   r  r   r*   r[  r\  rb  s        r1   /test_legend_pathcollection_labelcolor_linecolorrj  W  s    llnGCJJryy}biimAoTSJAJJryy}biimAoTSJAJJryy}biimAoTSJA
)){)
+C3==?O<zz$$T^^%5u==== =r3   c                     [         R                  " 5       u  p[        R                  " / SQS-  5      nUR	                  [        R
                  " S5      [        R
                  " S5      SUS9  UR                  SS9nUR                  5       u  n[        R                  R                  UR                  5       S5      (       d   eg )	Nr   r   r   r   rT   r5   r   rV  r   rf  rY  black)r   r   r   r   r    rP   r$   r  r   r*   r[  r\  )r+   r,   r*   r   r  s        r1   8test_legend_pathcollection_labelcolor_linecolor_iterablern  c  s     llnGCXX/!34FJJryy}biim46JB
)){)
+CMMOED::  !17;;;;r3   c                  z   [         R                  " 5       u  pUR                  [        R                  " S5      [        R                  " S5      [        R                  " S5      SS9  UR                  SS9nUR                  5       u  n[        R                  R                  UR                  5       S5      (       d   eg )Nr   rV  )r   r   rf  rY  rm  )r   r   r    r   rP   r$   r  r   r*   r[  r\  )r+   r,   r   r  s       r1   4test_legend_pathcollection_labelcolor_linecolor_cmaprp  o  s~     llnGCJJryy}biimryy}DJI
)){)
+CMMOED::  !17;;;;r3   c                  r   [         R                  " 5       u  pUR                  [        R                  " S5      [        R                  " S5      S-  SSS9  UR                  [        R                  " S5      [        R                  " S5      S-  SSS9  UR                  [        R                  " S5      [        R                  " S5      S	-  S
SS9  UR                  SS9n[        UR                  5       / SQ5       H:  u  p4[        R                  R                  UR                  5       U5      (       a  M:   e   g )Nr   r   rV  r   r   markeredgecolorr5   rW  r   rk   rX  r   rs  rY  r`  ra  rb  s        r1   &test_legend_labelcolor_markeredgecolorrt  z      llnGCGGBIIbM299R=?$GLGGBIIbM299R=?$GLGGBIIbM299R=?$GL
))0)
1C3==?O<zz$$T^^%5u==== =r3   c                  r   [         R                  " 5       u  pUR                  [        R                  " S5      [        R                  " S5      S-  SSS9  UR                  [        R                  " S5      [        R                  " S5      S-  SSS9  UR                  [        R                  " S5      [        R                  " S5      S	-  S
SS9  UR                  SS9n[        UR                  5       / SQ5       H:  u  p4[        R                  R                  UR                  5       U5      (       a  M:   e   g )Nr   r   rV  r   r   r   r5   rW  r   rk   rX  r   rs  rY  r`  ri  rb  s        r1   5test_legend_pathcollection_labelcolor_markeredgecolorrx        llnGCJJryy}biimAoTSJIJJryy}biimAoTSJIJJryy}biimAoTSJI
))0)
1C3==?O<zz$$T^^%5u==== =r3   c                     [         R                  " 5       u  p[        R                  " / SQS-  5      nUR	                  [        R
                  " S5      [        R
                  " S5      SUS9  UR                  SS9n[        UR                  5       S/5       H:  u  pE[        R                  R                  UR                  5       U5      (       a  M:   e   g )	Nrl  r5   r   rV  rw  rs  rY  r  r   r   r   r   r    rP   r$   r   r  r   r*   r[  r\  r+   r,   r*   r   r  r/   s         r1   >test_legend_pathcollection_labelcolor_markeredgecolor_iterabler}         llnGCXX/!34FJJryy}biim46JJ
))0)
1C3==?SE2zz$$T^^%5u==== 3r3   c            	         [         R                  " 5       u  p[        R                  R	                  [
        R                  R                  S5      5      nUR                  [
        R                  " S5      [
        R                  " S5      S[
        R                  " S5      USS9  UR                  SS9n[        UR                  5       S/5       H:  u  pE[        R                  R                  UR                  5       U5      (       a  M:   e   g )Nr   rV  Reds)r   r   r   cmaprs  rY  r  r   r   r   cmviridisr   r   r  r    rP   r$   r   r  r*   r[  r\  )r+   r,   r  r   r  r/   s         r1   :test_legend_pathcollection_labelcolor_markeredgecolor_cmapr    s     llnGC		r 23JJJ
		"
		"
))B-   ))0)
1C3==?SE2zz$$T^^%5u==== 3r3   c                  r   [         R                  " 5       u  pUR                  [        R                  " S5      [        R                  " S5      S-  SSS9  UR                  [        R                  " S5      [        R                  " S5      S-  SSS9  UR                  [        R                  " S5      [        R                  " S5      S	-  S
SS9  UR                  SS9n[        UR                  5       / SQ5       H:  u  p4[        R                  R                  UR                  5       U5      (       a  M:   e   g )Nr   r   rV  r   r   markerfacecolorr5   rW  r   rk   rX  r   r  rY  r`  ra  rb  s        r1   &test_legend_labelcolor_markerfacecolorr    ru  r3   c                  r   [         R                  " 5       u  pUR                  [        R                  " S5      [        R                  " S5      S-  SSS9  UR                  [        R                  " S5      [        R                  " S5      S-  SSS9  UR                  [        R                  " S5      [        R                  " S5      S	-  S
SS9  UR                  SS9n[        UR                  5       / SQ5       H:  u  p4[        R                  R                  UR                  5       U5      (       a  M:   e   g )Nr   r   rV  r   r   r  r5   rW  r   rk   rX  r   r  rY  r`  ri  rb  s        r1   5test_legend_pathcollection_labelcolor_markerfacecolorr    ry  r3   c                     [         R                  " 5       u  p[        R                  " / SQS-  5      nUR	                  [        R
                  " S5      [        R
                  " S5      SUS9  UR                  SS9n[        UR                  5       S/5       H:  u  pE[        R                  R                  UR                  5       U5      (       a  M:   e   g )	Nrl  r5   r   rV  r  r  rY  r  r{  r|  s         r1   >test_legend_pathcollection_labelcolor_markerfacecolor_iterabler    r~  r3   c                     [         R                  " 5       u  p[        R                  R	                  [
        R                  R                  S5      5      nUR                  [
        R                  " S5      [
        R                  " S5      SUS9  UR                  SS9n[        UR                  5       S/5       H:  u  pE[        R                  R                  UR                  5       U5      (       a  M:   e   g )Nr   rV  r   r  rY  r  r  r|  s         r1   8test_legend_pathcollection_labelcolor_markfacecolor_cmapr    s     llnGCVV^^BIINN2./FJJ
		"
		"
	   ))0)
1C3==?SE2zz$$T^^%5u==== 3r3   c                 x   [         R                  " 5       u  pUR                  [        R                  " S5      [        R                  " S5      S-  SS9  UR                  [        R                  " S5      [        R                  " S5      S-  SS9  UR                  [        R                  " S5      [        R                  " S5      S-  SS9  U [
        R                  S	'   UR                  5       nUR                  5        H8  n[
        R                  R                  UR                  5       U 5      (       a  M8   e   g )
Nr   r   rV  rM   r5   rW  rk   rX  legend.labelcolor)r   r   rC   r   rP   r   r   r$   r  r*   r[  r\  r]  s        r1   %test_legend_labelcolor_rcparam_singler    s     llnGCGGBIIbM299R=?$G7GGBIIbM299R=?$G7GGBIIbM299R=?$G7(-CLL$%
))+Czz$$T^^%5u====  r3   c                     [         R                  " 5       u  pUR                  [        R                  " S5      [        R                  " S5      S-  SSS9  UR                  [        R                  " S5      [        R                  " S5      S-  SSS9  UR                  [        R                  " S5      [        R                  " S5      S	-  S
SS9  S[
        R                  S'   UR                  5       n[        UR                  5       / SQ5       H:  u  p4[
        R                  R                  UR                  5       U5      (       a  M:   e   g )Nr   r   rV  r   re  r5   rW  r   rk   rX  r   rf  r  r`  r   r   rC   r   rP   r   r   r$   r   r  r*   r[  r\  rb  s        r1   (test_legend_labelcolor_rcparam_linecolorr    s    llnGCGGBIIbM299R=?$cGBGGBIIbM299R=?$cGBGGBIIbM299R=?$cGB(3CLL$%
))+C3==?O<zz$$T^^%5u==== =r3   c                     [         R                  " 5       u  pUR                  [        R                  " S5      [        R                  " S5      S-  SSS9  UR                  [        R                  " S5      [        R                  " S5      S-  SSS9  UR                  [        R                  " S5      [        R                  " S5      S	-  S
SS9  S[
        R                  S'   UR                  5       n[        UR                  5       / SQ5       H:  u  p4[
        R                  R                  UR                  5       U5      (       a  M:   e   g )Nr   r   rV  r   rr  r5   rW  r   rk   rX  r   rs  r  r`  r  rb  s        r1   .test_legend_labelcolor_rcparam_markeredgecolorr        llnGCGGBIIbM299R=?$GLGGBIIbM299R=?$GLGGBIIbM299R=?$GL(9CLL$%
))+C3==?O<zz$$T^^%5u==== =r3   c                     [         R                  " 5       u  pUR                  [        R                  " S5      [        R                  " S5      S-  SSS9  UR                  [        R                  " S5      [        R                  " S5      S-  SSS9  UR                  [        R                  " S5      [        R                  " S5      S	-  S
SS9  S[
        R                  S'   UR                  5       n[        UR                  5       / SQ5       H:  u  p4[
        R                  R                  UR                  5       U5      (       a  M:   e   g )Nr   r   rV  r   rr  r5   rW  r   rk   rX  r   mecr  r`  r  rb  s        r1   4test_legend_labelcolor_rcparam_markeredgecolor_shortr        llnGCGGBIIbM299R=?$GLGGBIIbM299R=?$GLGGBIIbM299R=?$GL(-CLL$%
))+C3==?O<zz$$T^^%5u==== =r3   c                     [         R                  " 5       u  pUR                  [        R                  " S5      [        R                  " S5      S-  SSS9  UR                  [        R                  " S5      [        R                  " S5      S-  SSS9  UR                  [        R                  " S5      [        R                  " S5      S	-  S
SS9  S[
        R                  S'   UR                  5       n[        UR                  5       / SQ5       H:  u  p4[
        R                  R                  UR                  5       U5      (       a  M:   e   g )Nr   r   rV  r   r  r5   rW  r   rk   rX  r   r  r  r`  r  rb  s        r1   .test_legend_labelcolor_rcparam_markerfacecolorr    r  r3   c                     [         R                  " 5       u  pUR                  [        R                  " S5      [        R                  " S5      S-  SSS9  UR                  [        R                  " S5      [        R                  " S5      S-  SSS9  UR                  [        R                  " S5      [        R                  " S5      S	-  S
SS9  S[
        R                  S'   UR                  5       n[        UR                  5       / SQ5       H:  u  p4[
        R                  R                  UR                  5       U5      (       a  M:   e   g )Nr   r   rV  r   r  r5   rW  r   rk   rX  r   mfcr  r`  r  rb  s        r1   4test_legend_labelcolor_rcparam_markerfacecolor_shortr  (  r  r3   z4ignore:No artists with labels found to put in legendc                      [         R                  " 5       n U R                  5       (       a   eU R                  S5        U R                  5       (       d   eU R                  S5        U R                  5       (       a   eg )NTF)r   r$   get_draggableset_draggabler$   s    r1   test_get_set_draggabler  5  sk    ZZ\F##%%%%
!!!!
##%%%%%r3   	draggable)TFc                     [         R                  " 5       u  pUR                  [        S5      SS9  UR	                  U S9nUR                  5       U L d   eg )Nr   shabnamsrM   )r  )r   r   rC   rx   r$   r  )r  r+   r,   r   s       r1   test_legend_draggabler  ?  sJ    llnGCGGE"IZG(
))i)
(C)+++r3   c                  b   [         R                  " / SQSSSS9u  pn[         R                  " 5       nUR                   H  nUR	                  S5        M     WR                  5       S S US   R                  5       S S :X  d   eUR                  5       S S US   R                  5       S S :X  d   eg )	Nr   g      ?datar  )r  r   r/   rf   rV   r   )r   rw   r$   r  	set_alphaget_facecolorget_edgecolor)r-   r  hhr$   r  s        r1   test_alpha_handlesr  G  s    xx	V5IHA"ZZ\F##
S $cr"be&9&9&;CR&@@@@cr"be&9&9&;CR&@@@@r3   c                 <   S[         R                  S'   S[         R                  S'   S[         R                  S'   [        R                  " 5       u  pUR	                  SSSS	9  UR                  S
S9  UR                  R                  5         SU R                  ;  d   eg )Nr3  zfont.familyzComputer Modernz
font.serifTztext.usetexr   inputrM   r   r8  z Font family ['serif'] not found.)	r   r   r   r   rC   r$   ry   rz   r  )caplogr+   r,   s      r1   test_usetex_no_warnr  P  sy    ")CLL!2CLL"&CLLllnGCGGAqG IIKI JJOO-V[[@@@r3   c                   ^ [         R                  " SSS9mU R                  [        SU4S j5        [        R
                  " 5       u  pUR                  R                  5         / SQn/ SQnUR                  X4SS	S
9  [        SS05         UR                  5       nS S S 5        [        R                  " [        SS9 nUR                  W5        S S S 5        [        W5      S:X  d   eg ! , (       d  f       NS= f! , (       d  f       N1= f)Nr         ?ro   perf_counterc                     > [        T 5      $ r7   nextcounters   r1   <lambda>-test_warn_big_data_best_loc.<locals>.<lambda>a  	    d7mr3   r^   ra   rd   r:   rM   z
legend.locrO   zGCreating legend with loc="best" can be slow with large amounts of data.r*  r5   )	itertoolscountsetattrtimer   r   ry   rz   rC   r	   r$   r,  rY  r   draw_artistr   )monkeypatchr+   r,   r-   r.   r$   recordsr  s          @r1   test_warn_big_data_best_locr  ^  s    ooac*Gn.CDllnGCJJOO 	'A*AGGA$fG%	\6*	+ 
,	k)
*-4
* w<1 
,	+
* 
*s   	C';C8'
C58
Dc                 >  ^ [         R                  " SSS9mU R                  [        SU4S j5        [        R
                  " 5       u  pUR                  R                  5         / SQn/ SQnUR                  X4SS	S
9  UR                  S5      nUR                  U5        g )Nr   r  r  r  c                     > [        T 5      $ r7   r  r  s   r1   r  :test_no_warn_big_data_when_loc_specified.<locals>.<lambda>y  r  r3   r^   ra   rd   r:   rM   rO   )r  r  r  r  r   r   ry   rz   rC   r$   r  )r  r+   r,   r-   r.   r$   r  s         @r1   (test_no_warn_big_data_when_loc_specifiedr  v  sy    ooac*Gn.CDllnGCJJOO 	'A*AGGA$fG%YYvFOOFr3   label_arraylowhigh)r  r  c                    / SQnSS/SS/SS//n[         R                  " 5       u  p4UR                  XU S9  UR                  5       nUR	                  5        Vs/ s H  ofR                  5       PM     nnUSS	/:X  d   eg s  snf )
Nr   r   r5   r   r   rq   rM   r  r  )r   r   rC   r$   r  r  )r  r-   r.   r+   r,   r   entrylegend_textss           r1   'test_plot_multiple_input_multiple_labelr    s     	A
Q
Q
Q	A llnGCGGAG$
))+C25--/B/NN$/LBE6?*** Cs   A?r   r   r   c                    / SQnSS/SS/SS//n[         R                  " 5       u  p4UR                  XU S9  UR                  5       nUR	                  5        Vs/ s H  ofR                  5       PM     nnU[        U 5      /S-  :X  d   eg s  snf )Nr   r   r5   r   r   rq   rM   )r   r   rC   r$   r  r  r[  )r   r-   r.   r+   r,   r   r  r  s           r1   %test_plot_multiple_input_single_labelr    s     	A
Q
Q
Q	A llnGCGGAG
))+C25--/B/NN$/LBCJ<!++++ Cs   B
c                    / SQn/ SQn[         R                  " 5       u  p4[        R                  " [        R
                  SS9   UR                  XU S9  S S S 5        UR                  5       n[        UR                  5       5      S:X  d   eUR                  5       S   R                  5       [        U 5      :X  d   eg ! , (       d  f       Nn= f)Nr   )r5   r   r   z$Passing label as a length 2 sequencer*  rM   r   r   )r   r   r,  rY  r   MatplotlibDeprecationWarningrC   r$   r   r  r  r[  )r  r-   r.   r+   r,   r   s         r1   %test_plot_single_input_multiple_labelr    s     	AAllnGC	c66B
D
K(
D ))+Cs}}1$$$==?1&&(C,<<<<
D 
Ds   B<<
C
c                      [         R                  " 5       u  pUR                  S/S//S/S9u  nUR                  5       S:X  d   eg )Nr   r   ArM   )r   r   rC   	get_label)r+   r,   r:   s      r1   !test_plot_single_input_list_labelr    sB    llnGCGGaS1#JseG,ED>>s"""r3   c                      [         R                  " [        5         / SQn SS/SS/SS//n/ SQn[        R                  " 5       u  p4UR                  XUS9  S S S 5        g ! , (       d  f       g = f)	Nr   r   r5   r   r   rq   )r  r  mediumrM   )r,  r-  r  r   r   rC   )r-   r.   r   r+   r,   s        r1   3test_plot_multiple_label_incorrect_length_exceptionr    sa     
z	"VVV *,,.
E" 
#	"	"s   ;A
A-c            	          [         R                  " 5       u  pUR                  / SQ/ SQ/ SQSSSS9  UR                  5         g )Nrd  r   r   r   faceFill)r  r   r   )r   r   r   r$   r   s     r1   test_legend_face_edgecolorr    s7    llnGCOOIy)!V6  CIIKr3   c                      [         R                  " 5       u  pUR                  SS/SS/SS9  UR                  5       nUR                  UL d   eUR                  5       S   R                  UL d   eg )Nr   r5   rk   r   r:   rM   r   )r   r   rC   r$   r;  r  r   s      r1   test_legend_text_axesr    sc    llnGCGGQFQF&G)
))+C88r>>==?1""b(((r3   c                     [         R                  " 5       u  pUR                  SS/SS/SS9  [        R                  " S/S/SS9/nUR                  US/SS9nUS   R                  5       UR                  S   R                  5       :X  d   eg )Nr   r   r  )r  r&  r  )r   r   r    mlinesLine2Dr$   r  r  )r+   r,   r0   r   s       r1   test_handlerline2dr    s    llnGCJJ1v1vcJ*}}aS1#c23G
))Gj\Q)
7C1:  "c&8&8&;&F&F&HHHHr3   c                      [         R                  " 5       R                  5       n U R                  5       nUR	                  SS/SS/SS9  U R                  5       nUR                  SS9U L d   eg )Nr   r   r:   rM   F)root)r   r   
subfiguresr   rC   r$   
get_figure)subfigr,   r   s      r1   test_subfigure_legendr    s`    ZZ\$$&F		BGGQFQF&G)
--/C>>u>%///r3   c                     [         R                  " SS/SS/SSS9n [         R                  " 5       R                  5       S   nUR	                  S5        UR                  5       S S [        U R                  5       S   S S 5      :X  d   eUR                  5       S S [        U R                  5       S   S S 5      :X  d   eg )	Nr   r   r5   rk   z#123456r   )r/   r   r   )r   r   r$   get_patchesr  r  tupler  )pcr   s     r1   -test_setting_alpha_keeps_polycollection_colorr    s    			1a&1a&		IBJJL$$&q)E	OOC !$b.>.>.@.CBQ.G(HHHH !$b.>.>.@.CBQ.G(HHHHr3   c            
          / SQn [         R                  " 5       u  pU  Vs/ s H  n[        R                  " S/S/SUS9PM     nn/ SQnU Vs/ s H  ofR	                  5       PM     nnUR                  XE5      nUR                  5        Vs/ s H  ofR	                  5       PM     n	nUR                  5        V
s/ s H  oR                  5       PM     nn
Xys=:X  a  U :X  d   e   eX[:X  d   eg s  snf s  snf s  snf s  sn
f )N)r   *r  r   None)lsr  )r  rY   xyzzy)	r   r   r  r  r  r$   rD   r  r  )_markersr+   r,   markr   r)   r:   r
  r$   new_markersr  
new_labelss               r1   test_legend_markers_from_line2dr     s    HllnGC!#! ]]A3t<! 
 #$F-23UT UG3YYu%F171A1A1CD1C??$1CKD.4.>.>.@A.@d--/.@JA-X-----# 4 EAs   #C,C1C68C;c                 L    / SQnSnU R                  X#S9  UR                  X#S9  g )N)r   r   r   r   er  rk   )ncol)rm   r  )r  r  stringsrm   s       r1   test_ncol_ncolsr  	  s*     -GEOOGO(NN7N(r3   c                     [         R                  " 5       u  p[        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        [        R                  " [        SS9   UR                  S	S/S9  S S S 5        g ! , (       d  f       Nu= f! , (       d  f       NS= f! , (       d  f       g = f)
NzFloc must be string, coordinate tuple, or an integer 0-10, not \(1.1,\)r*  )r   r  r   r)   zWloc must be string, coordinate tuple, or an integer 0-10, not \(0.481, 0.4227, 0.4523\))bX9?g:M?gm{?zRloc must be string, coordinate tuple, or an integer 0-10, not \(0.481, 'go blue'\))r  zgo bluer   r   r,  r-  r  r$   r   s     r1    test_loc_invalid_tuple_exceptionr
    s     llnGC	z +C 
E
		g{m	4
E 
z +T 
V
		-{m	D
V 
z +Q 
S
		(+	?
S 
S
E 
E
V 
V
S 
Ss#   B2$CC2
C 
C
C"c                  v    [         R                  " 5       u  pUR                  SS/S9  UR                  SS/S9  g )N)r  }?5^I?r  r  )r   r5   r   r   r$   r   s     r1   test_loc_valid_tupler  #  s3    llnGCII.+I7II&+I/r3   c                  ~    [         R                  " 5       u  pUR                  SS/S/S9  UR                  SS/S/S9  g )Nr  r  r  r  r   r5   r  r   s     r1   test_loc_valid_listr  )  s;    llnGCII5%.+I7II1a&+I/r3   c                      [         R                  " 5       u  p[        R                  " [        SS9   UR                  / SQS/S9  S S S 5        g ! , (       d  f       g = f)NzOloc must be string, coordinate tuple, or an integer 0-10, not \[1.1, 2.2, 3.3\]r*  )r   r  gffffff
@r  r  r	  r   s     r1   test_loc_invalid_list_exceptionr  /  sI    llnGC	z +L 
N
		o{m	<
N 
N 
N   A
Ac                      [         R                  " 5       u  p[        R                  " [        SS9   UR                  SS0S/S9  S S S 5        g ! , (       d  f       g = f)NzKloc must be string, coordinate tuple, or an integer 0-10, not {'not': True}r*  notTr  r  r	  r   s     r1   test_loc_invalid_typer  6  sM    llnGC	z +F 
H
		udm[M	:
H 
H 
Hr  c                     [         R                  " 5       u  pUR                  SS/S9  UR                  SS/S9  UR                  SS/S9  UR                  SS/S9  [        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       NB= f! , (       d  f       g = f)Nr   r  r  r   r   r   z@loc must be string, coordinate tuple, or an integer 0-10, not 11r*  r?  z@loc must be string, coordinate tuple, or an integer 0-10, not -1rV   r   r   r$   r,  r-  r  r   s     r1   !test_loc_validation_numeric_valuer  =  s    llnGCII![MI*II![MI*II![MI*II"k]I+	z +; 
=
		b+	/
= 
z +; 
=
		b+	/
= 
=	
= 
=
= 
=s   5C(C
C
C"c                  >   [         R                  " 5       u  pS/nUR                  SUS9  UR                  SUS9  UR                  SUS9  UR                  SUS9  UR                  SUS9  UR                  SUS9  UR                  SUS9  UR                  SUS9  UR                  S	US9  UR                  S
US9  UR                  SUS9  UR                  SUS9  [        R                  " [
        SS9   UR                  SUS9  S S S 5        g ! , (       d  f       g = f)Nr  rO   r  r  rA   r   r  r   r   r  zlower centerzupper centerz 'wrong' is not a valid value forr*  wrongr  )r+   r,   r)   s      r1    test_loc_validation_string_valuer  L  s   llnGC]FII&I(II-I/II&I(II-I/II,vI.II,vI.II-I/II'&I)II-I/II.I0II.I0II.I0	z)K	L
		gf	- 
M	L	Ls   4D
Dc                     [         R                  " [        S5      5      u  n [         R                  " [        S5      5      u  n[        R                  " [
        SS9   [         R                  " X// SQS9n[        UR                  5      S:X  d   e[        UR                  5       5      S:X  d   e S S S 5        g ! , (       d  f       g = f)Nr   znumber of handles and labelsr*  pl1pl2pl3r0   r)   r5   )
r   rC   rx   r,  rY  r   r$   r   r  r  r  r   r$   s      r1   !test_legend_handle_label_mismatchr$  _  s    88E"IDC88E"IDC	k)G	HSJ7LM6(()Q...6##%&!+++ 
I	H	Hs   AB99
Cc                  P   [         R                  " [        S5      5      u  n [         R                  " [        S5      5      u  n[         R                  " [	        X/5      [	        / SQ5      S9n[        UR                  5      S:X  d   e[        UR                  5       5      S:X  d   eg )Nr   r  r"  r5   )r   rC   rx   r$   iterr   r  r  r#  s      r1   (test_legend_handle_label_mismatch_no_lenr'  h  s    88E"IDC88E"IDCZZcZ 0#$9:<Fv$$%***v!"a'''r3   c                      [         R                  " / SQ5        [        R                  " [        SS9   [         R
                  " 5         S S S 5        g ! , (       d  f       g = f)Nr   zNo artists with labels foundr*  )r   rC   r,  r-  r   r$   r8   r3   r1   test_legend_nolabels_warningr)  q  s3    HHY	{*H	I

 
J	I	Is   A
Ac                      [         R                  " / SQ5        [         R                  " 5         [         R                  " 5       R	                  5       c   eg )Nr   )r   rC   r$   r!  r   r8   r3   r1   test_legend_nolabels_drawr+  w  s2    HHYJJL779!---r3   c            
      $   / SQn / SQn/ SQn/ n[         R                  " SSS9u  pE[        UR                  S5       H  u  pgUR	                  XUSS	S
S9  UR                  SS5        UR                  SS5        UR                  US9nUR                  R                  5         UR                  UR                  5       R                  UR                  R                  5       5      5        M     [        US   R                   US   R                   5        g )Nr   )r   r   r   )r   r   r   r5   r   r   rl   rO   r   grayr   zShaded Area)r/   r  r   r   r   rV   r   rB   r   )r   r   r   ru   r   rg   rh   r$   ry   rz   r{   r|   r}   r~   r   r   r   )	r-   r  r  r   r+   r   r,   r   r   s	            r1   test_legend_loc_polycollectionr0  ~  s     	A	B	BJ||!W5HCsxx!78
rs-P
Aq
BiiCi 

!!#//0E0E0GH	J 9 JqM((*Q-*>*>?r3   c                     [         R                  " SSS9u  p/ n[        UR                  S5       H  u  p4SS/nSS/nUR	                  XVSS9  UR                  SSS	S
S9  UR                  US9nU R                  R                  5         UR                  UR                  5       R                  UR                  R                  5       5      5        M     [        US   R                  US   R                  5        g )Nr5   r-  rl   r.  r   z	plot namerM   r  zsome text blahblahtop)verticalalignmentrB   r   )r   r   r   ru   rC   r  r$   ry   rz   r{   r|   r}   r~   r   r   r   )r+   r   r   r,   r   r-   r.   r   s           r1   test_legend_textr4    s     ||!W5HCJsxx!78FF
K(
Q,FiiCi 

!!#//0E0E0GH	J 9 JqM((*Q-*>*>?r3   c                     [         R                  " 5       u  pUR                  / SQSS9  UR                  SSS9  UR	                  SS9  [
        R                  R                  U S	U R                  S
9 nU R                  [        R                  " 5       5        S S S 5        WR                  5         g ! , (       d  f       N= f)Nr   LinerM   r   )r   r   )r   r   rB   _get_renderer)wraps)r   r   rC   annotater$   r   r   objectr7  savefigioBytesIOassert_not_called)r+   r,   mocked_get_renderers      r1   test_legend_annotater@    s    llnGCGGIVG$KKKII!I			(9(9 
 
;>QBJJL!
;
 ))+
; 
;s   2%B00
B>c                     [         R                  R                  S5        [         R                  R                  S5      n [        R                  " SSS9u  p/ SQnUS   R                  U SUS	9nUS
    Vs/ s H  oUR                  5       PM     snU:X  d   eUS   R                  5       u  pgXs:X  d   e[        S U 5       5      (       d   eUS   R                  XSS9nUS    Vs/ s H  oUR                  5       PM     snU:X  d   eUS   R                  5       u  pgXs:X  d   e[        S U 5       5      (       d   e[        R                  " [        SS9   US   R                  XS S S9n	S S S 5        US   R                  U SS9n
U
S   S   R                  5       S:X  d   e[        S U
S   SS   5       5      (       d   eg s  snf s  snf ! , (       d  f       Ng= f)Ni!N,)r   r   r   r   )nrowsrm   )box Azbox Bzbox Czbox Dr   T)patch_artistr   boxesc              3   j   #    U  H)  n[        U[        R                  R                  5      v   M+     g 7fr7   )
isinstancer   patches	PathPatchr9   r  s     r1   r;   -test_boxplot_legend_labels.<locals>.<genexpr>  s$     EWz!S[[2233W   13F)r   showboxmediansc              3   j   #    U  H)  n[        U[        R                  R                  5      v   M+     g 7fr7   )rG  r   r   r  rJ  s     r1   r;   rK    s$     @1z!SYY--..rL  z values must have same the lengthr*  r5   rV   rM   rk   rC  c              3   ^   #    U  H#  oR                  5       R                  S 5      v   M%     g7f)_N)r  r]  )r9   r-   s     r1   r;   rK    s$     I6H{{}'',,6Hs   +-)r   r   seedr   r   boxplotr  r!   allr,  r-  r  )r  r+   r   legend_labelsbp1r  r0   r)   bp2bp3bp4s              r1   test_boxplot_legend_labelsrZ    s   IINN899G$D||!1-HC8M a&..D.
FC#&w<0<aKKM<0MAAA!f668OG"""EWEEEEE a&..E.
BC#&y>2>aKKM>2mCCC!f668OG"""@@@@@@ 
z)K	L!fnnTs);n< 
M a&..W.
-Cy>!&&(G333Ic)nQR6HIIIII) 1 3 
M	Ls   5G&GG
G)r"   r<  r  platformr  unittestr   r  numpyr   numpy.testingr   r,  matplotlib.testing.decoratorsr   r   matplotlib.testing._markersr   matplotlib.pyplotpyplotr   
matplotlibr   matplotlib.patchesrH  r   matplotlib.transforms
transformsr  matplotlib.collectionsr  matplotlib.linesr   r  matplotlib.legend_handlerr   matplotlib.legendr$   r  r	   matplotlib.font_managerr
   r2   rE   rQ   r\   ri   r   r   r   machiner   r   r   r   r   r   r   r   r   r   r  r  r  rs  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r#  r-  r0  rA  r  parametrizerG  rM  rQ  rT  r^  rc  rg  rj  rn  rp  rt  rx  r}  r  r  r  r  r  r  r  r  r  r  r  filterwarningsr  r  r  r  r  r  r   r  intr  r  r  r  r  r  r  r  r  r   r  r
  r  r  r  r  r  r  r$  r'  r)  r+  r0  r4  r@  rZ  r8   r3   r1   <module>rp     s    	       )  O 4   % + - ! 2 # ! 29$	1 %&D9 : %&D9: :: %&' (@,@@ ./TB' C' ,-4#++-9auF-F- -.D#++-9auF	IF	I #$$#++-9atE2E2 &'T#++-9atE	6E	6 ;-Tt<
E =
E <.d#++-9auFF $&78dK! L!  &'T:8 ;8 :,D	B. C.B#5$ (
 )
]N ]N@5 5p&#R )*#++-9auFF( -./" 0" 789+ :+:('" ./T#++-9auF!F!*7,-,#1L &AB, C,  347 57  ;<7 =7 &AB, C, "?@	> A	>	>	>	>	<<	>	>	>>&	>	>	>>" "?@
> A
>
>
>
>
>
> RS& T& m4, 5,A 
A 
A0" %)8)+5&/)B)D E+E+ 5!S/2, 3, %)8)+5&/)B)D E=E=#
#)I0I " () ))@"00=;0.&,( RS. T.@&@",Jr3   