U
    ³[Öeîv  ã                   @   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  m	Z
 ddlZddlmZmZmZ ddlmZ ddlmZmZ ddlmZ zddlmZ W n ek
r®   dd	„ ZY nX 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)Ú	DataFrameÚSeriesÚ
date_range)ÚTestPlotBaseÚ_check_plot_works)Úmpl_ge_3_6_0c                   C   s   dS )NT© r
   r
   r
   úc/var/www/html/services/stratfitenv/lib/python3.8/site-packages/pandas/tests/plotting/test_series.pyÚ<lambda>   ó    r   c                   C   s   t jddS )NÚts©Úname)ÚtmZmakeTimeSeriesr
   r
   r
   r   r      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d+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Z d7d8„ Z!d9d:„ Z"d;d<„ Z#ej d=d>d?g¡d@dA„ ƒZ$dBdC„ Z%e
jdDdE„ ƒZ&e
jdFdG„ ƒZ'ejj(e)ƒ dHdIdJdK„ ƒZ*e
jej de+j,j-e+j,j. ¡dLdM„ ƒƒZ/ej de+j,j-¡dNdO„ ƒZ0e
jej de+j,j-¡dPdQ„ ƒƒZ1ej de+j,j-¡dRdS„ ƒZ2dTdU„ Z3dVdW„ Z4dXdY„ Z5ejjdZd[„ ƒZ6ejjd\d]„ ƒZ7ejje
jd^d_„ ƒƒZ8ej d`dadbdcddg¡dedf„ ƒZ9dgdh„ Z:didj„ Z;dkdl„ Z<dmdn„ Z=dodp„ Z>dqdr„ Z?dsdt„ Z@ejj(dudIdvdw„ ƒZAej dddxg¡dydz„ ƒZBd{d|„ ZCd}d~„ ZDej dd€dd‚d%gd‚dd€dƒgfd„d…d†d‡gdˆd‰dŠd‹gfg¡dŒd„ ƒZEdŽd„ ZFej dd‘d’d“g¡ej dddxddg¡d”d•„ ƒƒZGej d#eHjIdƒdd–d—eHjJd€d˜eHjJdd˜gg¡d™dš„ ƒZKd$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_iseriesB   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_kindsE   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_barhS   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_axV   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_6951Z   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_titled   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_rcParamsk   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_lims   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_falsec              	   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_datetime5  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_xlimB  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«   n  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_seriesN  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)Úreasonc                 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«   7  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_asymmetrical0  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_plotD  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   ÚplottingÚ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  rE   )Z
num_colorsr<   rU   )Zmatplotlib.colorsrZ   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  )Z
matplotlibZ_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_freqzGH#24426c                 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,   )r5  rf   )r6  r
   r
   r   r     r   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snt‚n | ¡ dks^t‚| ¡ |ksnt‚|j|||d}| ¡ |ksŽt‚| ¡ |ksžt‚d S )	NrE   rT   rU   rƒ   r6   r1   rv   )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   r/  r*   r
   r
   r   Útest_timedelta_index@  s    	z$TestSeriesPlots.test_timedelta_index)LÚ__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™   rŸ   r¦   r®   r¯   rº   r»   rÒ   rÔ   r×   rÛ   rÜ   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.  r0  r3  r4  r8  r:  r=  r*  Ztimedelta_rangeZ	Timedeltar?  r
   r
   r
   r   r   -   sÖ   
úþ

'
	
!0? ÿ



	þ	


+

!


þþ
þþþr   )!Ú__doc__r   Ú	itertoolsr   Únumpyr>   r~   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsrE  Zpandasr*  r   r   r   Zpandas._testingZ_testingr   Zpandas.tests.plotting.commonr   r   Zpandas.plottingr  Z"pandas.plotting._matplotlib.compatr	   ÚImportErrorZfixturer   r   r   Zskip_if_no_mplr   r
   r
   r
   r   Ú<module>   s,   


