U
    d»{jˆ  ã                	   @   sb  d dl Z d dlZd dlmZ d dlZd dl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! 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&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�rbd 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
d0d1gdd�d2d3„ ƒZ/e
d4gdd�d5d6„ ƒZ0e
d7gdd8d9�d:d;„ ƒZ1d<d=„ Z2G d>d?„ d?ƒZ3G d@dA„ dAƒZ4e
dBgƒdCdD„ ƒZ5dEdF„ Z6dGdH„ Z7dIdJ„ Z8e
dKgƒdLdM„ ƒZ9e
dNgƒdOdP„ ƒZ:dQdR„ Z;dSdT„ Z<dUdV„ Z=dWdX„ Z>dYdZ„ Z?d[d\„ Z@d]d^„ ZAd_d`„ ZBdadb„ ZCejD Edcdd¡dedf„ ƒZFejD Edcdd¡dgdh„ ƒZGejD Edidj¡dkdl„ ƒZHdmdn„ ZIdodp„ ZJdqdr„ ZKdsdt„ ZLejD Edidj¡dudv„ ƒZMdwdx„ ZNdydz„ ZOd{d|„ ZPd}d~„ ZQdd€„ ZRd�d‚„ ZSdƒd„„ ZTed…d†„ ƒZUd‡dˆ„ ZVd‰dŠ„ ZWejD Ed‹dŒd�gdŽe XdŒd�g¡g¡d�d�„ ƒZYejD Ed‘d’d“eZg¡d”d•„ ƒZ[ejD Ed‹dŒd�gdŽe XdŒd�g¡g¡d–d—„ ƒZ\d˜d™„ Z]dšd›„ Z^dœd�„ Z_dždŸ„ Z`d d¡„ Zad¢d£„ Zbd¤d¥„ Zce	ƒ d¦d§„ ƒZddS )¨é    N)Úmock)Úcheck_figures_equalÚimage_comparison)Úneeds_usetex)ÚHandlerTuple)Ú
rc_context)ÚFontPropertiesc                  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� qZ| ¡ \}
}t 	t||
ƒ¡}|j
| ¡ | ¡ dd	d
� d S )Né
   Úaé   ÚbÚrÚg)ÚlabelÚcúcenter left)é   ç      à?)ÚlocÚbbox_to_anchor)ÚnpÚrandomZ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,   ú[/var/www/html/bwave/python/venv/lib/python3.8/site-packages/matplotlib/tests/test_legend.pyÚtest_legend_ordereddict   s     ÿr.   Zlegend_auto1T)Úremove_textc                  C   sR   t  ¡ \} }t d¡}|j|d| ddd� |j||d ddd� |jdd� d	S )
úTest automatic legend placementéd   é2   Úoúy=1©r   úy=-1Úbest©r   N)r   r   r   ÚarangeÚplotr   )r&   r'   r(   r,   r,   r-   Útest_legend_auto1(   s
    
r;   Zlegend_auto2c                  C   sh   t  ¡ \} }t d¡}|j||ddd�}|j||ddd… ddd�}|j|d |d gd	d
gdd� dS )r0   r1   ÚedgeÚm)Úalignr*   Néÿÿÿÿr   r   ÚupZdownr7   r8   )r   r   r   r9   Úbarr   )r&   r'   r(   Úb1Úb2r,   r,   r-   Útest_legend_auto22   s
    
rD   Zlegend_auto3c                  C   sf   t  ¡ \} }ddddddg}ddddddg}|j||ddd� | d	d
¡ | d	d
¡ |jdd� dS )r0   çÍÌÌÌÌÌì?çš™™™™™¹?r   gffffffî?gš™™™™™©?zo-Úliner5   ç        ç      ð?r7   r8   N)r   r   r:   Úset_xlimÚset_ylimr   )r&   r'   r(   r)   r,   r,   r-   Útest_legend_auto3<   s    rL   Z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Ã©sr?   Z__nolegend__r7   )Ú	numpointsr   )r   ÚfigureZadd_subplotr:   r   r9   Úlinspacer   ©r&   r'   r,   r,   r-   Útest_various_labelsH   s    
rS   c               	   C   s^   t  ¡ \} }|jddgdd�\}tjtdd�� |j|gd�}W 5 Q R X t|jƒdksZt	‚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   Z_foor5   z*starts with '_'.*excluded from the legend.©Úmatch©r+   N)
r   r   r:   ÚpytestÚwarnsÚUserWarningr   ÚlenÚlegendHandlesÚAssertionError)r&   r'   rG   r   r,   r,   r-   Ú)test_legend_label_with_leading_underscoreS   s    ÿr]   zlegend_labels_first.pngc                  C   sh   t  ¡ \} }|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 )Nr	   ú-or   r5   r   z:xr(   é   r?   ÚdZdiamondr7   F)r   Zmarkerfirst)r   r   r:   r   r9   Zonesr   rR   r,   r,   r-   Útest_labels_firsta   s
    ra   zlegend_multiple_keys.pngc                  C   s�   t  ¡ \} }| dddgd¡\}| dddgd¡\}| dddgd¡\}|j||f||f|gd	d
dgd||ftd d�||ftd dd�id� d S )Nr   é   é   r^   rN   z-xr   z-dztwo keyszpad=0zone key)Úndivider   )rd   Úpad)rO   Úhandler_map)r   r   r:   r   r   )r&   r'   Úp1Úp2Zp3r,   r,   r-   Útest_multiple_keysk   s     
ÿþri   zrgba_alpha.pngÚx86_64g{®Gáz„?)r/   Ztolc                  C   sF   t  ¡ \} }|jtdƒdd� t jdgdd�}|j dddd	g¡ d S )
Nr	   r   ©ÚlwúLonglabel that will go awayÚcenterr8   r   r   r   )r   r   r:   Úranger   ÚlegendPatchÚset_facecolor©r&   r'   Úlegr,   r,   r-   Útest_alpha_rgbax   s    rt   zrcparam_alpha.pngc               	   C   sb   t  ¡ \} }|jtdƒdd� tjddid��* t jdgdd	�}|j d
dddg¡ W 5 Q R X d S )Nr	   r   rk   zlegend.framealphag      è?)Úrcrm   rn   r8   r   r   r   )	r   r   r:   ro   Úmplr   r   rp   rq   rr   r,   r,   r-   Útest_alpha_rcparam�   s
    rw   Úfancyc                   C   s~   t  d¡ t jdgd ddd� t jt d¡t d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 )NrM   r   r	   zo--ZXXr5   r   r?   zXX
XXr   )ZxerrZyerrr   r   rI   rb   Tú	My legendr   )r   r   ÚncolsÚshadowÚtitlerO   )r   Úsubplotr:   r   r   r9   Z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   Zmylabelr	   )r   rl   r   )r   )r   rQ   r   r:   r   )r(   r)   r,   r,   r-   Útest_framealpha›   s    r€   Zscatter_rc3Z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 )NrM   r	   r   r?   Úthreer5   r   rI   r   ry   )r   r   r|   r   zlegend.scatterpointsÚone)	r   rP   r}   r   r   r9   r   rv   ÚrcParams)r'   r,   r,   r-   Útest_rc¤   s    
 ÿ

 ÿr„   Zlegend_expandc                  C   sª   ddg} t  t| ƒd¡\}}t d¡}t|| ƒD ]t\}}|j|d| ddd� |jd	|d
�}| |¡ |j||d ddd� |jd|d
�}| |¡ |jd|dd� q0dS )zTest expand modeNÚexpandr   r1   r2   r3   r4   r5   z
upper left)r   Úmoder6   Úrightz
lower leftrb   )r   r†   rz   )	r   r   rZ   r   r9   r   r:   r   Z
add_artist)Zlegend_modesr&   Úaxsr(   r'   r†   Úl1Úl2r,   r,   r-   Útest_legend_expandµ   s    


r‹   Z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dddgdddgdddgddd� |jdddgdddgdddgdddd� | d d!¡ | d d!¡ |jd"d"d#� d S )$Né   ztext.kerning_factor)r   r   ç333333Ó?ZxxzPatch
default color
filled)Úhatchr   )ç…ëQ¸Õ?r   z||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Ã?çš™™™™™é?rE   rI   ú+zPath
default colorr‘   g¸…ëQ¸Þ?g)\�Âõ(ä?ZC2zPath
explicit colorg{®Gáz„¿gš™™™™™ñ?rN   )ZhandlelengthZhandleheight)	r   rƒ   r   Z	RectangleZ	add_patchÚfill_betweenrJ   rK   r   )r&   r'   Úpatchr,   r,   r-   Útest_hatchingÅ   s>    
ÿ
ÿ
ÿ
þ
 ÿ  ÿr™   c                  C   sb   t  ¡ \} }| tdƒ¡}|  |d¡}| ¡  | jg ks<t‚| d¡}| ¡  | ¡ d ks^t‚d S )Nr	   Útest)	r   r   r:   ro   r   ÚremoveZlegendsr\   Z
get_legend)r&   r'   Úlinesrs   r,   r,   r-   Útest_legend_removeæ   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d„ Z
dd„ Zdd„ Zdd„ ZdS )ÚTestLegendFunctionc              	   C   sH   t jtdƒdd�}t d¡�}t  ¡  W 5 Q R X | t  ¡ |dg¡ d S )Nr	   úhello worldr5   úmatplotlib.legend.Legend©r   r:   ro   r   r˜   r   Úassert_called_withÚgca©Úselfrœ   ÚLegendr,   r,   r-   Útest_legend_no_argsó   s    z&TestLegendFunction.test_legend_no_argsc              	   C   sJ   t  tdƒ¡}t d¡�}t  |dg¡ W 5 Q R X | t  ¡ |dg¡ d S )Nr	   r    rŸ   r¡   r¤   r,   r,   r-   Ú%test_legend_positional_handles_labelsù   s    z8TestLegendFunction.test_legend_positional_handles_labelsc              	   C   s6   t  tdƒ¡}tjtdd�� t  |¡ W 5 Q R X d S )Nr	   zbut found an ArtistrT   )r   r:   ro   rW   ÚraisesÚ	TypeErrorr   )r¥   rœ   r,   r,   r-   Ú#test_legend_positional_handles_onlyÿ   s    z6TestLegendFunction.test_legend_positional_handles_onlyc              	   C   sL   t jtdƒdd�}t d¡�}t  dg¡ W 5 Q R X | t  ¡ |dg¡ d S )Nr	   rŸ   r5   r    Úfoobarr¡   r¤   r,   r,   r-   Ú"test_legend_positional_labels_only  s    z5TestLegendFunction.test_legend_positional_labels_onlyc              	   C   sV   t jtdƒdd�}t d¡�}t j|dgdd� W 5 Q R X |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   s^   t jtdƒdd�}t d¡�"}|dgf|_t jddid� W 5 Q R X | t  ¡ gddi¡ d S )Nr	   rŸ   r5   z,matplotlib.legend._get_legend_handles_labelsÚ1rb   )rf   )	r   r:   ro   r   r˜   Zreturn_valuer   r¢   r£   )r¥   rœ   Zhandles_labelsr,   r,   r-   Útest_legend_handler_map  s    
z*TestLegendFunction.test_legend_handler_mapc              	   C   s˜   t  ¡ \}}t ddd¡}|j||dd�\}|j|d| dd�\}|j|d| d	d�\}t d
¡�}|j||gd� W 5 Q R X | |||gd	dg¡ d S )Nr   r   é   r(   r5   rb   Ú2xrc   Z3xr    rV   ©	r   r   r   rQ   r:   r   r˜   r   r¢   )r¥   r&   r'   r(   Úln1Úln2Zln3r¦   r,   r,   r-   Útest_legend_kwargs_handles_only  s    z2TestLegendFunction.test_legend_kwargs_handles_onlyc              	   C   sz   t  ¡ \}}t ddd¡}| ||¡\}| |d| ¡\}t d¡�}|jddgd� W 5 Q R X | |||gddg¡ d S )	Nr   r   r±   rb   r    r(   r²   ©r$   r³   )r¥   r&   r'   r(   r´   rµ   r¦   r,   r,   r-   Útest_legend_kwargs_labels_only$  s    z1TestLegendFunction.test_legend_kwargs_labels_onlyc              	   C   sŽ   t  ¡ \}}t ddtj d¡}|j|t |¡dd�\}|j|t |¡dd�\}t 	d¡�}|j
d||fd	� W 5 Q R X | |||fd¡ d S )
Nr   rb   é   Úsinr5   Úcosr    ©r
   r   )r$   r+   )r   r   r   rQ   Úpir:   rº   r»   r   r˜   r   r¢   )r¥   r&   r'   ÚthÚlnsÚlncr¦   r,   r,   r-   Ú!test_legend_kwargs_handles_labels-  s    z4TestLegendFunction.test_legend_kwargs_handles_labelsc              	   C   s¢   t  ¡ \}}t ddtj d¡}|j|t |¡dd�\}|j|t |¡dd�\}t 	t
¡�}|j||fdd� W 5 Q R X t|ƒd	ksˆt‚t|d jƒd
ksžt‚d S )Nr   rb   r¹   rº   r5   r»   r¼   r·   r   úMYou have mixed positional and keyword arguments, some input may be discarded.)r   r   r   rQ   r½   r:   rº   r»   rW   rX   rY   r   rZ   r\   ÚstrÚmessage)r¥   r&   r'   r¾   r¿   rÀ   Úrecordr,   r,   r-   Útest_warn_mixed_args_and_kwargs7  s    ÿz2TestLegendFunction.test_warn_mixed_args_and_kwargsc              	   C   s�   ddl m} |dƒ}| ¡ }|jdddgdddgdd�\}|jdddgdddgd	d�\}t d
¡�}t ¡  W 5 Q R X | |||gdd	g¡ d S )Nr   )Úhost_subplotéo   r   rb   ZDensityr5   rc   ZTemperaturer    )	Zmpl_toolkits.axes_grid1rÇ   Ztwinxr:   r   r˜   r   r   r¢   )r¥   rÇ   ÚhostZparrg   rh   r¦   r,   r,   r-   Útest_parasiteC  s    z TestLegendFunction.test_parasiteN)Ú__name__Ú
__module__Ú__qualname__r§   r¨   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   sX   t  ¡ \}}| tdƒ¡}t d¡�}| |dg¡ W 5 Q R X |j||dg|jd� d S )Nr	   r    rŸ   ©Úbbox_transform©	r   r   r:   ro   r   r˜   r   r¢   ÚtransFigure©r¥   r&   r'   rœ   r¦   r,   r,   r-   Útest_legend_handle_labelS  s    ÿz1TestLegendFigureFunction.test_legend_handle_labelc              	   C   sV   t  ¡ \}}|jtdƒdd�}t d¡�}| ¡  W 5 Q R X |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   sV   t  ¡ \}}| tdƒ¡}t d¡�}| dg¡ W 5 Q R X |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   s\   t  ¡ \}}| tdƒ¡}t d¡�}| |dgd¡ W 5 Q R X |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   sH   t  ¡ \}}| tdƒ¡}t t¡� |j|dgddd� W 5 Q R X d S )Nr	   r¬   r‡   Úleftr8   )r   r   r:   ro   rW   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 5 Q R X |j	|||fdd|j
d
� d S )Nr   rb   r   r	   ç       @r    r‡   r¼   )r   r$   r+   )r   rÐ   )r   r   r:   ro   r   r9   r   r˜   r   r¢   rÒ   )r¥   r&   rˆ   rœ   Ú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 5 Q R X t
|ƒdksrt‚t|d jƒdksˆt‚d S )	Nr   rb   r   r	   rÚ   r¼   r·   rÂ   )r   r   r:   ro   r   r9   rW   rX   rY   r   rZ   r\   rÃ   rÄ   )r¥   r&   rˆ   rœ   rÛ   rÅ   r,   r,   r-   Útest_warn_args_kwargs…  s    ÿz.TestLegendFigureFunction.test_warn_args_kwargsN)
rË   rÌ   rÍ   rÔ   r§   rÕ   rÖ   rÙ   rÜ   rÝ   r,   r,   r,   r-   rÎ   Q  s   
rÎ   zlegend_stackplot.pngc                  C   sx   t  ¡ \} }t ddd¡}d| }d| d }d| d }|j||||dd	d
gd� | d¡ | d¡ |jdd� dS )z/Test legend for PolyCollection using stackplot.r   r	   rI   rÚ   r   g      @rb   Úy1Úy2Úy3r·   )r   r	   )r   éF   r7   r8   N)r   r   r   rQ   Z	stackplotrJ   rK   r   )r&   r'   r(   rÞ   rß   rà   r,   r,   r-   Útest_legend_stackplot‘  s    

râ   c                  C   s<   t  ¡ \} }t  ¡ \}}| tdƒtdƒ¡}| |d¡ d S )Nrc   Úfoo)r   r   rA   ro   r   )r&   r'   Zfig2Zax2Z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 ]B}d}tj d|¡\}}d	tj |¡ }|j|||||d
dd� qJ| ¡  | d¡ d S )Nr3   r   rc   )ÚmarkerÚ	facecolorr’   Úsr   )ÚredÚgreenÚblueiî  rb   g      i@r�   Únone)r   rç   r   ÚalphaZ
edgecolorsT)	r   r   r   r   Únanr   r   Z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\t‚t  ¡ \} }|jdddddd� |jdddd	dd� | ¡  t |g¡\}}t|ƒd
ks¸t‚d S )NrH   rI   Úkr3   rš   )r*   rå   r   r   r   Úvrb   )r   r   r   r   ÚmlegendZ_get_legend_handles_labelsrZ   r\   )r&   r'   ÚhandZlabr,   r,   r-   Útest_legend_repeatcheckok¼  s    r÷   znot_covering_scatter.pngc                  C   sh   dddg} t dƒD ]}tj|g|g| | d� qtjdddgdd� t ¡  d	d
¡ t ¡  d	d
¡ d S )Nr   r   r   rc   )r*   rã   r7   r8   g      à¿gš™™™™™@)ro   r   r   r   r£   rJ   rK   )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	   )Z	transformrã   rA   r7   r8   )ÚmtransformsZAffine2DÚ	translater   rQ   r   r:   r   r£   Z	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dddg¡}|j\}	}
}t|||f|	|
|fƒD ]\}}| ¡ d |j	ksât
‚qâd S )N)r   r   )r   r   )r�   ç333333ã?)çš™™™™™É?r   gffffffæ?r   r•   r“   r   rÿ   rF   z--rc   )Ú
linestylesrl   z-.)r  ú:Úline1Úline2zline 3r   )ÚmcollectionsZLineCollectionr   r   Zadd_collectionr   r[   r   Zget_linestylesZ_dash_patternr\   )Zlines1rÛ   Zlines3Zlc1Zlc2Zlc3r&   r'   rs   Zh1Zh2Zh3Z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   ©rO   N)r   r   r:   ro   r   rR   r,   r,   r-   Útest_handler_numpoints÷  s    r	  c               	   C   s˜   t  ¡ \} }|jddddd� t t¡�}| ¡  W 5 Q R X t|ƒdksLt‚t  ¡ \}}| 	t
j ddd¡¡ t ¡ � t d¡ | ¡  W 5 Q R X dS )	z2Test that Text artists with labels raise a warningr   Útextr   )r(   r)   rç   r   r   )r	   r	   ÚerrorN)r   r   r
  rW   rX   rY   r   rZ   r\   Z
pcolormeshr   r   ÚuniformÚwarningsÚcatch_warningsÚsimplefilterr   )r&   r'   rÅ   Úfr,   r,   r-   Útest_text_nohandler_warningÿ  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   rA   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@t‚d S )Nr1   rš   r5   TÚw)r{   ræ   r   )r   r   r:   ro   r   Z	get_frameZ	get_alphar\   rr   r,   r,   r-   Útest_shadow_framealpha  s    r  c                  C   sJ   t  ¡ \} }| tdƒ¡ | ¡ }| ¡  ¡ dks6t‚| ¡  ¡ rFt‚d S )Nr	   Ú )	r   r   r:   ro   r   Ú	get_titleÚget_textr\   Zget_visiblerr   r,   r,   r-   Útest_legend_title_empty   s
    r  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s�t‚d S )	Nr1   ©Zdpir	   ÚAardvarkr5   éÈ   rb   rF   )r   r   r:   ro   r   Úget_window_extentÚcanvasZget_rendererZx0rW   Zapproxr\   )r&   r'   rs   Zx01Zx02r,   r,   r-   Ú test_legend_proper_window_extent+  s    r  c                  C   sP   t jdd�\} }|jtdƒdd� | ¡ }|  ¡ }| j ¡  | ¡  | ¡  d S )Nr1   r  r	   r  r5   )r   r   r:   ro   r   r  Údrawr  )r&   r'   rs   Úleg2r,   r,   r-   Ú"test_window_extent_cached_renderer9  s    
r!  c            	   	   C   s  t  tdƒ¡ t t¡� t jdddddœd� W 5 Q R X t jdtddd�d�} |  ¡  	¡ dksdt
‚t jdd	d
d�\}}|j}|d  tdƒ¡ |d jddd�}| ¡  ¡ dks¶t
‚|d  tdƒ¡ |d jddddœd�}| ¡  ¡ dksôt
‚|d  tdƒ¡ d tjd< |d jdddid�}| ¡  ¡ tjd k�sBt
‚|d	  tdƒ¡ |d	 jdd�}| ¡  ¡ tjd k�s€t
‚|d  tdƒ¡ dtjd< |d jdddid�}| ¡  ¡ dk�sÈt
‚|d  tdƒ¡ |d jdd�}| ¡  ¡ dk�s t
‚d S )Nr	   r  é   Úserif)ÚfamilyÚsize)r|   Útitle_fontsizeÚtitle_fontproperties)r|   r'  rb   rc   )r	   rŽ   )Zfigsizer   )r|   r&  r   zlegend.title_fontsizer$  z	font.size©r|   rN   r_   r   )r   r:   ro   rW   r©   Ú
ValueErrorr   r   r  Úget_sizer\   r   ZflatZget_fontsizerv   rƒ   )	rs   r&   ÚaxesZleg0Zleg1r   Zleg3Zleg4Zleg5r,   r,   r-   Ú#test_legend_title_fontprop_fontsizeD  sL    ÿ ÿ

ÿ

ÿ

ÿr,  Ú	alignment)rn   r×   r‡   c                 C   sV   t  ¡ \}}|jtdƒdd� |jd| d�}| ¡ d j| ksBt‚| ¡ | ksRt‚d S )Nr	   rš   r5   r  )r|   r-  r   )	r   r   r:   ro   r   Úget_childrenr>   r\   Úget_alignment©r-  r&   r'   rs   r,   r,   r-   Útest_legend_alignmentj  s
    r1  c                 C   sZ   t  ¡ \}}|jtdƒdd� | ¡ }| | ¡ | ¡ d j| ksFt‚| 	¡ | ksVt‚d S )Nr	   rš   r5   r   )
r   r   r:   ro   r   Zset_alignmentr.  r>   r\   r/  r0  r,   r,   r-   Útest_legend_set_alignments  s    
r2  r*   )rè   rë   )r   r   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 ]}tj 	| 
¡ | ¡s€t‚q€d S )
Nr	   r   ú#1r5   rb   ú#2rc   ú#3©Z
labelcolor)r   r   r:   r   r9   r   Ú	get_textsrv   r%   Ú
same_colorÚ	get_colorr\   ©r*   r&   r'   rs   r
  r,   r,   r-   Útest_legend_labelcolor_single}  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gd�}t| ¡ d	d
dgƒD ]\}}tj	 
| ¡ |¡s’t‚q’d S )Nr	   r   r3  r5   rb   r4  rc   r5  r   r   r   r6  ©r   r   r:   r   r9   r   r   r7  rv   r%   r8  r9  r\   ©r&   r'   rs   r
  r*   r,   r,   r-   Útest_legend_labelcolor_listŠ  s       r>  c                  C   s¶   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| ¡ dddgƒD ]\}}tj	 
| ¡ |¡s’t‚q’d S )Nr	   r   r3  r   ©r   r*   rb   r4  r   rc   r5  r   Ú	linecolorr6  r<  r=  r,   r,   r-   Ú test_legend_labelcolor_linecolor–  s    """rA  c                  C   s¶   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| ¡ dddgƒD ]\}}tj	 
| ¡ |¡s’t‚q’d S )Nr	   r   r3  r   ©r   Úmarkeredgecolorrb   r4  r   rc   r5  r   rC  r6  r<  r=  r,   r,   r-   Ú&test_legend_labelcolor_markeredgecolor¢  s    """rD  c                  C   s¶   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| ¡ dddgƒD ]\}}tj	 
| ¡ |¡s’t‚q’d S )Nr	   r   r3  r   ©r   Úmarkerfacecolorrb   r4  r   rc   r5  r   rF  r6  r<  r=  r,   r,   r-   Ú&test_legend_labelcolor_markerfacecolor®  s    """rG  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� | tjd	< | ¡ }| ¡ D ]}tj	 
| ¡ | ¡s†t‚q†d S )
Nr	   r   r3  r5   rb   r4  rc   r5  úlegend.labelcolor)r   r   r:   r   r9   rv   rƒ   r   r7  r%   r8  r9  r\   r:  r,   r,   r-   Ú%test_legend_labelcolor_rcparam_singleº  s       
rI  c                  C   s¼   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� dtjd< | ¡ }t| 	¡ dddgƒD ]\}}tj
 | ¡ |¡s˜t‚q˜d S )Nr	   r   r3  r   r?  rb   r4  r   rc   r5  r   r@  rH  ©r   r   r:   r   r9   rv   rƒ   r   r   r7  r%   r8  r9  r\   r=  r,   r,   r-   Ú(test_legend_labelcolor_rcparam_linecolorÈ  s    """
rK  c                  C   s¼   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� dtjd< | ¡ }t| 	¡ dddgƒD ]\}}tj
 | ¡ |¡s˜t‚q˜d S )Nr	   r   r3  r   rB  rb   r4  r   rc   r5  r   rC  rH  rJ  r=  r,   r,   r-   Ú.test_legend_labelcolor_rcparam_markeredgecolorÕ  s    """
rL  c                  C   s¼   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� dtjd< | ¡ }t| 	¡ dddgƒD ]\}}tj
 | ¡ |¡s˜t‚q˜d S )Nr	   r   r3  r   rB  rb   r4  r   rc   r5  r   ZmecrH  rJ  r=  r,   r,   r-   Ú4test_legend_labelcolor_rcparam_markeredgecolor_shortâ  s    """
rM  c                  C   s¼   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� dtjd< | ¡ }t| 	¡ dddgƒD ]\}}tj
 | ¡ |¡s˜t‚q˜d S )Nr	   r   r3  r   rE  rb   r4  r   rc   r5  r   rF  rH  rJ  r=  r,   r,   r-   Ú.test_legend_labelcolor_rcparam_markerfacecolorï  s    """
rN  c                  C   s¼   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� dtjd< | ¡ }t| 	¡ dddgƒD ]\}}tj
 | ¡ |¡s˜t‚q˜d S )Nr	   r   r3  r   rE  rb   r4  r   rc   r5  r   ZmfcrH  rJ  r=  r,   r,   r-   Ú4test_legend_labelcolor_rcparam_markerfacecolor_shortü  s    """
rO  c                  C   sD   t  ¡ } |  ¡ rt‚|  d¡ |  ¡ s*t‚|  d¡ |  ¡ r@t‚d S )NTF)r   r   Zget_draggabler\   Zset_draggable©r   r,   r,   r-   Útest_get_set_draggable	  s    

rQ  c                  C   s�   t jdddgdddd�\} }}t  ¡ }|jD ]}| d¡ q,| ¡ d d	… |d  ¡ d d	… ksdt‚| ¡ d d	… |d  ¡ d d	… ksŒt‚d S )
Nr   rb   rc   g      Ð?Údatarè   )rì   r   r*   rI   r?   )r   Úhistr   r[   Ú	set_alphaÚget_facecolorr\   Úget_edgecolor)r(   rð   Úhhr   r  r,   r,   r-   Útest_alpha_handles  s    
(rX  c                 C   sb   dt jd< dt jd< dt jd< t ¡ \}}|jdddd	� |jd
d� |j ¡  d| jks^t	‚d S )Nr#  zfont.familyzComputer Modernz
font.serifTztext.usetexr   Úinputr5   ry   r(  z Font family ['serif'] not found.)
rv   rƒ   r   r   r:   r   r  r  r
  r\   )Zcaplogr&   r'   r,   r,   r-   Útest_usetex_no_warn  s    



rZ  c               	   C   s¨   t  ¡ \} }| j ¡  tdƒD ]}|jt d¡|d� qtddiƒ� | 	¡ }W 5 Q R X t
 t¡�}|  |¡ W 5 Q R X t|ƒdksˆt‚|D ]}t|jƒdksŒt‚qŒd S )Nrú   éˆ  r5   z
legend.locr7   rb   zGCreating legend with loc="best" can be slow with large amounts of data.)r   r   r  r  ro   r:   r   r9   r   r   rW   rX   rY   Údraw_artistrZ   r\   rÃ   rÄ   )r&   r'   Úidxr   ÚrecordsrÅ   r,   r,   r-   Útest_warn_big_data_best_loc)  s    
ÿr_  c                  C   sP   t  ¡ \} }| j ¡  tdƒD ]}|jt d¡|d� q| d¡}|  	|¡ d S )Nrú   r[  r5   r7   )
r   r   r  r  ro   r:   r   r9   r   r\  )r&   r'   r]  r   r,   r,   r-   Ú(test_no_warn_big_data_when_loc_specified;  s    

r`  Úlabel_arrayÚlowÚhigh)rb  rc  c                 C   sj   dddg}ddgddgddgg}t  ¡ \}}|j||| d� | ¡ }dd	„ | ¡ D ƒ}|d
dgksft‚d S )Nr   rb   rc   r   rN   é	   r5   c                 S   s   g | ]}|  ¡ ‘qS r,   ©r  ©Ú.0Úentryr,   r,   r-   Ú
<listcomp>R  s     z;test_plot_multiple_input_multiple_label.<locals>.<listcomp>rb  rc  )r   r   r:   r   r7  r\   )ra  r(   r)   r&   r'   rs   Úlegend_textsr,   r,   r-   Ú'test_plot_multiple_input_multiple_labelD  s    
þrk  r   r‚   r   c                 C   sp   dddg}ddgddgddgg}t  ¡ \}}|j||| d� | ¡ }dd	„ | ¡ D ƒ}|t| ƒgd kslt‚d S )
Nr   rb   rc   r   rN   rd  r5   c                 S   s   g | ]}|  ¡ ‘qS r,   re  rf  r,   r,   r-   ri  b  s     z9test_plot_multiple_input_single_label.<locals>.<listcomp>)r   r   r:   r   r7  rÃ   r\   )r   r(   r)   r&   r'   rs   rj  r,   r,   r-   Ú%test_plot_multiple_input_single_labelV  s    
þrl  c                 C   sl   dddg}dddg}t  ¡ \}}|j||| d� | ¡ }t| ¡ ƒdksLt‚| ¡ d  ¡ t| ƒksht‚d S )Nr   rb   rc   r   rŽ   r5   r   )	r   r   r:   r   rZ   r7  r\   r  rÃ   )ra  r(   r)   r&   r'   rs   r,   r,   r-   Ú%test_plot_single_input_multiple_labelf  s    

rm  c               	   C   s`   t  t¡�L dddg} ddgddgddgg}ddd	g}t ¡ \}}|j| ||d
� W 5 Q R X d S )Nr   rb   rc   r   rN   rd  rc  rb  Zmediumr5   )rW   r©   r)  r   r   r:   )r(   r)   r   r&   r'   r,   r,   r-   Ú3test_plot_multiple_label_incorrect_length_exceptionu  s    
þ
rn  c                  C   s@   t  ¡ \} }|jdddgdddgdddgdddd	� | ¡  d S )
Nr   r   rb   rc   rN   r   ZfaceZFill)ræ   r’   r   )r   r   r—   r   rR   r,   r,   r-   Útest_legend_face_edgecolor‚  s      ÿro  c                  C   sT   t  ¡ \} }|jddgddgdd� | ¡ }|j|ks:t‚| ¡ d j|ksPt‚d S )Nr   rb   rc   rN   rG   r5   r   )r   r   r:   r   r+  r\   r7  rr   r,   r,   r-   Útest_legend_text_axesŠ  s
    rp  c                  C   sn   t  ¡ \} }|jddgddgdd� tjdgdgdd�g}|j|dgdd�}|d  ¡ |jd  ¡ ksjt‚d S )Nr   r   rô   )rå   r  r  )	r   r   r   ÚmlinesÚLine2Dr   Ú
get_markerr[   r\   )r&   r'   r+   rs   r,   r,   r-   Útest_handlerline2d“  s
    rt  c                  C   sF   t  ¡  ¡ } |  ¡ }|jddgddgdd� |  ¡ }|j| ksBt‚d S )Nr   r   rG   r5   )r   rP   Z
subfiguresr   r:   r   r\   )Zsubfigr'   rs   r,   r,   r-   Útest_subfigure_legendœ  s
    ru  c                  C   s�   t jddgddgddd�} t  ¡  ¡ d }| d¡ | ¡ d d… t|  ¡ d d d… ƒks`t‚| ¡ d d… t|  ¡ d d d… ƒksŒt‚d S )	Nr   r   rb   rc   z#123456r   )r*   r   r   )	r   r—   r   Zget_patchesrT  rU  Útupler\   rV  )Zpcr˜   r,   r,   r-   Ú-test_setting_alpha_keeps_polycollection_color¥  s
    
,rw  c            	      C   s–   dddg} t  ¡ \}}dd„ | D ƒ}dddg}d	d„ |D ƒ}| ||¡}d
d„ | ¡ D ƒ}dd„ | ¡ D ƒ}||  kr€| ks†n t‚||ks’t‚d S )NÚ.Ú*rô   c                 S   s"   g | ]}t jd gd gd|d�‘qS )r   ÚNone)Zlsrå   )rq  rr  )rg  Úmarkr,   r,   r-   ri  ±  s   ÿz3test_legend_markers_from_line2d.<locals>.<listcomp>rã   rA   Zxyzzyc                 S   s   g | ]}|  ¡ ‘qS r,   ©rs  ©rg  rG   r,   r,   r-   ri  ´  s     c                 S   s   g | ]}|  ¡ ‘qS r,   r|  r}  r,   r,   r-   ri  ·  s     c                 S   s   g | ]}|  ¡ ‘qS r,   re  )rg  r
  r,   r,   r-   ri  ¸  s     )r   r   r   Ú	get_linesr7  r\   )	Ú_markersr&   r'   rœ   r$   Úmarkersr   Znew_markersZ
new_labelsr,   r,   r-   Útest_legend_markers_from_line2d­  s    
ÿ
r�  c                 C   s4   ddddddg}d}| j ||d� |j ||d	� d S )
Nr
   r   r   r`   Úer  rc   )Zncol)rz   rP  )Zfig_testZfig_refÚstringsrz   r,   r,   r-   Útest_ncol_ncols¾  s    r„  )er   ÚplatformZunittestr   r  Únumpyr   rW   Zmatplotlib.testing.decoratorsr   r   Zmatplotlib.testing._markersr   Zmatplotlib.pyplotZpyplotr   Z
matplotlibrv   Zmatplotlib.transformsZ
transformsrû   Zmatplotlib.collectionsr  Zmatplotlib.linesrœ   rq  Zmatplotlib.legend_handlerr   Zmatplotlib.legendr   rõ   r   Zmatplotlib.font_managerr   r.   r;   rD   rL   rS   r]   ra   ri   Úmachinert   rw   r~   r€   r„   r‹   r™   r�   rž   rÎ   râ   rä   rò   r÷   rø   rþ   r  r	  r  r  r  r  r  r!  r,  r{  Zparametrizer1  r2  r;  r>  rA  rD  rG  rI  rK  rL  rM  rN  rO  rQ  rX  rZ  r_  r`  Úarrayrk  Úintrl  rm  rn  ro  rp  rt  ru  rw  r�  r„  r,   r,   r,   r-   Ú<module>   sæ   
	
	



	
ÿ
ÿ

ÿ



 `@


	&

	

		
	þ

þ
			