a
    j=icv                     @   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y   dd	 ZY n0 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
   r/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/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                
   @   sh  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`g dadbdc Z9ddde Z:dfdg Z;dhdi Z<djdk Z=dldm Z>dndo Z?dpdq Z@ejj(drdIdsdt ZAejdddugdvdw ZBdxdy ZCdzd{ ZDejd|g d}g d~fg dg dfgdd ZEdd ZFejdg dejdg d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    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   sJ   d}| j j| }| j  \}}tg dj|d || j j| ksFJ d S )Nzaxes.prop_cyclerE         r*   )rP   rcParamsrD   r   r#   )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sNJ ||d jddd d ksnJ t  |jd|d}| \}}| }||d jddd d ksJ ||d jddd d ksJ d S )NrW   r   ForigrI   Tsecondary_yr*   )rP   rD   r#   get_xlim	get_linesget_datar   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sRJ ||d ksbJ | j|dd t	  | j  \}}|jjdd|d}| \}}| d jddd }||d ksJ ||d ksJ | j|d	d t	  |
 }|d
d|_| j  \}}|jjdd|d}| \}}| d jddd }||d ksbJ ||d kstJ | 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"   r*   r   r\   rI   r   T)r"   Zx_compatr*      GMTZCET)r"   r_   r*   )rP   rD   r#   r'   r`   ra   rb   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 | |||sTJ | |||sjJ d S )NrE   rU   T)Zshareyr'   )r*   r/   )rP   rD   absr#   Z
get_y_axisZjoined)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 u sJ |  | j|dgd d S )NrE   rU   ZLABELT)r   legendr*   labelsrr   r*    NAME)rr   r   r*   F)	r   rP   rD   r#   _check_legend_labelsrc   r   Z
get_legendrr   )r(   srR   r*   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   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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  | d S )NrE   rU   rV   rl   r   rT   Zdtype)FFTF)rE   rU   r   rV   Tr!   F)r>   nanr   r   r#   rg   	get_ydataarray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 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 )NrT   abcr   z	The IndexFr   r*   rv   )r   rl   r   rP   rD   r#   
get_xlabelr&   )r(   ry   rR   r*   r   rp   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   r*   )gh㈵>g-C6?MbP?{Gz?r   r   r   )r   r   r   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   sJ   t g dg dd}| j \}}|jjd|d}| | g d d S )NrE   rU   rV   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   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>!  r   z8TestSeriesPlots.test_bar_user_colors.<locals>.<listcomp>)r           r   r   r   r   r   r   r   r   )r   r#   r&   rB   )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   rW   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}|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   rE   rU   rV   r5   	   r          rW   i  rE   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`   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|J |t
|d
 j	ddd
 ksJ d S )Nr   r   g      @g      @g      @g      @g       @r   rW   r   Fr\   )r   r>   r   rP   rD   r#   r`   ra   Znanminrb   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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 )NrE   r5   )r   r   r   r   eZYLABELrl   r   rs   rv   )rgr   )rZ   )r   r   r   r   r   r=   )ABCDE)r   r   r   r   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  r   z3TestSeriesPlots.test_pie_series.<locals>.<listcomp>)rE   rU   r   r   rI   r   z&pie plot doesn't allow negative valuesr|   rU   r   r   )r   r   rv   r   )r   r>   r?   randintr   r#   pierQ   textsrl   
get_ylabelrA   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  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 )NrE   Tru   )r   rv   r   r   c                 S   s   g | ]}|  qS r
   )Zget_text)r   xr
   r
   r   r     r   z0TestSeriesPlots.test_pie_nan.<locals>.<listcomp>)r   r>   r   rP   rD   r#   r   r   )r(   ry   rR   r*   r   r   r
   r
   r   test_pie_nan~  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 )Nri   rV   abc)columnsr   r   rW   T)rr   r_   r*   )r   r   r   	x (right)rs   )r*   rr   r_   r^   )z	a (right)z	b (right)z	c (right)r   F)r_   Z
mark_rightr*   )r   r>   r?   r@   r   r   rP   rD   r#   rx   Z	get_yaxisZget_visibleZ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sJJ | |ksZJ d S )Nri   )r   T)r_   r   )r   r>   r?   r@   r#   Z
get_yscale)r(   Z
input_logyZexpected_scales1s2ro   rp   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 )NrU   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 )Nir      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   sFJ d S )N2   )sizer   )r   r>   r?   uniformr   r   r#   r2   anyisnanrg   	get_xdata)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 )NrV   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   s^   t td}| j \}}d}tjt|d |j||d W d    n1 sP0    Y  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   s^   t g d}| j \}}d}tjt|d |j||d W d    n1 sP0    Y  d S )N)r   r   r   rU   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   sJ   t ddg}tjtdd |jdd W d    n1 s<0    Y  d S )NrE   rU   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 d    n1 s0    Y  t  d S )Nr    r   r   rU   )yerrxerrc                 S   s   g | ]}|j d d df qS )NrE   )Zverticesr   ir
   r
   r   r   7  r   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    $4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 d    n1 s0    Y  dgd }tt |j	|d W d    n1 s20    Y  d S )Nr    r   r   rU   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  s@    "2
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g dtjjtjj  d S )NrT   )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&J |d|gd}||gksBJ |d|d}||gd ks`J |d|gd}||gd ksJ d S )Nr   get_standard_colorsrE   r;   rV   )!pandas.plotting._matplotlib.styler   )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<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  rE   )Z
num_colorsr<   rV   )Zmatplotlib.colorsrZ   r!  r   ZcnamesZ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   rV   rW   r%  )Z
matplotlibZ_unpack_cyclerrX   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   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 P02dr
   r  r
   r
   r   r     r   z4TestSeriesPlots.test_xticklabels.<locals>.<listcomp>r   )r   rV   r5   r   )xticksr*   c                 S   s   g | ]}d |dqS r+  r
   r  r
   r
   r   r     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     r   z6TestSeriesPlots.test_xtick_barPlot.<locals>.<listcomp>r   r   r   rU   )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.offsetsr1  r   r   pdZbdate_ranger   r#   )r(   r1  ry   r
   r
   r   test_custom_business_day_freq  s    
	z-TestSeriesPlots.test_custom_business_day_freqzGH#24426c                 C   sj   t g d}| j \}}|j|d}|j }|jddgdd | j \}}|j }t|| d S )Nr   rW   r   rE   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@J |d dksPJ d S )NrU   rV   r   r   rE   )r   rP   rD   r#   r`   )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J | }t| dks0J | d }t| dksPJ t| dksdJ d S )Nr   rE   r   )r   intemptyr#   r   ra   r   r   )r(   r   r*   r0   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   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, indexr   )rV   rU   rE   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sHJ 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,   )r@  rf   )rA  r
   r
   r   r     r   z1TestSeriesPlots.test_plot_order.<locals>.<lambda>)rY   )r   r#   r  sortedrB   )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s0J d S )NrE   rU   ry   ZC3)r   r<   r   )r   r#   rg   	get_color)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)oldrG  rF  )Nrv   rv   )r0   r'   r&   r1   c                 C   s   t g d}||j_|j|d}|dkrJ| dks8J | |ksjJ n | dksZJ | |ksjJ |j|||d}| |ksJ | |ksJ d S )Nr   r6   r1   rv   )r/   ZylabelZxlabel)r   rl   r   r#   r   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   rU   r   )r3  r  r  rE   )daysc                 C   s0   d}t ddg|dj|d}| dks,J d S )N)rV   rE   rE   rU   r   )Zxlim)r   r#   r`   )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/  r0  r6  r9  r;  r>  r?  rC  rE  rH  r5  Ztimedelta_rangeZ	TimedeltarJ  r
   r
   r
   r   r   -   s   


'
	
!0?



		


+

!



r   )!__doc__r   	itertoolsr   numpyr>   r~   Zpandas.util._test_decoratorsutilZ_test_decoratorsrP  Zpandasr5  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,   


