o
    ØtBhv~  ã                	   @   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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/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¡ddŽ„ ƒZVdd„ ZWd‘d’„ ZXd“d”„ ZYd•d–„ ZZd—d˜„ Z[d™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 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+   ús/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/matplotlib/tests/test_legend.pyÚtest_legend_ordereddict   s   
ÿr-   Ú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;   Ú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   ÚupÚdownr7   r8   )r   r   r   r9   Úbarr   )r%   r&   r'   Úb1Úb2r+   r+   r,   Útest_legend_auto20   s
   
$rF   Úlegend_auto3c                  C   sV   t  ¡ \} }g d¢}g d¢}|j||ddd | dd¡ | dd¡ |jdd	 d
S )r0   )çÍÌÌÌÌÌì?çš™™™™™¹?rI   rH   rH   r   )çffffffî?rJ   çš™™™™™©?rK   r   r   zo-Úliner5   ç        ç      ð?r7   r8   N)r   r   r:   Úset_xlimÚset_ylimr   )r%   r&   r'   r(   r+   r+   r,   Útest_legend_auto3:   s   rQ   Ú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@   Ú__nolegend__r7   )Ú	numpointsr   )r   ÚfigureÚadd_subplotr:   r   r9   Úlinspacer   ©r%   r&   r+   r+   r,   Útest_various_labelsF   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@   ÚdÚdiamondr7   F)r   Úmarkerfirst)r   r   r:   r   r9   Úonesr   rZ   r+   r+   r,   Útest_labels_firstQ   s
   rb   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   é   é   r\   ©rd   re   rT   z-x)re   rT   r	   z-d)ztwo keyszpad=0zone keyr   )Úndivider   )rg   Úpad)rV   Úhandler_map)r   r   r:   r   r   )r%   r&   Úp1Úp2Úp3r+   r+   r,   Útest_multiple_keys[   s   ÿ
þrm   zrgba_alpha.pngÚx86_64g{®Gáz„?)r/   Ú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Úcenterr8   ©r   r   r   r   )r   r   r:   Úranger   ÚlegendPatchÚset_facecolor©r%   r&   Úlegr+   r+   r,   Útest_alpha_rgbah   s   rz   zrcparam_alpha.pngc                  C   st   t  ¡ \} }|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 s3w   Y  d S )Nr   r	   rp   zlegend.framealphag      è?)Úrcrr   rs   r8   rt   )	r   r   r:   ru   Úmplr   r   rv   rw   rx   r+   r+   r,   Útest_alpha_rcparamq   s   "úr}   Ú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 )NrS   r	   r   zo--ÚXXr5   r   r@   zXX
XXr   )ÚxerrÚyerrr   r   rN   rd   Tú	My legendr   )r   r   ÚncolÚshadowÚtitlerV   )r   Úsubplotr:   r   r   r9   Ú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   rq   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 )NrS   r   r   r@   Úthreer5   r   rN   r   r‚   )r   r   r…   r   zlegend.scatterpointsÚone)	r   rW   r†   r   r   r9   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   r9   r   r:   r   Ú
add_artist)Úlegend_modesr%   Úaxsr'   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©   )rH   rN   rH   ú+zPath
default color)r¤   g¸…ëQ¸Þ?g)\Âõ(ä?ÚC2zPath
explicit colorg{®Gáz„¿gš™™™™™ñ?rT   )ÚhandlelengthÚhandleheight)	r   r   r   Ú	RectangleÚ	add_patchÚfill_betweenrO   rP   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   r:   ru   r   ÚremoveÚlegendsÚ
get_legend)r%   r&   Úlinesry   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w   Y  | t  ¡ |dg¡ d S )Nr   úhello worldr5   úmatplotlib.legend.Legend©r   r:   ru   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w   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   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:   ru   Ú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w   Y  | 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   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   )ri   )	r   r:   ru   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  ¡ \}}t ddd¡}|j||dd\}|j|d| dd\}|j|d| d	d\}t d
¡}|j||gd W d   ƒ n1 sDw   Y  | |||gd	dg¡ d S )Nr   r   é   r'   r5   rd   Ú2xre   Ú3xr»   )r*   ©	r   r   r   rY   r:   r   r±   r   r½   )rÀ   r%   r&   r'   Úln1Úln2Ú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 s5w   Y  | |||gddg¡ d S )	Nr   r   rÐ   rd   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 sAw   Y  | |||fd¡ d S )
Nr   rd   é   Úsinr5   Ú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_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 d   ƒ n1 sAw   Y  t|ƒd	ksNJ ‚t|d jƒd
ksYJ ‚d S )Nr   rd   rÚ   rÛ   r5   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_mixed_args_and_kwargs'  s   ÿÿ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 s<w   Y  | |||gddg¡ d S )
Nr   )Úhost_subplotéo   ©r   r   rd   ÚDensityr5   )r   re   rd   ÚTemperaturer»   )	Úmpl_toolkits.axes_grid1rê   Útwinxr:   r   r±   r   r   r½   )rÀ   rê   ÚhostÚparrj   rk   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 s$w   Y  |j||dg|jd d S )Nr   r»   rº   ©Úbbox_transform©	r   r   r:   ru   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 s#w   Y  |j||dg|jd d S )Nr   rº   r5   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 s#w   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 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_args[  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:   ru   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 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:   ru   r   r9   r   r±   r   r½   rû   )rÀ   r%   r™   r·   Úlines2rÁ   r+   r+   r,   Útest_legend_kw_argsk  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:   ru   r   r9   rÅ   rä   rå   r   r–   ræ   rç   )rÀ   r%   r™   r·   r  rè   r+   r+   r,   Útest_warn_args_kwargsu  s   ÿÿ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   rN   r  r   g      @rd   )Úy1Úy2Úy3rØ   )r   r   )r   éF   r7   r8   N)r   r   r   rY   Ú	stackplotrO   rP   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 )Nre   Úfoo)r   r   rC   ru   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 )NrM   rN   Ú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š™™™™™@)ru   r   r   r   r¾   rO   rP   )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  rC   r7   r8   )ÚmtransformsÚAffine2DÚ	translater   rY   r   r:   r   r¾   Ú	transDatar   )Úoffsetr'   r+   r+   r,   Ú#test_not_covering_scatter_transformÇ  s
   r2  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ã?)çš™™™™™É?r4  gffffffæ?r4  r©   r§   r   r3  rI   z--re   )Ú
linestylesrq   z-.)r5  ú:)Úline1Úline2zline 3r   r   )ÚmcollectionsÚLineCollectionr   r   Úadd_collectionr   ÚlegendHandlesr   Úget_linestylesÚ_dashSeqÚ_dashOffset)Úlines1r  Úlines3Úlc1Úlc2Úlc3r%   r&   ry   Úh1Úh2Úh3ÚohÚlhr+   r+   r,   Ú!test_linecollection_scaled_dashesÓ  s      


þrJ  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   ©rV   N)r   r   r:   ru   r   rZ   r+   r+   r,   Útest_handler_numpointsè  s   rL  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   rC   r   r+   r+   r+   r,   Ú test_empty_bar_chart_with_legendð  s   rM  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:   ru   r   Ú	get_frameÚ	get_alpharx   r+   r+   r,   Útest_shadow_framealphaø  s   rQ  c                  C   sJ   t  ¡ \} }| tdƒ¡ | ¡ }| ¡  ¡ dksJ ‚| ¡  ¡ r#J ‚d S )Nr   Ú )r   r   r:   ru   r   Ú	get_titleÚget_textÚget_visiblerx   r+   r+   r,   Útest_legend_title_empty  s
   rV  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   rI   )r   r   r:   ru   r   Úget_window_extentÚcanvasÚget_rendererÚx0rÅ   Úapprox)r%   r&   ry   Úx01Úx02r+   r+   r,   Ú test_legend_proper_window_extent  s   rb  c                  C   sP   t jdd\} }|jtdƒdd | ¡ }|  ¡ }| j ¡  | ¡  | ¡  d S )Nr1   rW  r   rY  r5   )r   r   r:   ru   r   r\  Údrawr[  )r%   r&   ry   Úleg2r+   r+   r,   Ú"test_window_extent_cached_renderer  s   
re  c            	      C   s  t  tdƒ¡ t t¡ t jdddddœd W d   ƒ n1 s"w   Y  t jdtdddd} |  ¡  	¡ dks<J ‚t j
dd	d
d\}}|j}|d  tdƒ¡ |d jddd}| ¡  ¡ dkseJ ‚|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sªJ ‚|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   rY  é   Úserif)ÚfamilyÚsize)r…   Útitle_fontsizeÚtitle_fontproperties)r…   rk  rd   re   )r   r    )Úfigsizer   )r…   rj  r   zlegend.title_fontsizerh  z	font.size©r…   rT   r]   r	   )r   r:   ru   rÅ   rÆ   Ú
ValueErrorr   r   rS  Úget_sizer   ÚflatÚget_fontsizer|   r   )	ry   r%   ÚaxesÚleg0Úleg1rd  Úleg3Úleg4Úleg5r+   r+   r,   Ú#test_legend_title_fontprop_fontsize%  sL   ÿÿ
ÿ
ÿ

ÿ

ÿrx  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 	| 
¡ | ¡sMJ ‚q@d S )
Nr   r   ú#1r5   rd   ú#2re   ú#3©Ú
labelcolor)r   r   r:   r   r9   r   Ú	get_textsr|   r$   Ú
same_colorÚ	get_color©r)   r%   r&   ry   Útextr+   r+   r,   Útest_legend_labelcolor_singleK  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g d	¢d
}t| ¡ g d	¢ƒD ]\}}tj	 
| ¡ |¡sVJ ‚qGd S )Nr   r   ry  r5   rd   rz  re   r{  ©r   r   r
   r|  ©r   r   r:   r   r9   r   r   r~  r|   r$   r  r€  ©r%   r&   ry   r‚  r)   r+   r+   r,   Útest_legend_labelcolor_listX  s      ÿr‡  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   ry  r   ©r   r)   rd   rz  r   re   r{  r
   Ú	linecolorr|  r„  r…  r†  r+   r+   r,   Ú test_legend_labelcolor_linecolord  ó   """ÿr‹  c                  C   rˆ  )Nr   r   ry  r   ©r   Úmarkeredgecolorrd   rz  r   re   r{  r
   rŽ  r|  r„  r…  r†  r+   r+   r,   Ú&test_legend_labelcolor_markeredgecolorp  rŒ  r  c                  C   rˆ  )Nr   r   ry  r   ©r   Úmarkerfacecolorrd   rz  r   re   r{  r
   r‘  r|  r„  r…  r†  r+   r+   r,   Ú&test_legend_labelcolor_markerfacecolor|  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 | tjd	< | ¡ }| ¡ D ]}tj	 
| ¡ | ¡sPJ ‚qCd S )
Nr   r   ry  r5   rd   rz  re   r{  úlegend.labelcolor)r   r   r:   r   r9   r|   r   r   r~  r$   r  r€  r  r+   r+   r,   Ú%test_legend_labelcolor_rcparam_singleˆ  s      
ÿr”  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 dtjd< | ¡ }t| 	¡ g d¢ƒD ]\}}tj
 | ¡ |¡sZJ ‚qKd S )Nr   r   ry  r   r‰  rd   rz  r   re   r{  r
   rŠ  r“  r„  ©r   r   r:   r   r9   r|   r   r   r   r~  r$   r  r€  r†  r+   r+   r,   Ú(test_legend_labelcolor_rcparam_linecolor–  ó   """
ÿr—  c                  C   r•  )Nr   r   ry  r   r  rd   rz  r   re   r{  r
   rŽ  r“  r„  r–  r†  r+   r+   r,   Ú.test_legend_labelcolor_rcparam_markeredgecolor£  r˜  r™  c                  C   r•  )Nr   r   ry  r   r  rd   rz  r   re   r{  r
   Úmecr“  r„  r–  r†  r+   r+   r,   Ú4test_legend_labelcolor_rcparam_markeredgecolor_short°  r˜  r›  c                  C   r•  )Nr   r   ry  r   r  rd   rz  r   re   r{  r
   r‘  r“  r„  r–  r†  r+   r+   r,   Ú.test_legend_labelcolor_rcparam_markerfacecolor½  r˜  rœ  c                  C   r•  )Nr   r   ry  r   r  rd   rz  r   re   r{  r
   Úmfcr“  r„  r–  r†  r+   r+   r,   Ú4test_legend_labelcolor_rcparam_markerfacecolor_shortÊ  r˜  rž  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_draggable×  s   

r¡  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)   rN   r@   r   )r   Úhistr   r<  Ú	set_alphaÚget_facecolorÚget_edgecolor)r'   r  Úhhr   rI  r+   r+   r,   Útest_alpha_handlesà  s   
(,r¨  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 )Nrg  zfont.familyzComputer Modernz
font.serifTztext.usetexr   Úinputr5   r‚   rm  z Font family ['serif'] not found.)	r|   r   r   r   r:   r   r\  rc  r‚  )Úcaplogr%   r&   r+   r+   r,   Útest_usetex_no_warné  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   r\  rc  ru   r:   r   r9   r   r   rÅ   rä   rå   Údraw_artistr–   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\  rc  ru   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)r´  rµ  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s2J ‚d S )Nrc   r   rd   r	   rT   é	   r5   c                 S   ó   g | ]}|  ¡ ‘qS r+   ©rT  ©Ú.0Úentryr+   r+   r,   Ú
<listcomp>"  ó    z;test_plot_multiple_input_multiple_label.<locals>.<listcomp>r´  rµ  )r   r   r:   r   r~  )r³  r'   r(   r%   r&   ry   Úlegend_textsr+   r+   r,   Ú'test_plot_multiple_input_multiple_label  s   þr¿  r   r   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s5J ‚d S )
Nrc   r   rd   r	   rT   r¶  r5   c                 S   r·  r+   r¸  r¹  r+   r+   r,   r¼  2  r½  z9test_plot_multiple_input_single_label.<locals>.<listcomp>)r   r   r:   r   r~  ræ   )r   r'   r(   r%   r&   ry   r¾  r+   r+   r,   Ú%test_plot_multiple_input_single_label&  s   þrÀ  c                 C   sh   g d¢}g d¢}t  ¡ \}}|j||| d | ¡ }t| ¡ ƒdks$J ‚| ¡ d  ¡ t| ƒks2J ‚d S )Nrc   )rd   r	   r    r5   r   r   )r   r   r:   r   r–   r~  rT  ræ   )r³  r'   r(   r%   r&   ry   r+   r+   r,   Ú%test_plot_single_input_multiple_label6  s    rÁ  c                  C   sr   t  t¡* g d¢} ddgddgddgg}g d¢}t ¡ \}}|j| ||d W d   ƒ d S 1 s2w   Y  d S )	Nrc   r   rd   r	   rT   r¶  )rµ  r´  Úmediumr5   )rÅ   rÆ   rn  r   r   r:   )r'   r(   r   r%   r&   r+   r+   r,   Ú3test_plot_multiple_label_incorrect_length_exceptionE  s   þ"ùrÃ  c                  C   s:   t  ¡ \} }|jg d¢g d¢g d¢dddd | ¡  d S )Nrì   rc   rf   r   ÚfaceÚFill)r  r¦   r   )r   r   r°   r   rZ   r+   r+   r,   Útest_legend_face_edgecolorR  s
   ÿrÆ  c                  C   sT   t  ¡ \} }|jddgddgdd | ¡ }|j|u sJ ‚| ¡ d j|u s(J ‚d S )Nr   rd   re   rT   rL   r5   r   )r   r   r:   r   rr  r~  rx   r+   r+   r,   Útest_legend_text_axesZ  s
   rÇ  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s5J ‚d S )Nr   r   r#  )r  rY  rK  )r   r   r   ÚmlinesÚLine2Dr   Ú
get_markerr<  )r%   r&   r*   ry   r+   r+   r,   Útest_handlerline2dc  s
   "rË  c                  C   sF   t  ¡  ¡ } |  ¡ }|jddgddgdd |  ¡ }|j| u s!J ‚d S )Nr   r   rL   r5   )r   rW   Ú
subfiguresr   r:   r   )Úsubfigr&   ry   r+   r+   r,   Útest_subfigure_legendl  s
   rÎ  c                  C   s   t jddgddgddd} t  ¡  ¡ d }| d¡ | ¡ d d… t|  ¡ d d d… ƒks0J ‚| ¡ d d… t|  ¡ d d d… ƒksFJ ‚d S )	Nr   r   rd   re   z#123456r   )r)   r   r   )r   r°   r   Úget_patchesr¤  r¥  Útupler¦  )Úpcr±   r+   r+   r,   Ú-test_setting_alpha_keeps_polycollection_coloru  s
   
,0rÒ  )]r   ÚplatformÚunittestr   Únumpyr   rÅ   Úmatplotlib.testing.decoratorsr   Úmatplotlib.pyplotÚpyplotr   Ú
matplotlibr|   Úmatplotlib.transformsÚ
transformsr-  Úmatplotlib.collectionsr9  Úmatplotlib.linesr·   rÈ  Úmatplotlib.legend_handlerr   Úmatplotlib.legendr   r$  r   Úmatplotlib.font_managerr   r-   r;   rF   rQ   r[   rb   rm   Úmachinerz   r}   rˆ   r‹   r‘   rœ   r²   r¸   r¹   r÷   r  r  r!  r(  r)  r2  rJ  rL  rM  rQ  rV  rb  re  rx  ÚmarkÚparametrizerƒ  r‡  r‹  r  r’  r”  r—  r™  r›  rœ  rž  r¡  r¨  ÚskipifÚcheckdep_usetexr¬  r±  r²  Úarrayr¿  ÚintrÀ  rÁ  rÃ  rÆ  rÇ  rË  rÎ  rÒ  r+   r+   r+   r,   Ú<module>   sØ    
	
	



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