a
    þdYˆ  ã                   @   s  d Z ddlmZ ddlmZ ddlZddlZddlmZ ddl	m
Z
 ddlm  mZ ddlZddlmZmZmZmZ ddlmZ ddlmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z# e $d	¡Z%e $d
¡Z&ej'dd„ ƒZ(ej'dd„ ƒZ)ej'dd„ ƒZ*G dd„ dƒZ+dS )z Test cases for Series.plot é    )Údatetime)ÚchainN)Úis_platform_linux)Únp_version_gte1p24)Ú	DataFrameÚSeriesÚ
date_rangeÚplotting)Ú_check_ax_scalesÚ_check_axes_shapeÚ_check_colorsÚ_check_grid_settingsÚ_check_has_errorbarsÚ_check_legend_labelsÚ_check_plot_worksÚ_check_text_labelsÚ_check_ticks_propsÚ_unpack_cyclerÚ
get_y_axisÚ
matplotlibzmatplotlib.pyplotc                   C   s   t jddS )NÚts©Úname)ÚtmZmakeTimeSeries© r   r   új/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/pandas/tests/plotting/test_series.pyr   &   s    r   c                   C   s   t jddS )NÚseriesr   )r   ZmakeStringSeriesr   r   r   r   r   +   s    r   c                   C   s   t jddS )NÚiseriesr   )r   ZmakePeriodSeriesr   r   r   r   r   0   s    r   c                   @   s¢  e Zd Zejjej dddiddig¡dd„ ƒƒZejjdd	„ ƒZejjej d
ddiddigddiddigddidddœgg¡dd„ ƒƒZ	ejjdd„ ƒZ
ejjdd„ ƒZdd„ Zej ddddejdejd d!d"g¡d#d$„ ƒZd%d&„ Zd'd(„ Zej di d)d*id)d+ig¡d,d-„ ƒZd.d/„ Zd0d1„ Zej di d2dig¡d3d4„ ƒZd5d6„ Zd7d8„ Zd9d:„ Zd;d<„ Zd=d>„ Zd?d@„ ZdAdB„ ZdCdD„ ZdEdF„ ZdGdH„ Z dIdJ„ Z!ej dKdLe"j#dMdNg¡dOdP„ ƒZ$dQdR„ Z%dSdT„ Z&ejj'e(oÞe)ƒ dUddVej dWdXdYg¡dZd[„ ƒƒZ*ejj'e(oe)ƒ dUddVej d\g d]¢g d^¢g¡d_d`„ ƒƒZ+dadb„ Z,dcdd„ Z-dedf„ Z.dgdh„ Z/didj„ Z0dkdl„ Z1dmdn„ Z2dodp„ Z3dqdr„ Z4dsdt„ Z5dudv„ Z6dwdx„ Z7dydz„ Z8d{d|„ Z9d}d~„ Z:dd€„ Z;dd‚„ Z<dƒd„„ Z=d…d†„ Z>ej d‡dˆd‰g¡dŠd‹„ ƒZ?dŒd„ Z@ej dŽddgdLdgdLeA Bd¡gd‘eA Cd’d“d¡gg¡d”d•„ ƒZDd–d—„ ZEd˜d™„ ZFdšd›„ ZGejj'dœddždŸ„ ƒZHej deIjJjKeIjJjL ¡d d¡„ ƒZMej deIjJjKeIjJjL ¡d¢d£„ ƒZNej deIjJjK¡d¤d¥„ ƒZOej deIjJjK¡d¦d§„ ƒZPej deIjJjK¡d¨d©„ ƒZQdªd«„ ZRd¬d­„ ZSd®d¯„ ZTejjej dddg¡ej d°eUeA VeAjW Xd±¡ Yd²¡¡ƒeA VeAjW Xd±¡ Yd²¡¡eZeA VeAjW Xd±¡ Yd²¡¡ƒe[eA VeAjW Xd±¡ Yd³¡¡d´dµgd¶g¡d·d¸„ ƒƒƒZ\ejjd¹dº„ ƒZ]ejjej d°eUeA VeAjW Xd±¡ Yd»¡¡ƒe[eA VeAjW Xd±¡ Yd¼¡¡d´dµgd¶g¡d½d¾„ ƒƒZ^ejjd¿dÀ„ ƒZ_ejjdÁdÂ„ ƒZ`ejjdÃdÄ„ ƒZaejjdÅdÆ„ ƒZbejjdÇdÈ„ ƒZcej dÉg dÊ¢¡dËdÌ„ ƒZddÍdÎ„ ZedÏdÐ„ ZfdÑdÒ„ ZgdÓdÔ„ ZhdÕdÖ„ Zid×dØ„ ZjdÙdÚ„ Zkejj'dÛddÜdÝ„ ƒZlej dddÞg¡dßdà„ ƒZmdádâ„ Zndãdä„ Zoej dåg dæ¢g dç¢fg dè¢g dé¢fg¡dêdë„ ƒZpdìdí„ Zqej dîg dï¢¡ej dg dð¢¡dñdò„ ƒƒZrej dKesjtdód±dôdõesjudöd÷esjud±d÷gg¡dødù„ ƒZvdúdû„ ZwdLS )üÚTestSeriesPlotsÚkwargsÚlabelZfooÚ	use_indexFc                 C   s   t |jfi |¤Ž d S ©N©r   Úplot)Úselfr   r   r   r   r   Ú	test_plot6   s    zTestSeriesPlots.test_plotc                 C   s   t |jdd}t|dd d S )Nr   )Úrot©Zxrot)r   r$   r   )r%   r   Úaxesr   r   r   Útest_plot_tick_props;   s    z$TestSeriesPlots.test_plot_tick_propszscale, exp_scaleÚlogyTÚyaxisÚlogZlogxÚxaxisZloglog)r.   r,   c                 C   s*   t |jfddi|¤Ž}t|fi |¤Ž d S )NÚstyleÚ.)r   r$   r
   )r%   r   ZscaleZ	exp_scaleÚaxr   r   r   Útest_plot_scales@   s    
z TestSeriesPlots.test_plot_scalesc                 C   s   t |d d… jjƒ d S ©Né
   )r   r$   Úbar©r%   r   r   r   r   Útest_plot_ts_barM   s    z TestSeriesPlots.test_plot_ts_barc                 C   s   t |jjdd d S )NF©Ústacked)r   r$   Úarear6   r   r   r   Útest_plot_ts_area_stackedQ   s    z)TestSeriesPlots.test_plot_ts_area_stackedc                 C   s   t |jƒ d S r"   r#   )r%   r   r   r   r   Útest_plot_iseriesU   s    z!TestSeriesPlots.test_plot_iseriesÚkindÚliner5   ÚbarhÚkde)ZmarksÚhistÚboxc                 C   s   t |d d… j|d d S )Né   ©r=   r#   )r%   r   r=   r   r   r   Útest_plot_series_kindsX   s    z&TestSeriesPlots.test_plot_series_kindsc                 C   s   t |d d… jjƒ d S r3   )r   r$   r?   ©r%   r   r   r   r   Útest_plot_series_barhf   s    z%TestSeriesPlots.test_plot_series_barhc                 C   s<   t ttj d¡ d¡ƒjjdd}t|j	d gdgd d S )Né   r4   Zblack©Úcolorr   ©Z
facecolors)
r   r   ÚnpÚrandomÚdefault_rngÚstandard_normalr$   r5   r   Úpatches)r%   r1   r   r   r   Útest_plot_series_bar_axi   s    ÿz'TestSeriesPlots.test_plot_series_bar_axÚlayout)éÿÿÿÿé   )rT   rS   c                 C   s(   t |jfddi|¤Ž}t|ddd d S )NÚsubplotsTrT   ©rT   rT   )Úaxes_numrR   )r   r$   r   )r%   r   r   r1   r   r   r   Útest_plot_6951o   s    zTestSeriesPlots.test_plot_6951c                 C   s>   t j ¡ \}}|jdd|d}t|jdƒ t|dddd d S )NZTest)é   é   )ÚtitleÚfigsizer1   rT   rV   )rW   rR   r\   )ÚmplÚpyplotrU   r$   r   r[   r   )r%   r   Ú_r1   r   r   r   Útest_plot_figsize_and_titleu   s    z+TestSeriesPlots.test_plot_figsize_and_titlec                 C   sJ   d}t jj| }t j ¡ \}}tg d¢ƒj|d |t jj| ksFJ ‚d S )Nzaxes.prop_cycle©rT   rH   é   ©r1   )r]   r^   ÚrcParamsrU   r   r$   )r%   ÚkeyÚcolorsr_   r1   r   r   r   Útest_dont_modify_rcParams|   s
    z)TestSeriesPlots.test_dont_modify_rcParamsÚsecondary_yc                 C   sz   t j ¡ \}}|jf d|i|¤Ž}| ¡ \}}| ¡ }||d jddd d ksVJ ‚||d jddd d ksvJ ‚d S )Nr1   r   F©ÚorigrS   )r]   r^   rU   r$   Úget_xlimÚ	get_linesÚget_data)r%   r   r   r_   r1   ÚxminÚxmaxÚlinesr   r   r   Útest_ts_line_lim„   s     z TestSeriesPlots.test_ts_line_limc                 C   sr   t j ¡ \}}|jjd|d}| ¡ \}}| ¡ d jddd }||d ksRJ ‚||d ksbJ ‚t|dd d S )NF)r9   r1   r   ri   rS   r(   ©	r]   r^   rU   r$   r:   rk   rl   rm   r   ©r%   r   r_   r1   rn   ro   r>   r   r   r   Útest_ts_area_lim   s    z TestSeriesPlots.test_ts_area_limc                 C   st   t j ¡ \}}|jjdd|d}| ¡ \}}| ¡ d jddd }||d ksTJ ‚||d ksdJ ‚t|dd d S )	NFT©r9   Zx_compatr1   r   ri   rS   é   r(   rr   rs   r   r   r   Útest_ts_area_lim_xcompat–   s    z(TestSeriesPlots.test_ts_area_lim_xcompatc                 C   sŽ   |  ¡ }| d¡ d¡|_tj ¡ \}}|jjdd|d}| 	¡ \}}| 
¡ d jddd }||d ksnJ ‚||d ks~J ‚t|dd	 d S )
NÚGMTÚCETFTru   r   ri   rS   r(   ©ÚcopyZtz_localizeZ
tz_convertÚindexr]   r^   rU   r$   r:   rk   rl   rm   r   ©r%   r   Ztz_tsr_   r1   rn   ro   r>   r   r   r   Útest_ts_tz_area_lim_xcompat    s    z+TestSeriesPlots.test_ts_tz_area_lim_xcompatc                 C   sŽ   |  ¡ }| d¡ d¡|_tj ¡ \}}|jjdd|d}| 	¡ \}}| 
¡ d jddd }||d ksnJ ‚||d ks~J ‚t|dd	 d S )
Nrx   ry   FT)r9   rh   r1   r   ri   rS   r(   rz   r}   r   r   r   Ú'test_ts_tz_area_lim_xcompat_secondary_y«   s    z7TestSeriesPlots.test_ts_tz_area_lim_xcompat_secondary_yc                 C   st   t jjdddd\}\}}t|ƒj|dd t|ƒj|dd t|ƒ ||¡sRJ ‚t|ƒ ||¡sfJ ‚t |¡ d S )NrT   rH   T)Zshareyr:   )r1   r=   )	r]   r^   rU   Úabsr$   r   ZjoinedÚpltÚclose)r%   r   ZfigÚax1Úax2r   r   r   Útest_area_sharey_dont_overwrite¶   s    z/TestSeriesPlots.test_area_sharey_dont_overwritec                 C   sH   t ddgƒ}tj ¡ \}}|jdd|d}t|dgd tj d¡ d S )NrT   rH   ÚLABELT)r    Úlegendr1   ©ÚlabelsÚall©r   r]   r^   rU   r$   r   r‚   ©r%   Úsr_   r1   r   r   r   Ú
test_labelÁ   s
    zTestSeriesPlots.test_labelc                 C   sF   t ddgƒ}tj ¡ \}}|jd|d}t|dgd tj d¡ d S )NrT   rH   T©r‡   r1   Ú rˆ   rŠ   r‹   rŒ   r   r   r   Útest_label_noneÈ   s
    zTestSeriesPlots.test_label_nonec                 C   sJ   t ddgdd}tj ¡ \}}|jd|d}t|dgd tj d¡ d S )	NrT   rH   ÚNAMEr   Tr   rˆ   rŠ   r‹   rŒ   r   r   r   Útest_label_ser_nameÏ   s
    z#TestSeriesPlots.test_label_ser_namec                 C   sL   t ddgdd}tj ¡ \}}|jdd|d}t|dgd tj d	¡ d S )
NrT   rH   r’   r   Tr†   ©r‡   r    r1   rˆ   rŠ   r‹   rŒ   r   r   r   Útest_label_ser_name_overrideÖ   s
    z,TestSeriesPlots.test_label_ser_name_overridec                 C   sd   t ddgdd}tj ¡ \}}|jdd|d}| ¡ d u s>J ‚| ¡  t|dgd tj d	¡ d S )
NrT   rH   r’   r   Fr†   r”   rˆ   rŠ   )	r   r]   r^   rU   r$   Z
get_legendr‡   r   r‚   rŒ   r   r   r   Ú&test_label_ser_name_override_dont_drawÞ   s    z6TestSeriesPlots.test_label_ser_name_override_dont_drawc                 C   sZ   t g d¢ƒ}t|jdd d}tjt|d t|jƒ W d   ƒ n1 sL0    Y  d S )N)FFTT)Zinclude_boolúno numeric data to plot©Úmatch)r   r   r$   ÚpytestÚraisesÚ	TypeError)r%   r   Úmsgr   r   r   Útest_booleanè   s
    zTestSeriesPlots.test_booleanr|   Né   )Úkc                 C   sø   ddt jdg}t||d}t|jƒ}|jd  ¡ }t jg d¢t jd}t	 
t  |jd¡|¡ t	 
|jt  g d¢¡¡ t jg d	¢t jd}t|jd
d}t	 
|jd  ¡ |¡ t|jjƒ}t	 
|jd  ¡ |¡ t|jjdd}t	 
|jd  ¡ |¡ d S )NrT   rH   rb   ©r|   r   ra   ©Zdtype)FFTF)rT   rH   r   rb   Tr8   F)rL   Únanr   r   r$   rp   Ú	get_ydataÚarrayÚfloat64r   Úassert_numpy_array_equalÚdeleteÚdataÚmaskr:   )r%   r|   ÚvaluesÚdr1   ZmaskedÚexpÚexpectedr   r   r   Útest_line_area_nan_seriesñ   s    
z)TestSeriesPlots.test_line_area_nan_seriesc                 C   sP   t g d¢g d¢d}d|j_tj ¡ \}}|jd|d}| ¡ }|dksLJ ‚d S ©Nra   ©ÚaÚbÚcr¡   z	The IndexF©r!   r1   r   )r   r|   r   r]   r^   rU   r$   Ú
get_xlabel)r%   r   r_   r1   r    r   r   r   Útest_line_use_index_false  s    z)TestSeriesPlots.test_line_use_index_falsec                 C   sR   t g d¢g d¢d}d|j_tj ¡ \}}|jjd|d}| ¡ }|dksNJ ‚d S r°   )	r   r|   r   r]   r^   rU   r$   r5   r¶   )r%   r   r_   r1   r„   Úlabel2r   r   r   Ú"test_line_use_index_false_diff_var  s    z2TestSeriesPlots.test_line_use_index_false_diff_varzWeird rounding problems)ÚreasonÚstrictz
axis, meth)r,   r5   )r.   r?   c                 C   sR   t  g d¢¡}tj ¡ \}}ttddgƒj|ƒd|d}t 	t||ƒ 
¡ |¡ d S )N)çš™™™™™¹?ç      ð?ç      $@g      Y@g     @@g     ˆÃ@éÈ   iô  T)r-   r1   )rL   r¥   r]   r^   rU   Úgetattrr   r$   r   r§   Úget_ticklocs)r%   ÚaxisÚmethr®   r_   r1   r   r   r   Útest_bar_log  s    zTestSeriesPlots.test_bar_logzaxis, kind, res_meth)r,   r5   Zget_ylim)r.   r?   rk   c           
      C   s‚   t  g d¢¡}tj ¡ \}}tg d¢ƒjd||d}d}d}t||ƒƒ }	t 	|	d |¡ t 	|	d |¡ t 
t||ƒ ¡ |¡ d S )	N)gñhãˆµøä>g-Cëâ6?çü©ñÒMbP?ç{®Gáz„?r¼   r½   r¾   )r¼   rÆ   rÅ   T)r-   r=   r1   g!Ñ,åNJ?gÐ„–-?À?r   rT   )rL   r¥   r]   r^   rU   r   r$   rÀ   r   Zassert_almost_equalr§   rÁ   )
r%   rÂ   r=   Zres_methr®   r_   r1   ZyminÚymaxÚresr   r   r   Útest_bar_log_kind_bar!  s    z%TestSeriesPlots.test_bar_log_kind_barc                 C   sH   t g d¢g d¢d}tj ¡ \}}|jjd|d}t| ¡ g d¢ƒ d S )N©rT   rH   rb   rŸ   ©r²   r³   r´   r¬   r¡   Frµ   )Ú0Ú1Ú2Ú3)r   r]   r^   rU   r$   r5   r   Úget_xticklabels)r%   Údfr_   r1   r   r   r   Útest_bar_ignore_index7  s    z%TestSeriesPlots.test_bar_ignore_indexc                 C   sF   t g d¢ƒ}|jjg d¢d}dd„ |jD ƒ}g d¢}||ksBJ ‚d S )NrÊ   )ÚredÚbluerÔ   rÓ   rI   c                 S   s   g | ]}|  ¡ ‘qS r   )Zget_facecolor)Ú.0Úpr   r   r   Ú
<listcomp>@  ó    z8TestSeriesPlots.test_bar_user_colors.<locals>.<listcomp>)©r½   ç        rÚ   r½   ©rÚ   rÚ   r½   r½   rÛ   rÙ   )r   r$   r5   rP   )r%   r   r1   Úresultr®   r   r   r   Útest_bar_user_colors=  s
    z$TestSeriesPlots.test_bar_user_colorsc                 C   s@   t tj d¡ d¡ƒ}tj ¡ \}}|j|d}t	|dd d S )NrH   ©rC   rC   rc   r   r(   ©
r   rL   rM   rN   rO   r]   r^   rU   r$   r   ©r%   rÑ   r_   r1   r)   r   r   r   Útest_rotation_defaultI  s    z%TestSeriesPlots.test_rotation_defaultc                 C   sB   t tj d¡ d¡ƒ}tj ¡ \}}|jd|d}t	|dd d S )NrH   rÞ   rv   )r'   r1   r(   rß   rà   r   r   r   Útest_rotation_30P  s    z TestSeriesPlots.test_rotation_30c                 C   sž   ddl m} tddƒ}|g d¢ }ttj d¡ t|ƒ¡|ƒ}t	j
 ¡ \}}|j|d}| tdd	d	ƒd
|¡}| dd¡ || ¡ d ksŽJ ‚t|dd d S )Nr   )ÚDatetimeConverterú1/1/2000z3/1/2000)	r   rT   rH   rb   rC   é	   r4   é   é   rH   rc   iÏ  rT   r   z1/1/1999ú1/1/2001rv   r(   )Z%pandas.plotting._matplotlib.converterrã   r   r   rL   rM   rN   rO   Úlenr]   r^   rU   r$   Úconvertr   Zset_xlimrk   r   )r%   rã   ÚrngÚserr_   r1   Zxpr   r   r   Útest_irregular_datetimeV  s    
z'TestSeriesPlots.test_irregular_datetimec              	   C   s¢   t ddtjddddgddddtjddgd}tj ¡ \}}|j|d	}| ¡ \}}| ¡ }|t 	|d
 j
ddd
 ¡ks|J ‚|t |d
 j
ddd
 ¡ksžJ ‚d S )NrÚ   r½   g      @g      @g      @g      @g       @r¡   rc   r   Fri   )r   rL   r£   r]   r^   rU   r$   rk   rl   Znanminrm   Znanmax)r%   rì   r_   r1   rn   ro   rp   r   r   r   Útest_unsorted_index_xlimc  s    þ"z(TestSeriesPlots.test_unsorted_index_xlimc                 C   sP   t tj d¡ dd¡g d¢dd}t|jjƒ}t|j	|j
ƒ | ¡ dksLJ ‚d S )NrH   rT   rC   ©r²   r³   r´   r¬   ÚeÚYLABEL©r|   r   )r   rL   rM   rN   Úintegersr   r$   Úpier   Útextsr|   Ú
get_ylabel©r%   r   r1   r   r   r   Útest_pie_serieso  s    ýzTestSeriesPlots.test_pie_seriesc                 C   sH   t tj d¡ dd¡g d¢dd}t|jjd d}t|j	dgd ƒ d S )	NrH   rT   rC   rï   rñ   rò   rˆ   r   )
r   rL   rM   rN   ró   r   r$   rô   r   rõ   r÷   r   r   r   Útest_pie_series_no_label{  s    ýz(TestSeriesPlots.test_pie_series_no_labelc                 C   sT   t tj d¡ dd¡g d¢dd}g d¢}t|jj|d}g d	¢}t|j	|d
 d S )NrH   rT   rC   rï   rñ   rò   )ÚrÚgr³   ©rf   )rú   rû   r³   rú   rû   rK   )
r   rL   rM   rN   ró   r   r$   rô   r   rP   )r%   r   Ú
color_argsr1   Zcolor_expectedr   r   r   Ú)test_pie_series_less_colors_than_elements„  s    ýz9TestSeriesPlots.test_pie_series_less_colors_than_elementsc                 C   sb   t tj d¡ dd¡g d¢dd}g d¢}g d¢}t|jj||d	}t|j	|ƒ t
|j|d
 d S )NrH   rT   rC   rï   rñ   rò   )ÚAÚBÚCÚDÚE©rú   rû   r³   r´   Úm)r‰   rf   rK   )r   rL   rM   rN   ró   r   r$   rô   r   rõ   r   rP   )r%   r   r‰   rý   r1   r   r   r   Ú!test_pie_series_labels_and_colors  s    ýz1TestSeriesPlots.test_pie_series_labels_and_colorsc                 C   s˜   t tj d¡ dd¡g d¢dd}g d¢}t|jj|dd	d
}dd„ |j| 	¡  D ƒ}t
t t|j|ƒ¡ƒ}t|j|ƒ |jD ]}| ¡ d	ks~J ‚q~d S )NrH   rT   rC   rï   rñ   rò   r  z%.2fé   )rf   ZautopctZfontsizec                 S   s   g | ]}|d  d›‘qS )éd   z.2fr   )rÕ   r   r   r   r   r×   §  rØ   zHTestSeriesPlots.test_pie_series_autopct_and_fontsize.<locals>.<listcomp>)r   rL   rM   rN   ró   r   r$   rô   r«   ÚsumÚlistr   Úfrom_iterableÚzipr|   r   rõ   Zget_fontsize)r%   r   rý   r1   ZpctsZexpected_textsÚtr   r   r   Ú$test_pie_series_autopct_and_fontsize  s    ýÿ
z4TestSeriesPlots.test_pie_series_autopct_and_fontsizec                 C   sP   t g d¢g d¢d}tjtdd |j ¡  W d   ƒ n1 sB0    Y  d S )N)rT   rH   r   rŸ   rS   rï   r¡   z&pie plot doesn't allow negative valuesr˜   )r   rš   r›   Ú
ValueErrorr$   rô   rF   r   r   r   Útest_pie_series_negative_raises­  s    z/TestSeriesPlots.test_pie_series_negative_raisesc                 C   s<   t ddtjdgg d¢dd}t|jjƒ}t|jg d¢ƒ d S )NrT   rH   rŸ   rË   rñ   rò   )r²   r³   r   r¬   )r   rL   r£   r   r$   rô   r   rõ   r÷   r   r   r   Útest_pie_series_nan³  s    z#TestSeriesPlots.test_pie_series_nanc                 C   sX   t dtjddgƒ}tj ¡ \}}|jjd|d}g d¢}dd„ |jD ƒ}||ksTJ ‚d S )NrT   Tr   )rÌ   r   rÎ   rÏ   c                 S   s   g | ]}|  ¡ ‘qS r   )Zget_text)rÕ   Úxr   r   r   r×   ¾  rØ   z0TestSeriesPlots.test_pie_nan.<locals>.<listcomp>)	r   rL   r£   r]   r^   rU   r$   rô   rõ   )r%   r   r_   r1   r®   rÜ   r   r   r   Útest_pie_nan¹  s    zTestSeriesPlots.test_pie_nanc                 C   s˜   t tj d¡ d¡tdƒd}ttj d¡ d¡dd}tj 	¡ \}}|j
|d}|j
d	d	|d
 t|g d¢d | ¡  ¡ s‚J ‚|j ¡  ¡ s”J ‚d S )NrH   ©rv   rb   Úabc©Úcolumnsrv   r  r   rc   T©r‡   rh   r1   ©r²   r³   r´   ú	x (right)rˆ   ©r   rL   rM   rN   rO   r
  r   r]   r^   rU   r$   r   Ú	get_yaxisÚget_visibleZright_ax©r%   rÑ   r   r_   r1   r   r   r   Útest_df_series_secondary_legendÁ  s    ÿz/TestSeriesPlots.test_df_series_secondary_legendc                 C   s˜   t tj d¡ d¡tdƒd}ttj d¡ d¡dd}tj 	¡ \}}|j
|d}|j
|d	d	d
 t|g d¢d | ¡  ¡ s‚J ‚|j ¡  ¡ s”J ‚d S )NrH   r  r  r  rv   r  r   rc   T©r1   r‡   rh   r  rˆ   r  r  r   r   r   Ú)test_df_series_secondary_legend_with_axesÒ  s    ÿz9TestSeriesPlots.test_df_series_secondary_legend_with_axesc                 C   s    t tj d¡ d¡tdƒd}ttj d¡ d¡dd}tj 	¡ \}}|j
d|d	}|j
dd|d
 g d¢}t|j|d |j ¡  ¡ rŒJ ‚| ¡  ¡ sœJ ‚d S )NrH   r  r  r  rv   r  r   T©rh   r1   r  ©z	a (right)z	b (right)z	c (right)r  rˆ   ©r   rL   rM   rN   rO   r
  r   r]   r^   rU   r$   r   Zleft_axr  r  ©r%   rÑ   r   r_   r1   r®   r   r   r   Ú$test_df_series_secondary_legend_bothâ  s    ÿz4TestSeriesPlots.test_df_series_secondary_legend_bothc                 C   sž   t tj d¡ d¡tdƒd}ttj d¡ d¡dd}tj 	¡ \}}|j
d|d	}|j
|ddd
 g d¢}t|j|ƒ |j ¡  ¡ rŠJ ‚| ¡  ¡ sšJ ‚d S )NrH   r  r  r  rv   r  r   Tr"  r   r#  r$  r%  r   r   r   Ú.test_df_series_secondary_legend_both_with_axisó  s    ÿz>TestSeriesPlots.test_df_series_secondary_legend_both_with_axisc                 C   s    t tj d¡ d¡tdƒd}ttj d¡ d¡dd}tj 	¡ \}}|j
dd	|d
}|j
|ddd g d¢}t|j|ƒ |j ¡  ¡ rŒJ ‚| ¡  ¡ sœJ ‚d S )NrH   r  r  r  rv   r  r   TF)rh   Z
mark_rightr1   r   r  r$  r%  r   r   r   Ú0test_df_series_secondary_legend_both_with_axis_2  s    ÿz@TestSeriesPlots.test_df_series_secondary_legend_both_with_axis_2zinput_logy, expected_scale)Tr-   )ÚsymZsymlogc                 C   sj   t tj d¡ d¡ƒ}t tj d¡ d¡ƒ}|j|d}|jd|d}| ¡ |ksVJ ‚| ¡ |ksfJ ‚d S )NrH   r  )r+   T)rh   r+   )r   rL   rM   rN   rO   r$   Z
get_yscale)r%   Z
input_logyZexpected_scaleÚs1Ús2rƒ   r„   r   r   r   Útest_secondary_logy  s    z#TestSeriesPlots.test_secondary_logyc                 C   sj   t tj d¡ d¡ƒ}tj ¡ \}}d}tj	t
|d  |jdd|d W d   ƒ n1 s\0    Y  d S )NrH   zCannot pass 'style' string with a color symbol and 'color' keyword argument. Please use one or the other or pass 'style' without a color symbolr˜   zk--r    )r/   rJ   r1   )r   rL   rM   rN   rO   r]   r^   rU   rš   r›   r  r$   )r%   r  r_   r1   r   r   r   r   Ú)test_plot_fails_with_dupe_color_and_style$  s    ÿz9TestSeriesPlots.test_plot_fails_with_dupe_color_and_stylezbw_method, indZscotté   ç      à?éœÿÿÿr  c                 C   s    t  d¡ t|jj||d d S )NÚscipy©Ú	bw_methodÚind)rš   Úimportorskipr   r$   r@   )r%   r   r3  r4  r   r   r   Útest_kde_kwargs/  s    

zTestSeriesPlots.test_kde_kwargsc                 C   s.   t  d¡ t ddd¡}t|jjd|d d S )Nr1  r0  r  r.  r/  r2  )rš   r5  rL   Úlinspacer   r$   Zdensity)r%   r   Úsample_pointsr   r   r   Útest_density_kwargs<  s    
z#TestSeriesPlots.test_density_kwargsc                 C   sZ   t  d¡ tj ¡ \}}t ddd¡}|jjdd||d}t	|dd	 t
|j ¡ d
ƒ d S )Nr1  r0  r  r.  Tr/  )r+   r3  r4  r1   r-   ©r,   ZDensity)rš   r5  r]   r^   rU   rL   r7  r$   r@   r
   r   r,   Z	get_label)r%   r   r_   r1   r8  r   r   r   Útest_kde_kwargs_check_axesA  s    
z*TestSeriesPlots.test_kde_kwargs_check_axesc                 C   sZ   t  d¡ ttj d¡jddƒ}tj|d< t|j	j
ƒ}tt |jd  ¡ ¡ ƒsVJ ‚d S )Nr1  rH   é2   )Úsizer   )rš   r5  r   rL   rM   rN   Úuniformr£   r   r$   r@   ÚanyÚisnanrp   Ú	get_xdata)r%   r   r)   r   r   r   Útest_kde_missing_valsI  s
    

z%TestSeriesPlots.test_kde_missing_valszApi changed in 3.6.0)rº   c                 C   s`   t j ¡ \}}|jjd|d}t|dd | ¡ }t||jgƒ | 	¡ }t|dgt
|ƒ ƒ d S )NT)r+   r1   r-   r:  r   )r]   r^   rU   r$   rB   r
   rÐ   r   r   Zget_yticklabelsré   )r%   r   r_   r1   ZxlabelsZylabelsr   r   r   Útest_boxplot_seriesR  s    z#TestSeriesPlots.test_boxplot_seriesc                 C   s@   t  d¡ ttdƒƒ}tj ¡ \}}|j||d tj ¡  d S )Nr1  rb   ©r=   r1   )	rš   r5  r   Úranger]   r^   rU   r$   r‚   ©r%   r=   r   r_   r1   r   r   r   Útest_kind_kwarg\  s
    
zTestSeriesPlots.test_kind_kwargc                 C   s@   t  d¡ ttdƒƒ}tj ¡ \}}t|j|ƒƒ  tj 	¡  d S )Nr1  rb   )
rš   r5  r   rE  r]   r^   rU   rÀ   r$   r‚   rF  r   r   r   Útest_kind_attrg  s
    
zTestSeriesPlots.test_kind_attrc                 C   s^   t tdƒƒ}tj ¡ \}}d}tjt|d |j||d W d   ƒ n1 sP0    Y  d S )NZabcdr—   r˜   rD  )	r   r
  r]   r^   rU   rš   r›   rœ   r$   ©r%   r=   r   r_   r1   r   r   r   r   Útest_invalid_plot_datar  s
    z&TestSeriesPlots.test_invalid_plot_datac                 C   s,   t  d¡ ttdƒtd}t|j|d d S )Nr1  r4   r¢   rD   )rš   r5  r   rE  Úobjectr   r$   )r%   r=   r   r   r   r   Útest_valid_object_plotz  s    
z&TestSeriesPlots.test_valid_object_plotc                 C   s^   t g d¢ƒ}tj ¡ \}}d}tjt|d |j||d W d   ƒ n1 sP0    Y  d S )N)r²   r³   r½   rH   r—   r˜   rD  )r   r]   r^   rU   rš   r›   rœ   r$   rI  r   r   r   Ú test_partially_invalid_plot_data€  s
    z0TestSeriesPlots.test_partially_invalid_plot_datac                 C   sJ   t ddgƒ}tjtdd |jdd W d   ƒ n1 s<0    Y  d S )NrT   rH   z%invalid_kind is not a valid plot kindr˜   Zinvalid_kindrD   )r   rš   r›   r  r$   ©r%   r   r   r   r   Útest_invalid_kindˆ  s    z!TestSeriesPlots.test_invalid_kindc                 C   sP   t ddd}t ddd}| |¡}tj d¡ |j¡}t||d}t|j	ƒ d S )Nz1/1/2009rŸ   ©Úperiodsz1/2/2009rH   r¡   )
r   ÚappendrL   rM   rN   rO   r=  r   r   r$   )r%   Zdr1Zdr2r|   r«   r   r   r   r   Útest_dup_datetime_index_plot  s    
z,TestSeriesPlots.test_dup_datetime_index_plotc                 C   sÜ   t t d¡dd}tj d¡ d¡}|j||d}t dd„ |jd	  ¡ D ƒ¡}|j	t 
d
d	g¡ | ¡  d
d	¡ }t ||¡ dt|ƒ› d}tjt|d* |jtj d¡ d¡d W d   ƒ n1 sÎ0    Y  d S )Nr4   r  r   rH   )rH   r4   )ÚyerrÚxerrc                 S   s   g | ]}|j d d …df ‘qS )NrT   )Zvertices©rÕ   Úir   r   r   r×   œ  rØ   z>TestSeriesPlots.test_errorbar_asymmetrical.<locals>.<listcomp>rT   rS   z?Asymmetrical error bars should be provided with the shape \(2, z\)r˜   )rH   ræ   ©rT  )r   rL   ÚarangerM   rN   r$   ZvstackÚcollectionsÚ	get_pathsÚTr¥   Zto_numpyZreshaper   r§   ré   rš   r›   r  )r%   r   Úerrr1   rÜ   r®   r   r   r   r   Útest_errorbar_asymmetrical•  s    $ÿÿz*TestSeriesPlots.test_errorbar_asymmetricalrT  rH   r4   )r4   rH   r  Úyr  c                 C   s4   t t d¡dd}t|j||d}t|ddd d S )Nr4   r  r   )rT  r=   r   rT   ©rU  rT  )r   rL   rY  r   r$   r   )r%   r=   rT  r   r1   r   r   r   Útest_errorbar_plot§  s    z"TestSeriesPlots.test_errorbar_plotc                 C   sJ   t t d¡dd}t tj d¡ d¡¡}t|j|d}t	|ddd d S )	Nr4   r  r   rH   )rU  rT   r   r`  )
r   rL   rY  r€   rM   rN   rO   r   r$   r   )r%   r   Ús_errr1   r   r   r   Útest_errorbar_plot_yerr_0º  s    z)TestSeriesPlots.test_errorbar_plot_yerr_0rç   )rç   rH   c                 C   sH   t dddd}tt d¡|dd}||_t|j|d}t|d	d
d d S )Nrä   rè   ÚM)Úfreqrç   r  rò   rX  r   rT   r`  )r   r   rL   rY  r|   r   r$   r   )r%   rT  Úixr   r1   r   r   r   Útest_errorbar_plot_tsÁ  s
    z%TestSeriesPlots.test_errorbar_plot_tsc                 C   sR   t t d¡dd}t t¡" |jt d¡d W d   ƒ n1 sD0    Y  d S )Nr4   r  r   ræ   rX  )r   rL   rY  r   Úexternal_error_raisedr  r$   rN  r   r   r   Ú%test_errorbar_plot_invalid_yerr_shapeÕ  s    z5TestSeriesPlots.test_errorbar_plot_invalid_yerr_shapec                 C   sV   t t d¡dd}dgd }t t¡ |j|d W d   ƒ n1 sH0    Y  d S )Nr4   r  r   ZzzzrX  )r   rL   rY  r   rh  rœ   r$   )r%   r   rb  r   r   r   Útest_errorbar_plot_invalid_yerrÜ  s    
z/TestSeriesPlots.test_errorbar_plot_invalid_yerrc                 C   s   t |jdd d S )NT©Útabler#   rF   r   r   r   Útest_table_trueã  s    zTestSeriesPlots.test_table_truec                 C   s   t |j|d d S )Nrk  r#   rF   r   r   r   Útest_table_selfç  s    zTestSeriesPlots.test_table_selfc                 C   s,   t  d¡ ttg d¢ƒtjjtjj ƒ d S )Nr1  ra   )rš   r5  r   r   r	   ÚPlotAccessorÚ_series_kindsÚ_common_kinds)r%   r   r   r   Útest_series_grid_settingsë  s
    

þz)TestSeriesPlots.test_series_grid_settingsr´   )rú   rÓ   Úgreenz#FF0000c                 C   s„   ddl m} |d|d}||gks&J ‚|d|gd}||gksBJ ‚|d|d}||gd ks`J ‚|d|gd}||gd ks€J ‚d S )Nr   ©Úget_standard_colorsrT   rI   rb   )Ú!pandas.plotting._matplotlib.styleru  )r%   r´   ru  rÜ   r   r   r   Útest_standard_colorsô  s    z$TestSeriesPlots.test_standard_colorsc                 C   s  ddl m} ddlm} |jD ]x}|d|d}||gks<J ‚|d|gd}||gksXJ ‚|d|d}||gd ksvJ ‚|d|gd}||gd ksJ ‚q|jjD ]x}|d|d}||gks¾J ‚|d|gd}||gksÚJ ‚|d|d}||gd ksøJ ‚|d|gd}||gd ks J ‚q d S )Nr   rü   rt  rT   )Z
num_colorsrJ   rb   )r   rf   rv  ru  ZcnamesZColorConverter)r%   rf   ru  r´   rÜ   r   r   r   Útest_standard_colors_all  s(    
z(TestSeriesPlots.test_standard_colors_allc                 C   s@   t j ¡ \}}tt d¡d ƒjd|d}t| ¡ dgd d S )Nrç   rT   rs  ©rJ   r1   ©Z
linecolors)	r]   r^   rU   r   rL   rY  r$   r   rl   ©r%   r_   r1   r   r   r   Útest_series_plot_color_kwargs%  s    z-TestSeriesPlots.test_series_plot_color_kwargsc                 C   sL   t j ¡ \}}tt d¡d tddddjd|d}t| 	¡ dgd d S )	Nrç   rT   rä   rP  r¡   rs  ry  rz  )
r]   r^   rU   r   rL   rY  r   r$   r   rl   r{  r   r   r   Ú"test_time_series_plot_color_kwargs+  s
    ÿz2TestSeriesPlots.test_time_series_plot_color_kwargsc           	      C   sz   dd l }t|jƒ}tddd}tt dd¡|d}d}|j ¡ \}}t	|ƒD ]}|j
|d	}qLt| ¡ |d |… d
 d S )Nr   rä   rç   rP  rT   é   r¡   rb   rc   rz  )r   r   rd   r   r   rL   rY  r^   rU   rE  r$   r   rl   )	r%   r]   Z
def_colorsr|   r   Zncolorsr_   r1   rW  r   r   r   Ú-test_time_series_plot_color_with_empty_kwargs3  s    
z=TestSeriesPlots.test_time_series_plot_color_with_empty_kwargsc                 C   s`   t t d¡dd„ tdƒD ƒd}tj ¡ \}}|jg d¢|d}dd„ dD ƒ}t| 	¡ |ƒ d S )Nr4   c                 S   s   g | ]}d |d›‘qS ©ÚPZ02dr   rV  r   r   r   r×   C  rØ   z4TestSeriesPlots.test_xticklabels.<locals>.<listcomp>r¡   )r   rb   rC   rå   )Úxticksr1   c                 S   s   g | ]}d |d›‘qS r€  r   rV  r   r   r   r×   F  rØ   )
r   rL   rY  rE  r]   r^   rU   r$   r   rÐ   )r%   r   r_   r1   r­   r   r   r   Útest_xticklabelsA  s
     z TestSeriesPlots.test_xticklabelsc                 C   s^   t tdƒdd„ tdƒD ƒd}|jjtdddƒd}t ttdddƒƒ¡}t || 	¡ ¡ d S )	Nr4   c                 S   s   g | ]}d |d›‘qS r€  r   rV  r   r   r   r×   K  rØ   z6TestSeriesPlots.test_xtick_barPlot.<locals>.<listcomp>r¡   r   ræ   rH   )r‚  )
r   rE  r$   r5   rL   r¥   r
  r   r§   Z
get_xticks)r%   r   r1   r­   r   r   r   Útest_xtick_barPlotI  s    z"TestSeriesPlots.test_xtick_barPlotc                 C   s@   ddl m} ttddƒtjdd|dgdd	d
}t|jƒ d S )Nr   )ÚCustomBusinessDayr  éy   z
2014-05-01z
2014-06-01z
2014-05-26)Zholidays)ÚstartÚendre  r¡   )Zpandas.tseries.offsetsr…  r   rE  ÚpdZbdate_ranger   r$   )r%   r…  r   r   r   r   Útest_custom_business_day_freqP  s    
ýþ	z-TestSeriesPlots.test_custom_business_day_freqziGH#24426, see also github.com/pandas-dev/pandas/commit/ef1bd69fa42bbed5d09dd17f08c44fc8bfc2b685#r61470674c                 C   sj   t g d¢ƒ}tj ¡ \}}|j|d}|j ¡ }|jddgdd tj ¡ \}}|j ¡ }t 	||¡ d S )NrÊ   rc   r   rT   T)Zinplace)
r   r]   r^   rU   r$   r.   rÁ   Zdropr   r§   )r%   rì   r_   r1   ÚbeforeÚafterr   r   r   Ú%test_plot_accessor_updates_on_inplace_  s    

z5TestSeriesPlots.test_plot_accessor_updates_on_inplacer:   c                 C   sT   t ddgƒ}tj ¡ \}}|j||d | ¡ }|d dk s@J ‚|d dksPJ ‚d S )NrH   rb   rD  r   rT   )r   r]   r^   rU   r$   rk   )r%   r=   r   r_   r1   Úxlimsr   r   r   Útest_plot_xlim_for_serieso  s    z)TestSeriesPlots.test_plot_xlim_for_seriesc                 C   sh   t td}|jsJ ‚| ¡ }t| ¡ ƒdks0J ‚| ¡ d }t| ¡ ƒdksPJ ‚t| ¡ ƒdksdJ ‚d S )Nr¢   rT   r   )r   ÚintÚemptyr$   ré   rl   rA  r¤   )r%   rÑ   r1   r>   r   r   r   Útest_plot_no_rows{  s    

z!TestSeriesPlots.test_plot_no_rowsc                 C   sF   t g d¢ƒ}tjtdd | ¡  W d   ƒ n1 s80    Y  d S )Nr±   r—   r˜   )r   rš   r›   rœ   r$   )r%   rÑ   r   r   r   Útest_plot_no_numeric_data…  s    z)TestSeriesPlots.test_plot_no_numeric_datazdata, indexrÊ   )rb   rH   rT   r   )r4   r<  r.  rv   )iv  i€  i¼  iž  c                 C   sL   t ||d}|jdd}| ¡ }dd„ t|jdd„ dD ƒ}||ksHJ ‚d S )	N)r©   r|   r5   rD   c                 S   s   g | ]}|  ¡ j‘qS r   )Úget_bboxrÇ   )rÕ   Úpatchr   r   r   r×   —  s   ÿz3TestSeriesPlots.test_plot_order.<locals>.<listcomp>c                 S   s
   |   ¡ jS r"   )r”  ro   )r•  r   r   r   Ú<lambda>™  rØ   z1TestSeriesPlots.test_plot_order.<locals>.<lambda>)re   )r   r$   ÚtolistÚsortedrP   )r%   r©   r|   rì   r1   r®   rÜ   r   r   r   Útest_plot_orderŠ  s    	þzTestSeriesPlots.test_plot_orderc                 C   s4   t ddgƒ}|jddd}|jd  ¡ dks0J ‚d S )NrT   rH   r   ZC3)r/   rJ   r   )r   r$   rp   Z	get_color)r%   r   r1   r   r   r   Útest_style_single_ok  s    z$TestSeriesPlots.test_style_single_okz index_name, old_label, new_label))Nr   Únew)Úoldrœ  r›  )Nr   r   )r>   r:   r5   r?   rA   c                 C   sÈ   t g d¢ƒ}||j_|j|d}|dkrJ| ¡ dks8J ‚| ¡ |ks”J ‚nJ|dkrt| ¡ dksbJ ‚| ¡ dks”J ‚n | ¡ dks„J ‚| ¡ |ks”J ‚|j|||d}| ¡ |ks´J ‚| ¡ |ksÄJ ‚d S )NrÊ   rD   r?   r   rA   Z	Frequency)r=   ZylabelZxlabel)r   r|   r   r$   r¶   rö   )r%   r=   Z
index_nameZ	old_labelZ	new_labelrì   r1   r   r   r   Útest_xlabel_ylabel_series¢  s    z)TestSeriesPlots.test_xlabel_ylabel_seriesr   r  )r‡  rQ  re  rT   )Údaysc                 C   s0   d}t ddg|dj|d}| ¡ dks,J ‚d S )N)rb   rT   rT   rH   r¡   )Zxlim)r   r$   rk   )r%   r|   rŽ  r1   r   r   r   Útest_timedelta_index½  s    	z$TestSeriesPlots.test_timedelta_indexc                 C   s@   t g d¢ƒ}|jd d}ttjjƒd d… }t| ¡ |d d S )Nra   rI   rT   rz  )r   r$   r   r]   r^   rd   r   rl   )r%   r   r1   r®   r   r   r   Útest_series_none_colorÊ  s    z&TestSeriesPlots.test_series_none_color)xÚ__name__Ú
__module__Ú__qualname__rš   ÚmarkZslowZparametrizer&   r*   r2   r7   r;   r<   ÚparamÚtdZskip_if_no_scipyrE   rG   rQ   rX   r`   rg   rq   rt   rw   r~   r   r…   rŽ   r‘   r“   r•   r–   rž   r   ZmakeDateIndexr¯   r·   r¹   Zxfailr   r   rÄ   rÉ   rÒ   rÝ   rá   râ   rí   rî   rø   rù   rþ   r  r  r  r  r  r  r!  r&  r'  r(  r,  r-  rL   Úint_r7  r6  r9  r;  rB  rC  r	   ro  rq  rp  rG  rH  rJ  rL  rM  rO  rS  r^  r   r€   rM   rN   rO   r
  r   ra  rc  rg  ri  rj  rm  rn  rr  rw  rx  r|  r}  r  rƒ  r„  rŠ  r  r  r’  r“  r™  rš  r  r‰  Ztimedelta_rangeZ	TimedeltarŸ  r   r   r   r   r   r   5   s–  
ýþ

úþ


	

	

ý
ýþ	ÿ
üþ	
	
	þ
þ



þüþ
þþþ
	





!ÿ


þþ
þþþ
r   ),Ú__doc__r   Ú	itertoolsr   ÚnumpyrL   rš   Zpandas.compatr   Zpandas.compat.numpyr   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsr¦  Zpandasr‰  r   r   r   r	   Zpandas._testingZ_testingr   Zpandas.tests.plotting.commonr
   r   r   r   r   r   r   r   r   r   r   r5  r]   r   Zfixturer   r   r   r   r   r   r   r   Ú<module>   s(   4




