o
    l’×i¯  ã                	   @   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	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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*dd„ Z+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$„ ƒZ0ed%gde 1¡ d&krÄd nd'd(d)d*„ ƒZ2ed+gde 1¡ d&krØd nd'd(d,d-„ ƒZ3ed.gddd/d0„ ƒZ4ed1gde 1¡ d&kr÷d nd2d(d3d4„ ƒZ5ed5d6gddd7d8„ ƒZ6ed9gddd:d;„ ƒZ7ed<gdd=d>d?d@„ ƒZ8dAdB„ Z9dCdD„ Z:edEgdFdGdH„ ƒZ;G dIdJ„ dJƒZ<G dKdL„ dLƒZ=dMdN„ Z>edOgƒdPdQ„ ƒZ?dRdS„ Z@dTdU„ ZAdVdW„ ZBedXgƒdYdZ„ ƒZCed[gƒd\d]„ ƒZDd^d_„ ZEd`da„ ZFdbdc„ ZGddde„ ZHdfdg„ ZIdhdi„ ZJdjdk„ ZKdldm„ ZLdndo„ ZMe	jN Odpdq¡drds„ ƒZPe	jN Odpdq¡dtdu„ ƒZQe	jN Odvdw¡dxdy„ ƒZRdzd{„ ZSd|d}„ ZTd~d„ ZUd€d„ ZVd‚dƒ„ ZWd„d…„ ZXd†d‡„ ZYdˆd‰„ ZZdŠd‹„ Z[dŒd„ Z\dŽd„ Z]dd‘„ Z^d’d“„ Z_e	jN Odvdw¡d”d•„ ƒZ`d–d—„ Zad˜d™„ Zbdšd›„ Zcdœd„ ZddždŸ„ Zed d¡„ Zfe	jN Od¢d£¡d¤d¥„ ƒZgd¦d§„ Zhed¨d©„ ƒZidªd«„ Zjd¬d­„ Zke	jN Od®d¯d°gd±e ld¯d°g¡g¡d²d³„ ƒZme	jN Od´dµd¶eng¡d·d¸„ ƒZoe	jN Od®d¯d°gd±e ld¯d°g¡g¡d¹dº„ ƒZpd»d¼„ Zqd½d¾„ Zrd¿dÀ„ ZsdÁdÂ„ ZtdÃdÄ„ ZudÅdÆ„ ZvdÇdÈ„ Zweƒ dÉdÊ„ ƒZxdS )Ëé    N)Úmock)Úassert_allclose)Ú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 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/   úZ/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/matplotlib/tests/test_legend.pyÚtest_legend_ordereddict   s   
ÿr1   Ú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/   r0   Ú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 )r4   r5   ÚedgeÚm)Úalignr-   Néÿÿÿÿr   r   ÚupÚdownr;   r<   )r   r   r   r=   Úbarr"   )r)   r*   r+   Úb1Úb2r/   r/   r0   Útest_legend_auto24   s
   
$rJ   Úlegend_auto3c                  C   sV   t  ¡ \} }g d¢}g d¢}|j||ddd | dd¡ | dd¡ |jdd	 d
S )r4   )çÍÌÌÌÌÌì?çš™™™™™¹?rM   rL   rL   r   )çffffffî?rN   çš™™™™™©?rO   r   r   zo-Úliner9   ç        ç      ð?r;   r<   N)r   r   r>   Úset_xlimÚset_ylimr"   )r)   r*   r+   r,   r/   r/   r0   Útest_legend_auto3>   s   rU   c                  C   s¸   t jddd\} }g }t|jdƒD ]2\}}| |¡ |jdgddg  tdƒd	|d
 |jdd}| j 	¡  | 
| ¡  |j ¡ ¡¡ qt|d j|d jƒ t|d j|d jƒ dS )zŠ
    Check that the legend location with automatic placement is the same,
    whatever the histogram type is. Related to issue #9580.
    é   )gš™™™™™@g333333@©ÚncolsÚfigsize)rG   ÚstepÚ
stepfilledr   r   é	   r
   ÚLegend)Úbinsr   Úhisttyper;   r<   r   é   N)r   r   r   ÚflatÚ	set_titleÚhistÚranger"   ÚcanvasÚdrawÚappendÚget_window_extentÚtransformedÚ	transAxesÚinvertedr   Úbounds)r)   ÚaxsÚ
leg_bboxesr*   ÚhtÚlegr/   r/   r0   Útest_legend_auto4J   s   
"
ÿrq   c                  C   s  t jddd\} }g }t|jdƒD ]h\}}tjddddd	tjt d
dgd
d
gdd
gddgddgddgddgddgddgg	¡ddtj	ddd
ddddfD ]}| 
|¡ qM|jddgddgdd |j|d}| j ¡  | | ¡  |j ¡ ¡¡ qt|d j|d
 jƒ dS )z
    Check that the automatic placement handle a rather complex
    case with non rectangular patch. Related to issue #9580.
    r`   )g333333#@g333333@rW   )Úcenterr;   )r   rL   çš™™™™™é?çš™™™™™É?ÚC1)ÚxyÚwidthÚheightÚfcr   r   rL   rR   rM   )ry   )r   r   r   ih  rO   ÚC0)rw   ry   z	A segmentr9   r<   N)r   r   r   ra   ÚmpatchesÚEllipseÚPolygonr   ÚarrayÚWedgeÚ	add_patchr>   r"   re   rf   rg   rh   ri   rj   rk   r   rl   )r)   rm   rn   r*   r   Ú_patchrp   r/   r/   r0   Útest_legend_auto5`   s,   ÿ$þþú
ÿr‚   Ú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   é   r7   r   r9   gffffff@u   DÃ©veloppÃ©srD   Ú__nolegend__r;   )Ú	numpointsr   )r   ÚfigureÚadd_subplotr>   r   r=   Úlinspacer"   ©r)   r*   r/   r/   r0   Útest_various_labels€   s   
rŒ   c                  C   sr   t  ¡ \} }|jddgdd\}tjtdd |j|gd}W d  ƒ n1 s)w   Y  t|jƒdks7J ‚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   Ú_foor9   z*starts with '_'.*excluded from the legend.©Úmatch©r.   N)	r   r   r>   ÚpytestÚwarnsÚUserWarningr"   ÚlenÚlegend_handles)r)   r*   rP   r"   r/   r/   r0   Ú)test_legend_label_with_leading_underscore‹   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   r9   r   z:xr+   é   rD   ÚdÚdiamondr;   F)r   Úmarkerfirst)r   r   r>   r   r=   Úonesr"   r‹   r/   r/   r0   Útest_labels_first™   s
   r   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`   rV   r—   ©r`   rV   r…   z-x)rV   r…   r   z-d)ztwo keyszpad=0zone keyr   )Úndivider   )r    Úpad)r‡   Úhandler_map)r   r   r>   r"   r   )r)   r*   Úp1Úp2Úp3r/   r/   r0   Útest_multiple_keys£   s   ÿ
þr¦   zrgba_alpha.pngÚx86_64g{®Gáz„?)r3   Ú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 awayrr   r<   ©r   r   r   r   )r   r   r>   rd   r"   ÚlegendPatchÚset_facecolor©r)   r*   rp   r/   r/   r0   Útest_alpha_rgba°   s   r°   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   r©   zlegend.framealphag      è?)Úrcr«   rr   r<   r¬   )	r   r   r>   rd   Úmplr   r"   r­   r®   r¯   r/   r/   r0   Útest_alpha_rcparam¹   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 )Nr„   r   r
   zo--ÚXXr9   r   rD   zXX
XXr   )ÚxerrÚyerrr   r   rR   r`   Tú	My legendr   )r   r   rX   ÚshadowÚtitler‡   )r   Úsubplotr>   r   r   r=   Úerrorbarr"   r/   r/   r/   r0   Ú
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   r5   Úmylabelr
   )r   rª   r   )r¾   )r   rŠ   r   r>   r"   )r+   r,   r/   r/   r0   Ú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 )Nr„   r
   r   rD   Úthreer9   r   rR   r   r¸   )r   r   rº   r   zlegend.scatterpointsÚone)	r   rˆ   r»   r   r   r=   r"   r²   ÚrcParams)r*   r/   r/   r0   Ú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   r5   r6   r7   r8   r9   z
upper left)r   Úmoder:   Úrightz
lower leftr`   )r   rÉ   rX   )	r   r   r”   r   r=   r   r>   r"   Ú
add_artist)Úlegend_modesr)   rm   r+   r*   rÉ   Úl1Úl2r/   r/   r0   Útest_legend_expandí   s   


ùrÏ   ÚhatchingÚdefault)r3   Ú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||ru   zPatch
explicit color
filled)rÖ   Ú	edgecolorr   )r   çš™™™™™Ù?FzPatch
default color
unfilled)rÖ   Úfillr   )r×   rÙ   zPatch
explicit color
unfilled)rÖ   rÚ   rØ   r   )r   g333333Ã?rÔ   )rs   rs   rs   )rL   rR   rL   ú+zPath
default color)r×   g¸…ëQ¸Þ?g)\Âõ(ä?ÚC2zPath
explicit colorg{®Gáz„¿gš™™™™™ñ?r…   )ÚhandlelengthÚhandleheight)	r   rÅ   r   Ú	Rectangler€   Úfill_betweenrS   rT   r"   )r)   r*   Úpatchr/   r/   r0   Ú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>   rd   r"   ÚremoveÚlegendsÚ
get_legend)r)   r*   Úlinesrp   r/   r/   r0   Útest_legend_remove  s   
rè   c            	      C   sÌ   t  ¡ \} }d}d}g d¢}g d¢}|j|||d |d d |j|||d |d d |j|||d |d d |jdd}d	d
„ | ¡ D ƒ}dd
„ |jD ƒ}|tt|ƒƒksZJ ‚|tt|ƒƒksdJ ‚dS )z6Check that the legend handles and labels are reversed.r   )zFirst labelzSecond labelzThird label)Ú.ú,r7   r   r9   r`   T©Úreversec                 S   ó   g | ]}|  ¡ ‘qS r/   ©Úget_text)Ú.0Útr/   r/   r0   Ú
<listcomp>5  ó    z:test_reverse_legend_handles_and_labels.<locals>.<listcomp>c                 S   rí   r/   ©Ú
get_marker)rð   Úhr/   r/   r0   rò   6  ró   N)r   r   r>   r"   Ú	get_textsr•   ÚlistÚreversed)	r)   r*   r+   r,   r'   Úmarkersrp   Úactual_labelsÚactual_markersr/   r/   r0   Ú&test_reverse_legend_handles_and_labels)  s   rý   Úpng)Ú
extensionsc                 C   sp   |   ¡ }|jdgddd |jdgddd |jdd	 |  ¡ }|jdgddd |jdgddd | ¡  d
S )z3Check that the rendered legend entries are reversedr   ÚroÚfirstr9   r`   ÚbxÚsecondTrë   N)r   r>   r"   )Úfig_testÚfig_refr*   r/   r/   r0   Útest_reverse_legend_display;  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 worldr9   úmatplotlib.legend.Legend©r   r>   rd   r   rá   r"   Úassert_called_withÚgca©Úselfrç   r]   r/   r/   r0   Útest_legend_no_argsK  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/   r0   Ú%test_legend_positional_handles_labelsQ  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 ArtistrŽ   )r   r>   rd   r‘   ÚraisesÚ	TypeErrorr"   )r  rç   r/   r/   r0   Ú#test_legend_positional_handles_onlyW  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  r9   r	  Úfoobarr
  r  r/   r/   r0   Ú"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  r9   r	  r  rÊ   r<   r
  r  r/   r/   r0   Útest_legend_three_argsd  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  r9   z,matplotlib.legend._get_legend_handles_labelsÚ1r`   )r¢   )	r   r>   rd   r   rá   Úreturn_valuer"   r  r  )r  rç   Úhandles_labelsr/   r/   r0   Útest_legend_handler_mapj  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+   r9   r`   Ú2xrV   Ú3xr	  r   ©	r   r   r   rŠ   r>   r   rá   r"   r  )r  r)   r*   r+   Úln1Úln2Úln3r]   r/   r/   r0   Útest_legend_kwargs_handles_onlyr  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  r`   r	  r+   r  ©r'   r  )r  r)   r*   r+   r  r   r]   r/   r/   r0   Ú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   r`   é   Úsinr9   Úcosr	  ©r   r   )r'   r.   )r   r   r   rŠ   Úpir>   r&  r'  r   rá   r"   r  )r  r)   r*   ÚthÚlnsÚlncr]   r/   r/   r0   Ú!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   r`   r%  r&  r9   r'  r(  r#  r   úMYou have mixed positional and keyword arguments, some input may be discarded.)r   r   r   rŠ   r)  r>   r&  r'  r‘   r’   r“   r"   r”   ÚstrÚmessage)r  r)   r*   r*  r+  r,  Úrecordr/   r/   r0   Ú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   r`   ÚDensityr9   )r   rV   r`   ÚTemperaturer	  )	Úmpl_toolkits.axes_grid1r3  Útwinxr>   r   rá   r   r"   r  )r  r3  ÚhostÚparr£   r¤   r]   r/   r/   r0   Útest_parasite›  s   
ÿz TestLegendFunction.test_parasiteN)Ú__name__Ú
__module__Ú__qualname__r  r  r  r  r  r  r"  r$  r-  r2  r<  r/   r/   r/   r0   r  I  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>   rd   r   rá   r"   r  ÚtransFigure©r  r)   r*   rç   r]   r/   r/   r0   Útest_legend_handle_label«  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  r9   r	  rA  rC  rE  r/   r/   r0   r  ³  s   
ÿ
ÿz,TestLegendFigureFunction.test_legend_no_argsc                 C   sj   t  ¡ \}}| tdƒ¡}t d¡}| dg¡ W d   ƒ n1 s#w   Y  |j||dg|jd d S )Nr
   r	  r  rA  rC  rE  r/   r/   r0   Útest_legend_label_arg»  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Ê   rA  rC  rE  r/   r/   r0   Ú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Ê   Úleftr<   )r   r   r>   rd   r‘   r  Ú	Exceptionr"   )r  r)   r*   rç   r/   r/   r0   Ú#test_legend_label_three_args_pluskwË  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   r`   r   r
   ç       @r	  rÊ   r(  )r   r'   r.   )r   rB  )r   r   r>   rd   r   r=   r   rá   r"   r  rD  )r  r)   rm   rç   Úlines2r]   r/   r/   r0   Útest_legend_kw_argsÓ  s   ÿ
þz,TestLegendFigureFunction.test_legend_kw_argsc                 C   s    t  dd¡\}}|d  tdƒ¡}|d  t d¡d ¡}t t¡}|j	||fdd W d   ƒ n1 s6w   Y  t
|ƒdksCJ ‚t|d jƒdksNJ ‚d S )	Nr   r`   r   r
   rL  r(  r#  r.  )r   r   r>   rd   r   r=   r‘   r’   r“   r"   r”   r/  r0  )r  r)   rm   rç   rM  r1  r/   r/   r0   Útest_warn_args_kwargsÝ  s   ÿÿz.TestLegendFigureFunction.test_warn_args_kwargsN)
r=  r>  r?  rF  r  rG  rH  rK  rN  rO  r/   r/   r/   r0   r@  ©  s    
r@  c                  C   sN  dd„ dD ƒ} | dd„ dD ƒ7 } | dd„ dD ƒ7 } | dd„ dD ƒ7 } g d¢}g d	¢}g d
¢}g d¢}||||||||||||g}g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}t | ƒD ]:\}}t|ƒ tjddd\}	}
|
jtdƒdd |	jd| d}|	 ¡  t|
 	¡ j
|| ƒ t| 	¡ j
|| ƒ qjd S )Nc                 S   ó   g | ]}d | ‘qS )zupper r/   ©rð   Úposr/   r/   r0   rò   ê  ró   z.test_figure_legend_outside.<locals>.<listcomp>)rI  rr   rÊ   c                 S   rP  )zlower r/   rQ  r/   r/   r0   rò   ë  ró   c                 S   rP  )zleft r/   rQ  r/   r/   r0   rò   ì  ró   )Úlowerrr   Úupperc                 S   rP  )zright r/   rQ  r/   r/   r0   rò   í  ró   )çQ‡nùX4@çQ‡nù¸;@ç‹lçû©´ˆ@g¢E¶óý@)rU  g ™žÃQ@rW  ç‹lçû©f‚@)gL‡NÏõb@rV  rW  rX  )rU  rV  g¢E¶óý™„@rX  )ç      $@ç     X@ç      `@ç     p‚@)ç     (u@rZ  ç     Ø|@r\  )é›  rZ  ç     °ˆ@r\  )rY  rY  r[  ç     €F@)r]  rY  r^  ra  )ç     Ø„@rY  r`  ra  )rY  ç     ¨q@r[  ç     Øs@)r_  rY  r`  ra  )rb  rc  r`  rd  )rb  rZ  r`  r\  Tr5   )Úconstrained_layoutÚdpir
   ÚBoo1r9   zoutside r<   )Ú	enumerateÚprintr   r   r>   rd   r"   Údraw_without_renderingr   rh   Úextents)ÚtodosÚupperextÚlowerextÚleftextÚrightextÚaxbbÚlegbbÚnnÚtodor)   rm   rp   r/   r/   r0   Útest_figure_legend_outsideé  sN   ýõ
ÿ
ÿ÷ru  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
   rR   rL  r   g      @r`   )Úy1Úy2Úy3r#  )r   r
   )r   éF   r;   r<   N)r   r   r   rŠ   Ú	stackplotrS   rT   r"   )r)   r*   r+   rv  rw  rx  r/   r/   r0   Útest_legend_stackplot  s   

r{  c                  C   s<   t  ¡ \} }t  ¡ \}}| tdƒtdƒ¡}| |d¡ d S )NrV   Úfoo)r   r   rG   rd   r"   )r)   r*   Úfig2Úax2Úbrsr/   r/   r0   Ú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 )Nr7   r   rV   )ÚmarkerÚ	facecolorrØ   Úsr   )ÚredÚgreenÚblueiî  r`   g      i@rÔ   Únone)r   rƒ  r   ÚalphaÚ
edgecolorsT)	r   r   r   r   Únanr"   r   ÚrandÚgrid)r)   r*   rö   r-   Únr+   r,   Úscaler/   r/   r0   Ú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 )NrQ   rR   Úkr7   rã   )r-   r  r   r   r   Úvr`   )r   r   r   r"   ÚmlegendÚ_get_legend_handles_labelsr”   )r)   r*   ÚhandÚlabr/   r/   r0   Ú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   rV   )r-   )r|  r|  r|  r;   r<   g      à¿gš™™™™™@)rd   r   r   r"   r  rS   rT   )r(   r  r/   r/   r0   Útest_not_covering_scatterL  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|  rG   r;   r<   )ÚmtransformsÚAffine2DÚ	translater   rŠ   r   r>   r   r  Ú	transDatar"   )Úoffsetr+   r/   r/   r0   Ú#test_not_covering_scatter_transformX  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 |j	ksJ ‚qpd S )N)r   r   )r   r   )rÔ   ç333333ã?)rt   rt   gffffffæ?rt   rs   rÙ   r   r¡  rM   z--rV   )Ú
linestylesrª   z-.)r¢  ú:)Úline1Úline2zline 3r   )
ÚmcollectionsÚLineCollectionr   r   Úadd_collectionr"   r•   r   Úget_linestylesÚ_dash_pattern)Úlines1rM  Úlines3Úlc1Úlc2Úlc3r)   r*   rp   Úh1Úh2Úh3ÚohÚlhr/   r/   r0   Ú!test_linecollection_scaled_dashesd  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ã   r9   r   ©r‡   N)r   r   r>   rd   r"   r‹   r/   r/   r0   Útest_handler_numpointsx  s   r·  c                  C   sÂ   t  ¡ \} }|jddddd t t¡}| ¡  W d  ƒ n1 s#w   Y  t|ƒdks0J ‚t  ¡ \}}| t	j
 ddd¡¡ t ¡  t d¡ | ¡  W d  ƒ dS 1 sZw   Y  dS )	z2Test that Text artists with labels raise a warningr   Útextr   )r+   r,   rƒ  r   Nr   )r
   r
   Úerror)r   r   r¸  r‘   r’   r“   r"   r”   Ú
pcolormeshr   r   ÚuniformÚwarningsÚcatch_warningsÚsimplefilterr   )r)   r*   r1  Úfr/   r/   r0   Ú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ã   r9   N)r   rG   r"   r/   r/   r/   r0   Ú 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 )Nr5   rã   r9   TÚw)r¹   r‚  r   )r   r   r>   rd   r"   Ú	get_frameÚ	get_alphar¯   r/   r/   r0   Útest_shadow_framealpha˜  s   rÅ  c                  C   sJ   t  ¡ \} }| tdƒ¡ | ¡ }| ¡  ¡ dksJ ‚| ¡  ¡ r#J ‚d S )Nr
   Ú )r   r   r>   rd   r"   Ú	get_titlerï   Úget_visibler¯   r/   r/   r0   Ú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sHJ ‚d S )	Nr5   ©rf  r
   ÚAardvarkr9   éÈ   r`   rM   )r   r   r>   rd   r"   rh   re   Úget_rendererÚx0r‘   Úapprox)r)   r*   rp   Úx01Úx02r/   r/   r0   Ú test_legend_proper_window_extent¬  s   rÒ  c                  C   sP   t jdd\} }|jtdƒdd | ¡ }|  ¡ }| j ¡  | ¡  | ¡  d S )Nr5   rÊ  r
   rË  r9   )r   r   r>   rd   r"   re   rf   rh   )r)   r*   rp   Úleg2r/   r/   r0   Ú"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 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
   rË  é   Úserif)ÚfamilyÚsize)rº   Útitle_fontsizeÚtitle_fontproperties)rº   rÚ  r`   rV   )r
   rÓ   )rY   r   )rº   rÙ  r   zlegend.title_fontsizer×  z	font.size©rº   r…   r˜   r   )r   r>   rd   r‘   r  Ú
ValueErrorr"   r	   rÇ  Úget_sizer   ra   Úget_fontsizer²   rÅ   )	rp   r)   ÚaxesÚleg0Úleg1rÓ  Úleg3Úleg4Úleg5r/   r/   r0   Ú#test_legend_title_fontprop_fontsizeÅ  sL   ÿÿ
ÿ
ÿ

ÿ

ÿrå  Ú	alignment)rr   rI  rÊ   c                 C   sV   t  ¡ \}}|jtdƒdd |jd| d}| ¡ d j| ks!J ‚| ¡ | ks)J ‚d S )Nr
   rã   r9   rË  )rº   ræ  r   )r   r   r>   rd   r"   Úget_childrenrC   Úget_alignment©ræ  r)   r*   rp   r/   r/   r0   Útest_legend_alignmentë  s
   rê  c                 C   sZ   t  ¡ \}}|jtdƒdd | ¡ }| | ¡ | ¡ d j| ks#J ‚| ¡ | ks+J ‚d S )Nr
   rã   r9   r   )	r   r   r>   rd   r"   Úset_alignmentrç  rC   rè  ré  r/   r/   r0   Útest_legend_set_alignmentô  s   
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 	| 
¡ | ¡sMJ ‚q@d S )
Nr
   r   ú#1r9   r`   ú#2rV   ú#3©Ú
labelcolor)r   r   r>   r   r=   r"   r÷   r²   r(   Ú
same_colorÚ	get_color©r-   r)   r*   rp   r¸  r/   r/   r0   Ú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g d	¢d
}t| ¡ g d	¢ƒD ]\}}tj	 
| ¡ |¡sVJ ‚qGd S )Nr
   r   rí  r9   r`   rî  rV   rï  ©r   r   r   rð  ©r   r   r>   r   r=   r"   r   r÷   r²   r(   rò  ró  ©r)   r*   rp   r¸  r-   r/   r/   r0   Útest_legend_labelcolor_list  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   rí  r   ©r   r-   r`   rî  r   rV   rï  r   Ú	linecolorrð  rö  r÷  rø  r/   r/   r0   Ú test_legend_labelcolor_linecolor  ó   """ÿrý  c                  C   rú  )Nr
   r   rí  r   r   r`   rî  r   rV   rï  r   rü  rð  rö  ©r   r   r   r   r=   r"   r   r÷   r²   r(   rò  ró  rø  r/   r/   r0   Ú/test_legend_pathcollection_labelcolor_linecolor#  rþ  r   c                  C   st   t  ¡ \} }tj ¡  g d¢d¡}|jt d¡t d¡d d|d |jdd}| 	¡ \}t
j | ¡ d¡s8J ‚d S )	Nrö  r
   r   rí  r   rü  rð  Úblack)r   r   r   r   Údefault_rngÚchoicer   r=   r"   r÷   r²   r(   rò  ró  )r)   r*   r(   rp   r¸  r/   r/   r0   Ú8test_legend_pathcollection_labelcolor_linecolor_iterable/  s   "
r  c                  C   s`   t  ¡ \} }|jt d¡t d¡t d¡dd |jdd}| ¡ \}tj 	| 
¡ d¡s.J ‚d S )Nr
   rí  )r   r   rü  rð  r  )r   r   r   r   r=   r"   r÷   r²   r(   rò  ró  )r)   r*   rp   r¸  r/   r/   r0   Ú4test_legend_pathcollection_labelcolor_linecolor_cmap;  s
   $
r  c                  C   rú  )Nr
   r   rí  r   ©r   Úmarkeredgecolorr`   rî  r   rV   rï  r   r  rð  rö  r÷  rø  r/   r/   r0   Ú&test_legend_labelcolor_markeredgecolorF  rþ  r  c                  C   rú  )Nr
   r   rí  r   ©r   rØ   r`   rî  r   rV   rï  r   r  rð  rö  rÿ  rø  r/   r/   r0   Ú5test_legend_pathcollection_labelcolor_markeredgecolorR  rþ  r
  c                  C   ó„   t  ¡ \} }tj ¡  g d¢d¡}|jt d¡t d¡d d|d |jdd}t	| 
¡ dgƒD ]\}}tj | ¡ |¡s?J ‚q0d S )	Nrö  r
   r   rí  r	  r  rð  r  ©r   r   r   r   r  r  r   r=   r"   r   r÷   r²   r(   rò  ró  ©r)   r*   r(   rp   r¸  r-   r/   r/   r0   Ú>test_legend_pathcollection_labelcolor_markeredgecolor_iterable^  ó   "ÿr  c                  C   sˆ   t  ¡ \} }tj tj d¡¡}|jt 	d¡t 	d¡dt 	d¡|dd |j
dd}t| ¡ dgƒD ]\}}tj | ¡ |¡sAJ ‚q2d S )Nr
   rí  ÚReds)r   r   rØ   Úcmapr  rð  r  ©r   r   r²   ÚcmÚviridisr   r   r‹  r   r=   r"   r   r÷   r(   rò  ró  )r)   r*   r‰  rp   r¸  r-   r/   r/   r0   Ú:test_legend_pathcollection_labelcolor_markeredgecolor_cmapj  s   ú	ÿr  c                  C   rú  )Nr
   r   rí  r   ©r   Úmarkerfacecolorr`   rî  r   rV   rï  r   r  rð  rö  r÷  rø  r/   r/   r0   Ú&test_legend_labelcolor_markerfacecolor}  rþ  r  c                  C   rú  )Nr
   r   rí  r   ©r   r‚  r`   rî  r   rV   rï  r   r  rð  rö  rÿ  rø  r/   r/   r0   Ú5test_legend_pathcollection_labelcolor_markerfacecolor‰  rþ  r  c                  C   r  )	Nrö  r
   r   rí  r  r  rð  r  r  r  r/   r/   r0   Ú>test_legend_pathcollection_labelcolor_markerfacecolor_iterable•  r  r  c                  C   s†   t  ¡ \} }tj tj d¡¡}|jt 	d¡t 	d¡dt 	d¡|d |j
dd}t| ¡ dgƒD ]\}}tj | ¡ |¡s@J ‚q1d S )Nr
   rí  )r   r   r‚  r  rð  r  r  )r)   r*   Ú
facecolorsrp   r¸  r-   r/   r/   r0   Ú8test_legend_pathcollection_labelcolor_markfacecolor_cmap¡  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	 
| ¡ | ¡sPJ ‚qCd S )
Nr
   r   rí  r9   r`   rî  rV   rï  úlegend.labelcolor)r   r   r>   r   r=   r²   rÅ   r"   r÷   r(   rò  ró  rô  r/   r/   r0   Ú%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   rí  r   rû  r`   rî  r   rV   rï  r   rü  r  rö  ©r   r   r>   r   r=   r²   rÅ   r"   r   r÷   r(   rò  ró  rø  r/   r/   r0   Ú(test_legend_labelcolor_rcparam_linecolorÁ  ó   """
ÿr"  c                  C   r   )Nr
   r   rí  r   r  r`   rî  r   rV   rï  r   r  r  rö  r!  rø  r/   r/   r0   Ú.test_legend_labelcolor_rcparam_markeredgecolorÎ  r#  r$  c                  C   r   )Nr
   r   rí  r   r  r`   rî  r   rV   rï  r   Úmecr  rö  r!  rø  r/   r/   r0   Ú4test_legend_labelcolor_rcparam_markeredgecolor_shortÛ  r#  r&  c                  C   r   )Nr
   r   rí  r   r  r`   rî  r   rV   rï  r   r  r  rö  r!  rø  r/   r/   r0   Ú.test_legend_labelcolor_rcparam_markerfacecolorè  r#  r'  c                  C   r   )Nr
   r   rí  r   r  r`   rî  r   rV   rï  r   Úmfcr  rö  r!  rø  r/   r/   r0   Ú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/   r0   Útest_get_set_draggable  s   

r-  Ú	draggable)TFc                 C   s>   t  ¡ \}}|jtdƒdd |j| d}| ¡ | u sJ ‚d S )Nr
   Úshabnamsr9   )r.  )r   r   r>   rd   r"   r*  )r.  r)   r*   rp   r/   r/   r0   Útest_legend_draggable  s   r0  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 )	Nrž   g      Ð?Údatar„  )rˆ  r   r-   rR   rD   r   )r   rc   r"   r•   Ú	set_alphaÚget_facecolorÚget_edgecolor)r+   r  Úhhr"   r´  r/   r/   r0   Útest_alpha_handles  s   
(,r6  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vs/J ‚d S )NrÖ  zfont.familyzComputer Modernz
font.serifTztext.usetexr   Úinputr9   r¸   rÛ  z Font family ['serif'] not found.)	r²   rÅ   r   r   r>   r"   re   rf   r¸  )Úcaplogr)   r*   r/   r/   r0   Útest_usetex_no_warn  s   



r9  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™  éˆ  r9   z
legend.locr;   r`   zGCreating legend with loc="best" can be slow with large amounts of data.)r   r   re   rf   rd   r>   r   r=   r   r"   r‘   r’   r“   Údraw_artistr”   r/  r0  )r)   r*   Úidxr"   Úrecordsr1  r/   r/   r0   Ú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:  r9   r;   )
r   r   re   rf   rd   r>   r   r=   r"   r;  )r)   r*   r<  r"   r/   r/   r0   Ú(test_no_warn_big_data_when_loc_specified<  s   

r?  Úlabel_arrayÚlowÚhigh)rA  rB  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 )Nrž   r   r`   r   r…   r\   r9   c                 S   rí   r/   rî   ©rð   Úentryr/   r/   r0   rò   S  ró   z;test_plot_multiple_input_multiple_label.<locals>.<listcomp>rA  rB  )r   r   r>   r"   r÷   )r@  r+   r,   r)   r*   rp   Úlegend_textsr/   r/   r0   Ú'test_plot_multiple_input_multiple_labelE  s   þrF  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 )
Nrž   r   r`   r   r…   r\   r9   c                 S   rí   r/   rî   rC  r/   r/   r0   rò   c  ró   z9test_plot_multiple_input_single_label.<locals>.<listcomp>)r   r   r>   r"   r÷   r/  )r   r+   r,   r)   r*   rp   rE  r/   r/   r0   Ú%test_plot_multiple_input_single_labelW  s   þrG  c                 C   sh   g d¢}g d¢}t  ¡ \}}|j||| d | ¡ }t| ¡ ƒdks$J ‚| ¡ d  ¡ t| ƒks2J ‚d S )Nrž   )r`   r   rÓ   r9   r   r   )r   r   r>   r"   r”   r÷   rï   r/  )r@  r+   r,   r)   r*   rp   r/   r/   r0   Ú%test_plot_single_input_multiple_labelg  s    rH  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 )	Nrž   r   r`   r   r…   r\   )rB  rA  Úmediumr9   )r‘   r  rÜ  r   r   r>   )r+   r,   r   r)   r*   r/   r/   r0   Ú3test_plot_multiple_label_incorrect_length_exceptionv  s   þ"ùrJ  c                  C   s:   t  ¡ \} }|jg d¢g d¢g d¢dddd | ¡  d S )Nr5  rž   rŸ   r   ÚfaceÚFill)r‚  rØ   r   )r   r   rà   r"   r‹   r/   r/   r0   Útest_legend_face_edgecolorƒ  s
   ÿrM  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   r`   rV   r…   rP   r9   r   )r   r   r>   r"   rß  r÷   r¯   r/   r/   r0   Útest_legend_text_axes‹  s
   rN  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  rË  r¶  )r   r   r   ÚmlinesÚLine2Dr"   rõ   r•   )r)   r*   r.   rp   r/   r/   r0   Útest_handlerline2d”  s
   "rQ  c                  C   sF   t  ¡  ¡ } |  ¡ }|jddgddgdd |  ¡ }|j| u s!J ‚d S )Nr   r   rP   r9   )r   rˆ   Ú
subfiguresr   r>   r"   )Úsubfigr*   rp   r/   r/   r0   Útest_subfigure_legend  s
   rT  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   r`   rV   z#123456r   )r-   r   r   )r   rà   r"   Úget_patchesr2  r3  Útupler4  )Úpcrá   r/   r/   r0   Ú-test_setting_alpha_keeps_polycollection_color¦  s
   
,0rX  c            	      C   s”   g d¢} t  ¡ \}}dd„ | D ƒ}g d¢}dd„ |D ƒ}| ||¡}dd„ | ¡ D ƒ}dd„ | ¡ D ƒ}||  kr?| ksBJ ‚ J ‚||ksHJ ‚d S )N)ré   Ú*r‘  c                 S   s"   g | ]}t jd gd gd|d‘qS )r   ÚNone)Úlsr  )rO  rP  )rð   Úmarkr/   r/   r0   rò   ²  s    ÿz3test_legend_markers_from_line2d.<locals>.<listcomp>)r|  rG   Úxyzzyc                 S   rí   r/   rô   ©rð   rP   r/   r/   r0   rò   µ  ró   c                 S   rí   r/   rô   r^  r/   r/   r0   rò   ¸  ró   c                 S   rí   r/   rî   )rð   r¸  r/   r/   r0   rò   ¹  ró   )r   r   r"   Ú	get_linesr÷   )	Ú_markersr)   r*   rç   r'   rú   r"   Únew_markersÚ
new_labelsr/   r/   r0   Útest_legend_markers_from_line2d®  s   ÿrc  c                 C   s,   g d¢}d}| j ||d |j ||d d S )N)r   r   r   r™   Úer¿  rV   )Úncol)rX   r,  )r  r  ÚstringsrX   r/   r/   r0   Útest_ncol_ncols¿  s   rg  )yr    ÚplatformÚunittestr   r¼  Únumpyr   Únumpy.testingr   r‘   Úmatplotlib.testing.decoratorsr   r   Úmatplotlib.testing._markersr   Úmatplotlib.pyplotÚpyplotr   Ú
matplotlibr²   Úmatplotlib.patchesÚpatchesr{   Úmatplotlib.transformsÚ
transformsr›  Úmatplotlib.collectionsr¦  Úmatplotlib.linesrç   rO  Úmatplotlib.legend_handlerr   Úmatplotlib.legendr"   r’  r   Úmatplotlib.font_managerr	   r1   r?   rJ   rU   rq   r‚   rŒ   r–   r   r¦   Úmachiner°   r³   r½   rÀ   rÆ   rÏ   râ   rè   rý   r  r  r@  ru  r{  r€  r  r–  r—  r   rµ  r·  rÀ  rÁ  rÅ  rÉ  rÒ  rÔ  rå  r\  Úparametrizerê  rì  rõ  rù  rý  r   r  r  r  r
  r  r  r  r  r  r  r  r"  r$  r&  r'  r)  r-  r0  r6  r9  r>  r?  r~   rF  ÚintrG  rH  rJ  rM  rN  rQ  rT  rX  rc  rg  r/   r/   r/   r0   Ú<module>   s   
	
	
 


	
ÿ
ÿ

ÿ



 

`@)


	&

	

	
	
	þ

þ
			