o
    ¹ikY  ã                   @   sâ  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	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„ Zedgd	d
dd„ ƒZedgd	d
dd„ ƒZedgƒdd„ ƒZedgd	d
dd„ ƒZedgd	d
dd„ ƒZedgd	d
dd„ ƒZedgd	e  ¡ dkr”d nddd d!„ ƒZ!ed"gd	e  ¡ dkr¨d nddd#d$„ ƒZ"ed%gd	d
d&d'„ ƒZ#ed(gd	e  ¡ dkrÇd nd)dd*d+„ ƒZ$ed,d-gd	d
d.d/„ ƒZ%ed0gd	d
d1d2„ ƒZ&ed3gd	d4d5d6d7„ ƒZ'd8d9„ Z(G d:d;„ d;ƒZ)G d<d=„ d=ƒZ*ed>gƒd?d@„ ƒZ+dAdB„ Z,dCdD„ Z-dEdF„ Z.edGgƒdHdI„ ƒZ/edJgƒdKdL„ ƒZ0dMdN„ Z1dOdP„ Z2dQdR„ Z3dSdT„ Z4dUdV„ Z5dWdX„ Z6dYdZ„ Z7d[d\„ Z8d]d^„ Z9d_d`„ Z:dadb„ Z;dcdd„ Z<dedf„ Z=dgdh„ Z>didj„ Z?dkdl„ Z@dmdn„ ZAdS )oé    N)Úmock)Úimage_comparison)ÚHandlerTuple)Ú
rc_contextc                  C   s´   t j d¡} t j d¡}dgd dgd  }dgd dgd  }t ¡ \}}t| |||ƒD ]\}}}}	|j||||	d q-| ¡ \}
}t 	t||
ƒ¡}|j
| ¡ | ¡ d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   © r*   úW/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/matplotlib/tests/test_legend.pyÚtest_legend_ordereddict   s   
ÿr,   Úlegend_auto1T)Úremove_textc                  C   sX   t  ¡ } |  d¡}t d¡}|j|d| ddd |j||d ddd |jdd	 d
S )úTest automatic legend placementéo   éd   é2   Úoúy=1©r   úy=-1Úbest©r   N)r   ÚfigureÚadd_subplotr   ÚarangeÚplotr   )r$   r%   r&   r*   r*   r+   Útest_legend_auto1$   s   

r=   Úlegend_auto2c                  C   sn   t  ¡ } |  d¡}t d¡}|j||ddd}|j||ddd… ddd}|j|d	 |d	 gd
dgdd dS )r/   r0   r1   ÚedgeÚm)Úalignr(   Néÿÿÿÿr   r   ÚupÚdownr7   r8   )r   r9   r:   r   r;   Úbarr   )r$   r%   r&   Úb1Úb2r*   r*   r+   Útest_legend_auto2/   s   

$rH   Úlegend_auto3c                  C   s\   t  ¡ } |  d¡}g d¢}g d¢}|j||ddd | dd¡ | dd¡ |jd	d
 dS )r/   r0   )çÍÌÌÌÌÌì?çš™™™™™¹?rK   rJ   rJ   r   )çffffffî?rL   çš™™™™™©?rM   r   r   zo-Úliner5   ç        ç      ð?r7   r8   N)r   r9   r:   r<   Úset_xlimÚset_ylimr   )r$   r%   r&   r'   r*   r*   r+   Útest_legend_auto3:   s   
rS   Úlegend_various_labelsc                  C   sl   t  ¡ } |  d¡}|jt d¡ddd |jt dd¡ddd |jt ddd¡dd	d |jdd
d d S )Néy   é   r3   r   r5   gffffff@u   DÃ©veloppÃ©srB   Ú__nolegend__r7   )Ú	numpointsr   )r   r9   r:   r<   r   r;   Úlinspacer   ©r$   r%   r*   r*   r+   Útest_various_labelsG   s   
r[   zlegend_labels_first.pngc                  C   sn   t  ¡ } |  d¡}|jt d¡ddd |jt d¡d ddd |jt d	dd
¡ddd |jddd d S )Nr0   r   ú-or   r5   r   z:xr&   é   rB   ÚdÚdiamondr7   F)r   Úmarkerfirst)r   r9   r:   r<   r   r;   Úonesr   rZ   r*   r*   r+   Útest_labels_firstR   s   
rb   zlegend_multiple_keys.pngc                  C   sŽ   t  ¡ } |  d¡}| g d¢d¡\}| g d¢d¡\}| g d¢d¡\}|j||f||f|gg d¢d	||ftd d
||ftd ddid d S )Nr0   ©r   é   é   r\   )rd   re   rV   z-x)re   rV   r   z-d)ztwo keyszpad=0zone keyr   )Úndivider   )rf   Úpad)rX   Úhandler_map)r   r9   r:   r<   r   r   )r$   r%   Úp1Úp2Úp3r*   r*   r+   Útest_multiple_keys]   s   
ÿ
þrl   zrgba_alpha.pngÚx86_64g{®Gáz„?)r.   Útolc                  C   sF   t  dd¡\} }|jtdƒdd t jdgdd}|j g d¢¡ d S )	Nr   r   r   ©ÚlwúLonglabel that will go awayÚcenterr8   ©r   r   r   r   )r   r   r<   Úranger   ÚlegendPatchÚset_facecolor©r$   r%   Úlegr*   r*   r+   Útest_alpha_rgbak   s   ry   zrcparam_alpha.pngc                  C   sx   t  dd¡\} }|jtdƒdd tjddid t jdgd	d
}|j g d¢¡ W d   ƒ d S 1 s5w   Y  d S )Nr   r   r   ro   zlegend.framealphag      è?)Úrcrq   rr   r8   rs   )	r   r   r<   rt   Úmplr   r   ru   rv   rw   r*   r*   r+   Útest_alpha_rcparamt   s   "úr|   Úfancyc                   C   s~   t  d¡ t jt d¡t ddd¡dd t jdgd dd	d t jt d¡t d¡d
d
d	d t jddd
gddddd d S )NrU   r   r   rB   zXX
XXr5   r   zo--ÚXXr   )ÚxerrÚyerrr   r   rP   rd   Tú	My legendr   )r   r   ÚncolÚshadowÚtitlerX   )r   Úsubplotr   r   r;   r<   Úerrorbarr   r*   r*   r*   r+   Ú
test_fancy‚   s   
 ÿ
ÿr‡   Ú
framealphag{®Gáz”?c                  C   s4   t  ddd¡} | }tj| |ddd tjdd d S )Nr   r1   Úmylabelr   ©r   rp   r   )rˆ   )r   rY   r   r<   r   )r&   r'   r*   r*   r+   Útest_framealphaŽ   s   r‹   Úscatter_rc3Úscatter_rc1c                  C   sš   t  ¡  t  d¡} | jt d¡t ddd¡dd | jddd	gd
d dtjd< t  ¡  t  d¡} | jt d¡t ddd¡dd | jddd	gd
d d S )NrU   r   r   rB   Úthreer5   r   rP   r   r   )r   r   r„   r   zlegend.scatterpointsÚone)	r   r9   r…   r   r   r;   r   r{   ÚrcParams)r%   r*   r*   r+   Útest_rc—   s   
 ÿ

 
ÿr‘   Úlegend_expandc                  C   sª   ddg} t  t| ƒd¡\}}t d¡}t|| ƒD ]:\}}|j|d| ddd |jd	|d
}| |¡ |j||d ddd |jd|d
}| |¡ |jd|dd qdS )zTest expand modeNÚexpandr   r1   r2   r3   r4   r5   z
upper left)r   Úmoder6   Úrightz
lower leftrd   )r   r”   r‚   )	r   r   Úlenr   r;   r   r<   r   Ú
add_artist)Úlegend_modesr$   Ú	axes_listr&   r%   r”   Úl1Úl2r*   r*   r+   Útest_legend_expand¨   s   


ùrœ   ÚhatchingÚdefault)r.   Ústylec               	   C   s  dt jd< t  ¡ \} }t jdddddd}| |¡ t jdddd	d
dd}| |¡ t jddddddd}| |¡ t jdddd	dd
dd}| |¡ |jg d¢g d¢g d¢ddd |jg d¢g d¢g d¢dddd | dd¡ | dd¡ |jddd d S ) Né   ztext.kerning_factor)r   r   ç333333Ó?ÚxxzPatch
default color
filled)Úhatchr   )ç…ëQ¸Õ?r   z||ÚC1z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©   )rJ   rP   rJ   ú+zPath
default color)r¤   g¸…ëQ¸Þ?g)\Âõ(ä?ÚC2zPath
explicit colorg{®Gáz„¿gš™™™™™ñ?rV   )ÚhandlelengthÚhandleheight)	r   r   r   Ú	RectangleÚ	add_patchÚfill_betweenrQ   rR   r   )r$   r%   Úpatchr*   r*   r+   Útest_hatching¸   s8   
ÿ
ÿ
ÿ
þ
ÿÿr²   c                  C   sl   t  ¡ } |  ddd¡}| tdƒ¡}|  |d¡}| ¡  | jg ks#J ‚| d¡}| ¡  | ¡ d u s4J ‚d S )Nr   r   Útest)	r   r9   r:   r<   rt   r   ÚremoveÚlegendsÚ
get_legend)r$   r%   Úlinesrx   r*   r*   r+   Útest_legend_removeÙ   s   
r¸   c                   @   sT   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ ZdS )ÚTestLegendFunctionc                 C   s^   t  tdƒ¡}t d¡}t  |dg¡ W d   ƒ n1 sw   Y  | t  ¡ |dg¡ d S )Nr   úmatplotlib.legend.Legendúhello world©r   r<   rt   r   r±   r   Úassert_called_withÚgca©Úselfr·   ÚLegendr*   r*   r+   Útest_legend_handle_labelç   s
   ÿz+TestLegendFunction.test_legend_handle_labelc                 C   sL   t  tdƒ¡}tjtdd t  |¡ W d   ƒ d S 1 sw   Y  d S )Nr   zbut found an Artist)Úmatch)r   r<   rt   ÚpytestÚraisesÚ	TypeErrorr   )rÀ   r·   r*   r*   r+   Útest_legend_handles_onlyí   s   "ýz+TestLegendFunction.test_legend_handles_onlyc                 C   s\   t jtdƒdd}t d¡}t  ¡  W d   ƒ n1 sw   Y  | t  ¡ |dg¡ d S )Nr   r»   r5   rº   r¼   r¿   r*   r*   r+   Útest_legend_no_argsô   s
   
ÿz&TestLegendFunction.test_legend_no_argsc                 C   s`   t jtdƒdd}t d¡}t  dg¡ W d   ƒ n1 sw   Y  | t  ¡ |dg¡ d S )Nr   r»   r5   rº   Úfoobarr¼   r¿   r*   r*   r+   Útest_legend_label_argsú   s
   ÿz)TestLegendFunction.test_legend_label_argsc                 C   sj   t jtdƒdd}t d¡}t j|dgdd W d   ƒ n1 s"w   Y  |jt  ¡ |dgdd d S )Nr   r»   r5   rº   rÉ   r•   r8   r¼   r¿   r*   r*   r+   Útest_legend_three_args   s
   ÿz)TestLegendFunction.test_legend_three_argsc                 C   sr   t jtdƒdd}t d¡}|dgf|_t jddid W d   ƒ n1 s'w   Y  | t  ¡ gddi¡ d S )Nr   r»   r5   z,matplotlib.legend._get_legend_handles_labelsÚ1rd   )rh   )	r   r<   rt   r   r±   Úreturn_valuer   r½   r¾   )rÀ   r·   Úhandles_labelsr*   r*   r+   Útest_legend_handler_map  s   
ýz*TestLegendFunction.test_legend_handler_mapc                 C   sª   t  dd¡\}}t ddtj d¡}|j|t |¡ddd\}|j|t |¡ddd\}t 	d	¡}|j
d
||fd W d   ƒ n1 sEw   Y  | |||fd
¡ d S )Nr   r   rd   é   Úsinr   rŠ   Úcosrº   ©r   r	   )r"   r)   )r   r   r   rY   Úpir<   rÑ   rÒ   r   r±   r   r½   )rÀ   r$   r%   ÚthÚlnsÚlncrÁ   r*   r*   r+   Útest_kwargs  s   ÿzTestLegendFunction.test_kwargsc                 C   s¾   t  dd¡\}}t ddtj d¡}|j|t |¡ddd\}|j|t |¡ddd\}t 	t
¡}|j||fd	d
 W d   ƒ n1 sEw   Y  t|ƒdksRJ ‚t|d jƒdks]J ‚d S )Nr   r   rd   rÐ   rÑ   r   rŠ   rÒ   rÓ   ©r"   úMYou have mixed positional and keyword arguments, some input may be discarded.)r   r   r   rY   rÔ   r<   rÑ   rÒ   rÄ   ÚwarnsÚUserWarningr   r–   ÚstrÚmessage)rÀ   r$   r%   rÕ   rÖ   r×   Úrecordr*   r*   r+   Útest_warn_args_kwargs  s   ÿÿz(TestLegendFunction.test_warn_args_kwargsc                 C   sœ   ddl m} |dƒ}| ¡ }|jg d¢g d¢dd\}|jg d¢g d¢dd\}t d	¡}t ¡  W d   ƒ n1 s<w   Y  | |||gddg¡ d S )
Nr   )Úhost_subplotr0   )r   r   rd   ÚDensityr5   )r   re   rd   ÚTemperaturerº   )	Úmpl_toolkits.axes_grid1rá   Útwinxr<   r   r±   r   r   r½   )rÀ   rá   ÚhostÚparri   rj   rÁ   r*   r*   r+   Útest_parasite#  s   
ÿz TestLegendFunction.test_parasiteN)Ú__name__Ú
__module__Ú__qualname__rÂ   rÇ   rÈ   rÊ   rË   rÏ   rØ   rà   rè   r*   r*   r*   r+   r¹   å   s    	r¹   c                   @   sD   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dS )ÚTestLegendFigureFunctionc                 C   sl   t  ¡ \}}| tdƒ¡}t d¡}| |dg¡ W d   ƒ n1 s$w   Y  |j||dg|jd d S )Nr   rº   r»   ©Úbbox_transform©	r   r   r<   rt   r   r±   r   r½   ÚtransFigure©rÀ   r$   r%   r·   rÁ   r*   r*   r+   rÂ   3  s   ÿ
ÿz1TestLegendFigureFunction.test_legend_handle_labelc                 C   sj   t  ¡ \}}|jtdƒdd}t d¡}| ¡  W d   ƒ n1 s#w   Y  |j||dg|jd d S )Nr   r»   r5   rº   rí   rï   rñ   r*   r*   r+   rÈ   ;  s   
ÿ
ÿz,TestLegendFigureFunction.test_legend_no_argsc                 C   sj   t  ¡ \}}| tdƒ¡}t d¡}| dg¡ W d   ƒ n1 s#w   Y  |j||dg|jd d S )Nr   rº   rÉ   rí   rï   rñ   r*   r*   r+   Útest_legend_label_argC  s   ÿ
ÿz.TestLegendFigureFunction.test_legend_label_argc                 C   sp   t  ¡ \}}| tdƒ¡}t d¡}| |dgd¡ W d   ƒ n1 s%w   Y  |j||dgd|jd d S )Nr   rº   rÉ   r•   rí   rï   rñ   r*   r*   r+   Útest_legend_label_three_argsK  s   ÿ
ÿz5TestLegendFigureFunction.test_legend_label_three_argsc                 C   s^   t  ¡ \}}| tdƒ¡}t t¡ |j|dgddd W d   ƒ d S 1 s(w   Y  d S )Nr   rÉ   r•   Úleftr8   )r   r   r<   rt   rÄ   rÅ   Ú	Exceptionr   )rÀ   r$   r%   r·   r*   r*   r+   Ú#test_legend_label_three_args_pluskwS  s
   "ÿz<TestLegendFigureFunction.test_legend_label_three_args_pluskwc                 C   s–   t  dd¡\}}|d  tdƒ¡}|d  t d¡d ¡}t d¡}|jdd||fd	 W d   ƒ n1 s7w   Y  |j	|||fdd|j
d
 d S )Nr   rd   r   r   ç       @rº   r•   rÓ   )r   r"   r)   )r   rî   )r   r   r<   rt   r   r;   r   r±   r   r½   rð   )rÀ   r$   Úaxsr·   Úlines2rÁ   r*   r*   r+   Útest_legend_kw_args[  s   ÿ
þz,TestLegendFigureFunction.test_legend_kw_argsc                 C   s    t  dd¡\}}|d  tdƒ¡}|d  t d¡d ¡}t t¡}|j	||fdd W d   ƒ n1 s6w   Y  t
|ƒdksCJ ‚t|d jƒdksNJ ‚d S )	Nr   rd   r   r   r÷   rÓ   rÙ   rÚ   )r   r   r<   rt   r   r;   rÄ   rÛ   rÜ   r   r–   rÝ   rÞ   )rÀ   r$   rø   r·   rù   rß   r*   r*   r+   rà   e  s   ÿÿz.TestLegendFigureFunction.test_warn_args_kwargsN)
ré   rê   rë   rÂ   rÈ   rò   ró   rö   rú   rà   r*   r*   r*   r+   rì   1  s    
rì   zlegend_stackplot.pngc                  C   s|   t  ¡ } |  d¡}t ddd¡}d| }d| d }d| d }|j||||g d	¢d
 | d¡ | d¡ |jdd dS )z/Test legend for PolyCollection using stackplot.r0   r   r   rP   r÷   r   g      @rd   )Úy1Úy2Úy3rÙ   )r   r   )r   éF   r7   r8   N)	r   r9   r:   r   rY   Ú	stackplotrQ   rR   r   )r$   r%   r&   rû   rü   rý   r*   r*   r+   Útest_legend_stackplotq  s   


r   c                  C   s<   t  ¡ \} }t  ¡ \}}| tdƒtdƒ¡}| |d¡ d S )Nre   Úfoo)r   r   rE   rt   r   )r$   r%   Úfig2Úax2Úbrsr*   r*   r+   Útest_cross_figure_patch_legend  s   r  c               
   C   s¤   t  ¡ \} }|jtjgtjgddddd}| |gdg¡ t  ¡ \} }dD ]!}d}tj d|¡\}}d	tj |¡ }|j|||||d
dd q%| ¡  | d¡ d S )Nr3   r
   re   )ÚmarkerÚ	facecolorr¦   Úsr   )ÚredÚgreenÚblueiî  rd   g      i@r¡   Únone)r   r  r   ÚalphaÚ
edgecolorsT)	r   r   r   r   Únanr   r   ÚrandÚgrid)r$   r%   Úhr(   Únr&   r'   Úscaler*   r*   r+   Útest_nanscatter‰  s   ÿÿr  c                  C   s¼   t  ¡ \} }|jdddddd |jdddd	dd | ¡  t |g¡\}}t|ƒd
ks.J ‚t  ¡ \} }|jdddddd |jdddd	dd | ¡  t |g¡\}}t|ƒd
ks\J ‚d S )NrO   rP   Úkr3   r³   )r(   r  r   r   r
   Úvrd   )r   r   r   r   ÚmlegendÚ_get_legend_handles_labelsr–   )r$   r%   ÚhandÚlabr*   r*   r+   Útest_legend_repeatcheckok  s   r  znot_covering_scatter.pngc                  C   sd   g d¢} t dƒD ]}tj|g|g| | d qtjg d¢dd t ¡  dd¡ t ¡  dd¡ d S )	N)r	   r   r
   re   )r(   )r  r  r  r7   r8   g      à¿gš™™™™™@)rt   r   r   r   r¾   rQ   rR   )r#   r  r*   r*   r+   Útest_not_covering_scatter¬  s   r  z"not_covering_scatter_transform.pngc                  C   s^   t  ¡  dd¡} t ddd¡}t ||¡ tjdgdg| t ¡ j	 d tj
dd	gd
d d S )Niìÿÿÿr]   r   é   éè  r   )Ú	transformr  rE   r7   r8   )ÚmtransformsÚAffine2DÚ	translater   rY   r   r<   r   r¾   Ú	transDatar   )Úoffsetr&   r*   r*   r+   Ú#test_not_covering_scatter_transform¸  s
   r&  c                  C   s"  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d}t j|dd}t j|dd	d}t ¡ \}}| |¡ | |¡ | |¡ | |||gg d¢¡}|j\}	}
}t|||f|	|
|fƒD ]\}}| ¡ d d |j	ksJ ‚| ¡ d d |j
ksŽJ ‚qpd S )N)r   r   )r   r   )r¡   ç333333ã?)çš™™™™™É?r(  gffffffæ?r(  r©   r§   r   r'  rK   z--re   )Ú
linestylesrp   z-.)r)  ú:)Úline1Úline2zline 3r   r   )ÚmcollectionsÚLineCollectionr   r   Úadd_collectionr   ÚlegendHandlesr   Úget_linestylesÚ_dashSeqÚ_dashOffset)Úlines1rù   Úlines3Úlc1Úlc2Úlc3r$   r%   rx   Úh1Úh2Úh3ÚohÚlhr*   r*   r+   Ú!test_linecollection_scaled_dashesÄ  s      


þr>  c                  C   s.   t  ¡ \} }|jtdƒdd |jdd dS )z(Test legend handler with numpoints <= 1.r   r³   r5   r   )rX   N)r   r   r<   rt   r   rZ   r*   r*   r+   Útest_handler_numpointsÙ  s   r?  c                   C   s   t jg g dd t  ¡  dS )z1Test legend when bar chart is empty with a label.r³   r5   N)r   rE   r   r*   r*   r*   r+   Ú test_empty_bar_chart_with_legendá  s   r@  c                  C   sD   t  ¡ \} }|jtdƒdd |jddd}| ¡  ¡ dks J ‚d S )Nr1   r³   r5   TÚw)rƒ   r  r   )r   r   r<   rt   r   Ú	get_frameÚ	get_alpharw   r*   r*   r+   Útest_shadow_framealphaé  s   rD  c                  C   sJ   t  ¡ \} }| tdƒ¡ | ¡ }| ¡  ¡ dksJ ‚| ¡  ¡ r#J ‚d S )Nr   Ú )r   r   r<   rt   r   Ú	get_titleÚget_textÚget_visiblerw   r*   r*   r+   Útest_legend_title_emptyò  s
   rI  c                  C   s”   t jdd\} }|jtdƒdd | ¡ }| | j ¡ ¡j}t jdd\} }|jtdƒdd | ¡ }| | j ¡ ¡j}t	 
|d d¡|ksHJ ‚d S )	Nr1   ©Údpir   ÚAardvarkr5   éÈ   rd   rK   )r   r   r<   rt   r   Úget_window_extentÚcanvasÚget_rendererÚx0rÄ   Úapprox)r$   r%   rx   Úx01Úx02r*   r*   r+   Ú test_legend_proper_window_extentý  s   rU  c                  C   sP   t jdd\} }|jtdƒdd | ¡ }|  ¡ }| j ¡  | ¡  | ¡  d S )Nr1   rJ  r   rL  r5   )r   r   r<   rt   r   rO  ÚdrawrN  )r$   r%   rx   Úleg2r*   r*   r+   Ú"test_window_extent_cached_renderer  s   
rX  c                  C   s@   t  ¡ \} }| tdƒ¡ |jddd}| ¡  ¡ dksJ ‚d S )Nr   rL  é   )r„   Útitle_fontsize)r   r   r<   rt   r   rF  Úget_fontsizerw   r*   r*   r+   Útest_legend_title_fontsize  s   r\  c                  C   s    t  ¡ \} }|jt d¡t d¡d dd |jt d¡t d¡d dd |jt d¡t d¡d dd |jd	d
}| ¡ D ]}tj 	| 
¡ d	¡sMJ ‚q@d S )Nr   r   ú#1r5   rd   ú#2re   ú#3r	  ©Ú
labelcolor)r   r   r<   r   r;   r   Ú	get_textsr{   r#   Ú
same_colorÚ	get_color)r$   r%   rx   Útextr*   r*   r+   Útest_legend_labelcolor_single  s      ÿrf  c                  C   s²   t  ¡ \} }|jt d¡t d¡d dd |jt d¡t d¡d dd |jt d¡t d¡d dd |jg d	¢d
}t| ¡ g d	¢ƒD ]\}}tj	 
| ¡ |¡sVJ ‚qGd S )Nr   r   r]  r5   rd   r^  re   r_  ©r
   r   r	   r`  ©r   r   r<   r   r;   r   r   rb  r{   r#   rc  rd  ©r$   r%   rx   re  r(   r*   r*   r+   Útest_legend_labelcolor_list*  s      ÿrj  c                  C   ó´   t  ¡ \} }|jt d¡t d¡d ddd |jt d¡t d¡d ddd |jt d¡t d¡d	 d
dd |jdd}t| ¡ g d¢ƒD ]\}}tj	 
| ¡ |¡sWJ ‚qHd S )Nr   r   r]  r
   )r   r(   rd   r^  r   re   r_  r	   Ú	linecolorr`  rg  rh  ri  r*   r*   r+   Ú test_legend_labelcolor_linecolor6  ó   """ÿrm  c                  C   rk  )Nr   r   r]  r
   )r   Úmarkeredgecolorrd   r^  r   re   r_  r	   ro  r`  rg  rh  ri  r*   r*   r+   Ú&test_legend_labelcolor_markeredgecolorB  rn  rp  c                  C   rk  )Nr   r   r]  r
   )r   Úmarkerfacecolorrd   r^  r   re   r_  r	   rq  r`  rg  rh  ri  r*   r*   r+   Ú&test_legend_labelcolor_markerfacecolorN  rn  rr  c                  C   sD   t  ¡ } |  ¡ r
J ‚|  d¡ |  ¡ sJ ‚|  d¡ |  ¡ r J ‚d S )NTF)r   r   Úget_draggableÚset_draggable)r   r*   r*   r+   Útest_get_set_draggableZ  s   

ru  c                  C   sŽ   t jg d¢dddd\} }}t  ¡ }|jD ]}| d¡ q| ¡ d d… |d  ¡ d d… ks1J ‚| ¡ d d… |d  ¡ d d… ksEJ ‚d S )	Nrc   g      Ð?Údatar	  )r  r   r(   rP   rB   r   )r   Úhistr   r0  Ú	set_alphaÚget_facecolorÚget_edgecolor)r&   r  Úhhr   r=  r*   r*   r+   Útest_alpha_handlesc  s   
(,r|  c                  C   sÐ   t  ¡ \} }| j ¡  tdƒD ]}|jt d¡|d qtddiƒ | 	¡ }W d   ƒ n1 s1w   Y  t
 t¡}|  |¡ W d   ƒ n1 sKw   Y  t|ƒdksXJ ‚|D ]}t|jƒdkseJ ‚qZd S )Nr  éˆ  r5   z
legend.locr7   rd   zGCreating legend with loc="best" can be slow with large amounts of data.)r   r   rO  rV  rt   r<   r   r;   r   r   rÄ   rÛ   rÜ   Údraw_artistr–   rÝ   rÞ   )r$   r%   Úidxr   Úrecordsrß   r*   r*   r+   Útest_warn_big_data_best_locl  s    

ÿÿ
ÿÿr  c                  C   sP   t  ¡ \} }| j ¡  tdƒD ]}|jt d¡|d q| d¡}|  	|¡ d S )Nr  r}  r5   r7   )
r   r   rO  rV  rt   r<   r   r;   r   r~  )r$   r%   r  r   r*   r*   r+   Ú(test_no_warn_big_data_when_loc_specified~  s   

r‚  )Br   ÚplatformÚunittestr   Únumpyr   rÄ   Úmatplotlib.testing.decoratorsr   Úmatplotlib.pyplotÚpyplotr   Ú
matplotlibr{   Úmatplotlib.transformsÚ
transformsr!  Úmatplotlib.collectionsr-  Úmatplotlib.legend_handlerr   Úmatplotlib.legendr   r  r   r,   r=   rH   rS   r[   rb   rl   Úmachinery   r|   r‡   r‹   r‘   rœ   r²   r¸   r¹   rì   r   r  r  r  r  r&  r>  r?  r@  rD  rI  rU  rX  r\  rf  rj  rm  rp  rr  ru  r|  r  r‚  r*   r*   r*   r+   Ú<module>   s–    









ÿ
ÿ

ÿ



 L@


			