U
    sVcv                     @   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
   E/tmp/pip-unpacked-wheel-xj8nt62q/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dddd%gddddgfddddgddddgfgdd ZEdd ZFejddddgejdddxddgdd ZGejd#eHjIddddeHjJddeHjJddggdd 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    Z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   rD   rD   )axes_numlayout)rD   )rC   rG   )rD   rH   )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*   rD   rE   )rF   rG   rN   )pltrC   r#   _check_text_labelsrM   rI   )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_cyclerD         r*   )rO   rcParamsrC   r   r#   AssertionError)r(   keycolorsrQ   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st||d jddd d kstd S )NrU   r   ForigrH   Tsecondary_yr*   )	rO   rC   r#   get_xlim	get_linesget_datarW   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st||d kst| 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st||d kst| j|dd d S )NF)r"   r*   r   r[   rH   r   T)r"   Zx_compatr*      GMTZCET)r"   r^   r*   )rO   rC   r#   r'   r_   r`   ra   rW   r$   r   rb   copyZtz_localizeZ
tz_convertindex)r(   r   rQ   r*   rd   re   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 )NrD   rS   T)Zshareyr'   )r*   r/   )rO   rC   absr#   Z
get_y_axisZjoinedrW   )r(   r   rc   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 )NrD   rS   ZLABELT)r   legendr*   labelsrq   r*    NAME)rq   r   r*   F)
r   rO   rC   r#   _check_legend_labelsrb   r   Z
get_legendrW   rq   )r(   srQ   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(   rx   msgr
   r
   r   test_boolean   s
    zTestSeriesPlots.test_booleanrk   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 )
NrD   rS   rT   rk   r   ZdtypeFTr!   )r=   nanr   r   r#   rf   	get_ydataarrayZfloat64r   assert_numpy_array_equaldeletedatamaskr'   )r(   rk   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std S )NrD   rS   rT   abcr   z	The IndexFr   r*   ru   )	r   rk   r   rO   rC   r#   
get_xlabelrW   r&   )r(   rx   rQ   r*   r   ro   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*   gh㈵>g-C6?gMbP?g{Gz?r&   )r   r/   r*   g!,NJ?gЄ-??r   rD   r1   )r=   r   rO   rC   r   r#   r&   r   r   r   get_ticklocsrb   r1   r   Zget_ylimZassert_almost_equalr_   )r(   r   rQ   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 )NrD   rS   rT   r   r   r   r   r   r   Fr   0123)r   rO   rC   r#   r&   rP   get_xticklabels)r(   dfrQ   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 )NrD   rS   rT   r   redZ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&   rA   rW   )r(   rx   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   rU   r   r   rh   )r   r*   )r   r=   r>   r?   rO   rC   r#   r$   )r(   r   rQ   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st| j|dd d S )Nr   )DatetimeConverter1/1/2000z3/1/2000rD   rS   rT   r5   	   r          rU   i  ru   z1/1/19991/1/2001rh   r   )Z%pandas.plotting._matplotlib.converterr   r   r   r=   r>   r?   lenrO   rC   r#   convertr   Zset_xlimr_   rW   r$   )r(   r   rngserrQ   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st
d S )Nr   r   g      @g      @g      @g      @g       @r   rU   r   Fr[   )r   r=   r   rO   rC   r#   r_   r`   Znanminra   rW   Znanmax)r(   r   rQ   r*   rd   re   rf   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 )#NrD   r5   r   r   r   r   eZYLABELrk   r   rr   ru   rg)rY   r<   ABCDEm)rs   rY   z%.2f   )rY   ZautopctZfontsizec                 S   s   g | ]}|d  dqS )d   z.2fr
   )r   rx   r
   r
   r   r   n  s     z3TestSeriesPlots.test_pie_series.<locals>.<listcomp>rS   r   r   rH   r   z&pie plot doesn't allow negative valuesr{   )r   r=   r>   randintr   r#   pierP   textsrk   
get_ylabelrW   r@   rA   r   sumlistr   from_iterablezipZget_fontsizer}   r~   
ValueErrorr   )	r(   r   r*   Z
color_argsZcolor_expectedrs   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 )
NrD   Trt   r   ru   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   rO   rC   r#   r   r   rW   )r(   rx   rQ   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 |
  st|j
  st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
  rt|
  stt  | j \}}|jdd|d}|j|ddd d
dddg}| 	|j| |j
  rHt|
  sZtt  d S )Nrh   rT   abc)columnsr   r   rU   T)rq   r^   r*   r   r   r   z	x (right)rr   )r*   rq   r^   r]   z	a (right)z	b (right)z	c (right)F)r^   Z
mark_rightr*   )r   r=   r>   r?   r   r   rO   rC   r#   rw   Z	get_yaxisZget_visiblerW   Zright_axr   rb   Zleft_ax)r(   r   rx   rQ   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 )Nrh   )r   T)r^   r   )r   r=   r>   r?   r#   Z
get_yscalerW   )r(   Z
input_logyZexpected_scales1s2rn   ro   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 )NrS   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?   rO   rC   r}   r~   r   r#   )r(   r   rQ   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 )Nir      Zscott)	bw_methodindg      ?T)r   r   r   r*   r   r   ZDensity)r=   Zlinspacer   r#   r2   int_ZdensityrO   rC   r%   rP   r   Z	get_label)r(   r   Zsample_pointsrQ   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 )N2   )sizer   )r   r=   r>   uniformr   r   r#   r2   anyisnanrf   	get_xdatarW   )r(   rx   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   ru   )
rO   rC   r#   r4   r%   r   rP   r   Zget_yticklabelsr   )r(   r   rQ   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 )NrT   r/   r*   )r   rangerO   rC   r#   rb   getattr)r(   r/   rx   rQ   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 )NZabcdrz   r{   r   )r   r   rO   rC   r}   r~   r   r#   r(   r/   rx   rQ   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/   rx   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   rS   rz   r{   r   )r   rO   rC   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 )NrD   rS   z%invalid_kind is not a valid plot kindr{   Zinvalid_kindr6   )r   r}   r~   r   r#   )r(   rx   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dr2rk   r   rx   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   rS   )yerrxerrc                 S   s   g | ]}|j d d df qS )NrD   )Zverticesr   ir
   r
   r   r   7  s     z>TestSeriesPlots.test_errorbar_asymmetrical.<locals>.<listcomp>rD   rH   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   rb   )r(   rx   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   rS   y)rk   r   r0   r&   )r   r/   r   rD   )r   r   g?)r   r   r/   )r   r   r   M)freqr   r   r   r   r   Zzzz)r   r=   r   rm   r>   r?   r   rk   r   r#   Z_check_has_errorbarstolistr   r   Zexternal_error_raisedr   r   )r(   rx   Zs_errZd_errkindsr/   r*   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 )NrD   rS   rT   )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std S )Nr   get_standard_colorsrD   r:   rT   )!pandas.plotting._matplotlib.styler  rW   )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st|d|gd}||gkst|d|d}||gd kst|d|gd}||gd kstqd S )Nr   r  rD   )Z
num_colorsr;   rT   )Zmatplotlib.colorsrY   r  r  ZcnamesrW   ZColorConverter)r(   rY   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   rD   r  r;   r*   Z
linecolors)rO   rC   r   r=   r   r#   r@   r`   r(   rQ   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   rD   r   r   r   r  r  r  )	rO   rC   r   r=   r   r   r#   r@   r`   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   rD      r   rT   rU   r  )Z
matplotlibZ_unpack_cyclerrV   r   r   r=   r   rO   rC   r   r#   r@   r`   )	r(   ZmplZ
def_colorsrk   rx   ZncolorsrQ   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 PZ02dr
   r   r
   r
   r   r     s     z4TestSeriesPlots.test_xticklabels.<locals>.<listcomp>r   r   rT   r5   r   )xticksr*   c                 S   s   g | ]}d |dqS r  r
   r   r
   r
   r   r     s     )r   rT   r5   r   )	r   r=   r   r   rO   rC   r#   rP   r   )r(   rx   rQ   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   rS   )r  )
r   r   r#   r&   r=   r   r   r   r   Z
get_xticks)r(   rx   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"  rx   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 )	NrD   rS   rT   r   rU   r   T)Zinplace)	r   rO   rC   r#   r   r   Zdropr   r   )r(   r   rQ   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 )NrS   rT   r   r   rD   )r   rO   rC   r#   r_   rW   )r(   r/   rx   rQ   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   rD   r   )	r   intemptyrW   r#   r   r`   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   rz   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, indexrD   rS   rT   r   r    r   r   rh   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   rk   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,   )r1  re   )r2  r
   r
   r   r     r   z1TestSeriesPlots.test_plot_order.<locals>.<lambda>)rX   )r   r#   r  sortedrA   rW   )r(   r   rk   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 )NrD   rS   rx   ZC3)r   r;   r   )r   r#   rf   Z	get_colorrW   )r(   rx   r*   r
   r
   r   test_style_single_ok#  s    z$TestSeriesPlots.test_style_single_okz index_name, old_label, new_label)Nru   new)oldr7  r6  )Nru   ru   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st| |kstd S )	NrD   rS   rT   r   r6   r1   ru   )r/   ZylabelZxlabel)r   rk   r   r#   r   rW   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)rT   rD   rD   rS   r   )Zxlim)r   r#   r_   rW   )r(   rk   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   rB   rJ   rR   rZ   rg   rl   rp   ry   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*  r,  r/  r0  r4  r5  r8  r&  Ztimedelta_rangeZ	Timedeltar:  r
   r
   r
   r   r   -   s   


'
	
!0? 



		


+

!



r   )!__doc__r   	itertoolsr   Znumpyr=   r}   Zpandas.util._test_decoratorsutilZ_test_decoratorsr@  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,   


