o
    iv                     @   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yV   dd	 ZY nw 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
   \/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/pandas/tests/plotting/test_series.py<lambda>   s    r   c                   C      t jddS )Ntsname)tmmakeTimeSeriesr
   r
   r
   r   r         r   c                   C   r   )Nseriesr   )r   makeStringSeriesr
   r
   r
   r   r   #   r   r   c                   C   r   )Niseriesr   )r   makePeriodSeriesr
   r
   r
   r   r   (   r   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 )Nfoo)labelF)	use_indexr   )rotxrot.T)stylelogylogyaxis)r    logx)xaxis)r    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+   )r0   r   r
   r
   r   test_plot_iseriesB   s   z!TestSeriesPlots.test_plot_iserieskindliner.   barhkde)markshistboxc                 C   s   t |d d j|d d S )N   r7   r5   )r0   r   r7   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+   r9   r0   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   
facecolors)	r   r   nprandomrandnr+   r.   _check_colorspatches)r0   r2   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   rO   rO   )axes_numlayout)rO   )rN   rR   )rO   rS   )r   r+   _check_axes_shape)r0   r   r2   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 )NTest)      )titlefigsizer2   rO   rP   )rQ   rR   rZ   )pltrN   r+   _check_text_labelsrY   rT   )r0   r   _r2   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s#J d S )Nzaxes.prop_cyclerO         r2   )r[   rcParamsrN   r   r+   )r0   keycolorsr]   r2   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s'J ||d jddd d ks7J t  |jd|d}| \}}| }||d jddd d ks\J ||d jddd d kslJ d S )Nrb   r   ForigrS   Tsecondary_yr2   )r[   rN   r+   get_xlim	get_linesget_datar   close)r0   r   figr2   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s)J ||d ks1J | j|dd t	  | j  \}}|jjdd|d}| \}}| d jddd }||d ksfJ ||d ksnJ | j|d	d t	  |
 }|d
d|_| j  \}}|jjdd|d}| \}}| d jddd }||d ksJ ||d ksJ | 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*   r2   r   rg   rS   r   T)r*   x_compatr2      GMTCET)r*   rj   r2   )r[   rN   r+   r/   rk   rl   rm   r,   r   rn   copytz_localize
tz_convertindex)r0   r   r]   r2   rp   rq   r8   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 | |||s*J | |||s5J d S )NrO   r`   T)shareyr/   )r2   r7   )r[   rN   absr+   
get_y_axisjoined)r0   r   ro   ax1ax2r
   r
   r   test_area_sharey_dont_overwrite   s
   z/TestSeriesPlots.test_area_sharey_dont_overwritec                 C   s8  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 sJ |  | j|dgd d S )NrO   r`   LABELT)r   legendr2   labelsr   r2    NAME)r   r   r2   F)	r   r[   rN   r+   _check_legend_labelsrn   r   
get_legendr   )r0   sr]   r2   r
   r
   r   
test_label   s.   



zTestSeriesPlots.test_labelc                 C   s\   t g d}t|jdd d}tjt|d t|j W d    d S 1 s'w   Y  d S )N)FFTT)include_boolno numeric data to plotmatch)r   r   r+   pytestraises	TypeError)r0   r   msgr
   r
   r   test_boolean   s   "zTestSeriesPlots.test_booleanr{   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 )NrO   r`   ra   r{   r   r_   dtype)FFTF)rO   r`   r   ra   Tr)   F)rH   nanr   r   r+   rr   	get_ydataarrayfloat64r   assert_numpy_array_equaldeletedatamaskr/   )r0   r{   valuesdr2   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s&J | j \}}|jjd|d}| }|dks?J d S )Nr_   abcr   z	The IndexFr   r2   r   )r   r{   r   r[   rN   r+   
get_xlabelr.   )r0   r   r]   r2   r   r   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"   r2   )gh㈵>g-C6?MbP?{Gz?r   r   r   )r   r   r   r.   )r"   r7   r2   g!,NJ?gЄ-??r   rO   r9   )rH   r   r[   rN   r   r+   r.   r   r   r$   get_ticklocsrn   r9   r&   get_ylimassert_almost_equalrk   )r0   r   r]   r2   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rO   r`   ra   r   r   r   r   r   r   Fr   )0123)r   r[   rN   r+   r.   r\   get_xticklabels)r0   dfr]   r2   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s!J d S )Nr   )redbluer   r   rD   c                 S      g | ]}|  qS r
   )get_facecolor).0pr
   r
   r   
<listcomp>!      z8TestSeriesPlots.test_bar_user_colors.<locals>.<listcomp>)r           r   r   r   r   r   r   r   r   )r   r+   r.   rL   )r0   r   r2   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>   rb   r   r   ru   )r   r2   )r   rH   rI   rJ   r[   rN   r+   r,   )r0   r   r]   r2   r1   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sDJ | j|dd d S )Nr   )DatetimeConverter1/1/2000z3/1/2000)	r   rO   r`   ra   r>   	   r(         rb   i  rO   r   z1/1/19991/1/2001ru   r   )%pandas.plotting._matplotlib.converterr   r   r   rH   rI   rJ   lenr[   rN   r+   convertr   set_xlimrk   r,   )r0   r   rngserr]   r2   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sOJ d S )Nr   r   g      @g      @g      @g      @g       @r   rb   r   Frg   )r   rH   r   r[   rN   r+   rk   rl   nanminrm   nanmax)r0   r   r]   r2   rp   rq   rr   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s$J 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sJ qt g dg dd}tjtdd |j  W d    n1 sw   Y  t ddtjdgg ddd}t|jj}| |jg d d S )NrO   r>   )r   r   r   r   eYLABELr{   r   r   r   )rgr   )re   )r   r   r   r   r   rF   )ABCDE)r   r   r   r   m)r   re   z%.2f   )re   autopctfontsizec                 S   s   g | ]}|d  dqS )d   z.2fr
   )r   r   r
   r
   r   r   n      z3TestSeriesPlots.test_pie_series.<locals>.<listcomp>)rO   r`   r   r   rS   r   z&pie plot doesn't allow negative valuesr   r`   r   r   )r   r   r   r   )r   rH   rI   randintr   r+   pier\   textsr{   
get_ylabelrK   rL   r   sumlistr   from_iterablezipget_fontsizer   r   
ValueErrorr   )	r0   r   r2   
color_argscolor_expectedr   pcts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s*J d S )NrO   Tr   )r   r   r   r   c                 S   r   r
   )get_text)r   xr
   r
   r   r     r   z0TestSeriesPlots.test_pie_nan.<locals>.<listcomp>)r   rH   r   r[   rN   r+   r   r   )r0   r   r]   r2   r   r   r
   r
   r   test_pie_nan~  s   zTestSeriesPlots.test_pie_nanc                 C   sJ  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 |
  s=J |j
  sFJ t  | j \}}|j|d}|j|ddd | j	|g d
d |
  spJ |j
  syJ t  | j \}}|jd|d}|jdd|d	 g d}| j	|j|d |j
  rJ |
  sJ 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
  rJ |
  sJ t  d S )Nru   ra   abc)columnsr
  r   rb   T)r   rj   r2   )r   r   r   	x (right)r   )r2   r   rj   ri   )z	a (right)z	b (right)z	c (right)r  F)rj   
mark_rightr2   )r   rH   rI   rJ   r   r   r[   rN   r+   r   	get_yaxisget_visibleright_axr   rn   left_ax)r0   r   r   r]   r2   r   r
   r
   r   test_df_series_secondary_legend  sP   z/TestSeriesPlots.test_df_series_secondary_legendzinput_logy, expected_scale)Tr"   )symsymlogc                 C   s^   t tjd}t tjd}|j|d}|jd|d}| |ks%J | |ks-J d S )Nru   )r!   T)rj   r!   )r   rH   rI   rJ   r+   
get_yscale)r0   
input_logyexpected_scales1s2r   r   r
   r
   r   test_secondary_logy  s   z#TestSeriesPlots.test_secondary_logyc                 C   sf   t tjd}| j \}}d}tjt|d |j	dd|d W d    d S 1 s,w   Y  d S )Nr`   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    rE   r2   )
r   rH   rI   rJ   r[   rN   r   r   r  r+   )r0   r
  r]   r2   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      scott)	bw_methodindg      ?T)r!   r   r!  r2   r"   r#   Density)rH   linspacer   r+   r:   int_densityr[   rN   r-   r\   r$   	get_label)r0   r   sample_pointsr]   r2   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   s#J d S )N2   )sizer   )r   rH   rI   uniformr   r   r+   r:   anyisnanrr   	get_xdata)r0   r   r1   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!   r2   r"   r#   r   )
r[   rN   r+   r=   r-   r   r\   r   get_yticklabelsr   )r0   r   r]   r2   xlabels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 )Nra   r7   r2   )r   ranger[   rN   r+   rn   getattr)r0   r7   r   r]   r2   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    d S 1 s)w   Y  d S )Nabcdr   r   r5  )r   r   r[   rN   r   r   r   r+   r0   r7   r   r]   r2   r   r
   r
   r   test_invalid_plot_data     "z&TestSeriesPlots.test_invalid_plot_datac                 C   s"   t tdtd}t|j|d d S )Nr(   r   r?   )r   r6  objectr   r+   )r0   r7   r   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    d S 1 s)w   Y  d S )N)r   r   r   r`   r   r   r5  )r   r[   rN   r   r   r   r+   r:  r
   r
   r    test_partially_invalid_plot_data  r<  z0TestSeriesPlots.test_partially_invalid_plot_datac                 C   sL   t ddg}tjtdd |jdd W d    d S 1 sw   Y  d S )NrO   r`   z%invalid_kind is not a valid plot kindr   invalid_kindr?   )r   r   r   r  r+   )r0   r   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   appendrH   rI   rJ   r*  r   r   r+   )r0   dr1dr2r{   r   r   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 scw   Y  t  d S )Nr(   r
  r   r`   )yerrxerrc                 S   s   g | ]}|j d d df qS )NrO   )verticesr   ir
   r
   r   r   7  s    z>TestSeriesPlots.test_errorbar_asymmetrical.<locals>.<listcomp>rO   rS   z?Asymmetrical error bars should be provided with the shape \(2, z\)r   r   rH  )r   rH   arangerI   randr+   vstackcollections	get_pathsTr   to_numpyreshaper   r   r   r   r   r  rn   )r0   r   errr2   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 ]W}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 q*t|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 sw   Y  dgd }tt |j	|d W d    d S 1 sw   Y  d S )Nr(   r
  r   r`   y)r{   r  r8   r.   )rH  r7   r   rO   )rI  rH  g?)rI  rH  r7   )rI  r   r   M)freqr   r   r   rM  r   zzz)r   rH   rN  r   rI   rJ   r   r{   r   r+   _check_has_errorbarstolistr   r   external_error_raisedr  r   )r0   r   s_errd_errkindsr7   r2   ixr   ts_err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)tabler5   rA   r
   r
   r   
test_tablep  s   zTestSeriesPlots.test_tablec                 C   s$   |  tg dtjjtjj  d S )Nr_   )_check_grid_settingsr   plottingPlotAccessor_series_kinds_common_kinds)r0   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s!J |d|d}||gd ks0J |d|gd}||gd ks@J d S )Nr   get_standard_colorsrO   rD   ra   )!pandas.plotting._matplotlib.stylerp  )r0   r   rp  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 ]<}|d|d}||gksJ |d|gd}||gks,J |d|d}||gd ks;J |d|gd}||gd ksKJ q|jjD ]<}|d|d}||gks_J |d|gd}||gksmJ |d|d}||gd ks|J |d|gd}||gd ksJ qPd S )Nr   ro  rO   )
num_colorsrE   ra   )matplotlib.colorsre   rq  rp  cnamesColorConverter)r0   re   rp  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   rO   rn  rE   r2   
linecolors)r[   rN   r   rH   rN  r+   rK   rl   r0   r]   r2   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   rO   r   rB  r   rn  rx  ry  )	r[   rN   r   rH   rN  r   r+   rK   rl   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	}q'| j| |d | d
 d S )Nr   r   r   rB  rO      r   ra   rb   ry  )
matplotlib_unpack_cyclerrc   r   r   rH   rN  r[   rN   r6  r+   rK   rl   )	r0   mpl
def_colorsr{   r   ncolorsr]   r2   rL  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      g | ]}d |dqS P02dr
   rK  r
   r
   r   r     r   z4TestSeriesPlots.test_xticklabels.<locals>.<listcomp>r   )r   ra   r>   r   )xticksr2   c                 S   r  r  r
   rK  r
   r
   r   r     r   )	r   rH   rN  r6  r[   rN   r+   r\   r   )r0   r   r]   r2   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   r  r  r
   rK  r
   r
   r   r     r   z6TestSeriesPlots.test_xtick_barPlot.<locals>.<listcomp>r   r   r   r`   )r  )
r   r6  r+   r.   rH   r   r   r   r   
get_xticks)r0   r   r2   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)holidays)startendrZ  r   )pandas.tseries.offsetsr  r   r6  pdbdate_ranger   r+   )r0   r  r   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   rb   r   rO   T)inplace)	r   r[   rN   r+   r&   r   dropr   r   )r0   r   r]   r2   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s(J d S )Nr`   ra   r5  r   rO   )r   r[   rN   r+   rk   )r0   r7   r   r]   r2   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sJ | d }t| dks(J t| dks2J d S )Nr   rO   r   )r   intemptyr+   r   rl   r.  r   )r0   r   r2   r8   r
   r
   r   test_plot_no_rows  s   

z!TestSeriesPlots.test_plot_no_rowsc                 C   sH   t g d}tjtdd |  W d    d S 1 sw   Y  d S )Nr   r   r   )r   r   r   r   r+   )r0   r   r
   r
   r   test_plot_no_numeric_data  s   
"z)TestSeriesPlots.test_plot_no_numeric_datazdata, indexr   )ra   r`   rO   r   )r(   r)  r  ru   )iv  i  i  i  c                 C   sL   t ||d}|jdd}| }dd t|jdd dD }||ks$J d S )	N)r   r{   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 r4   )r  rq   )r  r
   r
   r   r     s   
 z1TestSeriesPlots.test_plot_order.<locals>.<lambda>)rd   )r   r+   r]  sortedrL   )r0   r   r{   r   r2   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sJ d S )NrO   r`   r   C3)r    rE   r   )r   r+   rr   	get_color)r0   r   r2   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   )r8   r/   r.   r9   c                 C   s   t g d}||j_|j|d}|dkr%| dksJ | |ks$J n| dks-J | |ks5J |j|||d}| |ksEJ | |ksMJ d S )Nr   r?   r9   r   )r7   ylabelxlabel)r   r{   r   r+   r   r   )r0   r7   
index_name	old_label	new_labelr   r2   r
   r
   r   test_xlabel_ylabel_series(  s   z)TestSeriesPlots.test_xlabel_ylabel_seriesr   r`   r   )r  rC  rZ  rO   )daysc                 C   s0   d}t ddg|dj|d}| dksJ d S )N)ra   rO   rO   r`   r   )xlim)r   r+   rk   )r0   r{   r  r2   r
   r
   r   test_timedelta_index@  s   	z$TestSeriesPlots.test_timedelta_index)L__name__
__module____qualname__r   markslowr3   r6   parametrizeparamtdskip_if_no_scipyr@   rB   rM   rU   r^   rf   rs   r}   r   r   r   r   makeDateIndexr   r   r   r   r   r   r   r   r  r  r  r  r  r(  r/  xfailr	   r4  ri  rj  rl  rk  r8  r;  r>  r?  rA  rG  rW  re  rg  rm  rr  rw  r|  r}  r  r  r  r  r  r  r  r  r  r  r  r  timedelta_range	Timedeltar  r
   r
   r
   r   r   -   s    


'
	
!0?



		


+

!



r   )!__doc__r   	itertoolsr   numpyrH   r   pandas.util._test_decoratorsutil_test_decoratorsr  pandasr  r   r   r   pandas._testing_testingr   pandas.tests.plotting.commonr   r   pandas.plottingri  "pandas.plotting._matplotlib.compatr	   ImportErrorfixturer   r   r   skip_if_no_mplr   r
   r
   r
   r   <module>   s0    


