a
    <bt                     @   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                   @   sb  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[d\d] Z4ejd^d_d`gdadb Z5dcdd Z6dedf Z7ejdgg dhg difg djg dkfgdldm Z8dndo Z9ejdpg dqejd^g drdsdt Z:ejdue;j<dvdwdxdye;j=dzd{e;j=dwd{ggd|d} Z>d~S )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   q/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/site-packages/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   kindblackcolorZ
facecolors)subplots   r2   r2   )axes_numlayout)r2   )r1   r5   )r2   r6   )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figsizerB   r2   r3   )r4   r5   rG   )pltr1   r   r7   _check_text_labelsrF   r@   r   _rB   r   r   r   test_plot_figsize_and_titleQ   s    z+TestSeriesPlots.test_plot_figsize_and_titlec                 C   sJ   d}| j j| }| j  \}}tg dj|d || j j| ksFJ d S )Nzaxes.prop_cycler2         rB   )rH   rcParamsr1   r   r7   )r   keycolorsrK   rB   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sPJ ||d jddd d kspJ t  | jjd|d}| \}}| }||d jddd d ksJ ||d jddd d ksJ d S )NrP   r   Forigr6   Tsecondary_yrB   )	rH   r1   r
   r7   get_xlim	get_linesget_datar   close)r   figrB   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sTJ ||d ksdJ | j|dd t	
  | j  \}}| jjjdd|d}| \}}| d jddd }||d ksJ ||d ksJ | j|d	d t	
  | j }|d
d|_| j  \}}|jjdd|d}| \}}| d jddd }||d kshJ ||d kszJ | j|dd t	
  | j  \}}|jjdd|d}| \}}| d jddd }||d ksJ ||d ksJ | j|dd d S )NF)r#   rB   r   rU   r6   r   T)r#   Zx_compatrB      GMTZCET)r#   rX   rB   )rH   r1   r
   r7   r:   rY   rZ   r[   r8   r   r\   copyZtz_localizeZ
tz_convertindex)r   rK   rB   r^   r_   r$   Ztz_tsr   r   r   test_ts_area_limo   sB    
z TestSeriesPlots.test_ts_area_limc                 C   sr   | j jdddd\}\}}t| jj|dd t| jj|dd | |||sXJ | |||snJ d S )Nr2   rN   T)Zshareyr:   )rB   r,   )rH   r1   absr
   r7   Z
get_y_axisZjoined)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 u sJ |  | j|dgd d S )Nr2   rN   ZLABELT)r   legendrB   labelsrk   rB   NoneNAME)rk   r   rB   F)	r   rH   r1   r7   _check_legend_labelsr\   r   Z
get_legendrk   )r   srK   rB   r   r   r   
test_label   s.    



zTestSeriesPlots.test_labelc                 C   sZ   t g d}t|jdd d}tjt|d t|j W d    n1 sL0    Y  d S )N)FFTT)Zinclude_boolno numeric data to plotmatch)r   r   r7   pytestraises	TypeError)r   rr   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	g dt j
d	}tt |jd| t|jt 	g d
 t j	g dt j
d	}t|jdd}t|jd  | t|jj}t|jd  | t|jjdd}t|jd  | q2d S )Nr2   rN   rO      )kre   r   rM   Zdtype)FFTF)r2   rN   r   rO   Tr"   F)r;   nanr   r   ZmakeDateIndexr   r7   r`   	get_ydataarrayZfloat64assert_numpy_array_equaldeletedatamaskr:   )	r   valuesrr   r
   drB   Zmaskedexpexpectedr   r   r   test_line_area_nan_series   s$    
z)TestSeriesPlots.test_line_area_nan_seriesc                 C   s   t g dg dd}d|j_| j \}}|jd|d}| }|dksLJ | j \}}|jjd|d}| }|dks~J d S )NrM   abcr~   z	The IndexFr   rB    )r   re   r   rH   r1   r7   
get_xlabelr%   )r   rr   rK   rB   r   ri   label2r   r   r   test_line_use_index_false   s    z)TestSeriesPlots.test_line_use_index_falsec                 C   sp  t g d}| 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 g d}| j \}}tg djdd|d	}d
}d}| }t|d | t|d | t|j	
 | t  | j \}}tg djdd|d	}| }t|d | t|d | t|j
 | d S )N)皙?      ?      $@g      Y@g     @@g     @   i  T)r   rB   )gh㈵>g-C6?MbP?{Gz?r   r   r   )r   r   r   r%   )r   r,   rB   g!,NJ?gЄ-??r   r2   r&   )r;   r   rH   r1   r   r7   r%   r   r   r   get_ticklocsr\   r&   r    Zget_ylimZassert_almost_equalrY   )r   r   rK   rB   Zyminymaxresr   r   r   test_bar_log   s2    zTestSeriesPlots.test_bar_logc                 C   sJ   t g dg dd}| j \}}|jjd|d}| | g d d S )Nr2   rN   rO   r|   r   r   r   r   r~   Fr   )0123)r   rH   r1   r7   r%   rI   get_xticklabels)r   dfrK   rB   r   r   r   test_bar_ignore_index	  s    z%TestSeriesPlots.test_bar_ignore_indexc                 C   sF   t g d}|jjg dd}dd |jD }g d}||ksBJ d S )Nr   )redbluer   r   r.   c                 S   s   g | ]}|  qS r   )Zget_facecolor).0pr   r   r   
<listcomp>      z8TestSeriesPlots.test_bar_user_colors.<locals>.<listcomp>)r           r   r   r   r   r   r   r   r   )r   r7   r%   r?   )r   rr   rB   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*   rP   r   r   rb   )r   rB   )r   r;   r<   r=   rH   r1   r7   r8   )r   r   rK   rB   rA   r   r   r   test_rotation  s    zTestSeriesPlots.test_rotationc                 C   s   ddl m} tdd}|g d }ttjt||}| j	 \}}|j
|d}|tdddd	|}|d
d || d ksJ | j|dd d S )Nr   )DatetimeConverter1/1/2000z3/1/2000)	r   r2   rN   rO   r*   	   r!         rP   i  r2   r   z1/1/19991/1/2001rb   r   )Z%pandas.plotting._matplotlib.converterr   r   r   r;   r<   r=   lenrH   r1   r7   convertr   Zset_xlimrY   r8   )r   r   rngserrK   rB   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|J |t
|d
 j	ddd
 ksJ d S )Nr   r   g      @g      @g      @g      @g       @r~   rP   r   FrU   )r   r;   r   rH   r1   r7   rY   rZ   Znanminr[   Znanmax)r   r   rK   rB   r^   r_   r`   r   r   r   test_unsorted_index_xlim3  s    "z(TestSeriesPlots.test_unsorted_index_xlimc           	      C   s  t tjddg ddd}t|jj}| |j|j	 |
 dksHJ t|jjd d}| |jdgd  g d}t|jj|d	}g d
}| j|j|d g d}g d}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s2J q2t g dg dd}tjtdd |j  W d    n1 s0    Y  t ddtjdgg ddd}t|jj}| |jg d d S )Nr2   r*   )r   r   r   r   eZYLABELre   r   rl   r   )rgr   )rS   )r   r   r   r   r   r0   )ABCDE)r   r   r   r   m)rm   rS   z%.2f   )rS   ZautopctZfontsizec                 S   s   g | ]}|d  dqS )d   z.2fr   )r   rr   r   r   r   r   _  r   z3TestSeriesPlots.test_pie_series.<locals>.<listcomp>)r2   rN   r   r|   r6   r~   z&pie plot doesn't allow negative valuesru   rN   r|   r   )r   r   r   r   )r   r;   r<   randintr   r7   pierI   textsre   
get_ylabelr>   r?   r   sumlistr   from_iterablezipZget_fontsizerw   rx   
ValueErrorr   )	r   r   rB   Z
color_argsZcolor_expectedrm   ZpctsZexpected_textstr   r   r   test_pie_series?  s>    
*zTestSeriesPlots.test_pie_seriesc                 C   sX   t dtjddg}| j \}}|jjd|d}g d}dd |jD }||ksTJ d S )Nr2   Trn   )r   r   r   r   c                 S   s   g | ]}|  qS r   )Zget_text)r   xr   r   r   r   t  r   z0TestSeriesPlots.test_pie_nan.<locals>.<listcomp>)r   r;   r   rH   r1   r7   r   r   )r   rr   rK   rB   r   r   r   r   r   test_pie_nano  s    zTestSeriesPlots.test_pie_nanc                 C   sR  t tjddtdd}ttjddd}| j \}}|j|d}|jdd|d	 | j	|g d
d |
  szJ |j
  sJ t  | j \}}|j|d}|j|ddd | j	|g d
d |
  sJ |j
  sJ t  | j \}}|jd|d}|jdd|d	 g d}| j	|j|d |j
  rRJ |
  sdJ t  | j \}}|jd|d}|j|ddd g d}| 	|j| |j
  rJ |
  sJ t  | j \}}|jdd|d}|j|ddd g d
}| 	|j| |j
  r4J |
  sFJ t  d S )Nrb   rO   abc)columnsr   r   rP   T)rk   rX   rB   )r   r   r   	x (right)rl   )rB   rk   rX   rW   )z	a (right)z	b (right)z	c (right)r   F)rX   Z
mark_rightrB   )r   r;   r<   r=   r   r   rH   r1   r7   rq   Z	get_yaxisZget_visibleZright_axr   r\   Zleft_ax)r   r   rr   rK   rB   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sJJ | |ksZJ d S )Nrb   )r   T)rX   r   )r   r;   r<   r=   r7   Z
get_yscale)r   Z
input_logyZexpected_scales1s2rh   ri   r   r   r   test_secondary_logy  s    z#TestSeriesPlots.test_secondary_logyc                 C   sd   t tjd}| j \}}d}tjt|d  |j	dd|d W d    n1 sV0    Y  d S )NrN   zCannot pass 'style' string with a color symbol and 'color' keyword argument. Please use one or the other or pass 'style' without a color symbolru   zk--r}   )r   r/   rB   )
r   r;   r<   r=   rH   r1   rw   rx   r   r7   )r   r   rK   rB   rz   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   rB   r   r   ZDensity)r;   Zlinspacer   r
   r7   r'   int_ZdensityrH   r1   r9   rI   r   Z	get_label)r   Zsample_pointsrK   rB   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   sFJ d S )N2   )sizer   )r   r;   r<   uniformr   r   r7   r'   anyisnanr`   	get_xdata)r   rr   rA   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   rB   r   r   r   )rH   r1   r
   r7   r)   r9   r   rI   r   Zget_yticklabelsr   )r   rK   rB   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 )NrO   r,   rB   )r   rangeplottingPlotAccessor_common_kinds_series_kindsrH   r1   r7   r\   getattr)r   rr   kindsr,   rK   rB   r   r   r   test_kind_both_ways  s    
z#TestSeriesPlots.test_kind_both_waysc              	   C   sl   t td}| j \}}tjjD ]D}d}tjt	|d |j
||d W d    q"1 s\0    Y  q"d S )NZabcdrt   ru   r   )r   r   rH   r1   r   r   r   rw   rx   ry   r7   r   rr   rK   rB   r,   rz   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   r7   )r   rr   r,   r   r   r   test_valid_object_plot  s    z&TestSeriesPlots.test_valid_object_plotc              	   C   sl   t g d}| j \}}tjjD ]D}d}tjt|d |j	||d W d    q"1 s\0    Y  q"d S )N)r   r   r   rN   rt   ru   r   )
r   rH   r1   r   r   r   rw   rx   ry   r7   r   r   r   r    test_partially_invalid_plot_data
  s    z0TestSeriesPlots.test_partially_invalid_plot_datac                 C   sJ   t ddg}tjtdd |jdd W d    n1 s<0    Y  d S )Nr2   rN   z%invalid_kind is not a valid plot kindru   Zinvalid_kindr+   )r   rw   rx   r   r7   )r   rr   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   r7   )r   Zdr1Zdr2re   r   rr   r   r   r   test_dup_datetime_index_plot  s    
z,TestSeriesPlots.test_dup_datetime_index_plotc                 C   s   t tddd}tjdd}|j||d}tdd |jd  D }|j	t
d	dg | d	d }t|| d
t| d}tjt|d& |jtjddd W d    n1 s0    Y  t  d S )Nr!   r   r   rN   )yerrxerrc                 S   s   g | ]}|j d d df qS )Nr2   )Zverticesr   ir   r   r   r   '  r   z>TestSeriesPlots.test_errorbar_asymmetrical.<locals>.<listcomp>r2   r6   z?Asymmetrical error bars should be provided with the shape \(2, z\)ru   r   r  )r   r;   aranger<   Zrandr7   Zvstackcollections	get_pathsTr   Zto_numpyZreshaper   r   r   rw   rx   r   r\   )r   rr   errrB   r   r   rz   r   r   r   test_errorbar_asymmetrical   s    $4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 d    n1 s0    Y  dgd }tt |j|d W d    n1 s0    Y  d S )Nr!   r   r   rN   y)re   r   r$   r%   )r  r,   r   r2   )r  r  g?)r  r  r,   )r  r   r   M)freqr   r   r~   r  r   Zzzz)r   r;   r  r<   r=   r   re   r   r7   Z_check_has_errorbarstolistr   r   Zexternal_error_raisedr   ry   )r   rr   Zs_errZd_errr   r,   rB   ixr
   Zts_errZtd_errr   r   r   test_errorbar_plot4  s<    2
z"TestSeriesPlots.test_errorbar_plotc                 C   s&   t | jjdd t | jj| jd d S )NT)table)r   r   r7   r   r   r   r   
test_table]  s    zTestSeriesPlots.test_tablec                 C   s$   |  tg dtjjtjj  d S )NrM   )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.J |d|gd}||gksJJ |d|d}||gd kshJ |d|gd}||gd ksJ qd S )Nr   get_standard_colors)r   r   greenz#FF0000r2   r.   rO   )!pandas.plotting._matplotlib.styler  )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<J |d|gd}||gksXJ |d|d}||gd ksvJ |d|gd}||gd ksJ q|jjD ]x}|d|d}||gksJ |d|gd}||gksJ |d|d}||gd ksJ |d|gd}||gd ksJ qd S )Nr   r  r2   )Z
num_colorsr/   rO   )Zmatplotlib.colorsrS   r  r  ZcnamesZColorConverter)r   rS   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   r2   r  r/   rB   Z
linecolors)rH   r1   r   r;   r  r7   r>   rZ   rJ   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   r2   r   r   r~   r  r  r  )	rH   r1   r   r;   r  r   r7   r>   rZ   rJ   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   r2      r~   rO   rP   r  )r   Z_unpack_cyclerrQ   r   r   r;   r  rH   r1   r   r7   r>   rZ   )	r   r   Z
def_colorsre   rr   ZncolorsrK   rB   r  r   r   r   -test_time_series_plot_color_with_empty_kwargs  s    z=TestSeriesPlots.test_time_series_plot_color_with_empty_kwargsc                 C   sb   t tddd tdD d}| j \}}|jg d|d}dd dD }| | | d S )Nr!   c                 S   s   g | ]}d |dqS PZ02dr   r  r   r   r   r     r   z4TestSeriesPlots.test_xticklabels.<locals>.<listcomp>r~   )r   rO   r*   r   )xticksrB   c                 S   s   g | ]}d |dqS r$  r   r  r   r   r   r     r   )	r   r;   r  r   rH   r1   r7   rI   r   )r   rr   rK   rB   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     r   z6TestSeriesPlots.test_xtick_barPlot.<locals>.<listcomp>r~   r   r   rN   )r&  )
r   r   r7   r%   r;   r   r   r   r   Z
get_xticks)r   rr   rB   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   r7   )r   r)  rr   r   r   r   test_custom_business_day_freq  s    
	z-TestSeriesPlots.test_custom_business_day_freqzGH#24426)reasonc                 C   sj   t g d}| j \}}|j|d}|j }|jddgdd | j \}}|j }t|| d S )Nr   rP   r   r2   T)Zinplace)	r   rH   r1   r7   r    r   Zdropr   r   )r   r   rK   rB   beforeafterr   r   r   %test_plot_accessor_updates_on_inplace  s    

z5TestSeriesPlots.test_plot_accessor_updates_on_inplacer,   r$   r:   c                 C   sT   t ddg}| j \}}|j||d | }|d dk s@J |d dksPJ d S )NrN   rO   r   r   r2   )r   rH   r1   r7   rY   )r   r,   rr   rK   rB   xlimsr   r   r   test_plot_xlim_for_series  s    z)TestSeriesPlots.test_plot_xlim_for_seriesc                 C   sh   t td}|jsJ | }t| dks0J | d }t| dksPJ t| dksdJ d S )Nr   r2   r   )r   intemptyr7   r   rZ   r   r   )r   r   rB   r$   r   r   r   test_plot_no_rows  s    

z!TestSeriesPlots.test_plot_no_rowsc                 C   sF   t g d}tjtdd |  W d    n1 s80    Y  d S )Nr   rt   ru   )r   rw   rx   ry   r7   )r   r   r   r   r   test_plot_no_numeric_data  s    z)TestSeriesPlots.test_plot_no_numeric_datazdata, indexr   )rO   rN   r2   r   )r!   r   r   rb   )iv  i  i  i  c                 C   sL   t ||d}|jdd}| }dd t|jdd dD }||ksHJ d S )	N)r   re   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)r9  r_   )r:  r   r   r   <lambda>	  r   z1TestSeriesPlots.test_plot_order.<locals>.<lambda>)rR   )r   r7   r  sortedr?   )r   r   re   r   rB   r   r   r   r   r   test_plot_order  s    	zTestSeriesPlots.test_plot_orderc                 C   s4   t ddg}|jddd}|jd  dks0J d S )Nr2   rN   rr   ZC3)r   r/   r   )r   r7   r`   Z	get_color)r   rr   rB   r   r   r   test_style_single_ok  s    z$TestSeriesPlots.test_style_single_okz index_name, old_label, new_label))Nr   new)oldr@  r?  )Nr   r   )r$   r:   r%   c                 C   st   t g d}||j_|j|d}| dks0J | |ks@J |j|||d}| |ks`J | |kspJ d S )Nr   r+   r   )r,   ZylabelZxlabel)r   re   r   r7   r   r   )r   r,   Z
index_nameZ	old_labelZ	new_labelr   rB   r   r   r   test_xlabel_ylabel_series  s    z)TestSeriesPlots.test_xlabel_ylabel_seriesre   r   rN   r   )r+  r   r  r2   )daysc                 C   s0   d}t ddg|dj|d}| dks,J d S )N)rO   r2   r2   rN   r~   )Zxlim)r   r7   rY   )r   re   r3  rB   r   r   r   test_timedelta_index&  s    	z$TestSeriesPlots.test_timedelta_indexN)?__name__
__module____qualname__r   rC   rL   rT   ra   rf   rj   rs   r{   r   r   r   r   r   r   r   r   r   r   r   rw   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xfailr2  r4  r7  r8  r=  r>  rA  r-  Ztimedelta_rangeZ	TimedeltarC  r   r   r   r   r	      s   #'
	!0?


			)!



r	   )__doc__r   	itertoolsr   Znumpyr;   rw   Zpandas.util._test_decoratorsutilZ_test_decoratorsrH  Zpandasr-  r   r   r   Zpandas._testingZ_testingr   Zpandas.tests.plotting.commonr   r   Zpandas.plottingr   rG  ZslowZ
pytestmarkZskip_if_no_mplr	   r   r   r   r   <module>   s   