a
    ëÝEb }  ã                	   @   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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�rBd ndd �d!d"„ ƒZ&ed#gd
e %¡ dk�rld 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/d0„ ƒZ*ed1gd
d�d2d3„ ƒZ+ed4gd
d5d6�d7d8„ ƒZ,d9d:„ Z-G d;d<„ d<ƒZ.G d=d>„ d>ƒZ/ed?gƒd@dA„ ƒZ0dBdC„ Z1dDdE„ Z2dFdG„ Z3edHgƒdIdJ„ ƒZ4edKgƒdLdM„ ƒZ5dNdO„ Z6dPdQ„ Z7dRdS„ Z8dTdU„ Z9dVdW„ Z:dXdY„ Z;dZd[„ Z<d\d]„ Z=ej> ?d^d_¡d`da„ ƒZ@dbdc„ ZAddde„ ZBdfdg„ ZCdhdi„ ZDej> ?d^d_¡djdk„ ƒZEdldm„ ZFdndo„ ZGdpdq„ ZHdrds„ ZIdtdu„ ZJdvdw„ ZKdxdy„ ZLej>jMe Nd
¡ dzd{�d|d}„ ƒZOd~d„ ZPd€d�„ ZQej> ?d‚dƒd„gd…e Rdƒd„g¡g¡d†d‡„ ƒZSej> ?dˆd‰dŠeTg¡d‹dŒ„ ƒZUej> ?d‚dƒd„gd…e Rdƒd„g¡g¡d�dŽ„ ƒZVd�d�„ ZWd‘d’„ ZXd“d”„ ZYd•d–„ ZZd—d˜„ Z[dS )™é    N)Úmock)Úimage_comparison)Ú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ÚscatterZget_legend_handles_labelsÚcollectionsÚOrderedDictÚlegendÚvaluesÚkeys)ÚXÚYÚlabelsÚcolorsÚfigÚaxÚxÚyr   ÚcolorÚhandlesr   © r)   ú\/home/ja/django-apps/lartica_env/lib/python3.9/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
    
r8   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 )r-   r.   ÚedgeÚm)Úalignr'   Néÿÿÿÿr   r   ÚupZdownr4   r5   )r   r   r   r6   Úbarr   )r#   r$   r%   Úb1Úb2r)   r)   r*   Útest_legend_auto20   s
    
rA   Zlegend_auto3c                  C   sV   t  ¡ \} }g d¢}g d¢}|j||ddd� | dd¡ | dd¡ |jdd	� d
S )r-   )çÍÌÌÌÌÌì?çš™™™™™¹?rC   rB   rB   r   )çffffffî?rD   çš™™™™™©?rE   r   r   zo-Úliner2   ç        ç      ð?r4   r5   N)r   r   r7   Úset_xlimÚset_ylimr   )r#   r$   r%   r&   r)   r)   r*   Útest_legend_auto3:   s    rK   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   é   r0   r   r2   gffffff@u   DÃ©veloppÃ©sr<   Z__nolegend__r4   )Ú	numpointsr   )r   ÚfigureZadd_subplotr7   r   r6   Úlinspacer   ©r#   r$   r)   r)   r*   Útest_various_labelsF   s    
rR   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   r2   r	   z:xr%   é   r<   ÚdZdiamondr4   F)r   Zmarkerfirst)r   r   r7   r   r6   Zonesr   rQ   r)   r)   r*   Útest_labels_firstQ   s
    rV   zlegend_multiple_keys.pngc                  C   sˆ   t  ¡ \} }| 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 )N©r   é   é   rS   ©rX   rY   rM   z-x)rY   rM   r	   z-d)ztwo keyszpad=0zone keyr   )Úndivider   )r[   Úpad)rN   Úhandler_map)r   r   r7   r   r   )r#   r$   Úp1Úp2Zp3r)   r)   r*   Útest_multiple_keys[   s    ÿþr`   zrgba_alpha.pngÚx86_64g{®Gáz„?)r,   Ztolc                  C   sB   t  ¡ \} }|jtdƒdd� t jdgdd�}|j g d¢¡ d S )Nr   r	   ©ÚlwúLonglabel that will go awayÚcenterr5   ©r   r   r   r   )r   r   r7   Úranger   ÚlegendPatchÚset_facecolor©r#   r$   Úlegr)   r)   r*   Útest_alpha_rgbah   s    rl   zrcparam_alpha.pngc                  C   sr   t  ¡ \} }|jtdƒdd� tjddid��0 t jdgdd	�}|j g d
¢¡ W d   ƒ n1 sd0    Y  d S )Nr   r	   rb   zlegend.framealphag      è?)Úrcrd   re   r5   rf   )	r   r   r7   rg   Úmplr   r   rh   ri   rj   r)   r)   r*   Útest_alpha_rcparamq   s
    ro   Ú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 )NrL   r	   r   zo--ZXXr2   r   r<   zXX
XXr   )ZxerrZyerrr   r   rH   rX   Tú	My legendr   )r   r   ÚncolÚshadowÚtitlerN   )r   Úsubplotr7   r   r   r6   Zerrorbarr   r)   r)   r)   r*   Ú
test_fancy   s    
 ÿÿrv   Ú
framealphag{®Gáz”?c                  C   s4   t  ddd¡} | }tj| |ddd� tjdd� d S )Nr   r.   Zmylabelr   )r   rc   r   )rw   )r   rP   r   r7   r   )r%   r&   r)   r)   r*   Útest_framealpha‹   s    rx   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 )NrL   r   r   r<   Úthreer2   r   rH   r   rq   )r   r   rt   r   zlegend.scatterpointsÚone)	r   rO   ru   r   r   r6   r   rn   Ú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   r.   r/   r0   r1   r2   z
upper left)r   Úmoder3   Úrightz
lower leftrX   )r   r~   rr   )	r   r   Úlenr   r6   r   r7   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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||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�   )rB   rH   rB   ú+zPath
default color)r‹   g¸…ëQ¸Þ?g)\�Âõ(ä?ZC2zPath
explicit colorg{®Gáz„¿gš™™™™™ñ?rM   )ZhandlelengthZhandleheight)	r   r{   r   Z	RectangleZ	add_patchÚfill_betweenrI   rJ   r   )r#   r$   Úpatchr)   r)   r*   Útest_hatchingµ   s8    
ÿ
ÿ
ÿ
þ
ÿÿr“   c                  C   sb   t  ¡ \} }| tdƒ¡}|  |d¡}| ¡  | jg ks<J ‚| d¡}| ¡  | ¡ d u s^J ‚d S )Nr   Útest)r   r   r7   rg   r   ÚremoveZlegendsZ
get_legend)r#   r$   Úlinesrk   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   s\   t jtdƒdd�}t d¡�}t  ¡  W d   ƒ n1 s:0    Y  | t  ¡ |dg¡ d S )Nr   úhello worldr2   úmatplotlib.legend.Legend©r   r7   rg   r   r’   r   Úassert_called_withÚgca©Úselfr–   ÚLegendr)   r)   r*   Útest_legend_no_argsã   s    &z&TestLegendFunction.test_legend_no_argsc                 C   s^   t  tdƒ¡}t d¡�}t  |dg¡ W d   ƒ n1 s<0    Y  | 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   sJ   t  tdƒ¡}tjtdd�� t  |¡ W d   ƒ n1 s<0    Y  d S )Nr   zbut found an Artist)Úmatch)r   r7   rg   ÚpytestÚraisesÚ	TypeErrorr   )rŸ   r–   r)   r)   r*   Ú#test_legend_positional_handles_onlyï   s    z6TestLegendFunction.test_legend_positional_handles_onlyc                 C   s`   t jtdƒdd�}t d¡�}t  dg¡ W d   ƒ n1 s>0    Y  | t  ¡ |dg¡ d S )Nr   r™   r2   rš   Úfoobarr›   rž   r)   r)   r*   Ú"test_legend_positional_labels_onlyö   s    *z5TestLegendFunction.test_legend_positional_labels_onlyc                 C   sj   t jtdƒdd�}t d¡�"}t j|dgdd� W d   ƒ n1 sD0    Y  |jt  ¡ |dgdd� d S )Nr   r™   r2   rš   r¨   r   r5   r›   rž   r)   r)   r*   Útest_legend_three_argsü   s    0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 sN0    Y  | t  ¡ gddi¡ d S )Nr   r™   r2   z,matplotlib.legend._get_legend_handles_labelsÚ1rX   )r]   )	r   r7   rg   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 d   ƒ n1 sˆ0    Y  | |||gd	dg¡ d S )Nr   r   é   r%   r2   rX   Ú2xrY   Z3xrš   )r(   ©	r   r   r   rP   r7   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   sŽ   t  ¡ \}}t ddd¡}| ||¡\}| |d| ¡\}t d¡� }|jddgd� W d   ƒ n1 sj0    Y  | |||gddg¡ d S )	Nr   r   r­   rX   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 d   ƒ n1 s‚0    Y  | |||fd¡ d S )
Nr   rX   é   Úsinr2   Úcosrš   ©r   r
   )r!   r(   )r   r   r   rP   Úpir7   r¶   r·   r   r’   r   rœ   )rŸ   r#   r$   ÚthÚlnsÚlncr    r)   r)   r*   Ú!test_legend_kwargs_handles_labels  s    0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 d   ƒ n1 s‚0    Y  t|ƒd	ksœJ ‚t|d jƒd
ks²J ‚d S )Nr   rX   rµ   r¶   r2   r·   r¸   r³   r   úMYou have mixed positional and keyword arguments, some input may be discarded.)r   r   r   rP   r¹   r7   r¶   r·   r¤   ÚwarnsÚUserWarningr   r€   ÚstrÚmessage)rŸ   r#   r$   rº   r»   r¼   Úrecordr)   r)   r*   Útest_warn_mixed_args_and_kwargs'  s    0ÿz2TestLegendFunction.test_warn_mixed_args_and_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 sx0    Y  | |||gddg¡ d S )
Nr   )Úhost_subplotéo   ©r   r   rX   ZDensityr2   )r   rY   rX   ZTemperaturerš   )	Zmpl_toolkits.axes_grid1rÅ   Ztwinxr7   r   r’   r   r   rœ   )rŸ   rÅ   ÚhostÚparr^   r_   r    r)   r)   r*   Útest_parasite3  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   sl   t  ¡ \}}| tdƒ¡}t d¡�}| |dg¡ W d   ƒ n1 sH0    Y  |j||dg|jd� d S )Nr   rš   r™   ©Úbbox_transform©	r   r   r7   rg   r   r’   r   rœ   ÚtransFigure©rŸ   r#   r$   r–   r    r)   r)   r*   Útest_legend_handle_labelC  s    ,ÿz1TestLegendFigureFunction.test_legend_handle_labelc                 C   sj   t  ¡ \}}|jtdƒdd�}t d¡�}| ¡  W d   ƒ n1 sF0    Y  |j||dg|jd� d S )Nr   r™   r2   rš   rÏ   rÑ   rÓ   r)   r)   r*   r¡   K  s    &ÿz,TestLegendFigureFunction.test_legend_no_argsc                 C   sj   t  ¡ \}}| tdƒ¡}t d¡�}| dg¡ W d   ƒ n1 sF0    Y  |j||dg|jd� d S )Nr   rš   r¨   rÏ   rÑ   rÓ   r)   r)   r*   Útest_legend_label_argS  s    *ÿz.TestLegendFigureFunction.test_legend_label_argc                 C   sp   t  ¡ \}}| tdƒ¡}t d¡� }| |dgd¡ W d   ƒ n1 sJ0    Y  |j||dgd|jd� d S )Nr   rš   r¨   r   rÏ   rÑ   rÓ   r)   r)   r*   Útest_legend_label_three_args[  s    .ÿz5TestLegendFigureFunction.test_legend_label_three_argsc                 C   s\   t  ¡ \}}| tdƒ¡}t t¡�$ |j|dgddd� W d   ƒ n1 sN0    Y  d S )Nr   r¨   r   Úleftr5   )r   r   r7   rg   r¤   r¥   Ú	Exceptionr   )rŸ   r#   r$   r–   r)   r)   r*   Ú#test_legend_label_three_args_pluskwc  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 sn0    Y  |j	|||fdd|j
d
� d S )Nr   rX   r   r   ç       @rš   r   r¸   )r   r!   r(   )r   rÐ   )r   r   r7   rg   r   r6   r   r’   r   rœ   rÒ   )rŸ   r#   r�   r–   Úlines2r    r)   r)   r*   Útest_legend_kw_argsk  s    2þ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 sl0    Y  t
|ƒdks†J ‚t|d jƒdksœJ ‚d S )	Nr   rX   r   r   rÚ   r¸   r³   r¾   )r   r   r7   rg   r   r6   r¤   r¿   rÀ   r   r€   rÁ   rÂ   )rŸ   r#   r�   r–   rÛ   rÃ   r)   r)   r*   Útest_warn_args_kwargsu  s    0ÿz.TestLegendFigureFunction.test_warn_args_kwargsN)
rË   rÌ   rÍ   rÔ   r¡   rÕ   rÖ   rÙ   rÜ   rÝ   r)   r)   r)   r*   rÎ   A  s   
rÎ   zlegend_stackplot.pngc                  C   sv   t  ¡ \} }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.r   r   rH   rÚ   r   g      @rX   )Úy1Úy2Úy3r³   )r   r   )r   éF   r4   r5   N)r   r   r   rP   Z	stackplotrI   rJ   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 )NrY   Úfoo)r   r   r>   rg   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 )Nr0   r   rY   )ÚmarkerÚ	facecolorrŒ   Úsr   )ÚredÚgreenÚblueiî  rX   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\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 )NrG   rH   Úkr0   r”   )r'   rå   r   r   r   ÚvrX   )r   r   r   r   ÚmlegendZ_get_legend_handles_labelsr€   )r#   r$   ÚhandZ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   rY   )r'   )rã   rã   rã   r4   r5   g      à¿gš™™™™™@)rg   r   r   r   r�   rI   rJ   )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ìÿÿÿrT   r   é   éè  r   )Z	transformrã   r>   r4   r5   )ÚmtransformsZAffine2DÚ	translater   rP   r   r7   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g d¢¡}|j\}	}
}t|||f|	|
|fƒD ]>\}}| ¡ d d |j	k�sJ ‚| ¡ d d |j
ksàJ ‚qàd S )N)r   r   )r   r   )rˆ   ç333333ã?)çš™™™™™É?r   gffffffæ?r   r�   r�   r   rÿ   rC   z--rY   )Ú
linestylesrc   z-.)r  ú:)Úline1Úline2zline 3r   r   )ÚmcollectionsZLineCollectionr   r   Zadd_collectionr   ÚlegendHandlesr   Zget_linestylesZ_dashSeqZ_dashOffset)Zlines1rÛ   Zlines3Zlc1Zlc2Zlc3r#   r$   rk   Úh1Úh2Ú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”   r2   r   ©rN   N)r   r   r7   rg   r   rQ   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”   r2   N)r   r>   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 )Nr.   r”   r2   TÚw)rs   ræ   r   )r   r   r7   rg   r   Z	get_frameZ	get_alpharj   r)   r)   r*   Útest_shadow_framealphaø  s    r  c                  C   sJ   t  ¡ \} }| tdƒ¡ | ¡ }| ¡  ¡ dks6J ‚| ¡  ¡ rFJ ‚d S )Nr   Ú )r   r   r7   rg   r   Ú	get_titleÚget_textZget_visiblerj   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�J ‚d S )	Nr.   ©Zdpir   ÚAardvarkr2   éÈ   rX   rC   )r   r   r7   rg   r   Úget_window_extentÚcanvasZget_rendererZx0r¤   Zapprox)r#   r$   rk   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 )Nr.   r  r   r  r2   )r   r   r7   rg   r   r  Údrawr  )r#   r$   rk   Úleg2r)   r)   r*   Ú"test_window_extent_cached_renderer  s    
r  c            	      C   s  t  tdƒ¡ t t¡�& t jdddddœd� W d   ƒ n1 sD0    Y  t jdtddd�d�} |  ¡  	¡ dksxJ ‚t j
dd	d
d�\}}|j}|d  tdƒ¡ |d jddd�}| ¡  ¡ dksÊJ ‚|d  tdƒ¡ |d jddddœd�}| ¡  ¡ dk�s
J ‚|d  tdƒ¡ d tjd< |d jdddid�}| ¡  ¡ tjd k�sXJ ‚|d	  tdƒ¡ |d	 jdd�}| ¡  ¡ tjd k�s–J ‚|d  tdƒ¡ dtjd< |d jdddid�}| ¡  ¡ dk�sÞJ ‚|d  tdƒ¡ |d jdd�}| ¡  ¡ dk�sJ ‚d S )Nr   r  é   Úserif)ÚfamilyÚsize)rt   Útitle_fontsizeÚtitle_fontproperties)rt   r#  rX   rY   )r   r‡   )Zfigsizer   )rt   r"  r   zlegend.title_fontsizer   z	font.size©rt   rM   rT   r	   )r   r7   rg   r¤   r¥   Ú
ValueErrorr   r   r  Úget_sizer   ZflatZget_fontsizern   r{   )	rk   r#   ÚaxesZleg0Zleg1r  Zleg3Zleg4Zleg5r)   r)   r*   Ú#test_legend_title_fontprop_fontsize%  sJ    ÿ$ÿ

ÿ

ÿ

ÿr(  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€J ‚q€d S )
Nr   r   ú#1r2   rX   ú#2rY   ú#3©Z
labelcolor)r   r   r7   r   r6   r   Ú	get_textsrn   r"   Ú
same_colorÚ	get_color©r'   r#   r$   rk   Útextr)   r)   r*   Útest_legend_labelcolor_singleK  s       r2  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	 
| ¡ |¡sŽJ ‚qŽd S )Nr   r   r)  r2   rX   r*  rY   r+  ©r   r   r
   r,  ©r   r   r7   r   r6   r   r   r-  rn   r"   r.  r/  ©r#   r$   rk   r1  r'   r)   r)   r*   Útest_legend_labelcolor_listX  s       r6  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| ¡ g d¢ƒD ]\}}tj	 
| ¡ |¡s�J ‚q�d S )Nr   r   r)  r   ©r   r'   rX   r*  r   rY   r+  r
   Ú	linecolorr,  r3  r4  r5  r)   r)   r*   Ú test_legend_labelcolor_linecolord  s    """r9  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| ¡ g d¢ƒD ]\}}tj	 
| ¡ |¡s�J ‚q�d S )Nr   r   r)  r   ©r   ÚmarkeredgecolorrX   r*  r   rY   r+  r
   r;  r,  r3  r4  r5  r)   r)   r*   Ú&test_legend_labelcolor_markeredgecolorp  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| ¡ g d¢ƒD ]\}}tj	 
| ¡ |¡s�J ‚q�d S )Nr   r   r)  r   ©r   ÚmarkerfacecolorrX   r*  r   rY   r+  r
   r>  r,  r3  r4  r5  r)   r)   r*   Ú&test_legend_labelcolor_markerfacecolor|  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� | tjd	< | ¡ }| ¡ D ]}tj	 
| ¡ | ¡s†J ‚q†d S )
Nr   r   r)  r2   rX   r*  rY   r+  úlegend.labelcolor)r   r   r7   r   r6   rn   r{   r   r-  r"   r.  r/  r0  r)   r)   r*   Ú%test_legend_labelcolor_rcparam_singleˆ  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� dtjd< | ¡ }t| 	¡ g d¢ƒD ]\}}tj
 | ¡ |¡s–J ‚q–d S )Nr   r   r)  r   r7  rX   r*  r   rY   r+  r
   r8  r@  r3  ©r   r   r7   r   r6   rn   r{   r   r   r-  r"   r.  r/  r5  r)   r)   r*   Ú(test_legend_labelcolor_rcparam_linecolor–  s    """
rC  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| 	¡ g d¢ƒD ]\}}tj
 | ¡ |¡s–J ‚q–d S )Nr   r   r)  r   r:  rX   r*  r   rY   r+  r
   r;  r@  r3  rB  r5  r)   r)   r*   Ú.test_legend_labelcolor_rcparam_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� dtjd< | ¡ }t| 	¡ g d¢ƒD ]\}}tj
 | ¡ |¡s–J ‚q–d S )Nr   r   r)  r   r:  rX   r*  r   rY   r+  r
   Zmecr@  r3  rB  r5  r)   r)   r*   Ú4test_legend_labelcolor_rcparam_markeredgecolor_short°  s    """
rE  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| 	¡ g d¢ƒD ]\}}tj
 | ¡ |¡s–J ‚q–d S )Nr   r   r)  r   r=  rX   r*  r   rY   r+  r
   r>  r@  r3  rB  r5  r)   r)   r*   Ú.test_legend_labelcolor_rcparam_markerfacecolor½  s    """
rF  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| 	¡ g d¢ƒD ]\}}tj
 | ¡ |¡s–J ‚q–d S )Nr   r   r)  r   r=  rX   r*  r   rY   r+  r
   Zmfcr@  r3  rB  r5  r)   r)   r*   Ú4test_legend_labelcolor_rcparam_markerfacecolor_shortÊ  s    """
rG  c                  C   sD   t  ¡ } |  ¡ rJ ‚|  d¡ |  ¡ s*J ‚|  d¡ |  ¡ r@J ‚d S )NTF)r   r   Zget_draggableZset_draggable)r   r)   r)   r*   Útest_get_set_draggable×  s    

rH  c                  C   sŽ   t jg d¢dddd�\} }}t  ¡ }|jD ]}| d¡ q*| ¡ d d… |d  ¡ d d… ksbJ ‚| ¡ d d… |d  ¡ d d… ksŠJ ‚d S )	NrW   g      Ð?Údatarè   )rì   r   r'   rH   r<   r   )r   Úhistr   r  Z	set_alphaZget_facecolorZget_edgecolor)r%   rð   Úhhr   r
  r)   r)   r*   Útest_alpha_handlesà  s    
(rL  z"This test needs a TeX installation)Úreasonc                 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vs^J ‚d S )Nr  zfont.familyzComputer Modernz
font.serifTztext.usetexr   Úinputr2   rq   r$  z Font family ['serif'] not found.)	rn   r{   r   r   r7   r   r  r  r1  )Zcaplogr#   r$   r)   r)   r*   Útest_usetex_no_warné  s    



rO  c                  C   sÐ   t  ¡ \} }| j ¡  tdƒD ]}|jt d¡|d� qtddiƒ� | 	¡ }W d   ƒ n1 sb0    Y  t
 t¡�}|  |¡ W d   ƒ n1 s–0    Y  t|ƒdks°J ‚|D ]}t|jƒdks´J ‚q´d S )Nrú   éˆ  r2   z
legend.locr4   rX   zGCreating legend with loc="best" can be slow with large amounts of data.)r   r   r  r  rg   r7   r   r6   r   r   r¤   r¿   rÀ   Údraw_artistr€   rÁ   rÂ   )r#   r$   Úidxr   ÚrecordsrÃ   r)   r)   r*   Útest_warn_big_data_best_locù  s    
&(ÿrT  c                  C   sP   t  ¡ \} }| j ¡  tdƒD ]}|jt d¡|d� q| d¡}|  	|¡ d S )Nrú   rP  r2   r4   )
r   r   r  r  rg   r7   r   r6   r   rQ  )r#   r$   rR  r   r)   r)   r*   Ú(test_no_warn_big_data_when_loc_specified  s    

rU  Úlabel_arrayÚlowÚhigh)rW  rX  c                 C   sh   g d¢}ddgddgddgg}t  ¡ \}}|j||| d� | ¡ }dd	„ | ¡ D ƒ}|d
dgksdJ ‚d S )NrW   r   rX   r	   rM   é	   r2   c                 S   s   g | ]}|  ¡ ‘qS r)   ©r  ©Ú.0Úentryr)   r)   r*   Ú
<listcomp>"  ó    z;test_plot_multiple_input_multiple_label.<locals>.<listcomp>rW  rX  )r   r   r7   r   r-  )rV  r%   r&   r#   r$   rk   Úlegend_textsr)   r)   r*   Ú'test_plot_multiple_input_multiple_label  s    þra  r   rz   r   c                 C   sn   g d¢}ddgddgddgg}t  ¡ \}}|j||| d� | ¡ }dd	„ | ¡ D ƒ}|t| ƒgd ksjJ ‚d S )
NrW   r   rX   r	   rM   rY  r2   c                 S   s   g | ]}|  ¡ ‘qS r)   rZ  r[  r)   r)   r*   r^  2  r_  z9test_plot_multiple_input_single_label.<locals>.<listcomp>)r   r   r7   r   r-  rÁ   )r   r%   r&   r#   r$   rk   r`  r)   r)   r*   Ú%test_plot_multiple_input_single_label&  s    þrb  c                 C   sh   g d¢}g d¢}t  ¡ \}}|j||| d� | ¡ }t| ¡ ƒdksHJ ‚| ¡ d  ¡ t| ƒksdJ ‚d S )NrW   )rX   r	   r‡   r2   r   r   )r   r   r7   r   r€   r-  r  rÁ   )rV  r%   r&   r#   r$   rk   r)   r)   r*   Ú%test_plot_single_input_multiple_label6  s    rc  c                  C   sp   t  t¡�R g d¢} ddgddgddgg}g d¢}t ¡ \}}|j| ||d� W d   ƒ n1 sb0    Y  d S )	NrW   r   rX   r	   rM   rY  )rX  rW  Zmediumr2   )r¤   r¥   r%  r   r   r7   )r%   r&   r   r#   r$   r)   r)   r*   Ú3test_plot_multiple_label_incorrect_length_exceptionE  s    þrd  c                  C   s:   t  ¡ \} }|jg d¢g d¢g d¢dddd� | ¡  d S )NrÇ   rW   rZ   r   ÚfaceZFill)ræ   rŒ   r   )r   r   r‘   r   rQ   r)   r)   r*   Útest_legend_face_edgecolorR  s
    ÿrf  c                  C   sT   t  ¡ \} }|jddgddgdd� | ¡ }|j|u s:J ‚| ¡ d j|u sPJ ‚d S )Nr   rX   rY   rM   rF   r2   r   )r   r   r7   r   r'  r-  rj   r)   r)   r*   Útest_legend_text_axesZ  s
    rg  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sjJ ‚d S )Nr   r   rô   )rå   r  r  )r   r   r   ÚmlinesZLine2Dr   Z
get_markerr  )r#   r$   r(   rk   r)   r)   r*   Útest_handlerline2dc  s
    ri  c                  C   sF   t  ¡  ¡ } |  ¡ }|jddgddgdd� |  ¡ }|j| u sBJ ‚d S )Nr   r   rF   r2   )r   rO   Z
subfiguresr   r7   r   )Zsubfigr$   rk   r)   r)   r*   Útest_subfigure_legendl  s
    rj  )\r   ÚplatformZunittestr   Únumpyr   r¤   Zmatplotlib.testing.decoratorsr   Zmatplotlib.pyplotZpyplotr   Z
matplotlibrn   Zmatplotlib.transformsZ
transformsrû   Zmatplotlib.collectionsr  Zmatplotlib.linesr–   rh  Zmatplotlib.legend_handlerr   Zmatplotlib.legendr   rõ   r   Zmatplotlib.font_managerr   r+   r8   rA   rK   rR   rV   r`   Úmachinerl   ro   rv   rx   r|   r„   r“   r—   r˜   rÎ   râ   rä   rò   r÷   rø   rþ   r  r  r  r  r  r  r  r(  ÚmarkZparametrizer2  r6  r9  r<  r?  rA  rC  rD  rE  rF  rG  rH  rL  ZskipifZcheckdep_usetexrO  rT  rU  Úarrayra  Úintrb  rc  rd  rf  rg  ri  rj  r)   r)   r)   r*   Ú<module>   sÔ   
	
	


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