U
    ñ6ÓdGx  ã                   @   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 ejd	d
„ ƒZejdd„ ƒZejdd„ ƒZejG dd„ deƒƒZ dS )z Test cases for Series.plot é    )Údatetime)ÚchainN)Úis_platform_linux)Únp_version_gte1p24)Ú	DataFrameÚSeriesÚ
date_rangeÚplotting)ÚTestPlotBaseÚ_check_plot_worksc                   C   s   t jddS )NÚts©Úname)ÚtmZmakeTimeSeries© r   r   úc/var/www/html/alexa-login-pro/venv/lib/python3.8/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   $   s    r   c                
   @   s˜  e Z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dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zej d#d$ejd%d&g¡d'd(„ ƒZd)d*„ ZejjeoÖeƒ d+d,d-d.d/„ ƒZd0d1„ Zd2d3„ Z d4d5„ Z!d6d7„ Z"d8d9„ Z#d:d;„ Z$d<d=„ Z%d>d?„ Z&ej d@dAdBg¡dCdD„ ƒZ'dEdF„ Z(e
jdGdH„ ƒZ)e
jdIdJ„ ƒZ*ejjdKdLdMdN„ ƒZ+e
jej de,j-j.e,j-j/ ¡dOdP„ ƒƒZ0ej de,j-j.¡dQdR„ ƒZ1e
jej de,j-j.¡dSdT„ ƒƒZ2ej de,j-j.¡dUdV„ ƒZ3dWdX„ Z4dYdZ„ Z5d[d\„ Z6ejjd]d^„ ƒZ7ejjd_d`„ ƒZ8ejje
jdadb„ ƒƒZ9ej dcdddedfdgg¡dhdi„ ƒZ:djdk„ Z;dldm„ Z<dndo„ Z=dpdq„ Z>drds„ Z?dtdu„ Z@dvdw„ ZAejjdxdLdydz„ ƒZBej ddd{g¡d|d}„ ƒZCd~d„ ZDd€d„ ZEej d‚dƒd„d…d%gd…d„dƒd†gfd‡dˆd‰dŠgd‹dŒddŽgfg¡dd„ ƒZFd‘d’„ ZGej d“d”d•d–g¡ej ddd{dddg¡d—d˜„ ƒƒZHej d#eIjJd†d„d™dšeIjKdƒd›eIjKd„d›gg¡dœd„ ƒZLd$S )žÚTestSeriesPlotsc                 C   s¼   t |jdd t |jdd t |jdd}| j|dd t |jdd	d
}| j|dd t |jdd	d}| j|dd t |jdd	d}| j|ddd t |d d… jjƒ t |jjdd d S )NZfoo)ÚlabelF)Ú	use_indexr   )Úrot©ZxrotÚ.T)ÚstyleÚlogyÚlog©Úyaxis)r   Zlogx)Úxaxis)r   Zloglog)r   r   é
   ©Ústacked)r   ÚplotÚ_check_ticks_propsÚ_check_ax_scalesÚbarÚarea)Úselfr   ÚaxesÚaxr   r   r   Ú	test_plot+   s    zTestSeriesPlots.test_plotc                 C   s   t |jƒ d S ©N©r   r#   )r(   r   r   r   r   Útest_plot_iseries>   s    z!TestSeriesPlots.test_plot_iseriesÚkindÚliner&   Ú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_kindsA   s    z&TestSeriesPlots.test_plot_series_kindsc                 C   s   t |d d… jjƒ d S )Nr    )r   r#   r1   ©r(   r   r   r   r   Útest_plot_series_barhO   s    z%TestSeriesPlots.test_plot_series_barhc                 C   s8   t ttj d¡ƒjjdd}| j|jd gdgd d S )Nr    Úblack©Úcolorr   ©Z
facecolors)	r   r   ÚnpÚrandomÚrandnr#   r&   Ú_check_colorsÚpatches)r(   r*   r   r   r   Útest_plot_series_bar_axR   s    z'TestSeriesPlots.test_plot_series_bar_axc                 C   sb   t |jdd}| j|ddd t |jddd}| j|ddd t |jddd}| j|ddd d S )	NT)Úsubplotsé   ©rE   rE   )Úaxes_numÚlayout)éÿÿÿÿrE   )rD   rH   )rE   rI   )r   r#   Ú_check_axes_shape)r(   r   r*   r   r   r   Útest_plot_6951V   s    zTestSeriesPlots.test_plot_6951c                 C   sB   | j  ¡ \}}|jdd|d}|  |jd¡ | j|dddd d S )NZTest)é   é   )ÚtitleÚfigsizer*   rE   rF   )rG   rH   rO   )ÚpltrD   r#   Ú_check_text_labelsrN   rJ   )r(   r   Ú_r*   r   r   r   Útest_plot_figsize_and_title`   s    z+TestSeriesPlots.test_plot_figsize_and_titlec                 C   sL   d}| j j| }| j  ¡ \}}tdddgƒj|d || j j| ksHt‚d S )Nzaxes.prop_cyclerE   é   é   ©r*   )rP   ÚrcParamsrD   r   r#   ÚAssertionError)r(   ÚkeyÚcolorsrR   r*   r   r   r   Útest_dont_modify_rcParamsg   s
    z)TestSeriesPlots.test_dont_modify_rcParamsc                 C   sÜ   | j  ¡ \}}|j|d}| ¡ \}}| ¡ }||d jddd d ksNt‚||d jddd d ksnt‚t ¡  |jd|d}| ¡ \}}| ¡ }||d jddd d ks¸t‚||d jddd d ksØt‚d S )NrV   r   F©ÚorigrI   T©Úsecondary_yr*   )	rP   rD   r#   Úget_xlimÚ	get_linesÚget_datarX   r   Úclose)r(   r   Úfigr*   ÚxminÚxmaxÚlinesr   r   r   Útest_ts_line_limo   s       z TestSeriesPlots.test_ts_line_limc                 C   s  | j  ¡ \}}|jjd|d}| ¡ \}}| ¡ d jddd }||d ksRt‚||d ksbt‚| j|dd t	 
¡  | j  ¡ \}}|jjdd|d}| ¡ \}}| ¡ d jddd }||d ksÌt‚||d ksÜt‚| j|d	d t	 
¡  | ¡ }| d
¡ d¡|_| j  ¡ \}}|jjdd|d}| ¡ \}}| ¡ d jddd }||d ksbt‚||d kstt‚| j|dd t	 
¡  | j  ¡ \}}|jjdd|d}| ¡ \}}| ¡ d jddd }||d ksàt‚||d ksòt‚| j|dd d S )NF)r"   r*   r   r\   rI   r   T)r"   Zx_compatr*   é   ÚGMTZCET)r"   r_   r*   )rP   rD   r#   r'   r`   ra   rb   rX   r$   r   rc   ÚcopyZtz_localizeZ
tz_convertÚindex)r(   r   rR   r*   re   rf   r0   Ztz_tsr   r   r   Útest_ts_area_lim~   sB    z TestSeriesPlots.test_ts_area_limc                 C   sn   | j jdddd\}\}}t|ƒj|dd t|ƒj|dd |  |¡ ||¡sTt‚|  |¡ ||¡sjt‚d S )NrE   rT   T)Zshareyr'   )r*   r/   )rP   rD   Úabsr#   Z
get_y_axisZjoinedrX   )r(   r   rd   Úax1Úax2r   r   r   Útest_area_sharey_dont_overwrite¥   s
    z/TestSeriesPlots.test_area_sharey_dont_overwritec                 C   s:  t ddgƒ}| j ¡ \}}|jdd|d}| j|dgd | j ¡  | j ¡ \}}|jd|d}| j|dgd | j ¡  d	|_| j ¡ \}}|jd|d}| j|d	gd | j ¡  | j ¡ \}}|jdd|d
}| j|dgd | j ¡  | j ¡ \}}|jdd|d
}| ¡ d kst‚| 	¡  | j|dgd d S )NrE   rT   ZLABELT)r   Úlegendr*   ©Úlabels©rr   r*   Ú ÚNAME)rr   r   r*   F)
r   rP   rD   r#   Ú_check_legend_labelsrc   r   Z
get_legendrX   rr   )r(   ÚsrR   r*   r   r   r   Ú
test_label¯   s.    



zTestSeriesPlots.test_labelc              	   C   sH   t dddgƒ}t|jdd d}tjt|d t|jƒ W 5 Q R X d S )NFT)Zinclude_boolúno numeric data to plot©Úmatch)r   r   r#   ÚpytestÚraisesÚ	TypeError)r(   ry   Úmsgr   r   r   Útest_booleanË   s
    zTestSeriesPlots.test_booleanrl   Né   )Úkc              	   C   s  ddt jdg}t||d}t|jƒ}|jd  ¡ }t jdddgt jd}t	 
t  |jd¡|¡ t	 
|jt  ddddg¡¡ t jddddg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 )
NrE   rT   rU   ©rl   r   ©ZdtypeFTr!   )r>   Únanr   r   r#   rg   Ú	get_ydataÚarrayZfloat64r   Úassert_numpy_array_equalÚdeleteÚdataÚmaskr'   )r(   rl   ÚvaluesÚdr*   ZmaskedÚexpÚexpectedr   r   r   Útest_line_area_nan_seriesÔ   s    
z)TestSeriesPlots.test_line_area_nan_seriesc                 C   s†   t dddgdddgd}d|j_| j ¡ \}}|jd	|d
}| ¡ }|dksPt‚| j ¡ \}}|jjd	|d
}| ¡ }|dks‚t‚d S )NrE   rT   rU   ÚaÚbÚcr…   z	The IndexF©r   r*   rv   )	r   rl   r   rP   rD   r#   Ú
get_xlabelrX   r&   )r(   ry   rR   r*   r   rp   Úlabel2r   r   r   Útest_line_use_index_falseç   s    z)TestSeriesPlots.test_line_use_index_falsezWeird rounding problemsF)ÚreasonÚstrictc              	   C   s†  t  ddddddg¡}| j ¡ \}}tddgƒjjd	|d
}t |j	 
¡ |¡ t ¡  | j ¡ \}}tddgƒjjd	|d
}t |j 
¡ |¡ t ¡  t  dddddddg¡}| j ¡ \}}tdddgƒjd	d|d}d}d}| ¡ }t |d |¡ t |d |¡ t |j	 
¡ |¡ t ¡  | j ¡ \}}tdddgƒjd	d|d}| ¡ }t |d |¡ t |d |¡ t |j 
¡ |¡ d S )Ngš™™™™™¹?ç      ð?g      $@g      Y@g     @@g     ˆÃ@éÈ   iô  T)r   r*   gñhãˆµøä>g-Cëâ6?gü©ñÒMbP?g{®Gáz„?r&   )r   r/   r*   g!Ñ,åNJ?gÐ„–-?À?r   rE   r1   )r>   r‰   rP   rD   r   r#   r&   r   rŠ   r   Úget_ticklocsrc   r1   r   Zget_ylimZassert_almost_equalr`   )r(   r‘   rR   r*   ZyminÚymaxÚresr   r   r   Útest_bar_logó   s2    zTestSeriesPlots.test_bar_logc                 C   sV   t ddddgddddgd	}| j ¡ \}}|jjd
|d}|  | ¡ ddddg¡ d S )NrE   rT   rU   rƒ   r“   r”   r•   r   r…   Fr–   Ú0Ú1Ú2Ú3)r   rP   rD   r#   r&   rQ   Úget_xticklabels)r(   ÚdfrR   r*   r   r   r   Útest_bar_ignore_index  s    z%TestSeriesPlots.test_bar_ignore_indexc                 C   sR   t ddddgƒ}|jjddddgd}dd	„ |jD ƒ}d
ddd
g}||ksNt‚d S )NrE   rT   rU   rƒ   ÚredÚbluer;   c                 S   s   g | ]}|  ¡ ‘qS r   )Zget_facecolor)Ú.0Úpr   r   r   Ú
<listcomp>"  s     z8TestSeriesPlots.test_bar_user_colors.<locals>.<listcomp>)rœ   ç        r®   rœ   )r®   r®   rœ   rœ   )r   r#   r&   rB   rX   )r(   ry   r*   Úresultr‘   r   r   r   Útest_bar_user_colors  s    üz$TestSeriesPlots.test_bar_user_colorsc                 C   sh   t tj dd¡ƒ}| j ¡ \}}|j|d}| j|dd | j ¡ \}}|jd|d}| j|dd d S )Nr5   rV   r   r   ri   )r   r*   )r   r>   r?   r@   rP   rD   r#   r$   )r(   r§   rR   r*   r)   r   r   r   Útest_rotation+  s    zTestSeriesPlots.test_rotationc              
   C   s¨   ddl m} tddƒ}|dddddd	d
ddg	 }ttj t|ƒ¡|ƒ}| j 	¡ \}}|j
|d}| tdddƒd|¡}| dd¡ || ¡ d ks–t‚| j|dd d S )Nr   )ÚDatetimeConverterú1/1/2000z3/1/2000rE   rT   rU   r5   é	   r    é   é   rV   iÏ  rv   z1/1/1999ú1/1/2001ri   r   )Z%pandas.plotting._matplotlib.converterr²   r   r   r>   r?   r@   ÚlenrP   rD   r#   Úconvertr   Zset_xlimr`   rX   r$   )r(   r²   ÚrngÚserrR   r*   Zxpr   r   r   Útest_irregular_datetime6  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}| j ¡ \}}|j|d	}| ¡ \}}| ¡ }|t |d
 j	ddd
 ¡ks|t
‚|t |d
 j	ddd
 ¡ksžt
‚d S )Nr®   rœ   g      @g      @g      @g      @g       @r…   rV   r   Fr\   )r   r>   r‡   rP   rD   r#   r`   ra   Znanminrb   rX   Znanmax)r(   r»   rR   r*   re   rf   rg   r   r   r   Útest_unsorted_index_xlimC  s    þ"z(TestSeriesPlots.test_unsorted_index_xlimc           	   	   C   sð  t tj dd¡dddddgdd	}t|jjƒ}|  |j|j	¡ | 
¡ dksNt‚t|jjd d
}|  |jdgd ¡ dddg}t|jj|d}dddddg}| j|j|d dddddg}dddddg}t|jj||d}|  |j|¡ | j|j|d t|jj|ddd}dd„ |j| ¡  D ƒ}tt t|j	|ƒ¡ƒ}|  |j|¡ |jD ]}| ¡ dksLt‚qLt dddddgdddddgd }tjtd!d" |j ¡  W 5 Q R X t ddtjdgddddgdd	}t|jjƒ}|  |jddddg¡ d S )#NrE   r5   r“   r”   r•   r   ÚeZYLABEL©rl   r   rs   rv   ÚrÚg©rZ   r=   ÚAÚBÚCÚDÚEÚm)rt   rZ   z%.2fé   )rZ   ZautopctZfontsizec                 S   s   g | ]}|d  d›‘qS )éd   z.2fr   )r«   ry   r   r   r   r­   o  s     z3TestSeriesPlots.test_pie_series.<locals>.<listcomp>rT   r   rƒ   rI   r…   z&pie plot doesn't allow negative valuesr|   )r   r>   r?   Úrandintr   r#   ÚpierQ   Útextsrl   Ú
get_ylabelrX   rA   rB   rŽ   ÚsumÚlistr   Úfrom_iterableÚzipZget_fontsizer~   r   Ú
ValueErrorr‡   )	r(   r   r*   Z
color_argsZcolor_expectedrt   ZpctsZexpected_textsÚtr   r   r   Útest_pie_seriesO  sH      ÿ
   ÿ
  zTestSeriesPlots.test_pie_seriesc                 C   s\   t dtjddgƒ}| j ¡ \}}|jjd|d}ddddg}dd	„ |jD ƒ}||ksXt‚d S )
NrE   Tru   r¢   rv   r¤   r¥   c                 S   s   g | ]}|  ¡ ‘qS r   )Zget_text)r«   Úxr   r   r   r­   „  s     z0TestSeriesPlots.test_pie_nan.<locals>.<listcomp>)	r   r>   r‡   rP   rD   r#   rÌ   rÍ   rX   )r(   ry   rR   r*   r‘   r¯   r   r   r   Útest_pie_nan  s    zTestSeriesPlots.test_pie_nanc                 C   sf  t tj dd¡tdƒd}ttj d¡dd}| j ¡ \}}|j|d}|jdd|d	 | j	|d
dddgd | 
¡  ¡ s~t‚|j 
¡  ¡ st‚t ¡  | j ¡ \}}|j|d}|j|ddd | j	|d
dddgd | 
¡  ¡ sèt‚|j 
¡  ¡ sút‚t ¡  | j ¡ \}}|jd|d}|jdd|d	 ddddg}| j	|j|d |j 
¡  ¡ r^t‚| 
¡  ¡ spt‚t ¡  | j ¡ \}}|jd|d}|j|ddd ddddg}|  	|j|¡ |j 
¡  ¡ rÒt‚| 
¡  ¡ sät‚t ¡  | j ¡ \}}|jdd|d}|j|ddd d
dddg}|  	|j|¡ |j 
¡  ¡ rHt‚| 
¡  ¡ sZt‚t ¡  d S )Nri   rU   Úabc)ÚcolumnsrÖ   r   rV   T)rr   r_   r*   r“   r”   r•   z	x (right)rs   )r*   rr   r_   r^   z	a (right)z	b (right)z	c (right)F)r_   Z
mark_rightr*   )r   r>   r?   r@   rÐ   r   rP   rD   r#   rx   Z	get_yaxisZget_visiblerX   Zright_axr   rc   Zleft_ax)r(   r§   ry   rR   r*   r‘   r   r   r   Útest_df_series_secondary_legend‡  sP    z/TestSeriesPlots.test_df_series_secondary_legendzinput_logy, expected_scale)Tr   )ÚsymZsymlogc                 C   s^   t tj d¡ƒ}t tj d¡ƒ}|j|d}|jd|d}| ¡ |ksJt‚| ¡ |ksZt‚d S )Nri   )r   T)r_   r   )r   r>   r?   r@   r#   Z
get_yscalerX   )r(   Z
input_logyZexpected_scaleÚs1Ús2ro   rp   r   r   r   Útest_secondary_logyÆ  s    z#TestSeriesPlots.test_secondary_logyc              	   C   sP   t tj d¡ƒ}| j ¡ \}}d}tjt|d |j	dd|d W 5 Q R X d S )NrT   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   r<   r*   )
r   r>   r?   r@   rP   rD   r~   r   rÓ   r#   )r(   rÖ   rR   r*   r   r   r   r   Ú)test_plot_fails_with_dupe_color_and_styleÕ  s    ÿz9TestSeriesPlots.test_plot_fails_with_dupe_color_and_stylec                 C   s´   t  ddd¡}t|jjddd t|jjd dd t|jjd t  d¡d t|jjd|d t|jjd|d | j ¡ \}}|jjdd||d}| j	|d	d
 |  
|j ¡ d¡ d S )NiœÿÿÿrÊ   é   Zscott)Ú	bw_methodÚindg      à?T)r   rá   râ   r*   r   r   ZDensity)r>   Zlinspacer   r#   r2   Úint_ZdensityrP   rD   r%   rQ   r   Z	get_label)r(   r   Zsample_pointsrR   r*   r   r   r   Útest_kde_kwargsà  s    zTestSeriesPlots.test_kde_kwargsc                 C   sJ   t tjjddƒ}tj|d< t|jjƒ}tt 	|j
d  ¡ ¡ ƒsFt‚d S )Né2   )Úsizer   )r   r>   r?   Úuniformr‡   r   r#   r2   ÚanyÚisnanrg   Ú	get_xdatarX   )r(   ry   r)   r   r   r   Útest_kde_missing_valsí  s    
z%TestSeriesPlots.test_kde_missing_valszApi changed in 3.6.0)rš   c                 C   sf   | j  ¡ \}}|jjd|d}| j|dd | ¡ }|  ||jg¡ | ¡ }|  |dgt	|ƒ ¡ d S )NT)r   r*   r   r   rv   )
rP   rD   r#   r4   r%   r¦   rQ   r   Zget_yticklabelsr¸   )r(   r   rR   r*   ZxlabelsZylabelsr   r   r   Útest_boxplot_seriesö  s    z#TestSeriesPlots.test_boxplot_seriesc                 C   s\   t tdƒƒ}| j ¡ \}}|j||d | j ¡  | j ¡ \}}t|j|ƒƒ  | j ¡  d S )NrU   ©r/   r*   )r   ÚrangerP   rD   r#   rc   Úgetattr)r(   r/   ry   rR   r*   r   r   r   Útest_kind_both_ways   s    
z#TestSeriesPlots.test_kind_both_waysc              	   C   sJ   t tdƒƒ}| j ¡ \}}d}tjt|d |j||d W 5 Q R X d S )NÚabcdr{   r|   rí   )r   rÐ   rP   rD   r~   r   r€   r#   ©r(   r/   ry   rR   r*   r   r   r   r   Útest_invalid_plot_data  s
    z&TestSeriesPlots.test_invalid_plot_datac                 C   s"   t tdƒtd}t|j|d d S )Nr    r†   r6   )r   rî   Úobjectr   r#   )r(   r/   ry   r   r   r   Útest_valid_object_plot  s    z&TestSeriesPlots.test_valid_object_plotc              	   C   sN   t ddddgƒ}| j ¡ \}}d}tjt|d |j||d W 5 Q R X d S )Nr“   r”   rœ   rT   r{   r|   rí   )r   rP   rD   r~   r   r€   r#   rò   r   r   r   Ú test_partially_invalid_plot_data  s
    z0TestSeriesPlots.test_partially_invalid_plot_datac              	   C   s6   t ddgƒ}tjtdd |jdd W 5 Q R X d S )NrE   rT   z%invalid_kind is not a valid plot kindr|   Zinvalid_kindr6   )r   r~   r   rÓ   r#   )r(   ry   r   r   r   Útest_invalid_kind$  s    z!TestSeriesPlots.test_invalid_kindc                 C   sJ   t ddd}t ddd}| |¡}tj |j¡}t||d}t|jƒ d S )Nz1/1/2009rƒ   ©Úperiodsz1/2/2009r…   )	r   Úappendr>   r?   r@   ræ   r   r   r#   )r(   Zdr1Zdr2rl   rŽ   ry   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 5 Q R X t ¡  d S )Nr    rÖ   r   rT   )ÚyerrÚxerrc                 S   s   g | ]}|j d d …df ‘qS )NrE   )Zvertices©r«   Úir   r   r   r­   8  s     z>TestSeriesPlots.test_errorbar_asymmetrical.<locals>.<listcomp>rE   rI   z?Asymmetrical error bars should be provided with the shape \(2, z\)r|   rµ   ©rü   )r   r>   Úaranger?   Zrandr#   ZvstackÚcollectionsÚ	get_pathsÚTr‰   Zto_numpyZreshaper   rŠ   r¸   r~   r   rÓ   rc   )r(   ry   Úerrr*   r¯   r‘   r   r   r   r   Útest_errorbar_asymmetrical1  s    $ÿ z*TestSeriesPlots.test_errorbar_asymmetricalc              	   C   s  t t d¡dd}t tj d¡¡}tt tj dd¡¡|jddgd}ddg}|D ]®}t|j	t |ƒ|d	}| j
|d
dd t|j	||d	}| j
|d
dd t|j	| ¡ |d	}| j
|d
dd t|j	||d	}| j
|d
dd t|j	dd|d}| j
|ddd qTt|j	|d}| j
|dd
d tdddd}t t d¡|dd}t t tj d¡¡|d}	tt tj dd¡¡|ddgd}
t|j	|	d}| j
|d
dd t|j	|
d}| j
|d
dd t t¡ |j	t d¡d W 5 Q R X dgd }t t¡ |j	|d W 5 Q R X d S )Nr    rÖ   r   rT   Úy)rl   rÙ   r0   r&   )rü   r/   r   rE   )rý   rü   gš™™™™™É?)rý   rü   r/   )rý   r³   r·   ÚM)Úfreqr¶   r¿   r…   r   rµ   Úzzz)r   r>   r  rn   r?   r@   r   rl   r   r#   Z_check_has_errorbarsÚtolistr   r   Zexternal_error_raisedrÓ   r€   )r(   ry   Zs_errZd_errÚkindsr/   r*   Zixr   Zts_errZtd_errr   r   r   Útest_errorbar_plotE  sD      ÿ"
z"TestSeriesPlots.test_errorbar_plotc                 C   s    t |jdd t |j|d d S )NT)Útabler-   r8   r   r   r   Ú
test_tablep  s    zTestSeriesPlots.test_tablec                 C   s&   |   tdddgƒtjjtjj ¡ d S )NrE   rT   rU   )Z_check_grid_settingsr   r	   ÚPlotAccessorÚ_series_kindsÚ_common_kinds)r(   r   r   r   Útest_series_grid_settingsu  s    þz)TestSeriesPlots.test_series_grid_settingsr•   rÀ   r©   Úgreenz#FF0000c                 C   s„   ddl m} |d|d}||gks&t‚|d|gd}||gksBt‚|d|d}||gd ks`t‚|d|gd}||gd ks€t‚d S )Nr   ©Úget_standard_colorsrE   r;   rU   )Ú!pandas.plotting._matplotlib.styler  rX   )r(   r•   r  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<t‚|d|gd}||gksXt‚|d|d}||gd ksvt‚|d|gd}||gd kst‚q|jjD ]x}|d|d}||gks¾t‚|d|gd}||gksÚt‚|d|d}||gd ksøt‚|d|gd}||gd ks t‚q d S )Nr   rÂ   r  rE   )Z
num_colorsr<   rU   )Ú
matplotlibrZ   r  r  ZcnamesrX   ZColorConverter)r(   rZ   r  r•   r¯   r   r   r   Útest_standard_colors_allŽ  s(    
z(TestSeriesPlots.test_standard_colors_allc                 C   sB   | j  ¡ \}}tt d¡d ƒjd|d}| j| ¡ dgd d S )Nr¶   rE   r  ©r<   r*   ©Z
linecolors)rP   rD   r   r>   r  r#   rA   ra   ©r(   rR   r*   r   r   r   Útest_series_plot_color_kwargs¯  s    z-TestSeriesPlots.test_series_plot_color_kwargsc                 C   sN   | j  ¡ \}}tt d¡d tddddjd|d}| j| ¡ dgd d S )	Nr¶   rE   r³   rø   r…   r  r  r  )	rP   rD   r   r>   r  r   r#   rA   ra   r  r   r   r   Ú"test_time_series_plot_color_kwargsµ  s     ÿz2TestSeriesPlots.test_time_series_plot_color_kwargsc           	      C   s~   dd l }|  |j¡}tddd}tt dd¡|d}d}| j ¡ \}}t	|ƒD ]}|j
|d	}qN| j| ¡ |d |… d
 d S )Nr   r³   r¶   rø   rE   é   r…   rU   rV   r  )r  Z_unpack_cyclerrW   r   r   r>   r  rP   rD   rî   r#   rA   ra   )	r(   ZmplZ
def_colorsrl   ry   ZncolorsrR   r*   rÿ   r   r   r   Ú-test_time_series_plot_color_with_empty_kwargs½  s    z=TestSeriesPlots.test_time_series_plot_color_with_empty_kwargsc                 C   sf   t t d¡dd„ tdƒD ƒd}| j ¡ \}}|jddddg|d	}d
d„ dD ƒ}|  | ¡ |¡ d S )Nr    c                 S   s   g | ]}d |d›‘qS ©ÚPÚ02dr   rþ   r   r   r   r­   Í  s     z4TestSeriesPlots.test_xticklabels.<locals>.<listcomp>r…   r   rU   r5   r´   )Úxticksr*   c                 S   s   g | ]}d |d›‘qS r"  r   rþ   r   r   r   r­   Ð  s     )r   rU   r5   r´   )	r   r>   r  rî   rP   rD   r#   rQ   r¦   )r(   ry   rR   r*   r   r   r   r   Útest_xticklabelsË  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 )	Nr    c                 S   s   g | ]}d |d›‘qS r"  r   rþ   r   r   r   r­   Õ  s     z6TestSeriesPlots.test_xtick_barPlot.<locals>.<listcomp>r…   r   rµ   rT   )r%  )
r   rî   r#   r&   r>   r‰   rÐ   r   rŠ   Z
get_xticks)r(   ry   r*   r   r   r   r   Útest_xtick_barPlotÓ  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Úendr	  r…   )Zpandas.tseries.offsetsr(  r   rî   ÚpdZbdate_ranger   r#   )r(   r(  ry   r   r   r   Útest_custom_business_day_freqÚ  s    
ýþ	z-TestSeriesPlots.test_custom_business_day_freqziGH#24426, see also github.com/pandas-dev/pandas/commit/ef1bd69fa42bbed5d09dd17f08c44fc8bfc2b685#r61470674c                 C   sn   t ddddgƒ}| j ¡ \}}|j|d}|j ¡ }|jddgdd | j ¡ \}}|j ¡ }t ||¡ d S )	NrE   rT   rU   rƒ   rV   r   T)Zinplace)	r   rP   rD   r#   r   rž   Zdropr   rŠ   )r(   r»   rR   r*   Ú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ƒ}| j ¡ \}}|j||d | ¡ }|d dk s@t‚|d dksPt‚d S )NrT   rU   rí   r   rE   )r   rP   rD   r#   r`   rX   )r(   r/   ry   rR   r*   Úxlimsr   r   r   Útest_plot_xlim_for_seriesù  s    z)TestSeriesPlots.test_plot_xlim_for_seriesc                 C   sh   t td}|jst‚| ¡ }t| ¡ ƒdks0t‚| ¡ d }t| ¡ ƒdksPt‚t| ¡ ƒdksdt‚d S )Nr†   rE   r   )	r   ÚintÚemptyrX   r#   r¸   ra   rê   rˆ   )r(   r§   r*   r0   r   r   r   Útest_plot_no_rows  s    

z!TestSeriesPlots.test_plot_no_rowsc              	   C   s4   t dddgƒ}tjtdd | ¡  W 5 Q R X d S )Nr“   r”   r•   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, indexrE   rT   rU   r   r    rå   rà   ri   iv  i€  i¼  iž  c                 C   sL   t ||d}|jdd}| ¡ }dd„ t|jdd„ dD ƒ}||ksHt‚d S )	N)rŒ   rl   r&   r6   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,   )r7  rf   )r8  r   r   r   Ú<lambda>#  ó    z1TestSeriesPlots.test_plot_order.<locals>.<lambda>)rY   )r   r#   r  ÚsortedrB   rX   )r(   rŒ   rl   r»   r*   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s0t‚d S )NrE   rT   ry   ZC3)r   r<   r   )r   r#   rg   Ú	get_colorrX   )r(   ry   r*   r   r   r   Útest_style_single_ok'  s    z$TestSeriesPlots.test_style_single_okz index_name, old_label, new_label)Nrv   Únew)Úoldr@  r?  )Nrv   rv   c                 C   sÌ   t ddddgƒ}||j_|j|d}|dkrN| ¡ dks<t‚| ¡ |ks˜t‚nJ|dkrx| ¡ dksft‚| ¡ d	ks˜t‚n | ¡ dksˆt‚| ¡ |ks˜t‚|j|||d
}| ¡ |ks¸t‚| ¡ |ksÈt‚d S )NrE   rT   rU   rƒ   r6   r1   rv   r3   Z	Frequency)r/   ZylabelZxlabel)r   rl   r   r#   r—   rX   rÎ   )r(   r/   Z
index_nameZ	old_labelZ	new_labelr»   r*   r   r   r   Útest_xlabel_ylabel_series,  s    z)TestSeriesPlots.test_xlabel_ylabel_seriesrÆ   )r*  rù   r	  )Údaysc                 C   s0   d}t ddg|dj|d}| ¡ dks,t‚d S )N)rU   rE   rE   rT   r…   )Zxlim)r   r#   r`   rX   )r(   rl   r1  r*   r   r   r   Útest_timedelta_indexG  s    	z$TestSeriesPlots.test_timedelta_index)MÚ__name__Ú
__module__Ú__qualname__r~   ÚmarkZslowr+   r.   ZparametrizeÚparamÚtdZskip_if_no_scipyr7   r9   rC   rK   rS   r[   rh   rm   rq   rz   r‚   r   ZmakeDateIndexr’   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÷   rû   r  r  r  r  r  r  r  r  r!  r&  r'  r-  r0  r2  r5  r6  r<  r>  rA  r,  Ztimedelta_rangeZ	TimedeltarC  r   r   r   r   r   )   sä   
úþ

'
	
ý
!0? ÿ



	þ	


*

!ÿ


þþ
þþþr   )!Ú__doc__r   Ú	itertoolsr   Únumpyr>   r~   Zpandas.compatr   Zpandas.compat.numpyr   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsrI  Zpandasr,  r   r   r   r	   Zpandas._testingZ_testingr   Zpandas.tests.plotting.commonr
   r   Zfixturer   r   r   Zskip_if_no_mplr   r   r   r   r   Ú<module>   s&   


