o
    ˆ‚¡eË¿  ã                	   @   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$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!„ ƒZ0ed"gddd#d$„ ƒZ1ed%gde 2¡ d&krÆd nd'd(d)d*„ ƒZ3ed+gde 2¡ d&krÚd nd'd(d,d-„ ƒZ4ed.gdd/d(d0d1„ ƒZ5ed2gde 2¡ d&krúd nd3d(d4d5„ ƒZ6ed6d7gddd8d9„ ƒZ7ed:gddd;d<„ ƒZ8ed=gdd>d?d@dA„ ƒZ9dBdC„ Z:dDdE„ Z;edFgdGdHdI„ ƒZ<G dJdK„ dKƒZ=G dLdM„ dMƒZ>dNdO„ Z?edPgƒdQdR„ ƒZ@dSdT„ ZAdUdV„ ZBdWdX„ ZCedYgƒdZd[„ ƒZDed\gƒd]d^„ ƒZEd_d`„ ZFdadb„ ZGdcdd„ ZHdedf„ ZIedggddhd?didj„ ƒZJdkdl„ ZKdmdn„ ZLdodp„ ZMdqdr„ ZNdsdt„ ZOdudv„ ZPe	jQ Rdwdx¡dydz„ ƒZSe	jQ Rd{d|¡d}d~„ ƒZTe	jQ Rd{d¡d€d„ ƒZUe	jQ Rdwdx¡d‚dƒ„ ƒZVe	jQ Rd„d…¡d†d‡„ ƒZWdˆd‰„ ZXdŠd‹„ ZYdŒd„ ZZdŽd„ Z[dd‘„ Z\d’d“„ Z]d”d•„ Z^d–d—„ Z_d˜d™„ Z`dšd›„ Zadœd„ ZbdždŸ„ Zcd d¡„ Zde	jQ Rd„d…¡d¢d£„ ƒZed¤d¥„ Zfd¦d§„ Zgd¨d©„ Zhdªd«„ Zid¬d­„ Zjd®d¯„ Zke	jQ Rd°d±¡d²d³„ ƒZld´dµ„ Zmed¶d·„ ƒZnd¸d¹„ Zodºd»„ Zpe	jQ Rd¼d½d¾gd¿e qd½d¾g¡g¡dÀdÁ„ ƒZre	jQ RdÂdÃdÄesg¡dÅdÆ„ ƒZte	jQ Rd¼d½d¾gd¿e qd½d¾g¡g¡dÇdÈ„ ƒZudÉdÊ„ ZvdËdÌ„ ZwdÍdÎ„ ZxdÏdÐ„ ZydÑdÒ„ ZzdÓdÔ„ Z{dÕdÖ„ Z|eƒ d×dØ„ ƒZ}dÙdÚ„ Z~dÛdÜ„ ZdÝdÞ„ Z€dßdà„ Zdádâ„ Z‚dãdä„ Zƒdådæ„ Z„dS )çé    N)Úmock)Úassert_allclose)Úcheck_figures_equalÚimage_comparison)Úneeds_usetex)ÚHandlerTuple)Ú_apiÚ
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#   © r0   úK/var/www/myenv/lib/python3.10/site-packages/matplotlib/tests/test_legend.pyÚtest_legend_ordereddict   s   
ÿr2   Ú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,   r0   r0   r1   Ú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 )r5   r6   ÚedgeÚm)Úalignr.   Néÿÿÿÿr   r   ÚupÚdownr<   r=   )r   r   r   r>   Úbarr#   )r*   r+   r,   Úb1Úb2r0   r0   r1   Útest_legend_auto24   s
   
$rK   Úlegend_auto3c                  C   sV   t  ¡ \} }g d¢}g d¢}|j||ddd | dd¡ | dd¡ |jdd	 d
S )r5   )çÍÌÌÌÌÌì?çš™™™™™¹?rN   rM   rM   r   )çffffffî?rO   çš™™™™™©?rP   r   r   zo-Úliner:   ç        ç      ð?r<   r=   N)r   r   r?   Úset_xlimÚset_ylimr#   )r*   r+   r,   r-   r0   r0   r1   Útest_legend_auto3>   s   rV   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)rH   Ú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Úlegr0   r0   r1   Útest_legend_auto4J   s   
"
ÿrr   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.
    ra   )g333333#@g333333@rX   ©Úcenterr<   )r   rM   çš™™™™™é?çš™™™™™É?ÚC1)ÚxyÚwidthÚheightÚfcr   r   rM   rS   rN   )r{   )r   r   r   ih  rP   ÚC0)ry   r{   z	A segmentr:   r=   N)r   r   r   rb   ÚmpatchesÚEllipseÚPolygonr   ÚarrayÚWedgeÚ	add_patchr?   r#   rf   rg   rh   ri   rj   rk   rl   r   rm   )r*   rn   ro   r+   r   Ú_patchrq   r0   r0   r1   Ú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   é   r8   r   r:   gffffff@u   DÃ©veloppÃ©srE   Ú__nolegend__r<   )Ú	numpointsr   )r   ÚfigureÚadd_subplotr?   r   r>   Úlinspacer#   ©r*   r+   r0   r0   r1   Útest_various_labels€   s   
rŽ   c                  C   st   t  ¡ \} }|jddgdd\}tjtjdd |j|gd}W d  ƒ n1 s*w   Y  t|j	ƒdks8J ‚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   Ú_foor:   zwith an underscore©Úmatch©r/   N)
r   r   r?   ÚpytestÚwarnsr   ÚMatplotlibDeprecationWarningr#   ÚlenÚlegend_handles)r*   r+   rQ   r#   r0   r0   r1   Ú)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   r:   r   z:xr,   é   rE   ÚdÚdiamondr<   F)r   Úmarkerfirst)r   r   r?   r   r>   Úonesr#   r   r0   r0   r1   Ú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   ra   rW   r™   ©ra   rW   r‡   z-x)rW   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Úp3r0   r0   r1   Útest_multiple_keys¢   s   ÿ
þr¨   zrgba_alpha.pngÚx86_64g{®Gáz„?)r4   Ú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 awayrt   r=   ©r   r   r   r   )r   r   r?   re   r#   ÚlegendPatchÚset_facecolor©r*   r+   rq   r0   r0   r1   Ú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­   rt   r=   r®   )	r   r   r?   re   Úmplr	   r#   r¯   r°   r±   r0   r0   r1   Útest_alpha_rcparam¸   s   "úrµ   ÚfancyrP   c                   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--ÚXXr:   r   rE   zXX
XXr   )ÚxerrÚyerrr   r   rS   ra   Tú	My legendr   )r   r   rY   ÚshadowÚtitler‰   )r   Úsubplotr?   r   r   r>   Úerrorbarr#   r0   r0   r0   r1   Ú
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   r6   Úmylabelr   )r   r¬   r   )rÀ   )r   rŒ   r   r?   r#   )r,   r-   r0   r0   r1   Ú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   rE   Úthreer:   r   rS   r   rº   )r   r   r¼   r   zlegend.scatterpointsÚone)	r   rŠ   r½   r   r   r>   r#   r´   ÚrcParams)r+   r0   r0   r1   Ú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   r6   r7   r8   r9   r:   ú
upper left)r   Úmoder;   Úrightú
lower leftra   )r   rÌ   rY   )	r   r   r–   r   r>   r   r?   r#   Ú
add_artist)Úlegend_modesr*   rn   r,   r+   rÌ   Úl1Úl2r0   r0   r1   Útest_legend_expandî   s   


ùrÓ   ÚhatchingÚdefault)r4   Ú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||rw   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Ø   )ru   ru   ru   )rM   rS   rM   ú+zPath
default color)rÛ   g¸…ëQ¸Þ?g)\Âõ(ä?ÚC2zPath
explicit colorg{®Gáz„¿çš™™™™™ñ?r‡   )ÚhandlelengthÚhandleheight)	r   rÇ   r   Ú	Rectangler‚   Úfill_betweenrT   rU   r#   )r*   r+   Úpatchr0   r0   r1   Ú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?   re   r#   ÚremoveÚlegendsÚ
get_legend)r*   r+   Úlinesrq   r0   r0   r1   Ú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)Ú.ú,r8   r   r:   ra   T©Úreversec                 S   ó   g | ]}|  ¡ ‘qS r0   ©Úget_text)Ú.0Útr0   r0   r1   Ú
<listcomp>7  ó    z:test_reverse_legend_handles_and_labels.<locals>.<listcomp>c                 S   rò   r0   ©Ú
get_marker)rõ   Úhr0   r0   r1   r÷   8  rø   N)r   r   r?   r#   Ú	get_textsr—   ÚlistÚreversed)	r*   r+   r,   r-   r(   Úmarkersrq   Úactual_labelsÚactual_markersr0   r0   r1   Ú&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Úfirstr:   ra   ÚbxÚsecondTrð   N)r   r?   r#   )Úfig_testÚfig_refr+   r0   r0   r1   Ú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 worldr:   úmatplotlib.legend.Legend©r   r?   re   r   ræ   r#   Úassert_called_withÚgca©Úselfrì   r^   r0   r0   r1   Útest_legend_no_argsM  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  r0   r0   r1   Ú%test_legend_positional_handles_labelsS  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?   re   r“   ÚraisesÚ	TypeErrorr#   )r  rì   r0   r0   r1   Ú#test_legend_positional_handles_onlyY  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  r:   r  Úfoobarr  r  r0   r0   r1   Ú"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  r:   r  r  rÍ   r=   r  r  r0   r0   r1   Útest_legend_three_argsf  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  r:   z,matplotlib.legend._get_legend_handles_labelsÚ1ra   )r¤   )	r   r?   re   r   ræ   Úreturn_valuer#   r  r  )r  rì   Úhandles_labelsr0   r0   r1   Útest_legend_handler_mapl  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,   r:   ra   Ú2xrW   Ú3xr  r’   ©	r   r   r   rŒ   r?   r   ræ   r#   r  )r  r*   r+   r,   Úln1Úln2Úln3r^   r0   r0   r1   Útest_legend_kwargs_handles_onlyt  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   ra   r  r,   r!  ©r(   r#  )r  r*   r+   r,   r$  r%  r^   r0   r0   r1   Ú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   ra   é   Úsinr:   Úcosr  ©r   r   )r(   r/   )r   r   r   rŒ   Úpir?   r+  r,  r   ræ   r#   r  )r  r*   r+   ÚthÚlnsÚlncr^   r0   r0   r1   Ú!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   ra   r*  r+  r:   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”   ÚUserWarningr#   r–   ÚstrÚmessage)r  r*   r+   r/  r0  r1  Úrecordr0   r0   r1   Ú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   ra   ÚDensityr:   )r   rW   ra   ÚTemperaturer  )	Úmpl_toolkits.axes_grid1r9  Útwinxr?   r   ræ   r   r#   r  )r  r9  ÚhostÚparr¥   r¦   r^   r0   r0   r1   Útest_parasite  s   
ÿz TestLegendFunction.test_parasiteN)Ú__name__Ú
__module__Ú__qualname__r  r  r  r  r  r  r'  r)  r2  r8  rB  r0   r0   r0   r1   r  K  s    
	
r  c                   @   s<   e Z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?   re   r   ræ   r#   r  ÚtransFigure©r  r*   r+   rì   r^   r0   r0   r1   Ú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  r:   r  rG  rI  rK  r0   r0   r1   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  rG  rI  rK  r0   r0   r1   Útest_legend_label_arg½  s   ÿ
ÿz.TestLegendFigureFunction.test_legend_label_argc                 C   s    t  ¡ \}}| tdƒ¡}tjtdd | |dgd¡ W d   ƒ n1 s'w   Y  tjtdd |j|dgddd W d   ƒ d S 1 sIw   Y  d S )Nr   z0-2r   r  rÍ   Úleftr=   )r   r   r?   re   r“   r  r  r#   )r  r*   r+   rì   r0   r0   r1   Útest_legend_label_three_argsÅ  s   ÿ"ÿz5TestLegendFigureFunction.test_legend_label_three_argsc                 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   ra   r   r   ç       @r  rÍ   r-  )r   r(   r/   )r   rH  )r   r   r?   re   r   r>   r   ræ   r#   r  rJ  )r  r*   rn   rì   Úlines2r^   r0   r0   r1   Ú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   ra   r   r   rP  r-  r(  r3  )r   r   r?   re   r   r>   r“   r”   r4  r#   r–   r5  r6  )r  r*   rn   rì   rQ  r7  r0   r0   r1   Útest_warn_args_kwargs×  s   ÿÿz.TestLegendFigureFunction.test_warn_args_kwargsN)	rC  rD  rE  rL  r  rM  rO  rR  rS  r0   r0   r0   r1   rF  «  s    
rF  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 r0   ©rõ   Úposr0   r0   r1   r÷   ä  rø   z.test_figure_legend_outside.<locals>.<listcomp>)rN  rt   rÍ   c                 S   rT  )zlower r0   rU  r0   r0   r1   r÷   å  rø   c                 S   rT  )zleft r0   rU  r0   r0   r1   r÷   æ  rø   )Úlowerrt   Úupperc                 S   rT  )zright r0   rU  r0   r0   r1   r÷   ç  rø   )çQ‡nùX4@çQ‡nù¸;@ç‹lçû©´ˆ@g¢E¶óý@)rY  g ™žÃQ@r[  ç‹lçû©f‚@)gL‡NÏõb@rZ  r[  r\  )rY  rZ  g¢E¶óý™„@r\  )ç      $@ç     X@ç      `@ç     p‚@)ç     (u@r^  ç     Ø|@r`  )é›  r^  ç     °ˆ@r`  )r]  r]  r_  ç     €F@)ra  r]  rb  re  )ç     Ø„@r]  rd  re  )r]  ç     ¨q@r_  ç     Øs@)rc  r]  rd  re  )rf  rg  rd  rh  )rf  r^  rd  r`  Tr6   )Úconstrained_layoutÚdpir   ÚBoo1r:   zoutside r=   )Ú	enumerateÚprintr   r   r?   re   r#   Údraw_without_renderingr   ri   Úextents)ÚtodosÚupperextÚlowerextÚleftextÚrightextÚaxbbÚlegbbÚnnÚtodor*   rn   rq   r0   r0   r1   Útest_figure_legend_outsideã  sN   ýõ
ÿ
ÿ÷ry  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   rS   rP  r   g      @ra   )Úy1Úy2Úy3r(  )r   r   )r   éF   r<   r=   N)r   r   r   rŒ   Ú	stackplotrT   rU   r#   )r*   r+   r,   rz  r{  r|  r0   r0   r1   Útest_legend_stackplot  s   

r  c                  C   s<   t  ¡ \} }t  ¡ \}}| tdƒtdƒ¡}| |d¡ d S )NrW   Úfoo)r   r   rH   re   r#   )r*   r+   Úfig2Úax2Úbrsr0   r0   r1   Ú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 )Nr8   r   rW   )ÚmarkerÚ	facecolorrÜ   Úsr   )ÚredÚgreenÚblueiî  ra   g      i@rØ   Únone)r   r‡  r   ÚalphaÚ
edgecolorsT)	r   r   r   r   Únanr#   r   ÚrandÚgrid)r*   r+   rû   r.   Únr,   r-   Úscaler0   r0   r1   Ú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 )NrR   rS   Úkr8   rè   )r.   r…  r   r   r   Úvra   )r   r   r   r#   ÚmlegendÚ_get_legend_handles_labelsr–   )r*   r+   ÚhandÚlabr0   r0   r1   Útest_legend_repeatcheckok7  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   rW   )r.   )r€  r€  r€  r<   r=   g      à¿çš™™™™™@)re   r   r   r#   r  rT   rU   )r)   r‘  r0   r0   r1   Útest_not_covering_scatterF  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€  rH   r<   r=   )ÚmtransformsÚAffine2DÚ	translater   rŒ   r   r?   r   r  Ú	transDatar#   )Úoffsetr,   r0   r0   r1   Ú#test_not_covering_scatter_transformR  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ã?)rv   rv   gffffffæ?rv   ru   rÝ   r   r¦  rN   z--rW   )Ú
linestylesr¬   z-.)r§  ú:)Úline1Úline2zline 3r   )
ÚmcollectionsÚLineCollectionr   r   Úadd_collectionr#   r—   r   Úget_linestylesÚ_dash_pattern)Úlines1rQ  Úlines3Úlc1Úlc2Úlc3r*   r+   rq   Úh1Úh2Úh3ÚohÚlhr0   r0   r1   Ú!test_linecollection_scaled_dashes^  s     


ÿrº  c                  C   s.   t  ¡ \} }|jtdƒdd |jdd dS )z(Test legend handler with numpoints <= 1.r   rè   r:   r   ©r‰   N)r   r   r?   re   r#   r   r0   r0   r1   Útest_handler_numpointsr  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”   r4  r#   r–   Ú
pcolormeshr   r   ÚuniformÚwarningsÚcatch_warningsÚsimplefilterr    )r*   r+   r7  Úfr0   r0   r1   Útest_text_nohandler_warningz  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è   r:   N)r   rH   r#   r0   r0   r0   r1   Ú test_empty_bar_chart_with_legendŠ  s   rÆ  zshadow_argument_types.pngÚmpl20c               	   C   s”   t  ¡ \} }|jg d¢dd |jddd|jddd|jd	d
ddœd|jddddœd|jddddœdf}|D ]}| |¡ q:|jdd d S )Nr    rè   r:   rË   T©r   r»   úupper rightFr   rˆ  rN   )r.   rŒ  úcenter right)rN   rv   r   éûÿÿÿ)r.   ÚoyrÎ   ztab:cyanr   )r.   Úoxúlower rightr=   )r   r   r?   r#   rÏ   )r*   r+   ÚlegsÚlr0   r0   r1   Útest_shadow_argument_types’  s"   ÿÿÿú	rÑ  c                  C   s`   t  ¡ \} }|jg d¢dd tjtdd |jddd W d   ƒ d S 1 s)w   Y  d S )	Nr    rè   r:   zdict or boolr   rË   ÚaardvarkrÈ  )r   r   r?   r“   r  Ú
ValueErrorr#   r   r0   r0   r1   Útest_shadow_invalid_argument©  s
   "ÿrÔ  c                  C   sD   t  ¡ \} }|jtdƒdd |jddd}| ¡  ¡ dks J ‚d S )Nr6   rè   r:   TÚw)r»   r†  r   )r   r   r?   re   r#   Ú	get_frameÚ	get_alphar±   r0   r0   r1   Útest_shadow_framealpha²  s   rØ  c                  C   sJ   t  ¡ \} }| tdƒ¡ | ¡ }| ¡  ¡ dksJ ‚| ¡  ¡ r#J ‚d S )Nr   Ú )r   r   r?   re   r#   Ú	get_titlerô   Úget_visibler±   r0   r0   r1   Ú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 )	Nr6   ©rj  r   ÚAardvarkr:   éÈ   ra   rN   )r   r   r?   re   r#   ri   rf   Úget_rendererÚx0r“   Úapprox)r*   r+   rq   Úx01Úx02r0   r0   r1   Ú test_legend_proper_window_extentÆ  s   rå  c                  C   sP   t jdd\} }|jtdƒdd | ¡ }|  ¡ }| j ¡  | ¡  | ¡  d S )Nr6   rÝ  r   rÞ  r:   )r   r   r?   re   r#   rf   rg   ri   )r*   r+   rq   Úleg2r0   r0   r1   Ú"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í  ra   rW   )r   r×   )rZ   r   )r¼   rì  r   zlegend.title_fontsizerê  z	font.size©r¼   r‡   rš   r   )r   r?   re   r“   r  rÓ  r#   r
   rÚ  Úget_sizer   rb   Úget_fontsizer´   rÇ   )	rq   r*   ÚaxesÚleg0Úleg1ræ  Úleg3Úleg4Úleg5r0   r0   r1   Ú#test_legend_title_fontprop_fontsizeß  sL   ÿÿ
ÿ
ÿ

ÿ

ÿr÷  Ú	alignment)rt   rN  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è   r:   rÞ  )r¼   rø  r   )r   r   r?   re   r#   Úget_childrenrD   Úget_alignment©rø  r*   r+   rq   r0   r0   r1   Útest_legend_alignment  s
   rü  r   rs   c                 C   sL   t  ¡ \}}|jtdƒdd | ¡ }| | ¡ | ¡ tjj	|  ks$J ‚d S )Nr   rè   r:   )
r   r   r?   re   r#   Úset_locÚ_get_locr–  r^   Úcodes©r   r*   r+   rq   r0   r0   r1   Útest_ax_legend_set_loc  s
   
r  )zoutside rightrÍ   c                 C   sf   t  ¡ \}}|jtdƒdd | ¡ }| | ¡ |  d¡r#|  ¡ d n| } | ¡ t	j
j|  ks1J ‚d S )Nr   rè   r:   Úoutsider   )r   r   r?   re   r#   rý  Ú
startswithÚsplitrþ  r–  r^   rÿ  r   r0   r0   r1   Útest_fig_legend_set_loc  s   
r  c                 C   sZ   t  ¡ \}}|jtdƒdd | ¡ }| | ¡ | ¡ d j| ks#J ‚| ¡ | ks+J ‚d S )Nr   rè   r:   r   )	r   r   r?   re   r#   Úset_alignmentrù  rD   rú  rû  r0   r0   r1   Ú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   ú#1r:   ra   ú#2rW   ú#3©Ú
labelcolor)r   r   r?   r   r>   r#   rü   r´   r)   Ú
same_colorÚ	get_color©r.   r*   r+   rq   r½  r0   r0   r1   Ú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  r:   ra   r	  rW   r
  ©r   r   r   r  ©r   r   r?   r   r>   r#   r   rü   r´   r)   r  r  ©r*   r+   rq   r½  r.   r0   r0   r1   Útest_legend_labelcolor_list9  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.   ra   r	  r   rW   r
  r   Ú	linecolorr  r  r  r  r0   r0   r1   Ú test_legend_labelcolor_linecolorE  ó   """ÿr  c                  C   r  )Nr   r   r  r   r   ra   r	  r   rW   r
  r   r  r  r  ©r   r   r   r   r>   r#   r   rü   r´   r)   r  r  r  r0   r0   r1   Ú/test_legend_pathcollection_labelcolor_linecolorQ  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)   rq   r½  r0   r0   r1   Ú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+   rq   r½  r0   r0   r1   Ú4test_legend_pathcollection_labelcolor_linecolor_cmapi  s
   $
r   c                  C   r  )Nr   r   r  r   ©r   Úmarkeredgecolorra   r	  r   rW   r
  r   r"  r  r  r  r  r0   r0   r1   Ú&test_legend_labelcolor_markeredgecolort  r  r#  c                  C   r  )Nr   r   r  r   ©r   rÜ   ra   r	  r   rW   r
  r   r"  r  r  r  r  r0   r0   r1   Ú5test_legend_pathcollection_labelcolor_markeredgecolor€  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)   rq   r½  r.   r0   r0   r1   Ú>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  rq   r½  r.   r0   r0   r1   Ú:test_legend_pathcollection_labelcolor_markeredgecolor_cmap˜  s   ú	ÿr0  c                  C   r  )Nr   r   r  r   ©r   Úmarkerfacecolorra   r	  r   rW   r
  r   r2  r  r  r  r  r0   r0   r1   Ú&test_legend_labelcolor_markerfacecolor«  r  r3  c                  C   r  )Nr   r   r  r   ©r   r†  ra   r	  r   rW   r
  r   r2  r  r  r  r  r0   r0   r1   Ú5test_legend_pathcollection_labelcolor_markerfacecolor·  r  r5  c                  C   r&  )	Nr  r   r   r  r4  r2  r  r”  r'  r(  r0   r0   r1   Ú>test_legend_pathcollection_labelcolor_markerfacecolor_iterableÃ  r*  r6  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†  r2  r  r”  r-  )r*   r+   Ú
facecolorsrq   r½  r.   r0   r0   r1   Ú8test_legend_pathcollection_labelcolor_markfacecolor_cmapÏ  s   ûÿr8  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  r:   ra   r	  rW   r
  úlegend.labelcolor)r   r   r?   r   r>   r´   rÇ   r#   rü   r)   r  r  r  r0   r0   r1   Ú%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  ra   r	  r   rW   r
  r   r  r9  r  ©r   r   r?   r   r>   r´   rÇ   r#   r   rü   r)   r  r  r  r0   r0   r1   Ú(test_legend_labelcolor_rcparam_linecolorï  ó   """
ÿr=  c                  C   r;  )Nr   r   r  r   r!  ra   r	  r   rW   r
  r   r"  r9  r  r<  r  r0   r0   r1   Ú.test_legend_labelcolor_rcparam_markeredgecolorü  r>  r?  c                  C   r;  )Nr   r   r  r   r!  ra   r	  r   rW   r
  r   Úmecr9  r  r<  r  r0   r0   r1   Ú4test_legend_labelcolor_rcparam_markeredgecolor_short	  r>  rA  c                  C   r;  )Nr   r   r  r   r1  ra   r	  r   rW   r
  r   r2  r9  r  r<  r  r0   r0   r1   Ú.test_legend_labelcolor_rcparam_markerfacecolor  r>  rB  c                  C   r;  )Nr   r   r  r   r1  ra   r	  r   rW   r
  r   Úmfcr9  r  r<  r  r0   r0   r1   Ú4test_legend_labelcolor_rcparam_markerfacecolor_short#  r>  rD  c                  C   sD   t  ¡ } |  ¡ r
J ‚|  d¡ |  ¡ sJ ‚|  d¡ |  ¡ r J ‚d S )NTF)r   r#   Úget_draggableÚset_draggable©r#   r0   r0   r1   Útest_get_set_draggable0  s   

rH  Ú	draggable)TFc                 C   s>   t  ¡ \}}|jtdƒdd |j| d}| ¡ | u sJ ‚d S )Nr   Úshabnamsr:   )rI  )r   r   r?   re   r#   rE  )rI  r*   r+   rq   r0   r0   r1   Útest_legend_draggable9  s   rK  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.   rS   rE   r   )r   rd   r#   r—   Ú	set_alphaÚget_facecolorÚget_edgecolor)r,   r‘  Úhhr#   r¹  r0   r0   r1   Útest_alpha_handlesA  s   
(,rQ  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   Úinputr:   rº   rî  z Font family ['serif'] not found.)	r´   rÇ   r   r   r?   r#   rf   rg   r½  )Úcaplogr*   r+   r0   r0   r1   Útest_usetex_no_warnJ  s   



rT  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ž  éˆ  r:   z
legend.locr<   ra   zGCreating legend with loc="best" can be slow with large amounts of data.)r   r   rf   rg   re   r?   r   r>   r	   r#   r“   r”   r4  Údraw_artistr–   r5  r6  )r*   r+   Úidxr#   Úrecordsr7  r0   r0   r1   Útest_warn_big_data_best_locX  s    

ÿÿ
ÿÿrY  c                  C   sP   t  ¡ \} }| j ¡  tdƒD ]}|jt d¡|d q| d¡}|  	|¡ d S )Nrž  rU  r:   r<   )
r   r   rf   rg   re   r?   r   r>   r#   rV  )r*   r+   rW  r#   r0   r0   r1   Ú(test_no_warn_big_data_when_loc_specifiedj  s   

rZ  Ú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 )Nr    r   ra   r   r‡   r]   r:   c                 S   rò   r0   ró   ©rõ   Úentryr0   r0   r1   r÷     rø   z;test_plot_multiple_input_multiple_label.<locals>.<listcomp>r\  r]  )r   r   r?   r#   rü   )r[  r,   r-   r*   r+   rq   Úlegend_textsr0   r0   r1   Ú'test_plot_multiple_input_multiple_labels  s   þra  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   ra   r   r‡   r]   r:   c                 S   rò   r0   ró   r^  r0   r0   r1   r÷   ‘  rø   z9test_plot_multiple_input_single_label.<locals>.<listcomp>)r   r   r?   r#   rü   r5  )r   r,   r-   r*   r+   rq   r`  r0   r0   r1   Ú%test_plot_multiple_input_single_label…  s   þrb  c                 C   sh   g d¢}g d¢}t  ¡ \}}|j||| d | ¡ }t| ¡ ƒdks$J ‚| ¡ d  ¡ t| ƒks2J ‚d S )Nr    )ra   r   r×   r:   r   r   )r   r   r?   r#   r–   rü   rô   r5  )r[  r,   r-   r*   r+   rq   r0   r0   r1   Ú%test_plot_single_input_multiple_label•  s    rc  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   ra   r   r‡   r]   )r]  r\  Úmediumr:   )r“   r  rÓ  r   r   r?   )r,   r-   r   r*   r+   r0   r0   r1   Ú3test_plot_multiple_label_incorrect_length_exception¤  s   þ"ùre  c                  C   s:   t  ¡ \} }|jg d¢g d¢g d¢dddd | ¡  d S )Nr;  r    r¡   r   ÚfaceÚFill)r†  rÜ   r   )r   r   rå   r#   r   r0   r0   r1   Útest_legend_face_edgecolor±  s
   ÿrh  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   ra   rW   r‡   rQ   r:   r   )r   r   r?   r#   rñ  rü   r±   r0   r0   r1   Útest_legend_text_axes¹  s
   ri  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/   rq   r0   r0   r1   Útest_handlerline2dÂ  s
   "rl  c                  C   sF   t  ¡  ¡ } |  ¡ }|jddgddgdd |  ¡ }|j| u s!J ‚d S )Nr   r   rQ   r:   )r   rŠ   Ú
subfiguresr   r?   r#   )Úsubfigr+   rq   r0   r0   r1   Útest_subfigure_legendË  s
   ro  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   ra   rW   z#123456r   )r.   r   r   )r   rå   r#   Úget_patchesrM  rN  ÚtuplerO  )Úpcræ   r0   r0   r1   Ú-test_setting_alpha_keeps_polycollection_colorÔ  s
   
,0rs  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…  )rj  rk  )rõ   Úmarkr0   r0   r1   r÷   à  s    ÿz3test_legend_markers_from_line2d.<locals>.<listcomp>)r€  rH   Úxyzzyc                 S   rò   r0   rù   ©rõ   rQ   r0   r0   r1   r÷   ã  rø   c                 S   rò   r0   rù   ry  r0   r0   r1   r÷   æ  rø   c                 S   rò   r0   ró   )rõ   r½  r0   r0   r1   r÷   ç  rø   )r   r   r#   Ú	get_linesrü   )	Ú_markersr*   r+   rì   r(   rÿ   r#   Únew_markersÚ
new_labelsr0   r0   r1   Útest_legend_markers_from_line2dÜ  s   ÿr~  c                 C   s,   g d¢}d}| j ||d |j ||d d S )N)r   r   r   r›   ÚerÄ  rW   )Úncol)rY   rG  )r	  r
  ÚstringsrY   r0   r0   r1   Útest_ncol_ncolsí  s   r‚  c                  C   sÀ   t  ¡ \} }tjtdd |jdd W d   ƒ n1 sw   Y  tjtdd |jdd W d   ƒ n1 s;w   Y  tjtdd |jdd W d   ƒ d S 1 sYw   Y  d S )	NzFloc must be string, coordinate tuple, or an integer 0-10, not \(1.1,\)r   )rá   r=   zWloc must be string, coordinate tuple, or an integer 0-10, not \(0.481, 0.4227, 0.4523\))çbX9´ÈÞ?g“:M„Û?gmÅþ²{òÜ?zRloc must be string, coordinate tuple, or an integer 0-10, not \(0.481, 'go blue'\))rƒ  zgo blue©r   r   r“   r  rÓ  r#   r   r0   r0   r1   Ú test_loc_invalid_tuple_exceptionö  s   þþ"þr…  c                  C   s(   t  ¡ \} }|jdd |jdd d S )N)rƒ  ç}?5^ºIÜ?r=   )r   ra   ©r   r   r#   r   r0   r0   r1   Útest_loc_valid_tuple  s   rˆ  c                  C   s0   t  ¡ \} }|jddgd |jddgd d S )Nrƒ  r†  r=   r   ra   r‡  r   r0   r0   r1   Útest_loc_valid_list  s   r‰  c                  C   sP   t  ¡ \} }tjtdd |jg d¢d W d   ƒ d S 1 s!w   Y  d S )NzOloc must be string, coordinate tuple, or an integer 0-10, not \[1.1, 2.2, 3.3\]r   )rá   r›  gffffff
@r=   r„  r   r0   r0   r1   Útest_loc_invalid_list_exception  ó   "þrŠ  c                  C   sP   t  ¡ \} }tjtdd |jddid W d   ƒ d S 1 s!w   Y  d S )NzKloc must be string, coordinate tuple, or an integer 0-10, not {'not': True}r   ÚnotTr=   r„  r   r0   r0   r1   Útest_loc_invalid_type  r‹  r  c                  C   s¶   t  ¡ \} }|jdd |jdd |jdd |jdd tjtdd |jdd W d   ƒ n1 s6w   Y  tjtd	d |jd
d W d   ƒ d S 1 sTw   Y  d S )Nr   r=   r   r   r   z@loc must be string, coordinate tuple, or an integer 0-10, not 11r   r   z@loc must be string, coordinate tuple, or an integer 0-10, not -1rE   ©r   r   r#   r“   r  rÓ  r   r0   r0   r1   Ú!test_loc_validation_numeric_value!  s   þ"þr  c                  C   sÜ   t  ¡ \} }|jdd |jdd |jdd |jdd |jdd |jdd |jdd |jdd |jdd |jd	d |jd
d |jdd tjtdd |jdd W d   ƒ d S 1 sgw   Y  d S )Nr<   r=   rÉ  rË   rÎ   rÎ  rÍ   r   rÊ  zlower centerzupper centerz 'wrong' is not a valid value forr   ÚwrongrŽ  r   r0   r0   r1   Ú test_loc_validation_string_value0  s    "ÿr‘  )…r!   Ú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ì   rj  Úmatplotlib.legend_handlerr   Úmatplotlib.legendr#   r–  r   r	   Úmatplotlib.font_managerr
   r2   r@   rK   rV   rr   r„   rŽ   r˜   rŸ   r¨   Úmachiner²   rµ   r¿   rÂ   rÈ   rÓ   rç   rí   r  r  r  rF  ry  r  r„  r“  rš  rœ  r¥  rº  r¼  rÅ  rÆ  rÑ  rÔ  rØ  rÜ  rå  rç  r÷  rw  Úparametrizerü  r  r  r  r  r  r  r  r  r   r#  r%  r)  r0  r3  r5  r6  r8  r:  r=  r?  rA  rB  rD  rH  rK  rQ  rT  rY  rZ  r€   ra  Úintrb  rc  re  rh  ri  rl  ro  rs  r~  r‚  r…  rˆ  r‰  rŠ  r  r  r‘  r0   r0   r0   r1   Ú<module>   s.   
	
	
 


	
ÿ
ÿ

ÿ



!

`8)


ÿ
		&




	

	
	
	þ

þ
			
