U
    f/et                     @   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 ejj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_worksc                	   @   sp  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zd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*d+gd,d- Zd.d/ Zejd0d1 Zejd2d3 Zd4d5 Z d6d7 Z!d8d9 Z"d:d; Z#d<d= Z$d>d? Z%d@dA Z&dBdC Z'dDdE Z(dFdG Z)dHdI Z*dJdK Z+dLdM Z,dNdO Z-dPdQ Z.dRdS Z/dTdU Z0dVdW Z1dXdY Z2ejj3dZd[ Z4ejd\d]d^gd_d` Z5dadb Z6dcdd Z7ejdedfdgdhdigdhdgdfdjgfdkdldmdngdodpdqdrgfgdsdt Z8dudv Z9ejdwdxdydzgejd\d]d^d{gd|d} Z:ejd~e;j<djdgdde;j=dfde;j=dgdggdd Z>dS )TestSeriesPlotsc                 C   sV   t | | dd l}|  t | _d| j_t | _	d| j	_t
 | _d| j_d S )Nr   tsseriesiseries)r   setup_method
matplotlibZ
rcdefaultstmZmakeTimeSeriesr
   nameZmakeStringSeriesr   ZmakePeriodSeriesr   )selfmethodmpl r   E/tmp/pip-unpacked-wheel-tiezk1ph/pandas/tests/plotting/test_series.pyr      s    


zTestSeriesPlots.setup_methodc                 C   s  t | jjdd t | jjdd t | jjdd}| j|dd t | jjdd	d
}| j|dd t | jjdd	d}| j|dd t | jjdd	d}| j|ddd t | jd d jj t | jjjdd t | jj dD ]}t | jd d j|d qt | jd d jj	 t t
tjdjjdd}| j|jd gdgd t | jjd	d}| j|ddd t | jjd	dd}| j|ddd t | jjd	dd}| j|d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)linebarbarhkdehistbox   kindZblackcolorZ
facecolors)subplots   r1   r1   )axes_numlayout)r1   )r0   r4   )r1   r5   )r   r
   plot_check_ticks_props_check_ax_scalesr%   arear   r   r&   r   nprandomrandn_check_colorspatches_check_axes_shape)r   axesaxr,   r   r   r   	test_plot.   s0    zTestSeriesPlots.test_plotc                 C   sD   | j  \}}| jjdd|d}| |jd | j|dddd d S )NZTest)      )titlefigsizerA   r1   r2   )r3   r4   rF   )pltr0   r   r6   _check_text_labelsrE   r?   r   _rA   r   r   r   test_plot_figsize_and_titleQ   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_cycler1         rA   )rG   rcParamsr0   r   r6   AssertionError)r   keycolorsrJ   rA   r   r   r   test_dont_modify_rcParamsX   s
    z)TestSeriesPlots.test_dont_modify_rcParamsc                 C   s   | j  \}}| jj|d}| \}}| }||d jddd d ksPt||d jddd d ksptt	  | jjd|d}| \}}| }||d jddd d kst||d jddd d kstd S )NrN   r   Forigr5   Tsecondary_yrA   )
rG   r0   r
   r6   get_xlim	get_linesget_datarP   r   close)r   figrA   xminxmaxlinesr   r   r   test_ts_line_lim`   s       z TestSeriesPlots.test_ts_line_limc                 C   s
  | j  \}}| jjjd|d}| \}}| d jddd }||d ksTt||d ksdt| j	|dd t
  | j  \}}| jjjdd|d}| \}}| d jddd }||d kst||d kst| j	|d	d t
  | j }|d
d|_| j  \}}|jjdd|d}| \}}| d jddd }||d ksht||d kszt| 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#   rA   r   rT   r5   r   T)r#   Zx_compatrA      GMTZCET)r#   rW   rA   )rG   r0   r
   r6   r9   rX   rY   rZ   rP   r7   r   r[   copyZtz_localizeZ
tz_convertindex)r   rJ   rA   r]   r^   r$   Ztz_tsr   r   r   test_ts_area_limo   sB    
z TestSeriesPlots.test_ts_area_limc                 C   sj   | j jdddd\}\}}t| jj|dd t| jj|dd |j||sTt|j||sftd S )Nr1   rL   T)Zshareyr9   )rA   r,   )rG   r0   absr
   r6   Z_shared_y_axesZjoinedrP   )r   r\   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 )Nr1   rL   ZLABELT)r   legendrA   labelsrj   rA   NoneNAME)rj   r   rA   F)
r   rG   r0   r6   _check_legend_labelsr[   r   Z
get_legendrP   rj   )r   srJ   rA   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   r6   pytestraises	TypeError)r   rq   msgr   r   r   test_boolean   s
    zTestSeriesPlots.test_booleanc           	   
   C   s   ddt jdg}t|}t|tjddd}||f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  | q2d S )Nr1   rL   rM      )krd   r   ZdtypeFTr"   )r:   nanr   r   ZmakeDateIndexr   r6   r_   	get_ydataarrayZfloat64assert_numpy_array_equaldeletedatamaskr9   )	r   valuesrq   r
   drA   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 )Nr1   rL   rM   abcr}   z	The IndexFr   rA    )	r   rd   r   rG   r0   r6   
get_xlabelrP   r%   )r   rq   rJ   rA   r   rh   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   rA   gh㈵>g-C6?gMbP?g{Gz?r%   )r   r,   rA   g!,NJ?gЄ-??r   r1   r&   )r:   r   rG   r0   r   r6   r%   r   r   r   get_ticklocsr[   r&   r    Zget_ylimZassert_almost_equalrX   )r   r   rJ   rA   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 )Nr1   rL   rM   r{   r   r   r   r   r}   Fr   0123)r   rG   r0   r6   r%   rH   get_xticklabels)r   dfrJ   rA   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 )Nr1   rL   rM   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   r6   r%   r>   rP   )r   rq   rA   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 )Nr*   rN   r   r   ra   )r   rA   )r   r:   r;   r<   rG   r0   r6   r7   )r   r   rJ   rA   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/2000r1   rL   rM   r*   	   r!         rN   i  r   z1/1/19991/1/2001ra   r   )Z%pandas.plotting._matplotlib.converterr   r   r   r:   r;   r<   lenrG   r0   r6   convertr   Zset_xlimrX   rP   r7   )r   r   rngserrJ   rA   Zxpr   r   r   test_irregular_datetime&  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}   rN   r   FrT   )r   r:   r   rG   r0   r6   rX   rY   ZnanminrZ   rP   Znanmax)r   r   rJ   rA   r]   r^   r_   r   r   r   test_unsorted_index_xlim3  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 )#Nr1   r*   r   r   r   r   eZYLABELrd   r   rk   r   rg)rR   r/   ABCDEm)rl   rR   z%.2f   )rR   ZautopctZfontsizec                 S   s   g | ]}|d  dqS )d   z.2fr   )r   rq   r   r   r   r   _  s     z3TestSeriesPlots.test_pie_series.<locals>.<listcomp>rL   r   r{   r5   r}   z&pie plot doesn't allow negative valuesrt   )r   r:   r;   randintr   r6   pierH   textsrd   
get_ylabelrP   r=   r>   r   sumlistr   from_iterablezipZget_fontsizerv   rw   
ValueErrorr   )	r   r   rA   Z
color_argsZcolor_expectedrl   ZpctsZexpected_textstr   r   r   test_pie_series?  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 )
Nr1   Trm   r   r   r   r   c                 S   s   g | ]}|  qS r   )Zget_text)r   xr   r   r   r   t  s     z0TestSeriesPlots.test_pie_nan.<locals>.<listcomp>)	r   r:   r   rG   r0   r6   r   r   rP   )r   rq   rJ   rA   r   r   r   r   r   test_pie_nano  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 )Nra   rM   abc)columnsr   r   rN   T)rj   rW   rA   r   r   r   z	x (right)rk   )rA   rj   rW   rV   z	a (right)z	b (right)z	c (right)F)rW   Z
mark_rightrA   )r   r:   r;   r<   r   r   rG   r0   r6   rp   Z	get_yaxisZget_visiblerP   Zright_axr   r[   Zleft_ax)r   r   rq   rJ   rA   r   r   r   r   test_df_series_secondary_legendw  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 )Nra   )r   T)rW   r   )r   r:   r;   r<   r6   Z
get_yscalerP   )r   Z
input_logyZexpected_scales1s2rg   rh   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 )NrL   zCannot pass 'style' string with a color symbol and 'color' keyword argument. Please use one or the other or pass 'style' without a color symbolrt   zk--r|   )r   r.   rA   )
r   r:   r;   r<   rG   r0   rv   rw   r   r6   )r   r   rJ   rA   ry   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jddd t| jjjd dd t| jjjd t dd t| jjjd|d t| jjjd|d | j	 \}}| jjjdd||d}| j
|d	d
 | |j d d S )Nir      Zscott)	bw_methodindg      ?T)r   r   r   rA   r   r   ZDensity)r:   Zlinspacer   r
   r6   r'   int_ZdensityrG   r0   r8   rH   r   Z	get_label)r   Zsample_pointsrJ   rA   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   r6   r'   anyisnanr_   	get_xdatarP   )r   rq   r@   r   r   r   test_kde_missing_vals  s    
z%TestSeriesPlots.test_kde_missing_valsc                 C   sj   | j  \}}| jjjd|d}| j|dd | }| || jjg |	 }| |dgt
|  d S )NT)r   rA   r   r   r   )rG   r0   r
   r6   r)   r8   r   rH   r   Zget_yticklabelsr   )r   rJ   rA   ZxlabelsZylabelsr   r   r   test_boxplot_series  s    z#TestSeriesPlots.test_boxplot_seriesc                 C   sv   t td}tjjtjj }|D ]P}| j \}}|j||d | j	  | j \}}t
|j|  | j	  q d S )NrM   r,   rA   )r   rangeplottingPlotAccessor_common_kinds_series_kindsrG   r0   r6   r[   getattr)r   rq   kindsr,   rJ   rA   r   r   r   test_kind_both_ways  s    
z#TestSeriesPlots.test_kind_both_waysc              
   C   sX   t td}| j \}}tjjD ]0}d}tjt	|d |j
||d W 5 Q R X q"d S )NZabcdrs   rt   r   )r   r   rG   r0   r   r   r   rv   rw   rx   r6   r   rq   rJ   rA   r,   ry   r   r   r   test_invalid_plot_data  s    z&TestSeriesPlots.test_invalid_plot_datac                 C   s0   t tdtd}tjjD ]}t|j|d qd S )Nr!   r~   r+   )r   r   objectr   r   r   r   r6   )r   rq   r,   r   r   r   test_valid_object_plot  s    z&TestSeriesPlots.test_valid_object_plotc              
   C   s\   t ddddg}| j \}}tjjD ]0}d}tjt|d |j	||d W 5 Q R X q&d S )Nr   r   r   rL   rs   rt   r   )
r   rG   r0   r   r   r   rv   rw   rx   r6   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 )Nr1   rL   z%invalid_kind is not a valid plot kindrt   Zinvalid_kindr+   )r   rv   rw   r   r6   )r   rq   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   r6   )r   Zdr1Zdr2rd   r   rq   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   rL   )yerrxerrc                 S   s   g | ]}|j d d df qS )Nr1   )Zverticesr   ir   r   r   r   '  s     z>TestSeriesPlots.test_errorbar_asymmetrical.<locals>.<listcomp>r1   r5   z?Asymmetrical error bars should be provided with the shape \(2, z\)rt   r   r   )r   r:   aranger;   Zrandr6   Zvstackcollections	get_pathsTr   Zto_numpyZreshaper   r   r   rv   rw   r   r[   )r   rq   errrA   r   r   ry   r   r   r   test_errorbar_asymmetrical   s    $ z*TestSeriesPlots.test_errorbar_asymmetricalc              	   C   s  t tddd}tjd}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 qHt|j|d}| j	|dd
d tdddd}t td|dd}t tjd|d}	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   rL   y)rd   r   r$   r%   )r   r,   r   r1   )r   r   g?)r   r   r,   )r   r   r   M)freqr   r   r}   r   r   Zzzz)r   r:   r   r;   r<   r   rd   r   r6   Z_check_has_errorbarstolistr   r   Zexternal_error_raisedr   rx   )r   rq   Zs_errZd_errr   r,   rA   ixr
   Zts_errZtd_errr   r   r   test_errorbar_plot4  s<    
z"TestSeriesPlots.test_errorbar_plotc                 C   s&   t | jjdd t | jj| jd d S )NT)table)r   r   r6   r   r   r   r   
test_table]  s    zTestSeriesPlots.test_tablec                 C   s&   |  tdddgtjjtjj  d S )Nr1   rL   rM   )Z_check_grid_settingsr   r   r   r   r   r  r   r   r   test_series_grid_settingsa  s    z)TestSeriesPlots.test_series_grid_settingsc                 C   s   ddl m} dD ]x}|d|d}||gks.t|d|gd}||gksJt|d|d}||gd ksht|d|gd}||gd kstqd S )Nr   get_standard_colors)r   r   greenz#FF0000r1   r-   rM   )!pandas.plotting._matplotlib.styler  rP   )r   r  r   r   r   r   r   test_standard_colorsh  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  r1   )Z
num_colorsr.   rM   )Zmatplotlib.colorsrR   r  r  ZcnamesrP   ZColorConverter)r   rR   r  r   r   r   r   r   test_standard_colors_allx  s(    
z(TestSeriesPlots.test_standard_colors_allc                 C   sB   | j  \}}ttdd jd|d}| j| dgd d S )Nr   r1   r  r.   rA   Z
linecolors)rG   r0   r   r:   r   r6   r=   rY   rI   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   r1   r   r   r}   r  r  r  )	rG   r0   r   r:   r   r   r6   r=   rY   rI   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   r1      r}   rM   rN   r  )r   Z_unpack_cyclerrO   r   r   r:   r   rG   r0   r   r6   r=   rY   )	r   r   Z
def_colorsrd   rq   ZncolorsrJ   rA   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   rM   r*   r   )xticksrA   c                 S   s   g | ]}d |dqS r  r   r   r   r   r   r     s     )r   rM   r*   r   )	r   r:   r   r   rG   r0   r6   rH   r   )r   rq   rJ   rA   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   rL   )r  )
r   r   r6   r%   r:   r   r   r   r   Z
get_xticks)r   rq   rA   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   r6   )r   r  rq   r   r   r   test_custom_business_day_freq  s    
	z-TestSeriesPlots.test_custom_business_day_freqc                 C   sn   t ddddg}| j \}}|j|d}|j }|jddgdd | j \}}|j }t|| d S )	Nr1   rL   rM   r{   rN   r   T)Zinplace)	r   rG   r0   r6   r    r   Zdropr   r   )r   rq   rJ   rA   beforeafterr   r   r   %test_plot_accessor_updates_on_inplace  s    

z5TestSeriesPlots.test_plot_accessor_updates_on_inplacer,   r$   r9   c                 C   sT   t ddg}| j \}}|j||d | }|d dk s@t|d dksPtd S )NrL   rM   r   r   r1   )r   rG   r0   r6   rX   rP   )r   r,   rq   rJ   rA   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~   r1   r   )	r   intemptyrP   r6   r   rY   r   r   )r   r   rA   r$   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   rs   rt   )r   rv   rw   rx   r6   )r   r   r   r   r   test_plot_no_numeric_data  s    z)TestSeriesPlots.test_plot_no_numeric_datazdata, indexr1   rL   rM   r{   r   r!   r   r   ra   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   rd   r%   r+   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 )N)r+  r^   )r,  r   r   r   <lambda>	      z1TestSeriesPlots.test_plot_order.<locals>.<lambda>)rQ   )r   r6   r  sortedr>   rP   )r   r   rd   r   rA   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 )Nr1   rL   rq   ZC3)r   r.   r   )r   r6   r_   Z	get_colorrP   )r   rq   rA   r   r   r   test_style_single_ok  s    z$TestSeriesPlots.test_style_single_okz index_name, old_label, new_label)Nr   new)oldr3  r2  )Nr   r   r%   c                 C   sx   t ddddg}||j_|j|d}| dks4t| |ksDt|j|||d}| |ksdt| |ksttd S )Nr1   rL   rM   r{   r+   r   )r,   ZylabelZxlabel)r   rd   r   r6   r   rP   r   )r   r,   Z
index_nameZ	old_labelZ	new_labelr   rA   r   r   r   test_xlabel_ylabel_series  s    z)TestSeriesPlots.test_xlabel_ylabel_seriesrd   r   )r  r   r  )daysc                 C   s0   d}t ddg|dj|d}| dks,td S )N)rM   r1   r1   rL   r}   )Zxlim)r   r6   rX   rP   )r   rd   r%  rA   r   r   r   test_timedelta_index&  s    	z$TestSeriesPlots.test_timedelta_indexN)?__name__
__module____qualname__r   rB   rK   rS   r`   re   ri   rr   rz   r   r   r   r   r   r   r   r   r   r   r   rv   markZparametrizer   r   tdZskip_if_no_scipyr   r   r   r   r   r   r   r   r   r   r  r	  r
  r  r  r  r  r  r  r  r!  Zxfailr$  r&  r)  r*  r0  r1  r4  r   Ztimedelta_rangeZ	Timedeltar6  r   r   r   r   r	      s   #'
	!0? 


			)!



r	   )__doc__r   	itertoolsr   Znumpyr:   rv   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   r:  ZslowZ
pytestmarkZskip_if_no_mplr	   r   r   r   r   <module>   s   