U
    Âmœd¯  ã                	   @   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 qZ| ¡ \}
}t 	t||
ƒ¡}|j
| ¡ | ¡ dd	d
 d S )Né
   Úaé   ÚbÚrÚg©ÚlabelÚcúcenter left)é   ç      à?)ÚlocÚbbox_to_anchor)ÚnpÚrandomZrandnÚpltÚsubplotsÚzipÚscatterÚget_legend_handles_labelsÚcollectionsÚOrderedDictÚlegendÚvaluesÚkeys)ÚXÚYÚlabelsÚcolorsÚfigÚaxÚxÚyr   ÚcolorÚhandlesr!   © r.   úU/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/matplotlib/tests/test_legend.pyÚtest_legend_ordereddict   s     ÿr0   Zlegend_auto1T)Úremove_textc                  C   sR   t  ¡ \} }t d¡}|j|d| ddd |j||d ddd |jdd d	S )
úTest automatic legend placementéd   é2   Úoúy=1©r   úy=-1Úbest©r   N)r   r   r   ÚarangeÚplotr!   )r(   r)   r*   r.   r.   r/   Útest_legend_auto1*   s
    
r=   Zlegend_auto2c                  C   sh   t  ¡ \} }t d¡}|j||ddd}|j||ddd… ddd}|j|d |d gd	d
gdd dS )r2   r3   ÚedgeÚm)Úalignr,   Néÿÿÿÿr   r   ÚupZdownr9   r:   )r   r   r   r;   Úbarr!   )r(   r)   r*   Úb1Úb2r.   r.   r/   Útest_legend_auto24   s
    
rF   Zlegend_auto3c                  C   sf   t  ¡ \} }ddddddg}ddddddg}|j||ddd | d	d
¡ | d	d
¡ |jdd dS )r2   çÍÌÌÌÌÌì?çš™™™™™¹?r   gffffffî?çš™™™™™©?zo-Úliner7   ç        ç      ð?r9   r:   N)r   r   r<   Úset_xlimÚset_ylimr!   )r(   r)   r*   r+   r.   r.   r/   Útest_legend_auto3>   s    rO   c                  C   s¸   t jddd\} }g }t|jdƒD ]d\}}| |¡ |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)rC   ÚstepZ
stepfilledr   r   é	   r
   ÚLegend)Zbinsr   Zhisttyper9   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)   ZhtÚlegr.   r.   r/   Útest_legend_auto4J   s    
"
ÿrg   c                  C   s  t jddd\} }g }t|jdƒD ]Ð\}}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 ]}| 
|¡ qš|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.
    rW   )g333333#@g333333@rQ   )Úcenterr9   )r   rG   çš™™™™™é?çš™™™™™É?ÚC1)ZxyÚwidthÚheightÚfcr   r   rG   rL   rH   )rn   )r   r   r   ih  rI   ZC0)rl   rn   z	A segmentr7   r:   N)r   r   r   rX   ÚmpatchesZEllipseZPolygonr   ÚarrayZWedgeÚ	add_patchr<   r!   r\   r]   r^   r_   r`   ra   rb   r   rc   )r(   rd   re   r)   r   Z_patchrf   r.   r.   r/   Útest_legend_auto5`   s@       ÿ       þþú
ÿrr   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   é   r5   r   r7   gffffff@u   DÃ©veloppÃ©srA   Z__nolegend__r9   )Ú	numpointsr   )r   ÚfigureZadd_subplotr<   r   r;   Úlinspacer!   ©r(   r)   r.   r.   r/   Útest_various_labels€   s    
ry   c               	   C   s^   t  ¡ \} }|jddgdd\}tjtdd |j|gd}W 5 Q R X t|jƒdksZt	‚dS )	zª
    Test that artists with labels starting with an underscore are not added to
    the legend, and that a warning is issued if one tries to add them
    explicitly.
    r   r   Z_foor7   z*starts with '_'.*excluded from the legend.©Úmatch©r-   N)
r   r   r<   ÚpytestÚwarnsÚUserWarningr!   ÚlenÚlegend_handlesÚAssertionError)r(   r)   rJ   r!   r.   r.   r/   Ú)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   r7   r   z:xr*   é   rA   ÚdZdiamondr9   F)r   Zmarkerfirst)r   r   r<   r   r;   Zonesr!   rx   r.   r.   r/   Útest_labels_first™   s
    r‡   zlegend_multiple_keys.pngc                  C   s   t  ¡ \} }| dddgd¡\}| dddgd¡\}| dddgd¡\}|j||f||f|gd	d
dgd||ftd d||ftd ddid d S )Nr   rW   rP   r„   rt   z-xr   z-dztwo keyszpad=0zone key)Úndivider   )rˆ   Úpad)ru   Úhandler_map)r   r   r<   r!   r   )r(   r)   Úp1Úp2Zp3r.   r.   r/   Útest_multiple_keys£   s     
ÿþr   zrgba_alpha.pngÚx86_64g{®Gáz„?)r1   Ztolc                  C   sF   t  ¡ \} }|jtdƒdd t jdgdd}|j dddd	g¡ d S )
Nr
   r   ©ÚlwúLonglabel that will go awayrh   r:   r   r   r   )r   r   r<   r[   r!   ÚlegendPatchÚset_facecolor©r(   r)   rf   r.   r.   r/   Útest_alpha_rgba°   s    r•   zrcparam_alpha.pngc               	   C   sb   t  ¡ \} }|jtdƒdd tjddid* t jdgdd	}|j d
dddg¡ W 5 Q R X d S )Nr
   r   r   zlegend.framealphag      è?)Úrcr‘   rh   r:   r   r   r   )	r   r   r<   r[   Úmplr   r!   r’   r“   r”   r.   r.   r/   Ú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 )Nrs   r   r
   zo--ZXXr7   r   rA   zXX
XXr   )ZxerrZyerrr   r   rL   rW   Tú	My legendr   )r   r   rR   ÚshadowÚtitleru   )r   Úsubplotr<   r   r   r;   Zerrorbarr!   r.   r.   r.   r/   Ú
test_fancyÇ   s    
  ÿ   ÿrž   Ú
framealphag{®Gáz”?c                  C   s4   t  ddd¡} | }tj| |ddd tjdd d S )Nr   r3   Zmylabelr
   )r   r   r   )rŸ   )r   rw   r   r<   r!   )r*   r+   r.   r.   r/   Útest_framealphaÓ   s    r    Zscatter_rc3Zscatter_rc1c                  C   sš   t  ¡  t  d¡} | jt d¡t ddd¡dd | jddd	gd
d dtjd< t  ¡  t  d¡} | jt d¡t ddd¡dd | jddd	gd
d d S )Nrs   r
   r   rA   Úthreer7   r   rL   r   rš   )r   r   rœ   r   zlegend.scatterpointsÚone)	r   rv   r   r   r   r;   r!   r—   Ú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   r3   r4   r5   r6   r7   z
upper left)r   Úmoder8   Úrightz
lower leftrW   )r   r¦   rR   )	r   r   r€   r   r;   r   r<   r!   Z
add_artist)Zlegend_modesr(   rd   r*   r)   r¦   Úl1Úl2r.   r.   r/   Útest_legend_expandí   s    


rª   ZhatchingÚdefault)r1   Ústylec               	   C   s  dt jd< t  ¡ \} }t jdddddd}| |¡ t jdddd	d
dd}| |¡ t jddddddd}| |¡ t jdddd	dd
dd}| |¡ |jdddgdddgdddgddd |jdddgdddgdddgdddd | d d!¡ | d d!¡ |jd"d"d# d S )$Né   ztext.kerning_factor)r   r   ç333333Ó?ZxxzPatch
default color
filled)Úhatchr   )ç…ëQ¸Õ?r   z||rk   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Ã?ri   rG   rL   ú+zPath
default colorr°   g¸…ëQ¸Þ?g)\Âõ(ä?ZC2zPath
explicit colorg{®Gáz„¿gš™™™™™ñ?rt   )ZhandlelengthZhandleheight)	r   r£   r   Z	Rectanglerq   Úfill_betweenrM   rN   r!   )r(   r)   Úpatchr.   r.   r/   Útest_hatchingý   s>    
ÿ
ÿ
ÿ
þ
 ÿ  ÿr·   c                  C   sb   t  ¡ \} }| tdƒ¡}|  |d¡}| ¡  | jg ks<t‚| d¡}| ¡  | ¡ d ks^t‚d S )Nr
   Útest)	r   r   r<   r[   r!   ÚremoveZlegendsr‚   Z
get_legend)r(   r)   Úlinesrf   r.   r.   r/   Útest_legend_remove  s    
r»   c            	      C   sÐ   t  ¡ \} }d}d}dddg}dddg}|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s¸t‚|tt|ƒƒksÌt‚dS )z6Check that the legend handles and labels are reversed.r   zFirst labelzSecond labelzThird labelÚ.ú,r5   r   r7   rW   T©Úreversec                 S   s   g | ]}|  ¡ ‘qS r.   ©Úget_text)Ú.0Útr.   r.   r/   Ú
<listcomp>5  s     z:test_reverse_legend_handles_and_labels.<locals>.<listcomp>c                 S   s   g | ]}|  ¡ ‘qS r.   ©Ú
get_marker)rÂ   Úhr.   r.   r/   rÄ   6  s     N)	r   r   r<   r!   Ú	get_textsr   ÚlistÚreversedr‚   )	r(   r)   r*   r+   r&   Úmarkersrf   Zactual_labelsZactual_markersr.   r.   r/   Ú&test_reverse_legend_handles_and_labels)  s    

rÌ   Z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Úfirstr7   rW   ZbxÚsecondTr¾   N)r   r<   r!   )Úfig_testÚfig_refr)   r.   r.   r/   Ú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   sH   t jtdƒdd}t d¡}t  ¡  W 5 Q R X | t  ¡ |dg¡ d S )Nr
   úhello worldr7   úmatplotlib.legend.Legend©r   r<   r[   r   r¶   r!   Úassert_called_withÚgca©Úselfrº   rV   r.   r.   r/   Útest_legend_no_argsK  s    z&TestLegendFunction.test_legend_no_argsc              	   C   sJ   t  tdƒ¡}t d¡}t  |dg¡ W 5 Q R X | t  ¡ |dg¡ d S )Nr
   rÖ   rÕ   r×   rÚ   r.   r.   r/   Ú%test_legend_positional_handles_labelsQ  s    z8TestLegendFunction.test_legend_positional_handles_labelsc              	   C   s6   t  tdƒ¡}tjtdd t  |¡ W 5 Q R X d S )Nr
   zbut found an Artistrz   )r   r<   r[   r}   ÚraisesÚ	TypeErrorr!   )rÛ   rº   r.   r.   r/   Ú#test_legend_positional_handles_onlyW  s    z6TestLegendFunction.test_legend_positional_handles_onlyc              	   C   sL   t jtdƒdd}t d¡}t  dg¡ W 5 Q R X | t  ¡ |dg¡ d S )Nr
   rÕ   r7   rÖ   Úfoobarr×   rÚ   r.   r.   r/   Ú"test_legend_positional_labels_only^  s    z5TestLegendFunction.test_legend_positional_labels_onlyc              	   C   sV   t jtdƒdd}t d¡}t j|dgdd W 5 Q R X |jt  ¡ |dgdd d S )Nr
   rÕ   r7   rÖ   rá   r§   r:   r×   rÚ   r.   r.   r/   Útest_legend_three_argsd  s    z)TestLegendFunction.test_legend_three_argsc              	   C   s^   t jtdƒdd}t d¡"}|dgf|_t jddid W 5 Q R X | t  ¡ gddi¡ d S )Nr
   rÕ   r7   z,matplotlib.legend._get_legend_handles_labelsÚ1rW   )rŠ   )	r   r<   r[   r   r¶   Zreturn_valuer!   rØ   rÙ   )rÛ   rº   Zhandles_labelsr.   r.   r/   Ú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 5 Q R X | |||gd	dg¡ d S )Nr   r   é   r*   r7   rW   Ú2xrP   Z3xrÖ   r|   ©	r   r   r   rw   r<   r   r¶   r!   rØ   )rÛ   r(   r)   r*   Úln1Úln2Zln3rV   r.   r.   r/   Útest_legend_kwargs_handles_onlyr  s    z2TestLegendFunction.test_legend_kwargs_handles_onlyc              	   C   sz   t  ¡ \}}t ddd¡}| ||¡\}| |d| ¡\}t d¡}|jddgd W 5 Q R X | |||gddg¡ d S )	Nr   r   ræ   rW   rÖ   r*   rç   ©r&   rè   )rÛ   r(   r)   r*   ré   rê   rV   r.   r.   r/   Útest_legend_kwargs_labels_only|  s    z1TestLegendFunction.test_legend_kwargs_labels_onlyc              	   C   sŽ   t  ¡ \}}t ddtj d¡}|j|t |¡dd\}|j|t |¡dd\}t 	d¡}|j
d||fd	 W 5 Q R X | |||fd¡ d S )
Nr   rW   é   Úsinr7   ÚcosrÖ   ©r   r   )r&   r-   )r   r   r   rw   Úpir<   rï   rð   r   r¶   r!   rØ   )rÛ   r(   r)   ÚthÚlnsÚlncrV   r.   r.   r/   Ú!test_legend_kwargs_handles_labels…  s    z4TestLegendFunction.test_legend_kwargs_handles_labelsc              	   C   s¢   t  ¡ \}}t ddtj d¡}|j|t |¡dd\}|j|t |¡dd\}t 	t
¡}|j||fdd W 5 Q R X t|ƒd	ksˆt‚t|d jƒd
ksžt‚d S )Nr   rW   rî   rï   r7   rð   rñ   rì   r   úMYou have mixed positional and keyword arguments, some input may be discarded.)r   r   r   rw   rò   r<   rï   rð   r}   r~   r   r!   r€   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dddgdddgdd\}|jdddgdddgd	d\}t d
¡}t ¡  W 5 Q R X | |||gdd	g¡ d S )Nr   )Úhost_subplotéo   r   rW   ZDensityr7   rP   ZTemperaturerÖ   )	Zmpl_toolkits.axes_grid1rü   Ztwinxr<   r   r¶   r   r!   rØ   )rÛ   rü   ÚhostÚparr‹   rŒ   rV   r.   r.   r/   Útest_parasite›  s    z TestLegendFunction.test_parasiteN)Ú__name__Ú
__module__Ú__qualname__rÜ   rÝ   rà   râ   rã   rå   rë   rí   rö   rû   r   r.   r.   r.   r/   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   sX   t  ¡ \}}| tdƒ¡}t d¡}| |dg¡ W 5 Q R X |j||dg|jd d S )Nr
   rÖ   rÕ   ©Úbbox_transform©	r   r   r<   r[   r   r¶   r!   rØ   ÚtransFigure©rÛ   r(   r)   rº   rV   r.   r.   r/   Útest_legend_handle_label«  s    ÿz1TestLegendFigureFunction.test_legend_handle_labelc              	   C   sV   t  ¡ \}}|jtdƒdd}t d¡}| ¡  W 5 Q R X |j||dg|jd d S )Nr
   rÕ   r7   rÖ   r  r  r	  r.   r.   r/   rÜ   ³  s    ÿz,TestLegendFigureFunction.test_legend_no_argsc              	   C   sV   t  ¡ \}}| tdƒ¡}t d¡}| dg¡ W 5 Q R X |j||dg|jd d S )Nr
   rÖ   rá   r  r  r	  r.   r.   r/   Útest_legend_label_arg»  s    ÿz.TestLegendFigureFunction.test_legend_label_argc              	   C   s\   t  ¡ \}}| tdƒ¡}t d¡}| |dgd¡ W 5 Q R X |j||dgd|jd d S )Nr
   rÖ   rá   r§   r  r  r	  r.   r.   r/   Útest_legend_label_three_argsÃ  s    ÿz5TestLegendFigureFunction.test_legend_label_three_argsc              	   C   sH   t  ¡ \}}| tdƒ¡}t t¡ |j|dgddd W 5 Q R X d S )Nr
   rá   r§   Úleftr:   )r   r   r<   r[   r}   rÞ   Ú	Exceptionr!   )rÛ   r(   r)   rº   r.   r.   r/   Ú#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 5 Q R X |j	|||fdd|j
d
 d S )Nr   rW   r   r
   ç       @rÖ   r§   rñ   )r   r&   r-   )r   r  )r   r   r<   r[   r   r;   r   r¶   r!   rØ   r  )rÛ   r(   rd   rº   Úlines2rV   r.   r.   r/   Útest_legend_kw_argsÓ  s       þz,TestLegendFigureFunction.test_legend_kw_argsc              	   C   sŒ   t  dd¡\}}|d  tdƒ¡}|d  t d¡d ¡}t t¡}|j	||fdd W 5 Q R X t
|ƒdksrt‚t|d jƒdksˆt‚d S )	Nr   rW   r   r
   r  rñ   rì   r÷   )r   r   r<   r[   r   r;   r}   r~   r   r!   r€   r‚   rø   rù   )rÛ   r(   rd   rº   r  rú   r.   r.   r/   Útest_warn_args_kwargsÝ  s    ÿz.TestLegendFigureFunction.test_warn_args_kwargsN)
r  r  r  r
  rÜ   r  r  r  r  r  r.   r.   r.   r/   r  ©  s   
r  c                  C   s  dd„ dD ƒ} | dd„ dD ƒ7 } | dd„ dD ƒ7 } | dd„ dD ƒ7 } dd	d
dg}ddd
dg}dd	d
dg}dd	ddg}||||||||||||g}ddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgg}t | ƒD ]v\}}t|ƒ tjddd\}	}
|
jtdƒd d! |	jd"| d#}|	 ¡  t|
 	¡ j
|| ƒ t| 	¡ j
|| ƒ qd S )$Nc                 S   s   g | ]}d | ‘qS )zupper r.   ©rÂ   Úposr.   r.   r/   rÄ   ê  s     z.test_figure_legend_outside.<locals>.<listcomp>)r  rh   r§   c                 S   s   g | ]}d | ‘qS )zlower r.   r  r.   r.   r/   rÄ   ë  s     c                 S   s   g | ]}d | ‘qS )zleft r.   r  r.   r.   r/   rÄ   ì  s     )Úlowerrh   Úupperc                 S   s   g | ]}d | ‘qS )zright r.   r  r.   r.   r/   rÄ   í  s     gQ‡nùX4@gQ‡nù¸;@g‹lçû©´ˆ@g¢E¶óý@g ™žÃQ@g‹lçû©f‚@gL‡NÏõb@g¢E¶óý™„@g      $@g     X@g      `@g     p‚@g     (u@g     Ø|@i›  g     °ˆ@g     €F@g     Ø„@g     ¨q@g     Øs@Tr3   )Zconstrained_layoutÚdpir
   ZBoo1r7   zoutside r:   )Ú	enumerateÚprintr   r   r<   r[   r!   Zdraw_without_renderingr   r_   Zextents)ZtodosZupperextZlowerextZleftextZrightextZaxbbZlegbbÚnnÚtodor(   rd   rf   r.   r.   r/   Útest_figure_legend_outsideé  sX          ý











õ
ÿ
ÿr  zlegend_stackplot.pngc                  C   sx   t  ¡ \} }t ddd¡}d| }d| d }d| d }|j||||dd	d
gd | d¡ | d¡ |jdd dS )z/Test legend for PolyCollection using stackplot.r   r
   rL   r  r   g      @rW   Úy1Úy2Úy3rì   )r   r
   )r   éF   r9   r:   N)r   r   r   rw   Z	stackplotrM   rN   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 )NrP   Úfoo)r   r   rC   r[   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 )Nr5   r   rP   )ÚmarkerÚ	facecolorr±   Úsr   )ÚredÚgreenÚblueiî  rW   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.   r/   Útest_nanscatter)  s$      ÿ ÿr3  c                  C   s¼   t  ¡ \} }|jdddddd |jdddd	dd | ¡  t |g¡\}}t|ƒd
ks\t‚t  ¡ \} }|jdddddd |jdddd	dd | ¡  t |g¡\}}t|ƒd
ks¸t‚d S )NrK   rL   Úkr5   r¸   )r,   r%  r   r   r   ÚvrW   )r   r   r   r!   ÚmlegendZ_get_legend_handles_labelsr€   r‚   )r(   r)   ÚhandZlabr.   r.   r/   Útest_legend_repeatcheckok=  s    r8  znot_covering_scatter.pngc                  C   sh   dddg} t dƒD ]}tj|g|g| | d qtjdddgdd t ¡  d	d
¡ t ¡  d	d
¡ d S )Nr   r   r   rP   )r,   r#  r9   r:   g      à¿gš™™™™™@)r[   r   r   r!   rÙ   rM   rN   )r'   r1  r.   r.   r/   Útest_not_covering_scatterL  s    
r9  z"not_covering_scatter_transform.pngc                  C   s^   t  ¡  dd¡} t ddd¡}t ||¡ tjdgdg| t ¡ j	 d tj
dd	gd
d d S )Niìÿÿÿr…   r   é   éè  r
   )Z	transformr#  rC   r9   r:   )ÚmtransformsZAffine2DÚ	translater   rw   r   r<   r   rÙ   Z	transDatar!   )Úoffsetr*   r.   r.   r/   Ú#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dddg¡}|j\}	}
}t|||f|	|
|fƒD ]\}}| ¡ d |j	ksât
‚qâd S )N)r   r   )r   r   )r®   ç333333ã?)rj   rj   gffffffæ?rj   ri   r²   r   r@  rH   z--rP   )Ú
linestylesr   z-.)rA  ú:Úline1Úline2zline 3r   )ÚmcollectionsZLineCollectionr   r   Zadd_collectionr!   r   r   Zget_linestylesZ_dash_patternr‚   )Zlines1r  Zlines3Zlc1Zlc2Zlc3r(   r)   rf   Zh1Zh2Zh3ZohÚlhr.   r.   r/   Ú!test_linecollection_scaled_dashesd  s      


rG  c                  C   s.   t  ¡ \} }|jtdƒdd |jdd dS )z(Test legend handler with numpoints <= 1.r   r¸   r7   r   ©ru   N)r   r   r<   r[   r!   rx   r.   r.   r/   Útest_handler_numpointsx  s    rI  c               	   C   s˜   t  ¡ \} }|jddddd t t¡}| ¡  W 5 Q R X t|ƒdksLt‚t  ¡ \}}| 	t
j ddd¡¡ t ¡  t d¡ | ¡  W 5 Q R X dS )	z2Test that Text artists with labels raise a warningr   Útextr   )r*   r+   r'  r   r   )r
   r
   ÚerrorN)r   r   rJ  r}   r~   r   r!   r€   r‚   Z
pcolormeshr   r   ÚuniformÚwarningsÚcatch_warningsÚsimplefilterr   )r(   r)   rú   Úfr.   r.   r/   Útest_text_nohandler_warning€  s    

rQ  c                   C   s   t jg g dd t  ¡  dS )z1Test legend when bar chart is empty with a label.r¸   r7   N)r   rC   r!   r.   r.   r.   r/   Ú test_empty_bar_chart_with_legend  s    rR  c                  C   sD   t  ¡ \} }|jtdƒdd |jddd}| ¡  ¡ dks@t‚d S )Nr3   r¸   r7   TÚw)r›   r&  r   )r   r   r<   r[   r!   Z	get_frameZ	get_alphar‚   r”   r.   r.   r/   Útest_shadow_framealpha˜  s    rT  c                  C   sJ   t  ¡ \} }| tdƒ¡ | ¡ }| ¡  ¡ dks6t‚| ¡  ¡ rFt‚d S )Nr
   Ú )	r   r   r<   r[   r!   Ú	get_titlerÁ   r‚   Zget_visibler”   r.   r.   r/   Útest_legend_title_empty¡  s
    rW  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st‚d S )	Nr3   ©r  r
   ÚAardvarkr7   éÈ   rW   rH   )r   r   r<   r[   r!   r_   r\   Zget_rendererZx0r}   Zapproxr‚   )r(   r)   rf   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 )Nr3   rX  r
   rY  r7   )r   r   r<   r[   r!   r\   r]   r_   )r(   r)   rf   Ú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 5 Q R X t jdtdddd} |  ¡  	¡ dksdt
‚t jdd	d
d\}}|j}|d  tdƒ¡ |d jddd}| ¡  ¡ dks¶t
‚|d  tdƒ¡ |d jddddœd}| ¡  ¡ dksôt
‚|d  tdƒ¡ d tjd< |d jdddid}| ¡  ¡ tjd ksBt
‚|d	  tdƒ¡ |d	 jdd}| ¡  ¡ tjd ks€t
‚|d  tdƒ¡ dtjd< |d jdddid}| ¡  ¡ dksÈt
‚|d  tdƒ¡ |d jdd}| ¡  ¡ dks t
‚d S )Nr
   rY  é   Úserif)ÚfamilyÚsize)rœ   Útitle_fontsizeÚtitle_fontproperties)rœ   rc  rW   rP   )r
   r­   )rS   r   )rœ   rb  r   zlegend.title_fontsizer`  z	font.size©rœ   rt   r…   r   )r   r<   r[   r}   rÞ   Ú
ValueErrorr!   r	   rV  Úget_sizer‚   r   rX   Zget_fontsizer—   r£   )	rf   r(   ÚaxesZleg0Zleg1r\  Zleg3Zleg4Zleg5r.   r.   r/   Ú#test_legend_title_fontprop_fontsizeÅ  sL    ÿ ÿ

ÿ

ÿ

ÿrh  Ú	alignment)rh   r  r§   c                 C   sV   t  ¡ \}}|jtdƒdd |jd| d}| ¡ d j| ksBt‚| ¡ | ksRt‚d S )Nr
   r¸   r7   rY  )rœ   ri  r   )	r   r   r<   r[   r!   Úget_childrenr@   r‚   Úget_alignment©ri  r(   r)   rf   r.   r.   r/   Útest_legend_alignmentë  s
    rm  c                 C   sZ   t  ¡ \}}|jtdƒdd | ¡ }| | ¡ | ¡ d j| ksFt‚| 	¡ | ksVt‚d S )Nr
   r¸   r7   r   )
r   r   r<   r[   r!   Zset_alignmentrj  r@   r‚   rk  rl  r.   r.   r/   Útest_legend_set_alignmentô  s    
rn  r,   )r(  r+  )r   r   r   c                 C   s    t  ¡ \}}|jt d¡t d¡d dd |jt d¡t d¡d dd |jt d¡t d¡d dd |j| d	}| ¡ D ]}tj 	| 
¡ | ¡s€t‚q€d S )
Nr
   r   ú#1r7   rW   ú#2rP   ú#3©Z
labelcolor)r   r   r<   r   r;   r!   rÈ   r—   r'   Ú
same_colorÚ	get_colorr‚   ©r,   r(   r)   rf   rJ  r.   r.   r/   Útest_legend_labelcolor_singleþ  s       rv  c                  C   s¶   t  ¡ \} }|jt d¡t d¡d dd |jt d¡t d¡d dd |jt d¡t d¡d dd |jd	d
dgd}t| ¡ d	d
dgƒD ]\}}tj	 
| ¡ |¡s’t‚q’d S )Nr
   r   ro  r7   rW   rp  rP   rq  r   r   r   rr  ©r   r   r<   r   r;   r!   r   rÈ   r—   r'   rs  rt  r‚   ©r(   r)   rf   rJ  r,   r.   r.   r/   Útest_legend_labelcolor_list  s       ry  c                  C   s¶   t  ¡ \} }|jt d¡t d¡d ddd |jt d¡t d¡d ddd |jt d¡t d¡d	 d
dd |jdd}t| ¡ dddgƒD ]\}}tj	 
| ¡ |¡s’t‚q’d S )Nr
   r   ro  r   ©r   r,   rW   rp  r   rP   rq  r   Ú	linecolorrr  rw  rx  r.   r.   r/   Ú test_legend_labelcolor_linecolor  s    """r|  c                  C   s¶   t  ¡ \} }|jt d¡t d¡d ddd |jt d¡t d¡d ddd |jt d¡t d¡d	 d
dd |jdd}t| ¡ dddgƒD ]\}}tj	 
| ¡ |¡s’t‚q’d S )Nr
   r   ro  r   r   rW   rp  r   rP   rq  r   r{  rr  ©r   r   r   r   r;   r!   r   rÈ   r—   r'   rs  rt  r‚   rx  r.   r.   r/   Ú/test_legend_pathcollection_labelcolor_linecolor#  s    """r~  c                  C   sv   t  ¡ \} }tj ¡  dddgd¡}|jt d¡t d¡d d|d |jdd	}| 	¡ \}t
j | ¡ d
¡srt‚d S )Nr   r   r   r
   r   ro  r   r{  rr  Úblack)r   r   r   r   Údefault_rngÚchoicer   r;   r!   rÈ   r—   r'   rs  rt  r‚   )r(   r)   r'   rf   rJ  r.   r.   r/   Ú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\t‚d S )Nr
   ro  )r   r   r{  rr  r  )r   r   r   r   r;   r!   rÈ   r—   r'   rs  rt  r‚   )r(   r)   rf   rJ  r.   r.   r/   Ú4test_legend_pathcollection_labelcolor_linecolor_cmap;  s
    $
rƒ  c                  C   s¶   t  ¡ \} }|jt d¡t d¡d ddd |jt d¡t d¡d ddd |jt d¡t d¡d	 d
dd |jdd}t| ¡ dddgƒD ]\}}tj	 
| ¡ |¡s’t‚q’d S )Nr
   r   ro  r   ©r   ÚmarkeredgecolorrW   rp  r   rP   rq  r   r…  rr  rw  rx  r.   r.   r/   Ú&test_legend_labelcolor_markeredgecolorF  s    """r†  c                  C   s¶   t  ¡ \} }|jt d¡t d¡d ddd |jt d¡t d¡d ddd |jt d¡t d¡d	 d
dd |jdd}t| ¡ dddgƒD ]\}}tj	 
| ¡ |¡s’t‚q’d S )Nr
   r   ro  r   ©r   r±   rW   rp  r   rP   rq  r   r…  rr  r}  rx  r.   r.   r/   Ú5test_legend_pathcollection_labelcolor_markeredgecolorR  s    """rˆ  c                  C   s†   t  ¡ \} }tj ¡  dddgd¡}|jt d¡t d¡d d|d |jdd	}t	| 
¡ d
gƒD ]\}}tj | ¡ |¡sbt‚qbd S )Nr   r   r   r
   r   ro  r‡  r…  rr  r4  ©r   r   r   r   r€  r  r   r;   r!   r   rÈ   r—   r'   rs  rt  r‚   ©r(   r)   r'   rf   rJ  r,   r.   r.   r/   Ú>test_legend_pathcollection_labelcolor_markeredgecolor_iterable^  s    "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 | ¡ |¡sdt‚qdd S )Nr
   ro  ZReds)r   r   r±   Zcmapr…  rr  r4  ©r   r   r—   ÚcmZviridisr   r   r/  r   r;   r!   r   rÈ   r'   rs  rt  r‚   )r(   r)   r-  rf   rJ  r,   r.   r.   r/   Ú:test_legend_pathcollection_labelcolor_markeredgecolor_cmapj  s    ú	rŽ  c                  C   s¶   t  ¡ \} }|jt d¡t d¡d ddd |jt d¡t d¡d ddd |jt d¡t d¡d	 d
dd |jdd}t| ¡ dddgƒD ]\}}tj	 
| ¡ |¡s’t‚q’d S )Nr
   r   ro  r   ©r   ÚmarkerfacecolorrW   rp  r   rP   rq  r   r  rr  rw  rx  r.   r.   r/   Ú&test_legend_labelcolor_markerfacecolor}  s    """r‘  c                  C   s¶   t  ¡ \} }|jt d¡t d¡d ddd |jt d¡t d¡d ddd |jt d¡t d¡d	 d
dd |jdd}t| ¡ dddgƒD ]\}}tj	 
| ¡ |¡s’t‚q’d S )Nr
   r   ro  r   ©r   r&  rW   rp  r   rP   rq  r   r  rr  r}  rx  r.   r.   r/   Ú5test_legend_pathcollection_labelcolor_markerfacecolor‰  s    """r“  c                  C   s†   t  ¡ \} }tj ¡  dddgd¡}|jt d¡t d¡d d|d |jdd	}t	| 
¡ d
gƒD ]\}}tj | ¡ |¡sbt‚qbd S )Nr   r   r   r
   r   ro  r’  r  rr  r4  r‰  rŠ  r.   r.   r/   Ú>test_legend_pathcollection_labelcolor_markerfacecolor_iterable•  s    "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 | ¡ |¡sbt‚qbd S )Nr
   ro  )r   r   r&  r  rr  r4  rŒ  )r(   r)   Z
facecolorsrf   rJ  r,   r.   r.   r/   Ú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	 
| ¡ | ¡s†t‚q†d S )
Nr
   r   ro  r7   rW   rp  rP   rq  úlegend.labelcolor)r   r   r<   r   r;   r—   r£   r!   rÈ   r'   rs  rt  r‚   ru  r.   r.   r/   Ú%test_legend_labelcolor_rcparam_single³  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 dtjd< | ¡ }t| 	¡ dddgƒD ]\}}tj
 | ¡ |¡s˜t‚q˜d S )Nr
   r   ro  r   rz  rW   rp  r   rP   rq  r   r{  r–  ©r   r   r<   r   r;   r—   r£   r!   r   rÈ   r'   rs  rt  r‚   rx  r.   r.   r/   Ú(test_legend_labelcolor_rcparam_linecolorÁ  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 dtjd< | ¡ }t| 	¡ dddgƒD ]\}}tj
 | ¡ |¡s˜t‚q˜d S )Nr
   r   ro  r   r„  rW   rp  r   rP   rq  r   r…  r–  r˜  rx  r.   r.   r/   Ú.test_legend_labelcolor_rcparam_markeredgecolorÎ  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 dtjd< | ¡ }t| 	¡ dddgƒD ]\}}tj
 | ¡ |¡s˜t‚q˜d S )Nr
   r   ro  r   r„  rW   rp  r   rP   rq  r   Zmecr–  r˜  rx  r.   r.   r/   Ú4test_legend_labelcolor_rcparam_markeredgecolor_shortÛ  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 dtjd< | ¡ }t| 	¡ dddgƒD ]\}}tj
 | ¡ |¡s˜t‚q˜d S )Nr
   r   ro  r   r  rW   rp  r   rP   rq  r   r  r–  r˜  rx  r.   r.   r/   Ú.test_legend_labelcolor_rcparam_markerfacecolorè  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 dtjd< | ¡ }t| 	¡ dddgƒD ]\}}tj
 | ¡ |¡s˜t‚q˜d S )Nr
   r   ro  r   r  rW   rp  r   rP   rq  r   Zmfcr–  r˜  rx  r.   r.   r/   Ú4test_legend_labelcolor_rcparam_markerfacecolor_shortõ  s    """
r  c                  C   sD   t  ¡ } |  ¡ rt‚|  d¡ |  ¡ s*t‚|  d¡ |  ¡ r@t‚d S )NTF)r   r!   Úget_draggabler‚   Zset_draggable©r!   r.   r.   r/   Útest_get_set_draggable  s    

r   Ú	draggable)TFc                 C   s>   t  ¡ \}}|jtdƒdd |j| d}| ¡ | ks:t‚d S )Nr
   Zshabnamsr7   )r¡  )r   r   r<   r[   r!   rž  r‚   )r¡  r(   r)   rf   r.   r.   r/   Útest_legend_draggable  s    r¢  c                  C   s   t jdddgdddd\} }}t  ¡ }|jD ]}| d¡ q,| ¡ d d	… |d  ¡ d d	… ksdt‚| ¡ d d	… |d  ¡ d d	… ksŒt‚d S )
Nr   rW   rP   g      Ð?Údatar(  )r,  r   r,   rL   rA   )r   rZ   r!   r   Ú	set_alphaÚget_facecolorr‚   Úget_edgecolor)r*   r1  Úhhr!   rF  r.   r.   r/   Útest_alpha_handles  s    
(r¨  c                 C   sb   dt jd< dt jd< dt jd< t ¡ \}}|jdddd	 |jd
d |j ¡  d| jks^t	‚d S )Nr_  zfont.familyzComputer Modernz
font.serifTztext.usetexr   Úinputr7   rš   rd  z Font family ['serif'] not found.)
r—   r£   r   r   r<   r!   r\   r]   rJ  r‚   )Z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 5 Q R X t
 t¡}|  |¡ W 5 Q R X t|ƒdksˆt‚|D ]}t|jƒdksŒt‚qŒd S )Nr;  éˆ  r7   z
legend.locr9   rW   zGCreating legend with loc="best" can be slow with large amounts of data.)r   r   r\   r]   r[   r<   r   r;   r   r!   r}   r~   r   Údraw_artistr€   r‚   rø   rù   )r(   r)   Úidxr!   Úrecordsrú   r.   r.   r/   Útest_warn_big_data_best_loc*  s    
ÿr¯  c                  C   sP   t  ¡ \} }| j ¡  tdƒD ]}|jt d¡|d q| d¡}|  	|¡ d S )Nr;  r«  r7   r9   )
r   r   r\   r]   r[   r<   r   r;   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   sj   dddg}ddgddgddgg}t  ¡ \}}|j||| d | ¡ }dd	„ | ¡ D ƒ}|d
dgksft‚d S )Nr   rW   rP   r   rt   rU   r7   c                 S   s   g | ]}|  ¡ ‘qS r.   rÀ   ©rÂ   Úentryr.   r.   r/   rÄ   S  s     z;test_plot_multiple_input_multiple_label.<locals>.<listcomp>r²  r³  )r   r   r<   r!   rÈ   r‚   )r±  r*   r+   r(   r)   rf   Úlegend_textsr.   r.   r/   Ú'test_plot_multiple_input_multiple_labelE  s    
þr·  r   r¢   r   c                 C   sp   dddg}ddgddgddgg}t  ¡ \}}|j||| d | ¡ }dd	„ | ¡ D ƒ}|t| ƒgd kslt‚d S )
Nr   rW   rP   r   rt   rU   r7   c                 S   s   g | ]}|  ¡ ‘qS r.   rÀ   r´  r.   r.   r/   rÄ   c  s     z9test_plot_multiple_input_single_label.<locals>.<listcomp>)r   r   r<   r!   rÈ   rø   r‚   )r   r*   r+   r(   r)   rf   r¶  r.   r.   r/   Ú%test_plot_multiple_input_single_labelW  s    
þr¸  c                 C   sl   dddg}dddg}t  ¡ \}}|j||| d | ¡ }t| ¡ ƒdksLt‚| ¡ d  ¡ t| ƒksht‚d S )Nr   rW   rP   r   r­   r7   r   )	r   r   r<   r!   r€   rÈ   r‚   rÁ   rø   )r±  r*   r+   r(   r)   rf   r.   r.   r/   Ú%test_plot_single_input_multiple_labelg  s    

r¹  c               	   C   s`   t  t¡L dddg} ddgddgddgg}ddd	g}t ¡ \}}|j| ||d
 W 5 Q R X d S )Nr   rW   rP   r   rt   rU   r³  r²  Zmediumr7   )r}   rÞ   re  r   r   r<   )r*   r+   r   r(   r)   r.   r.   r/   Ú3test_plot_multiple_label_incorrect_length_exceptionv  s    
þ
rº  c                  C   s@   t  ¡ \} }|jdddgdddgdddgdddd	 | ¡  d S )
Nr   r   rW   rP   rt   r   ZfaceZFill)r&  r±   r   )r   r   rµ   r!   rx   r.   r.   r/   Útest_legend_face_edgecolorƒ  s      ÿr»  c                  C   sT   t  ¡ \} }|jddgddgdd | ¡ }|j|ks:t‚| ¡ d j|ksPt‚d S )Nr   rW   rP   rt   rJ   r7   r   )r   r   r<   r!   rg  r‚   rÈ   r”   r.   r.   r/   Útest_legend_text_axes‹  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sjt‚d S )Nr   r   r5  )r%  rY  rH  )	r   r   r   ÚmlinesÚLine2Dr!   rÆ   r   r‚   )r(   r)   r-   rf   r.   r.   r/   Útest_handlerline2d”  s
    r¿  c                  C   sF   t  ¡  ¡ } |  ¡ }|jddgddgdd |  ¡ }|j| ksBt‚d S )Nr   r   rJ   r7   )r   rv   Z
subfiguresr   r<   r!   r‚   )Zsubfigr)   rf   r.   r.   r/   Útest_subfigure_legend  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s`t‚| ¡ d d… t|  ¡ d d d… ƒksŒt‚d S )	Nr   r   rW   rP   z#123456r   )r,   r   r   )	r   rµ   r!   Zget_patchesr¤  r¥  Útupler‚   r¦  )Zpcr¶   r.   r.   r/   Ú-test_setting_alpha_keeps_polycollection_color¦  s
    
,rÂ  c            	      C   s–   dddg} t  ¡ \}}dd„ | D ƒ}dddg}d	d„ |D ƒ}| ||¡}d
d„ | ¡ D ƒ}dd„ | ¡ D ƒ}||  kr€| ks†n t‚||ks’t‚d S )Nr¼   Ú*r5  c                 S   s"   g | ]}t jd gd gd|d‘qS )r   ÚNone)Zlsr%  )r½  r¾  )rÂ   Úmarkr.   r.   r/   rÄ   ²  s   ÿz3test_legend_markers_from_line2d.<locals>.<listcomp>r#  rC   Zxyzzyc                 S   s   g | ]}|  ¡ ‘qS r.   rÅ   ©rÂ   rJ   r.   r.   r/   rÄ   µ  s     c                 S   s   g | ]}|  ¡ ‘qS r.   rÅ   rÆ  r.   r.   r/   rÄ   ¸  s     c                 S   s   g | ]}|  ¡ ‘qS r.   rÀ   )rÂ   rJ  r.   r.   r/   rÄ   ¹  s     )r   r   r!   Ú	get_linesrÈ   r‚   )	Ú_markersr(   r)   rº   r&   rË   r!   Znew_markersZ
new_labelsr.   r.   r/   Útest_legend_markers_from_line2d®  s    
ÿ
rÉ  c                 C   s4   ddddddg}d}| j ||d |j ||d	 d S )
Nr   r   r   r†   ÚerP  rP   )Zncol)rR   rŸ  )rÑ   rÒ   ÚstringsrR   r.   r.   r/   Útest_ncol_ncols¿  s    rÌ  )yr   ÚplatformZunittestr   rM  Únumpyr   Znumpy.testingr   r}   Zmatplotlib.testing.decoratorsr   r   Zmatplotlib.testing._markersr   Zmatplotlib.pyplotZpyplotr   Z
matplotlibr—   Zmatplotlib.patchesZpatchesro   Zmatplotlib.transformsZ
transformsr<  Zmatplotlib.collectionsrE  Zmatplotlib.linesrº   r½  Zmatplotlib.legend_handlerr   Zmatplotlib.legendr!   r6  r   Zmatplotlib.font_managerr	   r0   r=   rF   rO   rg   rr   ry   rƒ   r‡   r   Úmachiner•   r˜   rž   r    r¤   rª   r·   r»   rÌ   rÓ   rÔ   r  r  r"  r$  r3  r8  r9  r?  rG  rI  rQ  rR  rT  rW  r[  r]  rh  rÅ  Zparametrizerm  rn  rv  ry  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·  Úintr¸  r¹  rº  r»  r¼  r¿  rÀ  rÂ  rÉ  rÌ  r.   r.   r.   r/   Ú<module>   s  
	
	
 

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