
    Ng:              	       
   d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlZd dl	m
Z
 d dlZd dlmZmZ d dlmZ d dlmZ d dlZd dlmZ d dlmZ d dlm Z d dlmZ  d dl!m"Z" d dl#m$Z% d dlm&Z&m'Z' d dl(m)Z) d	 Z* ed
gd          d             Z+ edgd          d             Z, edg          d             Z-d Z.d Z/ edgd          d             Z0d Z1 edgd ej2                    dk    rdnd           d             Z3 edgd ej2                    dk    rdnd           d             Z4 edgd ej2                    dk    rd nd           d!             Z5 ed"gd ej2                    dk    rd nd           d#             Z6 ed$gdd%          d&             Z7 ed'gd ej2                    dk    rd nd(          d)             Z8 ed*d+gd          d,             Z9 ed-gd          d.             Z: ed/gdd01          d2             Z;d3 Z<d4 Z= ed5g6          d7             Z> G d8 d9          Z? G d: d;          Z@d< ZA ed=g ej2                    dk    rd>nd ?          d@             ZBdA ZCdB ZDdC ZE edDg          dE             ZF edFg          dG             ZGdH ZHdI ZIdJ ZJdK ZK edLgddM ej2                    dk    rdNnd O          dP             ZLdQ ZMdR ZNdS ZOdT ZPdU ZQdV ZRejS        T                    dWdX          dY             ZUejS        T                    dZd[          d\             ZVejS        T                    dZd]          d^             ZWejS        T                    dWdX          d_             ZXejS        T                    d`da          db             ZYdc ZZdd Z[de Z\df Z]dg Z^dh Z_di Z`dj Zadk Zbdl Zcdm Zddn Zedo ZfejS        T                    d`da          dp             Zgdq Zhdr Zids Zjdt Zkdu ZlejS        m                    dv          dw             ZnejS        T                    dxdy          dz             Zod{ Zped|             Zqd} Zrd~ ZsejS        T                    dddgd ejt        ddg          g          d             ZuejS        T                    dddevg          d             ZwejS        T                    dddgd ejt        ddg          g          d             Zxd Zyd Zzd Z{d Z|d Z}d Z~d Zd Z e            d             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZejS        m                    dv          d             Zd Zd Zd ZdS )    N)mock)assert_allclose)check_figures_equalimage_comparison)needs_usetex)HandlerTuple)_api
rc_context)FontPropertiesc                  4   t           j                            d          } t           j                            d          }dgdz  dgdz  z   }dgdz  dgdz  z   }t          j                    \  }}t          | |||          D ] \  }}}}	|                    ||||	           !|                                \  }
}t          j	        t          ||
                    }|
                    |                                |                                dd	
           d S )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               X/var/www/html/ai-engine/env/lib/python3.11/site-packages/matplotlib/tests/test_legend.pytest_legend_ordereddictr3      s    		A
	AUQY#"FUQY#"FlnnGC!!Q77 / /1eU


1au
....2244OGV$S%9%9::FIIfmmoov{{}}  9 9 9 9 9    legend_auto1T)remove_textc                      t          j                    \  } }t          j        d          }|                    |d|z
  dd           |                    ||dz
  dd           |                    d           d	S )
Test automatic legend placementd   2   oy=1r   y=-1bestr   N)r   r   r   arangeplotr%   )r,   r-   r.   s      r2   test_legend_auto1rC   ,   sv     lnnGC
	#AGGArAvs%G(((GGAq2vs&G)))II&Ir4   legend_auto2c                      t          j                    \  } }t          j        d          }|                    ||dd          }|                    ||ddd         dd          }|                    |d         |d         gd	d
gd           dS )r8   r9   edgem)alignr0   Nr   r   updownr?   r@   )r   r   r   rA   barr%   )r,   r-   r.   b1b2s        r2   test_legend_auto2rO   6   s     lnnGC
	#A	1F#	.	.B	1TTrT7&	4	4BIIr!ubentVn&I99999r4   legend_auto3c                      t          j                    \  } }g d}g d}|                    ||dd           |                    dd           |                    dd           |                    d	           d
S )r8   ?皙?rT   rS   rS   r   ffffff?rV   皙?rW   r   r   o-liner=                 ?r?   r@   N)r   r   rB   set_xlimset_ylimr%   )r,   r-   r.   r/   s       r2   test_legend_auto3r^   @   s     lnnGC&&&A***AGGAq$fG%%%KKSKKSII&Ir4   c                     t          j        dd          \  } }g }t          |j        d          D ]\  }}|                    |           |                    dgddgz  z   t          d          d	|
           |                    d          }| j        	                                 |
                    |                                                    |j                                                             t          |d         j        |d         j                   t          |d         j        |d         j                   dS )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)rL   step
stepfilledr   r   	   r   Legend)binsr   histtyper?   r@   r      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         r2   test_legend_auto4r{   L   s6    |!Z888HCJch =>> J JB
R
ae%))8bIIIiiFi##
!!##//0E0E0G0GHH	J 	J 	J 	J JqM(*Q-*>???JqM(*Q-*>?????r4   c                     t          j        dd          \  } }g }t          |j        d          D ].\  }}t	          j        dddd	          t	          j        t          j        d
dgd
d
gdd
gddgddgddgddgddgddgg	          d          t	          j	        ddd
ddd          fD ]}|
                    |           |                    ddgddgd           |                    |          }| j                                         |                    |                                                    |j                                                             0t)          |d         j        |d
         j                   dS )z
    Check that the automatic placement handle a rather complex
    case with non rectangular patch. Related to issue #9580.
    rj   )g333333#@g333333@ra   centerr?   )r   rS   皙?皙?C1)xywidthheightfcr   r   rS   r[   rT   )r   )r   r   r   ih  rW   C0)r   r   z	A segmentr=   r@   N)r   r   r    rk   mpatchesEllipsePolygonr   arrayWedge	add_patchrB   r%   ro   rp   rq   rr   rs   rt   ru   r   rv   )r,   rw   rx   r-   r   _patchrz   s          r2   test_legend_auto5r   b   s   
 |!Z888HCJsx!344 J JC
  !STC C C FQFQFQFS#Jc
#Jc
S#J+8 "9 "9=AC C C z33dtLLL 	! 	!F LL    
c
S#Jk:::iiCi  
!!##//0E0E0G0GHH	J 	J 	J 	J JqM(*Q-*>?????r4   legend_various_labelsc                     t          j                    } |                     d          }|                    t	          j        d          dd           |                    t	          j        dd          dd           |                    t	          j        ddd          dd	           |                    dd
           d S )Ny      r;   r   r=   gffffff@u   DéveloppésrI   __nolegend__r?   )	numpointsr   )r   figureadd_subplotrB   r   rA   linspacer%   r,   r-   s     r2   test_various_labelsr      s     *,,C			BGGBIaLL#QG'''GGBK3NG;;;GGBIaBNG;;;IIvI&&&&&r4   c                  :   t          j                    \  } }|                    ddgd          \  }t          j        t
          j        d          5  |                    |g          }ddd           n# 1 swxY w Y   t          |j	                  dk    sJ dS )	z
    Test that artists with labels starting with an underscore are not added to
    the legend, and that a warning is issued if one tries to add them
    explicitly.
    r   r   _foor=   zwith an underscorematchr1   N)
r   r   rB   pytestwarnsr	   MatplotlibDeprecationWarningr%   lenlegend_handles)r,   r-   rY   r%   s       r2   )test_legend_label_with_leading_underscorer      s     lnnGCGGQF&G))ED	d7?S	T	T	T + +D6**+ + + + + + + + + + + + + + +v$%%******s   A66A:=A:zlegend_labels_first.pngarm64g9v?)r6   tolc                  f   t          j                    \  } }|                    t          j        d          dd           |                    t          j        d          dz  dd           |                    t          j        ddd	          d
d           |                    dd           d S )Nr   -or   r=   r   z:xr.      rI   ddiamondr?   F)r   markerfirst)r   r   rB   r   rA   onesr%   r   s     r2   test_labels_firstr      s     lnnGCGGBIbMM4qG)))GGBGBKKM4sG+++GGBIb"b!!3iG888II&eI,,,,,r4   zlegend_multiple_keys.pngc                  \   t          j                    \  } }|                    g dd          \  }|                    g dd          \  }|                    g dd          \  }|                    ||f||f|gg dd||ft	          d 	          ||ft	          d d
          i           d S )Nr   rj   r`   r   rj   r`   r   z-xr`   r   r   z-d)ztwo keyszpad=0zone keyr   )ndivider   )r   pad)r   handler_map)r   r   rB   r%   r   )r,   r-   p1p2p3s        r2   test_multiple_keysr      s     lnnGC
'')))T
"
"CB
'')))T
"
"CB
'')))T
"
"CBIIBx"b2&(H(H(H8\$%?%?%?8\$A%F%F%FH  I I I I Ir4   zrgba_alpha.pngx86_64gQ?c                      t          j                    \  } }|                    t          d          d           t          j        dgd          }|j                            g d           d S )Nr   r   lwLonglabel that will go awayr~   r@   r   r   r   r   )r   r   rB   rn   r%   legendPatchset_facecolorr,   r-   rz   s      r2   test_alpha_rgbar      sg     lnnGCGGE"II!G
*34(
C
C
CCO!!...11111r4   zrcparam_alpha.pngc                  @   t          j                    \  } }|                    t          d          d           t	          j        ddi          5  t          j        dgd	          }|j                            g d
           d d d            d S # 1 swxY w Y   d S )Nr   r   r   zlegend.framealphag      ?)rcr   r~   r@   r   )	r   r   rB   rn   mplr
   r%   r   r   r   s      r2   test_alpha_rcparamr      s     lnnGCGGE"II!G	/5	6	6	6 6 6j78hGGG
 	%%nnn5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s   4BBBfancyrW   c                     t          j        d           t          j        dgdz  dd           t          j        t	          j        d          t	          j        ddd          d	           t          j        t	          j        d          t	          j        d          d
d
d           t          j        ddd
gdddd           d S )Nr   r   r   zo--XXr=   r   rI   zXX
XXr   )xerryerrr   r   r[   rj   T	My legendr   )r   r   rb   shadowtitler   )r   subplotrB   r!   r   rA   errorbarr%    r4   r2   
test_fancyr      s    
 KHaS2XuD))))K	"ryQ338DDDDL2	"C' ' ' 'J=#st;!E E E E E Er4   
framealphag~jt?c                      t          j        ddd          } | }t          j        | |dd           t          j        d           d S )Nr   r9   mylabelr   )r   r   r   )r   )r   r   r   rB   r%   )r.   r/   s     r2   test_framealphar      sN     	AsC  A	AHQr****J#r4   scatter_rc3scatter_rc1c                      t          j                     t          j        d          } |                     t	          j        d          t	          j        ddd          d           |                     ddd	gd
           dt          j        d<   t          j                     t          j        d          } |                     t	          j        d          t	          j        ddd          d           |                     ddd	gd
           d S )Nr   r   r   rI   threer=   r   r[   r   r   )r   r   r   r   zlegend.scatterpointsone)	r   r   r   r!   r   rA   r%   r   rcParams)r-   s    r2   test_rcr      s     JLLL	S		BJJry}}biAr22'JBBBII-c
  ! ! ! ,-CL'(JLLL	S		BJJry}}biAr22%J@@@II-c
  ! ! ! ! !r4   legend_expandc                     ddg} t          j        t          |           d          \  }}t          j        d          }t          ||           D ]\  }}|                    |d|z
  dd           |                    d	|
          }|                    |           |                    ||dz
  dd           |                    d|
          }|                    |           |                    d|d           dS )zTest expand modeNexpandr   r9   r:   r;   r<   r=   
upper left)r   moder>   right
lower leftrj   )r   r   rb   )	r   r   r   r   rA   r    rB   r%   
add_artist)legend_modesr,   rw   r.   r-   r   l1l2s           r2   test_legend_expandr      s    (#L|C--q11HC
	#A\** 8 8D
263e,,,YY<dY33
b
1r63f---YY7Y..
b
		lQ	77778 8r4   hatchingdefault)r6   stylec            	         dt           j        d<   t          j                    \  } }t          j        ddddd          }|                    |           t          j        dddd	d
d          }|                    |           t          j        dddddd          }|                    |           t          j        dddd	dd
d          }|                    |           |                    g dg dg ddd           |                    g dg dg dddd           |                    dd           |                    dd           |                    dd           d S ) 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   )rS   r[   rS   +zPath
default color)r   gQ?g)\(?C2zPath
explicit colorg{Gz皙?r   )handlelengthhandleheight)	r   r   r   	Rectangler   fill_betweenr\   r]   r%   )r,   r-   patchs      r2   test_hatchingr     s    +,CL&'lnnGC M&#s$ >@ @ @ELLM)S#TT ?A A AELLM(CDu @B B BELLM+sCt%$( AC C CE LL OOLLL,,,%:  < < <OOOOO\\\===5K  M M M KKsKKsII11I-----r4   c                  b   t          j                    \  } }|                    t          d                    }|                     |d          }|                                 | j        g k    sJ |                    d          }|                                 |                                J d S )Nr   test)r   r   rB   rn   r%   removelegends
get_legend)r,   r-   linesrz   s       r2   test_legend_remover  $  s    lnnGCGGE"IIE
**UF
#
#CJJLLL;"
))F

CJJLLL==??"""""r4   c                  :   t          j                    \  } }d}d}g d}g d}|                    |||d         |d                    |                    |||d         |d                    |                    |||d         |d                    |                    d          }d	 |                                D             }d
 |j        D             }|t          t          |                    k    sJ |t          t          |                    k    sJ dS )z6Check that the legend handles and labels are reversed.r   )zFirst labelzSecond labelzThird label).,r;   r   r=   rj   Treversec                 6    g | ]}|                                 S r   get_text).0ts     r2   
<listcomp>z:test_reverse_legend_handles_and_labels.<locals>.<listcomp>;  s     ;;;aQZZ\\;;;r4   c                 6    g | ]}|                                 S r   
get_markerr  hs     r2   r  z:test_reverse_legend_handles_and_labels.<locals>.<listcomp><  s     AAAallnnAAAr4   N)r   r   rB   r%   	get_textsr   listreversed)	r,   r-   r.   r/   r*   markersrz   actual_labelsactual_markerss	            r2   &test_reverse_legend_handles_and_labelsr  /  s!   lnnGC	A	A;;;FooGGGAq'!*F1IG...GGAq'!*F1IG...GGAq'!*F1IG...
))D)
!
!C;;3==??;;;MAAc.@AAAND&!1!1222222T(7"3"344444444r4   png)
extensionsc                 r   |                                  }|                    dgdd           |                    dgdd           |                    d	           |                                 }|                    dgdd           |                    dgdd           |                                 d
S )z3Check that the rendered legend entries are reversedr   rofirstr=   rj   bxsecondTr
  N)r   rB   r%   )fig_testfig_refr-   s      r2   test_reverse_legend_displayr'  A  s     
				BGGQCWG%%%GGQCXG&&&IIdI					BGGQCXG&&&GGQCWG%%%IIKKKKKr4   c                   P    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd ZdS )TestLegendFunctionc                    t          j        t          d          d          }t          j        d          5 }t          j                     d d d            n# 1 swxY w Y   |                    t          j                    |dg           d S )Nr   hello worldr=   matplotlib.legend.Legendr   rB   rn   r   r   r%   assert_called_withgcaselfr  rg   s      r2   test_legend_no_argsz&TestLegendFunction.test_legend_no_argsQ  s    r-888Z233 	vJLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	!!#'))U]ODDDDDs   AAAc                    t          j        t          d                    }t          j        d          5 }t          j        |dg           d d d            n# 1 swxY w Y   |                    t          j                    |dg           d S )Nr   r,  r+  r-  r0  s      r2   %test_legend_positional_handles_labelsz8TestLegendFunction.test_legend_positional_handles_labelsW  s    r##Z233 	/vJu}o...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/!!#'))U]ODDDDDs   AA Ac                     t          j        t          d                    }t          j        t
          d          5  t          j        |           d d d            d S # 1 swxY w Y   d S )Nr   zbut found an Artistr   )r   rB   rn   r   raises	TypeErrorr%   )r1  r  s     r2   #test_legend_positional_handles_onlyz6TestLegendFunction.test_legend_positional_handles_only]  s    r##]9,ABBB 	 	 Ju	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA#&A#c                     t          j        t          d          d          }t          j        d          5 }t          j        dg           d d d            n# 1 swxY w Y   |                    t          j                    |dg           d S )Nr   r+  r=   r,  foobarr-  r0  s      r2   "test_legend_positional_labels_onlyz5TestLegendFunction.test_legend_positional_labels_onlyd  s    r-888Z233 	#vJz"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#!!#'))UXJ?????s   AA!Ac                 *   t          j        t          d          d          }t          j        d          5 }t          j        |dgd           d d d            n# 1 swxY w Y   |                    t          j                    |dgd           d S )Nr   r+  r=   r,  r:  r   r@   r-  r0  s      r2   test_legend_three_argsz)TestLegendFunction.test_legend_three_argsj  s    r-888Z233 	7vJuxjg6666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7!!#'))UXJG!LLLLLs   AA!$A!c                 :   t          j        t          d          d          }t          j        d          5 }|dgf|_        t          j        ddi           d d d            n# 1 swxY w Y   |                    t          j                    gddi           d S )Nr   r+  r=   z,matplotlib.legend._get_legend_handles_labels1rj   )r   )	r   rB   rn   r   r   return_valuer%   r.  r/  )r1  r  handles_labelss      r2   test_legend_handler_mapz*TestLegendFunction.test_legend_handler_mapp  s    r-888Z 5 6 6 	-9G*/-*@N'JC8,,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	))3799+Qx@@@@@s   "A&&A*-A*c                    t          j                    \  }}t          j        ddd          }|                    ||d          \  }|                    |d|z  d          \  }|                    |d|z  d	          \  }t          j        d
          5 }|                    ||g           d d d            n# 1 swxY w Y   |                    |||gd	dg           d S )Nr   r      r.   r=   rj   2xr`   3xr,  r   	r   r   r   r   rB   r   r   r%   r.  )r1  r,   r-   r.   ln1ln2ln3rg   s           r2   test_legend_kwargs_handles_onlyz2TestLegendFunction.test_legend_kwargs_handles_onlyx  s   ,..RK1b!!wwq!3w''wwq!A#Tw**wwq!A#Tw**Z233 	*vIIsCjI)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*!!"sCj4,?????s   B::B>B>c                    t          j                    \  }}t          j        ddd          }|                    ||          \  }|                    |d|z            \  }t          j        d          5 }|                    ddg           d d d            n# 1 swxY w Y   |                    |||gddg           d S )	Nr   r   rD  rj   r,  r.   rE  r*   rG  )r1  r,   r-   r.   rH  rI  rg   s          r2   test_legend_kwargs_labels_onlyz1TestLegendFunction.test_legend_kwargs_labels_only  s    ,..RK1b!!wwq!}}wwq!A#Z233 	*vIIc4[I)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*!!"sCj3+>>>>>s   4BB Bc                    t          j                    \  }}t          j        ddt          j        z  d          }|                    |t          j        |          d          \  }|                    |t          j        |          d          \  }t          j	        d          5 }|
                    d||f	           d d d            n# 1 swxY w Y   |                    |||fd           d S )
Nr   rj      sinr=   cosr,  r   r   )r*   r1   )r   r   r   r   pirB   rQ  rR  r   r   r%   r.  )r1  r,   r-   thlnslncrg   s          r2   !test_legend_kwargs_handles_labelsz4TestLegendFunction.test_legend_kwargs_handles_labels  s   ,..R[AbeGT**wwr26"::Uw33wwr26"::Uw33Z233 	=vIIZ#sI<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	!!"sCj*=====s   &CCCc                 D   t          j                    \  }}t          j        ddt          j        z  d          }|                    |t          j        |          d          \  }|                    |t          j        |          d          \  }t          j	        t                    5 }|                    ||fd           d d d            n# 1 swxY w Y   t          |          d	k    sJ t          |d         j                                      d
          sJ d S )Nr   rj   rP  rQ  r=   rR  rS  rM  r   MYou have mixed positional and keyword arguments, some input may be discarded.)r   r   r   r   rT  rB   rQ  rR  r   r   DeprecationWarningr%   r   strmessage
startswith)r1  r,   r-   rU  rV  rW  records          r2   test_warn_mixed_args_and_kwargsz2TestLegendFunction.test_warn_mixed_args_and_kwargs  s@   ,..R[AbeGT**wwr26"::Uw33wwr26"::Uw33\,-- 	5IIsCjI444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	56{{a6!9$%%00  	 	 	 	 	s   +CCCc                 |   ddl m}  |d          }|                                }|                    g dg dd          \  }|                    g dg dd          \  }t	          j        d	          5 }t          j                     d d d            n# 1 swxY w Y   |                    |||gddg           d S )
Nr   )host_subploto   r   r   rj   Densityr=   )r   r`   rj   Temperaturer,  )	mpl_toolkits.axes_grid1rb  twinxrB   r   r   r   r%   r.  )r1  rb  hostparr   r   rg   s          r2   test_parasitez TestLegendFunction.test_parasite  s   888888|C  jjllii			999Ii>>hhyyy)))=hAAZ233 	vJLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	!!$R9m2LMMMMMs   6BBBN)__name__
__module____qualname__r2  r4  r8  r;  r=  rB  rK  rN  rX  r`  rk  r   r4   r2   r)  r)  O  s        E E EE E E  @ @ @M M MA A A@ @ @? ? ?> > >
 
 
N N N N Nr4   r)  c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestLegendFigureFunctionc                 :   t          j                    \  }}|                    t          d                    }t	          j        d          5 }|                    |dg           d d d            n# 1 swxY w Y   |                    ||dg|j                   d S )Nr   r,  r+  bbox_transform	r   r   rB   rn   r   r   r%   r.  transFigurer1  r,   r-   r  rg   s        r2   test_legend_handle_labelz1TestLegendFigureFunction.test_legend_handle_label  s    ,..Rb		""Z233 	/vJJu}o...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/!!#u}o14 	" 	B 	B 	B 	B 	Bs   A11A58A5c                 8   t          j                    \  }}|                    t          d          d          }t	          j        d          5 }|                                 d d d            n# 1 swxY w Y   |                    ||dg|j                   d S )Nr   r+  r=   r,  rr  rt  rv  s        r2   r2  z,TestLegendFigureFunction.test_legend_no_args  s    ,..Rb		77Z233 	vJJLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	!!#u}o14 	" 	B 	B 	B 	B 	Bs   A00A47A4c                 8   t          j                    \  }}|                    t          d                    }t	          j        d          5 }|                    dg           d d d            n# 1 swxY w Y   |                    ||dg|j                   d S )Nr   r,  r:  rr  rt  rv  s        r2   test_legend_label_argz.TestLegendFigureFunction.test_legend_label_arg  s    ,..Rb		""Z233 	#vJJz"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#!!#uxj14 	" 	B 	B 	B 	B 	Bs   A00A47A4c                    t          j                    \  }}|                    t          d                    }t	          j        t          d          5  |                    |dgd           d d d            n# 1 swxY w Y   t	          j        t          d          5  |                    |dgdd           d d d            d S # 1 swxY w Y   d S )Nr   z0-2r   r:  r   leftr@   )r   r   rB   rn   r   r6  r7  r%   )r1  r,   r-   r  s       r2   test_legend_label_three_argsz5TestLegendFigureFunction.test_legend_label_three_args  s?   ,..Rb		""]9E222 	3 	3JJuxj'222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3]9E222 	? 	?JJuxj'vJ>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s$   A99A= A=CCCc                    t          j        dd          \  }}|d                             t          d                    }|d                             t	          j        d          dz            }t          j        d          5 }|                    dd||f	           d d d            n# 1 swxY w Y   |	                    |||fdd|j
        
           d S )Nr   rj   r   r          @r,  r   rS  )r   r*   r1   )r   rs  )r   r   rB   rn   r   rA   r   r   r%   r.  ru  )r1  r,   rw   r  lines2rg   s         r2   test_legend_kw_argsz,TestLegendFigureFunction.test_legend_kw_args  s   <1%%SAE"II&&QRYr]]R/00Z233 	PvJJ7:vJOOO	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P!!%*'? 	" 	, 	, 	, 	, 	,s   B,,B03B0c                    t          j        dd          \  }}|d                             t          d                    }|d                             t	          j        d          dz            }t          j        t                    5 }|	                    ||fd           d d d            n# 1 swxY w Y   t          |          dk    sJ t          |d         j                                      d          sJ d S )	Nr   rj   r   r   r  rS  rM  rZ  )r   r   rB   rn   r   rA   r   r   r[  r%   r   r\  r]  r^  )r1  r,   rw   r  r  r_  s         r2   test_warn_args_kwargsz.TestLegendFigureFunction.test_warn_args_kwargs  s(   <1%%SAE"II&&QRYr]]R/00\,-- 	;JJvzJ:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;6{{a6!9$%%00  	 	 	 	 	s   
B00B47B4N)	rl  rm  rn  rw  r2  rz  r}  r  r  r   r4   r2   rp  rp    sw        B B BB B BB B B? ? ?, , ,	 	 	 	 	r4   rp  c                     d dD             } | d dD             z  } | d dD             z  } | d dD             z  } g d}g d}g d	}g d
}||||||||||||g}g dg dg dg dg dg dg dg dg dg dg dg dg}t          |           D ]\  }}t          |           t          j        dd          \  }	}
|
                    t          d          d           |	                    d|z             }|	                                 t          |
	                                j
        ||                    t          |	                                j
        ||                    d S )Nc                     g | ]}d |z   S )zupper r   r  poss     r2   r  z.test_figure_legend_outside.<locals>.<listcomp>  s    CCCX^CCCr4   )r|  r~   r   c                     g | ]}d |z   S )zlower r   r  s     r2   r  z.test_figure_legend_outside.<locals>.<listcomp>  s    DDDhnDDDr4   c                     g | ]}d |z   S )zleft r   r  s     r2   r  z.test_figure_legend_outside.<locals>.<listcomp>  s    DDDgmDDDr4   )lowerr~   upperc                     g | ]}d |z   S )zright r   r  s     r2   r  z.test_figure_legend_outside.<locals>.<listcomp>  s    EEEhnEEEr4   )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  Tr9   )constrained_layoutdpir   Boo1r=   zoutside r@   )	enumerateprintr   r   rB   rn   r%   draw_without_renderingr   rr   extents)todosupperextlowerextleftextrightextaxbblegbbnntodor,   rw   rz   s               r2   test_figure_legend_outsider    s   CC'BCCCE	DD(CDDDDE	DD'CDDDDE	EE(DEEEEE888H888H777G888HhhWgh*D
 %$$'''%%%###&&&$$$"""&&&$$$"""'''%%%'E e$$ 
# 
#Dd<4SAAASr&)))jjZ$.j//""$$$--//7R	" 	" 	"--//7b		# 	# 	# 	#
# 
#r4   zlegend_stackplot.pnggX9v?)r   c                  @   t          j                    \  } }t          j        ddd          }d|z  }d|z  dz   }d|z  dz   }|                    ||||g d	           |                    d
           |                    d           |                    d           dS )z/Test legend for PolyCollection using stackplot.r   r   r[   r  r   g      @rj   )y1y2y3rM  )r   r   )r   F   r?   r@   N)r   r   r   r   	stackplotr\   r]   r%   )r,   r-   r.   r  r  r  s         r2   test_legend_stackplotr    s    
 lnnGC
Ar2A	qB	q1B	q1BLLBB'9'9'9L:::KKKKII&Ir4   c                      t          j                    \  } }t          j                    \  }}|                    t          d          t          d                    }|                    |d           d S )Nr`   foo)r   r   rL   rn   r%   )r,   r-   fig2ax2brss        r2   test_cross_figure_patch_legendr     sY    lnnGCID#
&&q588
$
$CKKUr4   c            
         t          j                    \  } }|                    t          j        gt          j        gdddd          }|                    |gdg           t          j                    \  } }dD ]e}d}t          j                            d|          \  }}d	t          j                            |          z  }|                    |||||d
d           f|                                 |                    d           d S )Nr;   r   r`   )marker	facecolorr   sr!   )redgreenbluei  rj   g      i@r   none)r   r  r   alpha
edgecolorsT)	r   r   r!   r   nanr%   r   randgrid)r,   r-   r  r0   nr.   r/   scales           r2   test_nanscatterr  (  s    lnnGC


BF8bfXc C1 	 	6 	6A IIqcI;lnnGC) 1 1y~~a##1	q)))


1a5E 	 	1 	1 	1 	1 IIKKKGGDMMMMMr4   c                  2   t          j                    \  } }|                    ddddd           |                    dddd	d           |                                 t	          j        |g          \  }}t          |          d
k    sJ t          j                    \  } }|                    ddddd           |                    dddd	d           |                                 t	          j        |g          \  }}t          |          d
k    sJ d S )NrZ   r[   kr;   r  )r0   r  r   r   r   vrj   )r   r   r!   r%   mlegend_get_legend_handles_labelsr   )r,   r-   handlabs       r2   test_legend_repeatcheckokr  <  s    lnnGCJJsCs3fJ===JJsCs3fJ===IIKKK2B488ID#s88q====lnnGCJJsCs3fJ===JJsCs3fJ===IIKKK2B488ID#s88q======r4   znot_covering_scatter.pngc                  <   g d} t          d          D ]!}t          j        |g|g| |                    "t          j        g dd           t          j                                        dd           t          j                                        dd           d S )	N)r   r   r   r`   )r0   )r  r  r  r?   r@   g      皙@)rn   r   r!   r%   r/  r\   r]   )r+   r  s     r2   test_not_covering_scatterr  K  s    __F1XX / /QC!F1I.....J$$$&1111GIItS!!!GIItS!!!!!r4   z"not_covering_scatter_transform.pngc                  >   t          j                                        dd          } t          j        ddd          }t          j        ||           t          j        dgdg| t          j                    j	        z              t          j
        dd	gd
           d S )Nir   r      i  r   )	transformr  rL   r?   r@   )mtransformsAffine2D	translater   r   r   rB   r!   r/  	transDatar%   )offsetr.   s     r2   #test_not_covering_scatter_transformr  W  s     !##--c266F
Ar4  AHQNNNKrdfswyy/B&BCCCCJu~6******r4   c                  V   ddgddgg} ddgddggd	dgd
dggg}d
dgddggd	dgddggg}t          j        | dd          }t          j        |d          }t          j        |dd	          }t          j                    \  }}|                    |           |                    |           |                    |           |                    |||gg d          }|j        \  }	}
}t          |||f|	|
|f          D ]*\  }}|                                d         |j	        k    sJ +d S )N)r   r   )r   r   )r   333333?)r   r   gffffff?r   r   r   r   r  rT   z--r`   )
linestylesr   z-.)r  :)line1line2zline 3r   )
mcollectionsLineCollectionr   r   add_collectionr%   r   r    get_linestyles_dash_pattern)lines1r  lines3lc1lc2lc3r,   r-   rz   h1h2h3ohlhs                 r2   !test_linecollection_scaled_dashesr  c  su    8X"67FRy2r(#r2hR%9:FRy2r(#r2hR%9:F

%f!
D
D
DC

%f
>
>
>C

%f
D
D
DClnnGCccc
))S#sO%A%A%A
B
BC#JBBsCoB|44 : :B  ""1%)999999: :r4   c                      t          j                    \  } }|                    t          d          d           |                    d           dS )z(Test legend handler with numpoints <= 1.r   r  r=   r   r   N)r   r   rB   rn   r%   r   s     r2   test_handler_numpointsr  w  sI     lnnGCGGE!HHFG###IIIr4   c                     t          j                    \  } }|                    dgd           |                    dddd           t	          j        t                    5 }|                                 ddd           n# 1 swxY w Y   t          |          dk    sJ t          j                    \  }}|	                    t          j                            ddd	                     t          j                    5  t          j        d
           |                                 ddd           dS # 1 swxY w Y   dS )z2Test that Text artists with labels raise a warningr   	mock datar=   textr   )r.   r/   r  r   Nr   )r   r   error)r   r   rB   r  r   r   UserWarningr%   r   
pcolormeshr   r   uniformwarningscatch_warningssimplefilterr"   )r,   r-   r_  fs       r2   test_text_nohandler_warningr    s   lnnGCGGQC{G###GGa1gG...	k	"	" f
		              v;;! LNNEArMM")##Aq(33444		 	"	" ' 'g&&&
$$&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's$   !BB	B?)D55D9<D9c                  Z    t          j        g g d           t          j                     dS )z1Test legend when bar chart is empty with a label.r  r=   N)r   rL   r%   r   r4   r2    test_empty_bar_chart_with_legendr    s*     GB&!!!!JLLLLLr4   zshadow_argument_types.pngmpl20gy&1?)r6   r   r   c            
         t          j                    \  } }|                    g dd           |                    dd          |                    dd          |                    d	d
dd          |                    dddd          |                    dddd          f}|D ]}|                    |           |                    d           d S )Nr   r  r=   r   Tr   r   upper rightFr   r  rT   )r0   r  center right)rT   r   r   )r0   oyr   ztab:cyanr   )r0   oxlower rightr@   )r   r   rB   r%   r   )r,   r-   legsls       r2   test_shadow_argument_typesr    s    lnnGCGGIIIVG$$$ II,tI44II-I66II-',s;;  = =II.'6bAA  C CII,'1<<  > >D   
aII-I     r4   c                      t          j                    \  } }|                    g dd           t          j        t
          d          5  |                    dd           d d d            d S # 1 swxY w Y   d S )	Nr   r  r=   zdict or boolr   r   aardvarkr  )r   r   rB   r   r6  
ValueErrorr%   r   s     r2   test_shadow_invalid_argumentr    s     lnnGCGGIIIVG$$$	z	8	8	8 7 7
		l:	6667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7s   A00A47A4c                      t          j                    \  } }|                    t          d          d           |                    dd          }|                                                                dk    sJ d S )Nr9   r  r=   Tw)r   r  r   )r   r   rB   rn   r%   	get_frame	get_alphar   s      r2   test_shadow_framealphar    so     lnnGCGGE#JJfG%%%
))43)
/
/C==??$$&&!++++++r4   c                  J   t          j                    \  } }|                    t          d          d           |                                }|                                                                dk    sJ |                                                                rJ d S )Nr   r  r=    )r   r   rB   rn   r%   	get_titler  get_visibler   s      r2   test_legend_title_emptyr    s     lnnGCGGE"II[G)))
))++C==??##%%++++}}**,,,,,,,r4   c                  F   t          j        d          \  } }|                    t          d          d           |                                }|                    | j                                                  j        }t          j        d          \  } }|                    t          d          d           |                                }|                    | j                                                  j        }t          j
        |dz  d          |k    sJ d S )	Nr9   r  r   Aardvarkr=      rj   rT   )r   r   rB   rn   r%   rr   ro   get_rendererx0r   approx)r,   r-   rz   x01x02s        r2    test_legend_proper_window_extentr)    s    ls###GCGGE"IIZG(((
))++C



 7 7 9 9
:
:
=Cls###GCGGE"IIZG(((
))++C



 7 7 9 9
:
:
=C=Q$$++++++r4   c                  P   t          j        d          \  } }|                    t          d          d           |                                }|                                 }| j                                         |                                 |                                 d S )Nr9   r!  r   r"  r=   )r   r   rB   rn   r%   ro   rp   rr   )r,   r-   rz   leg2s       r2   "test_window_extent_cached_rendererr,    s    ls###GCGGE"IIZG(((
))++C::<<DJOOr4   c                     t          j        t          d          d           t          j        t
                    5  t          j        ddddd           d d d            n# 1 swxY w Y   t          j        dt          dd          	          } |                                 	                                dk    sJ t          j
        d
dd          \  }}|j        }|d                             t          d          d           |d                             dd          }|                                                                dk    sJ |d                             t          d          d           |d                             dddd	          }|                                                                dk    sJ |d
                             t          d          d           d t          j        d<   |d
                             dddi	          }|                                                                t          j        d         k    sJ |d                             t          d          d           |d                             d          }|                                                                t          j        d         k    sJ |d                             t          d          d           dt          j        d<   |d                             dddi	          }|                                                                dk    sJ |d                             t          d          d           |d                             d          }|                                                                dk    sJ d S )Nr   r  r=   r"     serif)familysize)r   title_fontsizetitle_fontproperties)r   r3  rj   r`   )r   r   )rc   r   )r   r2  r   zlegend.title_fontsizer0  z	font.sizer   r   r   r   )r   rB   rn   r   r6  r  r%   r   r  get_sizer   rk   get_fontsizer   r   )	rz   r,   axesleg0leg1r+  leg3leg4leg5s	            r2   #test_legend_title_fontprop_fontsizer=    s   HU2YYk****	z	"	" I I
B3:B(G(G	I 	I 	I 	II I I I I I I I I I I I I I I *:N.5B=@ =@ =@ A A AC==??##%%++++Q7333IC9DGLLr+L...7>>
2>>>D>>((**b0000GLLr+L...7>>
:A2/N/N  P PD>>((**b0000GLLr+L...,0CL()7>>
08'/B  D DD>>((**cl;.GGGGGGLLr+L...7>>
>++D>>((**cl;.GGGGGGLLr+L...,.CL()7>>
08'/B  D DD>>((**b0000GLLr+L...7>>
>++D>>((**b000000s   A$$A(+A(	alignment)r~   r|  r   c                 &   t          j                    \  }}|                    t          d          d           |                    d|           }|                                d         j        | k    sJ |                                | k    sJ d S )Nr   r  r=   r"  )r   r>  r   )r   r   rB   rn   r%   get_childrenrH   get_alignmentr>  r,   r-   rz   s       r2   test_legend_alignmentrC    s    lnnGCGGE"IIVG$$$
))*	)
:
:Ca &)3333)++++++r4   r   r}   c                 *   t          j                    \  }}|                    t          d          d           |                                }|                    |            |                                t          j        j	        |          k    sJ d S )Nr   r  r=   )
r   r   rB   rn   r%   set_loc_get_locr  rg   codesr   r,   r-   rz   s       r2   test_ax_legend_set_locrI    su    lnnGCGGE"IIVG$$$
))++CKK<<>>W^1#6666666r4   )zoutside rightr   c                    t          j                    \  }}|                    t          d          d           |                                }|                    |            |                     d          r|                                 d         n| } |                                t          j
        j        |          k    sJ d S )Nr   r  r=   outsider   )r   r   rB   rn   r%   rE  r^  splitrF  r  rg   rG  rH  s       r2   test_fig_legend_set_locrM    s    lnnGCGGE"IIVG$$$
**,,CKKNN955
>#))++a..3C<<>>W^1#6666666r4   c                 J   t          j                    \  }}|                    t          d          d           |                                }|                    |            |                                d         j        | k    sJ |                                | k    sJ d S )Nr   r  r=   r   )	r   r   rB   rn   r%   set_alignmentr@  rH   rA  rB  s       r2   test_legend_set_alignmentrP  (  s    lnnGCGGE"IIVG$$$
))++Ci   a &)3333)++++++r4   r0   )r  r  )r   r   r   c                 n   t          j                    \  }}|                    t          j        d          t          j        d          dz  d           |                    t          j        d          t          j        d          dz  d           |                    t          j        d          t          j        d          dz  d           |                    | 	          }|                                D ]6}t          j        	                    |
                                |           sJ 7d S )
Nr   r   #1r=   rj   #2r`   #3
labelcolor)r   r   rB   r   rA   r%   r  r   r+   
same_color	get_colorr0   r,   r-   rz   r  s        r2   test_legend_labelcolor_singlerZ  2  s     lnnGCGGBIbMM29R==?$G777GGBIbMM29R==?$G777GGBIbMM29R==?$G777
))u)
%
%C > >z$$T^^%5%5u======> >r4   c                     t          j                    \  } }|                    t          j        d          t          j        d          dz  d           |                    t          j        d          t          j        d          dz  d           |                    t          j        d          t          j        d          dz  d           |                    g d	
          }t          |                                g d	          D ]9\  }}t          j	        
                    |                                |          sJ :d S )Nr   r   rR  r=   rj   rS  r`   rT  r   r   r   rU  r   r   rB   r   rA   r%   r    r  r   r+   rW  rX  r,   r-   rz   r  r0   s        r2   test_legend_labelcolor_listr_  ?  s
   lnnGCGGBIbMM29R==?$G777GGBIbMM29R==?$G777GGBIbMM29R==?$G777
)))
/
/C3==??OOO<< > >ez$$T^^%5%5u======> >r4   c                     t          j                    \  } }|                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          d	z  d
d           |                    d          }t          |                                g d          D ]9\  }}t          j	        
                    |                                |          sJ :d S )Nr   r   rR  r   r   r0   rj   rS  r   r`   rT  r   	linecolorrU  r\  r]  r^  s        r2    test_legend_labelcolor_linecolorrc  K  s   lnnGCGGBIbMM29R==?$cGBBBGGBIbMM29R==?$cGBBBGGBIbMM29R==?$cGBBB
)){)
+
+C3==??OOO<< > >ez$$T^^%5%5u======> >r4   c                     t          j                    \  } }|                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          d	z  d
d           |                    d          }t          |                                g d          D ]9\  }}t          j	        
                    |                                |          sJ :d S )Nr   r   rR  r   r   rj   rS  r   r`   rT  r   rb  rU  r\  r   r   r!   r   rA   r%   r    r  r   r+   rW  rX  r^  s        r2   /test_legend_pathcollection_labelcolor_linecolorrf  W  s   lnnGCJJry}}bimmAoTSJAAAJJry}}bimmAoTSJAAAJJry}}bimmAoTSJAAA
)){)
+
+C3==??OOO<< > >ez$$T^^%5%5u======> >r4   c                     t          j                    \  } }t          j        g ddz            }|                    t          j        d          t          j        d          d|           |                    d          }|                                \  }t          j	        
                    |                                d          sJ d S )	Nr   r   r   r   rG   rj   r   rR  r   rb  rU  black)r   r   r   r   r!   rA   r%   r  r   r+   rW  rX  )r,   r-   r+   rz   r  s        r2   8test_legend_pathcollection_labelcolor_linecolor_iterablerj  c  s     lnnGCX///!344FJJry}}bimm46JBBB
)){)
+
+CMMOOED:  !1!17;;;;;;;r4   c                     t          j                    \  } }|                    t          j        d          t          j        d          t          j        d          d           |                    d          }|                                \  }t          j        	                    |
                                d          sJ d S )Nr   rR  )r   r   rb  rU  ri  )r   r   r!   r   rA   r%   r  r   r+   rW  rX  )r,   r-   rz   r  s       r2   4test_legend_pathcollection_labelcolor_linecolor_cmaprl  o  s     lnnGCJJry}}bimmry}}DJIII
)){)
+
+CMMOOED:  !1!17;;;;;;;r4   c                     t          j                    \  } }|                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          d	z  d
d           |                    d          }t          |                                g d          D ]9\  }}t          j	        
                    |                                |          sJ :d S )Nr   r   rR  r   r   markeredgecolorrj   rS  r   r`   rT  r   ro  rU  r\  r]  r^  s        r2   &test_legend_labelcolor_markeredgecolorrp  z     lnnGCGGBIbMM29R==?$GLLLGGBIbMM29R==?$GLLLGGBIbMM29R==?$GLLL
))0)
1
1C3==??OOO<< > >ez$$T^^%5%5u======> >r4   c                     t          j                    \  } }|                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          d	z  d
d           |                    d          }t          |                                g d          D ]9\  }}t          j	        
                    |                                |          sJ :d S )Nr   r   rR  r   r   r   rj   rS  r   r`   rT  r   ro  rU  r\  re  r^  s        r2   5test_legend_pathcollection_labelcolor_markeredgecolorrt       lnnGCJJry}}bimmAoTSJIIIJJry}}bimmAoTSJIIIJJry}}bimmAoTSJIII
))0)
1
1C3==??OOO<< > >ez$$T^^%5%5u======> >r4   c                     t          j                    \  } }t          j        g ddz            }|                    t          j        d          t          j        d          d|           |                    d          }t          |                                dg          D ]9\  }}t          j
                            |                                |          sJ :d S )	Nrh  rj   r   rR  rs  ro  rU  r  r   r   r   r   r!   rA   r%   r    r  r   r+   rW  rX  r,   r-   r+   rz   r  r0   s         r2   >test_legend_pathcollection_labelcolor_markeredgecolor_iterablery         lnnGCX///!344FJJry}}bimm46JJJJ
))0)
1
1C3==??SE22 > >ez$$T^^%5%5u======> >r4   c                  2   t          j                    \  } }t          j                            t
          j                            d                    }|                    t          j	        d          t          j	        d          dt          j	        d          |d           |
                    d          }t          |                                dg          D ]9\  }}t          j                            |                                |          sJ :d S )Nr   rR  Reds)r   r   r   cmapro  rU  r  r   r   r   cmviridisr   r   r  r!   rA   r%   r    r  r+   rW  rX  )r,   r-   r  rz   r  r0   s         r2   :test_legend_pathcollection_labelcolor_markeredgecolor_cmapr    s     lnnGC	r 2 233JJJ
	"
	"
)B--     ))0)
1
1C3==??SE22 > >ez$$T^^%5%5u======> >r4   c                     t          j                    \  } }|                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          d	z  d
d           |                    d          }t          |                                g d          D ]9\  }}t          j	        
                    |                                |          sJ :d S )Nr   r   rR  r   r   markerfacecolorrj   rS  r   r`   rT  r   r  rU  r\  r]  r^  s        r2   &test_legend_labelcolor_markerfacecolorr    rq  r4   c                     t          j                    \  } }|                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          d	z  d
d           |                    d          }t          |                                g d          D ]9\  }}t          j	        
                    |                                |          sJ :d S )Nr   r   rR  r   r   r  rj   rS  r   r`   rT  r   r  rU  r\  re  r^  s        r2   5test_legend_pathcollection_labelcolor_markerfacecolorr    ru  r4   c                     t          j                    \  } }t          j        g ddz            }|                    t          j        d          t          j        d          d|           |                    d          }t          |                                dg          D ]9\  }}t          j
                            |                                |          sJ :d S )	Nrh  rj   r   rR  r  r  rU  r  rw  rx  s         r2   >test_legend_pathcollection_labelcolor_markerfacecolor_iterabler    rz  r4   c                  0   t          j                    \  } }t          j                            t
          j                            d                    }|                    t          j	        d          t          j	        d          dt          j	        d          |           |
                    d          }t          |                                dg          D ]9\  }}t          j                            |                                |          sJ :d S )Nr   rR  )r   r   r  r  rU  r  r~  )r,   r-   
facecolorsrz   r  r0   s         r2   8test_legend_pathcollection_labelcolor_markfacecolor_cmapr    s     lnnGC	r 2 233JJJ
	"
	"
)B--     ))0)
1
1C3==??SE22 > >ez$$T^^%5%5u======> >r4   c                    t          j                    \  }}|                    t          j        d          t          j        d          dz  d           |                    t          j        d          t          j        d          dz  d           |                    t          j        d          t          j        d          dz  d           | t
          j        d	<   |                                }|                                D ]6}t
          j	        
                    |                                |           sJ 7d S )
Nr   r   rR  r=   rj   rS  r`   rT  legend.labelcolor)r   r   rB   r   rA   r   r   r%   r  r+   rW  rX  rY  s        r2   %test_legend_labelcolor_rcparam_singler    s     lnnGCGGBIbMM29R==?$G777GGBIbMM29R==?$G777GGBIbMM29R==?$G777(-CL$%
))++C > >z$$T^^%5%5u======> >r4   c                     t          j                    \  } }|                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          d	z  d
d           dt
          j        d<   |                                }t          |	                                g d          D ]9\  }}t
          j
                            |                                |          sJ :d S )Nr   r   rR  r   ra  rj   rS  r   r`   rT  r   rb  r  r\  r   r   rB   r   rA   r   r   r%   r    r  r+   rW  rX  r^  s        r2   (test_legend_labelcolor_rcparam_linecolorr    s   lnnGCGGBIbMM29R==?$cGBBBGGBIbMM29R==?$cGBBBGGBIbMM29R==?$cGBBB(3CL$%
))++C3==??OOO<< > >ez$$T^^%5%5u======> >r4   c                     t          j                    \  } }|                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          d	z  d
d           dt
          j        d<   |                                }t          |	                                g d          D ]9\  }}t
          j
                            |                                |          sJ :d S )Nr   r   rR  r   rn  rj   rS  r   r`   rT  r   ro  r  r\  r  r^  s        r2   .test_legend_labelcolor_rcparam_markeredgecolorr       lnnGCGGBIbMM29R==?$GLLLGGBIbMM29R==?$GLLLGGBIbMM29R==?$GLLL(9CL$%
))++C3==??OOO<< > >ez$$T^^%5%5u======> >r4   c                     t          j                    \  } }|                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          d	z  d
d           dt
          j        d<   |                                }t          |	                                g d          D ]9\  }}t
          j
                            |                                |          sJ :d S )Nr   r   rR  r   rn  rj   rS  r   r`   rT  r   mecr  r\  r  r^  s        r2   4test_legend_labelcolor_rcparam_markeredgecolor_shortr       lnnGCGGBIbMM29R==?$GLLLGGBIbMM29R==?$GLLLGGBIbMM29R==?$GLLL(-CL$%
))++C3==??OOO<< > >ez$$T^^%5%5u======> >r4   c                     t          j                    \  } }|                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          d	z  d
d           dt
          j        d<   |                                }t          |	                                g d          D ]9\  }}t
          j
                            |                                |          sJ :d S )Nr   r   rR  r   r  rj   rS  r   r`   rT  r   r  r  r\  r  r^  s        r2   .test_legend_labelcolor_rcparam_markerfacecolorr    r  r4   c                     t          j                    \  } }|                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          dz  dd           |                    t          j        d          t          j        d          d	z  d
d           dt
          j        d<   |                                }t          |	                                g d          D ]9\  }}t
          j
                            |                                |          sJ :d S )Nr   r   rR  r   r  rj   rS  r   r`   rT  r   mfcr  r\  r  r^  s        r2   4test_legend_labelcolor_rcparam_markerfacecolor_shortr  )  r  r4   z4ignore:No artists with labels found to put in legendc                     t          j                    } |                                 rJ |                     d           |                                 sJ |                     d           |                                 rJ d S )NTF)r   r%   get_draggableset_draggabler%   s    r2   test_get_set_draggabler  6  s    Z\\F##%%%%%
!!!!!
##%%%%%%%r4   	draggable)TFc                     t          j                    \  }}|                    t          d          d           |                    |           }|                                | u sJ d S )Nr   shabnamsr=   )r  )r   r   rB   rn   r%   r  )r  r,   r-   rz   s       r2   test_legend_draggabler  @  sc    lnnGCGGE"IIZG(((
))i)
(
(C)++++++r4   c                     t          j        g dddd          \  } }}t          j                    }|j        D ]}|                    d           |                                d d         |d                                         d d         k    sJ |                                d d         |d                                         d d         k    sJ d S )	Nr   g      ?datar  )r  r   r0   r[   rI   r   )r   rm   r%   r   	set_alphaget_facecolorget_edgecolor)r.   r  hhr%   r  s        r2   test_alpha_handlesr  H  s    x			V5IIIHAq"Z\\F#  
Scrc"be&9&9&;&;CRC&@@@@@crc"be&9&9&;&;CRC&@@@@@@@r4   c                 0   dt           j        d<   dt           j        d<   dt           j        d<   t          j                    \  }}|                    ddd	           |                    d
           |j                                         d| j        vsJ d S )Nr/  zfont.familyzComputer Modernz
font.serifTztext.usetexr   inputr=   r   r4  z Font family ['serif'] not found.)	r   r   r   r   rB   r%   ro   rp   r  )caplogr,   r-   s      r2   test_usetex_no_warnr  Q  s    ")CL!2CL"&CLlnnGCGGAqG   IIKI   JOO-V[@@@@@@r4   c                 F   t          j        dd          |                     t          dfd           t	          j                    \  }}|j                                         g d}g d}|                    ||dd	
           t          ddi          5  |
                                }d d d            n# 1 swxY w Y   t          j        t          d          5 }|                    |           d d d            n# 1 swxY w Y   t          |          dk    sJ d S )Nr         ?rd   perf_counterc                  "    t                     S Nnextcounters   r2   <lambda>z-test_warn_big_data_best_loc.<locals>.<lambda>b      d7mm r4   rR   rU   rX   rY   r=   z
legend.locr?   zGCreating legend with loc="best" can be slow with large amounts of data.r   rj   )	itertoolscountsetattrtimer   r   ro   rp   rB   r
   r%   r   r   r  draw_artistr   )monkeypatchr,   r-   r.   r/   r%   recordsr  s          @r2   test_warn_big_data_best_locr  _  s   oac***Gn.C.C.C.CDDDlnnGCJOO 	'&&A***AGGAq$fG%%%	\6*	+	+                	k)
* 
* 
*  -4                              w<<1s$   B99B= B=DDDc                 f   t          j        dd          |                     t          dfd           t	          j                    \  }}|j                                         g d}g d}|                    ||dd	
           |	                    d          }|
                    |           d S )Nr   r  r  r  c                  "    t                     S r  r  r  s   r2   r  z:test_no_warn_big_data_when_loc_specified.<locals>.<lambda>z  r  r4   rR   rU   rX   rY   r=   r?   )r  r  r  r  r   r   ro   rp   rB   r%   r  )r  r,   r-   r.   r/   r%   r  s         @r2   (test_no_warn_big_data_when_loc_specifiedr  w  s    oac***Gn.C.C.C.CDDDlnnGCJOO 	'&&A***AGGAq$fG%%%YYvFOOFr4   label_arraylowhigh)r  r  c                     g d}ddgddgddgg}t          j                    \  }}|                    |||            |                                }d |                                D             }|d	d
gk    sJ d S )Nr   r   rj   r   r   rf   r=   c                 6    g | ]}|                                 S r   r  r  entrys     r2   r  z;test_plot_multiple_input_multiple_label.<locals>.<listcomp>  "    BBBENN$$BBBr4   r  r  )r   r   rB   r%   r  )r  r.   r/   r,   r-   rz   legend_textss          r2   'test_plot_multiple_input_multiple_labelr    s     			A
Q
Q
Q	A lnnGCGGAqG$$$
))++CBB#--//BBBLE6?******r4   r   r   r   c                    g d}ddgddgddgg}t          j                    \  }}|                    |||            |                                }d |                                D             }|t          |           gdz  k    sJ d S )	Nr   r   rj   r   r   rf   r=   c                 6    g | ]}|                                 S r   r  r  s     r2   r  z9test_plot_multiple_input_single_label.<locals>.<listcomp>  r  r4   )r   r   rB   r%   r  r\  )r   r.   r/   r,   r-   rz   r  s          r2   %test_plot_multiple_input_single_labelr    s     			A
Q
Q
Q	A lnnGCGGAqG
))++CBB#--//BBBLCJJ<!+++++++r4   c                    g d}g d}t          j                    \  }}t          j        t          j        d          5  |                    |||            d d d            n# 1 swxY w Y   |                                }t          |	                                          dk    sJ |	                                d         
                                t          |           k    sJ d S )Nr   )rj   r   r   z$Passing label as a length 2 sequencer   r=   r   r   )r   r   r   r   r   r   rB   r%   r   r  r  r\  )r  r.   r/   r,   r-   rz   s         r2   %test_plot_single_input_multiple_labelr    s    			A		AlnnGC	c6B
D 
D 
D ) )
1K((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ))++Cs}}1$$$$==??1&&((C,<,<<<<<<<s   A$$A(+A(c                      t          j                    \  } }|                    dgdggdg          \  }|                                dk    sJ d S )Nr   r   Ar=   )r   r   rB   	get_label)r,   r-   rY   s      r2   !test_plot_single_input_list_labelr    sS    lnnGCGGaS1#JseG,,ED>>s""""""r4   c                      t          j        t                    5  g d} ddgddgddgg}g d}t          j                    \  }}|                    | ||           d d d            d S # 1 swxY w Y   d S )	Nr   r   rj   r   r   rf   )r  r  mediumr=   )r   r6  r  r   r   rB   )r.   r/   r   r,   r-   s        r2   3test_plot_multiple_label_incorrect_length_exceptionr    s     
z	"	" # #IIVVV *)),..R
1E"""# # # # # # # # # # # # # # # # # #s   AA))A-0A-c                      t          j                    \  } }|                    g dg dg dddd           |                                 d S )Nrd  r   r   r   faceFill)r  r   r   )r   r   r   r%   r   s     r2   test_legend_face_edgecolorr    sY    lnnGCOOIIIyyy)))!V6  C C CIIKKKKKr4   c                      t          j                    \  } }|                    ddgddgd           |                                }|j        |u sJ |                                d         j        |u sJ d S )Nr   rj   r`   r   rY   r=   r   )r   r   rB   r%   r7  r  r   s      r2   test_legend_text_axesr    st    lnnGCGGQFQF&G)))
))++C8r>>>>==??1"b((((((r4   c                  J   t          j                    \  } }|                    ddgddgd           t          j        dgdgd          g}|                    |dgd          }|d                                         |j        d                                         k    sJ d S )Nr   r   r  )r  r"  r  )r   r   r!   mlinesLine2Dr%   r  r   )r,   r-   r1   rz   s       r2   test_handlerline2dr    s    lnnGCJJ1v1vcJ***}aS1#c2223G
))Gj\Q)
7
7C1:  ""c&8&;&F&F&H&HHHHHHHr4   c                      t          j                                                    } |                                 }|                    ddgddgd           |                                 }|j        | u sJ d S )Nr   r   rY   r=   )r   r   
subfiguresr   rB   r%   )subfigr-   rz   s      r2   test_subfigure_legendr    sn    Z\\$$&&F			BGGQFQF&G)))
--//C:r4   c                     t          j        ddgddgdd          } t          j                                                    d         }|                    d           |                                d d         t          |                                 d         d d                   k    sJ |                                d d         t          |                                 d         d d                   k    sJ d S )	Nr   r   rj   r`   z#123456r   )r0   r   r   )r   r   r%   get_patchesr  r  tupler  )pcr   s     r2   -test_setting_alpha_keeps_polycollection_colorr    s    		1a&1a&		I	I	IBJLL$$&&q)E	OOC  !$b.>.>.@.@.CBQB.G(H(HHHHH  !$b.>.>.@.@.CBQB.G(H(HHHHHHHr4   c                  H   g d} t          j                    \  }}d | D             }g d}d |D             }|                    ||          }d |                                D             }d |                                D             }||cxk    r| k    sn J ||k    sJ d S )N)r  *r  c                 B    g | ]}t          j        d gd gd|          S )r   None)lsr  )r  r  )r  marks     r2   r  z3test_legend_markers_from_line2d.<locals>.<listcomp>  s?     # # # ]A3t<<< # # #r4   )r  rL   xyzzyc                 6    g | ]}|                                 S r   r  r  rY   s     r2   r  z3test_legend_markers_from_line2d.<locals>.<listcomp>   s"    333Tt  333r4   c                 6    g | ]}|                                 S r   r  r  s     r2   r  z3test_legend_markers_from_line2d.<locals>.<listcomp>  s"    DDD4??$$DDDr4   c                 6    g | ]}|                                 S r   r  )r  r  s     r2   r  z3test_legend_markers_from_line2d.<locals>.<listcomp>  s     AAAd$--//AAAr4   )r   r   r%   	get_linesr  )	_markersr,   r-   r  r*   r  r%   new_markers
new_labelss	            r2   test_legend_markers_from_line2dr    s    HlnnGC# #!# # #E$$$F33U333GYYuf%%FDD1A1A1C1CDDDKAAf.>.>.@.@AAAJk----X------Zr4   c                 n    g d}d}|                      ||           |                     ||           d S )N)r   r   r   r   er  r`   )ncol)rb   r  )r%  r&  stringsrb   s       r2   test_ncol_ncolsr  
  sF     -,,GEOOG%O(((NN7%N(((((r4   c                     t          j                    \  } }t          j        t          d          5  |                    ddg           d d d            n# 1 swxY w Y   t          j        t          d          5  |                    ddg           d d d            n# 1 swxY w Y   t          j        t          d          5  |                    d	dg           d d d            d S # 1 swxY w Y   d S )
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   r6  r  r%   r   s     r2    test_loc_invalid_tuple_exceptionr    s    lnnGC	z +C 
E 
E 
E 5 5
		g{m	4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 
z +T 
V 
V 
V E E
		-{m	DDDE E E E E E E E E E E E E E E 
z +Q 
S 
S 
S @ @
		(+	???@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s5   AAA=B""B&)B&C..C25C2c                      t          j                    \  } }|                    ddg           |                    ddg           d S )N)r  }?5^I?r  r
  )r   rj   r   r   r%   r   s     r2   test_loc_valid_tupler  $  sG    lnnGCII.+I777II&+I/////r4   c                      t          j                    \  } }|                    ddgdg           |                    ddgdg           d S )Nr  r  r  r
  r   rj   r  r   s     r2   test_loc_valid_listr  *  sO    lnnGCII5%.+I777II1a&+I/////r4   c                      t          j                    \  } }t          j        t          d          5  |                    g ddg           d d d            d S # 1 swxY w Y   d S )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     r2   test_loc_invalid_list_exceptionr  0  s    lnnGC	z +L 
N 
N 
N = =
		ooo{m	<<<= = = = = = = = = = = = = = = = = =   AA!Ac                      t          j                    \  } }t          j        t          d          5  |                    ddidg           d d d            d S # 1 swxY w Y   d S )NzKloc must be string, coordinate tuple, or an integer 0-10, not {'not': True}r   notTr  r
  r  r   s     r2   test_loc_invalid_typer  7  s    lnnGC	z +F 
H 
H 
H ; ;
		udm[M	:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;r  c                      t          j                    \  } }|                    ddg           |                    ddg           |                    ddg           |                    ddg           t          j        t
          d          5  |                    d	dg           d d d            n# 1 swxY w Y   t          j        t
          d
          5  |                    ddg           d d d            d S # 1 swxY w Y   d S )Nr   r  r
  r   r   r   z@loc must be string, coordinate tuple, or an integer 0-10, not 11r   rD  z@loc must be string, coordinate tuple, or an integer 0-10, not -1rI   r   r   r%   r   r6  r  r   s     r2   !test_loc_validation_numeric_valuer  >  s   lnnGCII![MI***II![MI***II![MI***II"k]I+++	z +; 
= 
= 
= 0 0
		b+	///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
z +; 
= 
= 
= 0 0
		b+	///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s$   B77B;>B;DD
Dc                     t          j                    \  } }dg}|                    d|           |                    d|           |                    d|           |                    d|           |                    d|           |                    d|           |                    d|           |                    d|           |                    d	|           |                    d
|           |                    d|           |                    d|           t          j        t
          d          5  |                    d|           d d d            d S # 1 swxY w Y   d S )Nr  r?   r
  r	  r   r   r  r   r   r
  zlower centerzupper centerz 'wrong' is not a valid value forr   wrongr  )r,   r-   r*   s      r2    test_loc_validation_string_valuer  M  s   lnnGC]FII&I(((II-I///II&I(((II-I///II,vI...II,vI...II-I///II'&I)))II-I///II.I000II.I000II.I000	z)K	L	L	L . .
		gf	---. . . . . . . . . . . . . . . . . .s   	E..E25E2c                     t          j        t          d                    \  } t          j        t          d                    \  }t          j        t
          d          5  t          j        | |gg d          }t          |j                  dk    sJ t          |	                                          dk    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   znumber of handles and labelsr   pl1pl2pl3r1   r*   rj   )
r   rB   rn   r   r   r  r%   r   r   r  r"  r#  r%   s      r2   !test_legend_handle_label_mismatchr'  `  s   8E"IIDC8E"IIDC	k)G	H	H	H , ,S#J7L7L7LMMM6())Q....6##%%&&!+++++, , , , , , , , , , , , , , , , , ,s   "ACCCc                  |   t          j        t          d                    \  } t          j        t          d                    \  }t          j        t	          | |g          t	          g d                    }t          |j                  dk    sJ t          |                                          dk    sJ d S )Nr   r!  r%  rj   )r   rB   rn   r%   iterr   r   r  r&  s      r2   (test_legend_handle_label_mismatch_no_lenr*  i  s    8E"IIDC8E"IIDCZc3Z 0 0#$9$9$9::< < <Fv$%%****v!!""a''''''r4   c                      t          j        g d           t          j        t          d          5  t          j                     d d d            d S # 1 swxY w Y   d S )Nr   zNo artists with labels foundr   )r   rB   r   r6  r  r%   r   r4   r2   test_legend_nolabels_warningr,  r  s    HYYY	{*H	I	I	I  
                 s   AAAc                      t          j        g d           t          j                     t          j                                                    J d S )Nr   )r   rB   r%   r/  r  r   r4   r2   test_legend_nolabels_drawr.  x  sE    HYYYJLLL799!!-----r4   c            	      d   g d} g d}g d}g }t          j        dd          \  }}t          |j        d          D ]\  }}|                    | ||dd	d
           |                    dd           |                    dd           |                    |          }|j        	                                 |
                    |                                                    |j                                                             t          |d         j        |d         j                   d S )Nr   )r   r   r   )r   r   r   rj   r   r   ra   r?   r   grayr   zShaded Area)r0   r  r   r   r   rI   r   r@   r   )r   r   r    rk   r   r\   r]   r%   ro   rp   rq   rr   rs   rt   ru   r   rv   )	r.   r  r  rx   r,   rw   r-   r   rz   s	            r2   test_legend_loc_polycollectionr3    s9    			A	B	BJ|!W555HCsx!788 J JC
2rs-PPP
Aq
BiiCi  
!!##//0E0E0G0GHH	J 	J 	J 	JJqM(*Q-*>?????r4   c                  0   t          j        dd          \  } }g }t          |j        d          D ]\  }}ddg}ddg}|                    ||d           |                    ddd	d
           |                    |          }| j                                         |	                    |
                                                    |j                                                             t          |d         j        |d         j                   d S )Nrj   r0  ra   r1  r   z	plot namer=   r  zsome text blahblahtop)verticalalignmentr@   r   )r   r   r    rk   rB   r  r%   ro   rp   rq   rr   rs   rt   ru   r   rv   )r,   rw   rx   r-   r   r.   r/   rz   s           r2   test_legend_textr7    s    |!W555HCJsx!788 J JCFF
1K(((
Q,FFFiiCi  
!!##//0E0E0G0GHH	J 	J 	J 	JJqM(*Q-*>?????r4   c                     t           j                            d           t           j                            d          } t          j        dd          \  }}g d}|d                             | d|	          }d
 |d         D             |k    sJ |d                                         \  }}||k    sJ t          d |D                       sJ |d                             | |d          }d |d         D             |k    sJ |d                                         \  }}||k    sJ t          d |D                       sJ t          j	        t          d          5  |d                             | |d d                   }d d d            n# 1 swxY w Y   |d                             | d          }	|	d         d                                         dk    sJ t          d |	d         dd          D                       sJ d S )Ni!N,)r   r   r   r   )nrowsrb   )box Azbox Bzbox Czbox Dr   T)patch_artistr   c                 6    g | ]}|                                 S r   r  r  r  s     r2   r  z.test_boxplot_legend_labels.<locals>.<listcomp>  s     000aAKKMM000r4   boxesc              3   T   K   | ]#}t          |t          j        j                  V  $d S r  )
isinstancer   patches	PathPatchr  s     r2   	<genexpr>z-test_boxplot_legend_labels.<locals>.<genexpr>  s1      EEz!S[233EEEEEEr4   F)r   showboxc                 6    g | ]}|                                 S r   r=  r>  s     r2   r  z.test_boxplot_legend_labels.<locals>.<listcomp>  s     222aAKKMM222r4   mediansc              3   T   K   | ]#}t          |t          j        j                  V  $d S r  )rA  r   r  r  r  s     r2   rD  z-test_boxplot_legend_labels.<locals>.<genexpr>  s1      @@1z!SY-..@@@@@@r4   z values must have same the lengthr   rj   rI   r=   r`   r:  c              3   d   K   | ]+}|                                                     d           V  ,dS )_N)r  r^  )r  r.   s     r2   rD  z-test_boxplot_legend_labels.<locals>.<genexpr>  s8      IIq{{}}'',,IIIIIIr4   )r   r   seedr   r   boxplotr"   allr   r6  r  r  )
r  r,   rw   legend_labelsbp1r1   r*   bp2bp3bp4s
             r2   test_boxplot_legend_labelsrS    sn   INN89G$$D|!1---HC888M a&..D.
F
FC003w<000MAAAA!f6688OGV]""""EEWEEEEEEEE a&..]E.
B
BC223y>222mCCCC!f6688OGV]""""@@@@@@@@@@ 
z)K	L	L	L = =!fnnTss);n<<= = = = = = = = = = = = = = = a&..W.
-
-Cy>!&&((G3333IIc)nQRR6HIIIIIIIIIIs   #&FFF)r#   r  platformr  unittestr   r  numpyr   numpy.testingr   r   matplotlib.testing.decoratorsr   r   matplotlib.testing._markersr   matplotlib.pyplotpyplotr   
matplotlibr   matplotlib.patchesrB  r   matplotlib.transforms
transformsr  matplotlib.collectionsr  matplotlib.linesr  r  matplotlib.legend_handlerr   matplotlib.legendr%   r  r	   r
   matplotlib.font_managerr   r3   rC   rO   r^   r{   r   r   r   machiner   r   r   r   r   r   r   r   r   r  r  r'  r)  rp  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r)  r,  r=  r  parametrizerC  rI  rM  rP  rZ  r_  rc  rf  rj  rl  rp  rt  ry  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.  r3  r7  rS  r   r4   r2   <module>ri     s                        ) ) ) ) ) )  O O O O O O O O 4 4 4 4 4 4           % % % % % % + + + + + + - - - - - - ! ! ! ! ! ! 2 2 2 2 2 2 # # # # # # ' ' ' ' ' ' ' ' 2 2 2 2 2 29 9 9$ >"555  65 >"555: : 65: >"##  $#@ @ @,@ @ @@ *+>>>' ' ?>'
+ 
+ 
+ ,-4/x/11W<<ee!E E E- -E E- -.D/x/11W<<ee!E E E	I 	IE E	I #$$+8+--99aatE E E2 2E E2 &'T+8+--99aatE E E	6 	6E E	6 7)4888
E 
E 98
E <.d+8+--99aauF F F F F =-0dCCC! ! DC!  ?#6668 8 768 :,D	BBB. . CB.B# # #5 5 5$ (((
 
 )(
]N ]N ]N ]N ]N ]N ]N ]N@5 5 5 5 5 5 5 5p&# &# &#R )*/x/11W<<ee!E E E E E    (   -.//" " 0/" 7899+ + :9+: : :(  ' ' '"   ./T/x/11W<<ee!E E E! !E E!*7 7 7, , ,- - -, , ,  #1 #1 #1L &ABB, , CB,  3447 7 547  ;<<7 7 =<7 &ABB, , CB, "?@@	> 	> A@	>	> 	> 	>	> 	> 	>	> 	> 	>	< 	< 	<< < <	> 	> 	>	> 	> 	>	> 	> 	>> > >&	> 	> 	>	> 	> 	>	> 	> 	>> > >$ "?@@
> 
> A@
>
> 
> 
>
> 
> 
>
> 
> 
>
> 
> 
>
> 
> 
> RSS& & TS& m44, , 54,A A A 
A 
A 
A  0  " %)8)15&/)B)B)D E E+ +E E+ 5!S/22, , 32, %)8)15&/)B)B)D E E= =E E=# # #
# 
# 
#  ) ) )I I I     I I I     " ) ) )@ @ @"0 0 00 0 0= = =; ; ;0 0 0. . .&, , ,( ( (   RSS. . TS.@ @ @&@ @ @"J J J J Jr4   