o
    da                     @   s   d Z ddlmZmZmZmZ ddlZddlZddlZddl	m
Z
mZ ddlm  mZ ddlmZmZmZmZmZmZmZ ddlmZ ddlmZmZmZ ddlm Z m!Z!m"Z" ddl#m$Z$ dd	l%m&Z& dd
l'm(Z( ej)G dd de&Z*dddZ+dS )z< Test cases for time series specific (freq conversion, etc)     )datedatetimetime	timedeltaN)
BaseOffset	to_offset)	DataFrameIndexNaTSeriesconcatisnato_datetime)DatetimeIndexbdate_range
date_range)PeriodPeriodIndexperiod_range)timedelta_range)TestPlotBase)WeekOfMonthc                   @   s  e Zd Zejddd Zdd Zdd Zdd	 Z	d
d Z
ejdg ddd Zejdg ddd Zdd Zdd Zejdddgdd Zdd Zdd Zejdg ddd  Zejd!g d"d#d$ Zejdg dd%d& Zejdg dd'd( Zejd!g d"d)d* Zejdg dd+d, Zejdg dd-d. Zd/d0 Zd1d2 Zd3d4 Zejjd5d6d7d8 Zd9d: Zd;d< Z d=d> Z!d?d@ Z"dAdB Z#dCdD Z$dEdF Z%dGdH Z&dIdJ Z'dKdL Z(dMdN Z)dOdP Z*dQdR Z+dSdT Z,ejj-dUdV Z.dWdX Z/dYdZ Z0d[d\ Z1d]d^ Z2d_d` Z3e4j5dadb Z6dcdd Z7dedf Z8dgdh Z9didj Z:dkdl Z;dmdn Z<dodp Z=dqdr Z>dsdt Z?dudv Z@dwdx ZAdydz ZBd{d| ZCd}d~ ZDdd ZEdd ZFdd ZGdd ZHdd ZIdd ZJdd ZKdd ZLdd ZMejjd5d6dd ZNdd ZOdd ZPdd ZQdd ZRdd ZSdd ZTdd ZUdd ZVdd ZWdd ZXdd ZYdd ZZdd Z[ejjdd6dd Z\dd Z]dd Z^dS )
TestTSPlotzignore::UserWarningc                 C   s   |}t ddd|d}tddg|d}t|j | }t| d  }|d j|d jfd	ks3J |d
 j|d
 jfdksAJ d S )N1/1/2011   H)periodsfreqtzg     g@g     t@indexr   r   r   )   r   )	r   r   _check_plot_worksplotlist	get_lines	get_xdatahourminute)selftz_aware_fixturer   r    tsaxxdata r0   l/var/www/html/visualizacion-main/env/lib/python3.10/site-packages/pandas/tests/plotting/test_datetimelike.pytest_ts_plot_with_tz/   s   
 zTestTSPlot.test_ts_plot_with_tzc                 C   s`   t tjddtdd}| j \}}|jd|d | |	  D ]
}|
 dks-J q#d S )N
   	   r   r   fontsizer.   )r   nprandomrandnrangepltsubplotsr%   get_xticklabelsget_yticklabelsget_fontsize)r+   dffigr.   labelr0   r0   r1   test_fontsize_set_correctly<   s   z&TestTSPlot.test_fontsize_set_correctlyc                 C   s   t dddd}t|jd d}ttjt|d|d}t|j	 |dd	 
|d
d }ttjt|d|d}t|j	 t dddd}t|jd d}ttjt|d|d}t|j	 d S )N1/1/1987MSd   r   r   r      r   r   (   -   c   z2008-1-1 00:15:0015Tr3   )r   r   valuesr   r7   r8   r9   lenr$   r%   union)r+   idxr@   df2r0   r0   r1   test_frame_inferredD   s   

zTestTSPlot.test_frame_inferredc                 C   s:   t g d}t||d}t|j|d t|j|d d S )Nr#   r   rI   r   )xerr)yerr)r7   arrayr   r$   r%   )r+   iar0   r0   r1   test_is_error_nozeroindexW   s   z$TestTSPlot.test_is_error_nozeroindexc                 C   s   t dddd}tg dg dd|}| j \}}|j|d t| d	ks*J | j| d
}tj	t
|d |d   W d    d S 1 sKw   Y  d S )NrD   ArI   rG   )xyzrT   )r[   Br.   r#   zno numeric data to plotmatch)r   r   r;   r<   r%   rO   r'   closepytestraises	TypeError)r+   rQ   r@   rA   r.   msgr0   r0   r1   test_nonnumeric_exclude^   s   "z"TestTSPlot.test_nonnumeric_excluder   )STr   DWMQr[   c                 C   D   t d|dd}ttjt||}| j \}}t|j	|d d S N
12/31/1999rF   rG   r`   )
r   r   r7   r8   r9   rO   r;   r<   r$   r%   r+   r   rQ   ser_r.   r0   r0   r1   test_tsplot_periodk   s   zTestTSPlot.test_tsplot_period)	ri   rj   r   rk   rl   rm   zQ-DECr[   1B30Minc                 C   ro   rp   )
r   r   r7   r8   r9   rO   r;   r<   r$   r%   rr   r0   r0   r1   test_tsplot_datetimer   s   zTestTSPlot.test_tsplot_datetimec                 C   sD   t  }| j \}}|jd|d d}|| d  ks J d S )Nkstyler.   )        r{   r{   r#   r   )tmmakeTimeSeriesr;   r<   r%   r'   	get_color)r+   r-   rt   r.   colorr0   r0   r1   test_tsplot{   s
   zTestTSPlot.test_tsplotc                 C   s   t  }d}tjt|d |jddd W d    n1 sw   Y  |jdd}tjt|d |jddd W d    d S 1 sDw   Y  d S )NzCannot pass 'style' string with a color symbol and 'color' keyword argument. Please use one or the other or pass 'style' without a color symbolra   zb-z#000099)rz   r   T)drop)r|   r}   rd   re   
ValueErrorr%   reset_index)r+   r-   rg   sr0   r0   r1   test_both_style_and_color   s   "z$TestTSPlot.test_both_style_and_colormsusc                 C   sD   | j  \}}tdd|d}ttjt||}t|j	|d d S )N1/1/2012rF   r   r   r`   )
r;   r<   r   r   r7   r8   r9   rO   r$   r%   )r+   r   rt   r.   rngrs   r0   r0   r1   test_high_freq   s   zTestTSPlot.test_high_freqc                 C   sn   ddl m} |d dd u sJ |dddksJ |tdddtddjks(J |ddtd	djks5J d S )
Nr   )get_datevaluerk     r[   rm   z1987-12rD   z1987-1-1)%pandas.plotting._matplotlib.converterr   r   ordinal)r+   r   r0   r0   r1   test_get_datevalue   s
    zTestTSPlot.test_get_datevaluec                 C   sz   dd }t dtddddd}| j \}}|j|d	 ||d
 t dtddddd}|j|d	 ||d t  d S )Nc                 S   s>   |   d }| d j}| d }|| ||ksJ d S )Nr   )r'   r(   r   	get_ydataformat_coord)r.   expected_string
first_linefirst_xfirst_yr0   r0   r1   check_format_of_first_point   s   zITestTSPlot.test_ts_plot_format_coord.<locals>.check_format_of_first_pointr#   z
2014-01-01rI   zA-DECr   r   r`   zt = 2014  y = 1.000000rk   zt = 2014-01-01  y = 1.000000)r   r   r;   r<   r%   r|   rc   )r+   r   annualrt   r.   dailyr0   r0   r1   test_ts_plot_format_coord   s   

z$TestTSPlot.test_ts_plot_format_coordc                 C   s8   t d|dd}ttjt||}t|j|jj	 d S Nrq   rF   rG   )
r   r   r7   r8   r9   rO   r$   r%   r    r   r+   r   rQ   rs   r0   r0   r1   test_line_plot_period_series   s   z'TestTSPlot.test_line_plot_period_seriesfrqncy)1S3S5T7H4D8W11M3Ac                 C   :   t d|dd}ttjt||}t|j|jj	j
 d S r   )r   r   r7   r8   r9   rO   r$   r%   r    r   	rule_code)r+   r   rQ   r   r0   r0   r1    test_line_plot_period_mlt_series   s   z+TestTSPlot.test_line_plot_period_mlt_seriesc                 C   r   r   )r   r   r7   r8   r9   rO   r$   r%   r    r   r   r   r0   r0   r1   test_line_plot_datetime_series   s   z)TestTSPlot.test_line_plot_datetime_seriesc                 C   sB   t d|dd}ttjt|d|g dd}t|j|jj	 d S Nrq   rF   rG   rI   )r[   r_   Cr    columns)
r   r   r7   r8   r9   rO   r$   r%   r    r   r+   r   rQ   r@   r0   r0   r1   test_line_plot_period_frame   s    z&TestTSPlot.test_line_plot_period_framec                 C   sR   t d|dd}ttjt|d|g dd}|j|jjj	j}t
|j| d S r   )r   r   r7   r8   r9   rO   r    asfreqr   r   r$   r%   )r+   r   rQ   r@   r   r0   r0   r1   test_line_plot_period_mlt_frame   s    z*TestTSPlot.test_line_plot_period_mlt_framec                 C   sR   t d|dd}ttjt|d|g dd}|j|jjj	j}t
|j| d S r   )r   r   r7   r8   r9   rO   r    	to_periodr   r   r$   r%   r   r0   r0   r1   test_line_plot_datetime_frame   s    z(TestTSPlot.test_line_plot_datetime_framec                 C   sf   t d|dd}ttjt||}t|jtt|j	}t
|j|j	j |g d }t
|j d S )Nrq   rF   rG   )r   rI         )r   r   r7   r8   r9   rO   rN   r	   asarrayr    r$   r%   inferred_freqr   r0   r0   r1   test_line_plot_inferred_freq   s   z'TestTSPlot.test_line_plot_inferred_freqc                 C   sf   | j  \}}tdd}ttt||d}t|d d |dd  g}|j|d t|dr1J d S )Nz2001-1-1z	2001-1-10r   rI   r   r`   r   )	r;   r<   r   r   r:   rO   r   r%   hasattr)r+   rt   r.   r   r-   r0   r0   r1   test_fake_inferred_business   s   
z&TestTSPlot.test_fake_inferred_businessc                 C   sL   t  }t|j t|jd ddd}ttj	t
||d}t|j d S )Nr   BQSr3   rG   r   )r|   r}   r$   r%   r   r    r   r7   r8   r9   rO   )r+   rs   drr0   r0   r1   test_plot_offset_freq   s
   
z TestTSPlot.test_plot_offset_freqc                 C   sL   t tdddtdddtdddg}ttjt||d}t|j d S )N  r#   r      r   )	r	   r   r   r7   r8   r9   rO   r$   r%   )r+   r   rs   r0   r0   r1    test_plot_multiple_inferred_freq  s   &z+TestTSPlot.test_plot_multiple_inferred_freqzApi changed in 3.6.0)reasonc                 C   s   dd l m  m  m} tdddd}ttjt	|d|d}| j
 \}}|j|d | }| }| }t||D ]\}	}
||	d	}t|
 }t	|rZ||ksZJ q>d S )
Nr   z2012-6-22 21:59:51.960928L  rG   r   r   r`   %H:%M:%S.%f)r   plotting_matplotlib	converterr   r   r7   r8   r9   rO   r;   r<   r%   	get_xaxisget_ticklocsget_ticklabelszip_from_ordinalstrftimestrget_text)r+   convrQ   r@   rt   r.   axistlocstlabelslocrB   xprsr0   r0   r1   test_uhf  s   zTestTSPlot.test_uhfc           	      C   s  t dddd}ttjt|d|d}|jg d }| j \}}|j	|d t
| d	  d d d	f  }d
}t|dd  ||d |g dk  sRJ | j \}}| }|jt|_|j	|d t
| d	  d d d	f  }t|dd  | dk  sJ d S )Nz2012-6-22 21:59:51ri   rF   rG   r   r   )r   r#   rI      r`   r   g)QΠE>r#   g:0yE>)r   r   r7   r8   r9   rO   ilocr;   r<   r%   r   r'   
get_xydatadifffabsallcopyr    astypeobject)	r+   rQ   r@   irregrt   r.   diffssecrR   r0   r0   r1   test_irreg_hf  s   $,$&zTestTSPlot.test_irreg_hfc                 C   sl   t  }|g d }| j \}}|j|d}|d usJ t| d  |jD ]
\}}||ks3J q)d S )N)r   r#   r      r`   r   )	r|   r}   r;   r<   r%   r   r'   r(   r    )r+   rs   rt   r.   retr   r   r0   r0   r1   "test_irregular_datetime64_repr_bug,  s    z-TestTSPlot.test_irregular_datetime64_repr_bugc                 C   sn   t  }| j \}}|j|d | d  d |jd jks#J | d 	 }t
|djdks5J d S )Nr`   r   r!   datar_   )r|   makePeriodSeriesr;   r<   r%   r'   r   r    r   r(   r   freqstrr+   btsrt   r.   rQ   r0   r0   r1   test_business_freq8  s   $zTestTSPlot.test_business_freqc                 C   s   t dd}|d}| j \}}|j|d | d  d |j	d j
ks,J | d  }t|djdks>J d S )Ni,  BMrm   r`   r   r!   r   )r|   r}   r   r   r;   r<   r%   r'   r   r    r   r(   r   r   )r+   r   r-   rt   r.   rQ   r0   r0   r1   test_business_freq_convert@  s   
$z%TestTSPlot.test_business_freq_convertc                 C   s   t  }td|}| j \}}|j|d | d  }d}t	j
t|d t|d W d    d S 1 s:w   Y  d S )Nr   r`   r   z)freq not specified and cannot be inferredra   r   )r   r|   r}   r   r;   r<   r%   r'   r(   rd   re   r   r   )r+   r   r   rt   r.   rQ   rg   r0   r0   r1   test_freq_with_no_period_aliasI  s   "z)TestTSPlot.test_freq_with_no_period_aliasc                 C   sf   t ddddtdd }ttd|d}| j \}}|j|d | d	 	 }t
|jr1J d S )
Nz
2012-12-20   r   r      minutesr   r`   r   )r   r   r   r7   aranger;   r<   r%   r'   r(   r	   is_normalized)r+   rQ   r@   rt   r.   r   r0   r0   r1   test_nonzero_baseU  s   zTestTSPlot.test_nonzero_basec                 C   sT   t dt i}| j \}}|j|d | d  }t|j	
 t| d S )NrY   r`   r   )r   r|   r}   r;   r<   r%   r'   r(   assert_index_equalr    r   r   r   r0   r0   r1   test_dataframe^  s
   zTestTSPlot.test_dataframec                    s    fdd}t  } j \}}|j|d ||  j \}}t||d d}|j|d || t||d d}|jdd}|D ]}|| qFd S )Nc                    sD  |   }| |d d |d d  |   }|d |d d ks"J |d |d d ks.J td| jtd| jf}| dd |   }t|d |d jksQJ t|d |d jks^J td| jtd| jf}| tdddtddd |   }t|d |d jksJ t|d |d jksJ |  } j	| d S )	Nr   r   r#   r3   1/1/2000z4/1/2000r   r   )
get_xlimset_xlimr   r   intr   r   
get_figurer;   rc   )r.   xlimresultexpectedrA   r+   r0   r1   _testf  s"   z*TestTSPlot.test_axis_limits.<locals>._testr`   r#   rY   bT)r<   )r|   r}   r;   r<   r%   r   )r+   r  rs   rt   r.   r@   axesr0   r  r1   test_axis_limitse  s   
zTestTSPlot.test_axis_limitsc                 C   s   dd l m  m  m} |td|jksJ |td|jks$J |td|jks0J |td|jks<J |td|j	ksHJ |td|jksTJ d S )Nr   r_   rk   rm   rn   r[   rl   )
r   r   r   r   
get_finderr   _daily_finder_monthly_finder_quarterly_finder_annual_finder)r+   r   r0   r0   r1   test_get_finder  s   zTestTSPlot.test_get_finderc                 C   s   g d}t dddjgt|  }}g }g }|D ]L}td|d}ttjt||}| j	 \}	}
|j
|
d |
 }|| d  |
 \}}|
|d | || d  | j|
  q||kskJ ||ksqJ d S )	N)r3   rJ      i  i  i
  '  z1999-1-1r_   rH   r   r`   r   ?)r   r   rO   r   r   r7   r8   r9   r;   r<   r%   r   appendget_majorticklocsr   r   rc   r   )r+   day_lstxpl1xpl2rs1rs2nr   rs   rt   r.   xaxisvminvmaxr0   r0   r1   test_finder_daily  s"   zTestTSPlot.test_finder_dailyc                 C   s   ddg}t djgt|  }}g }g }|D ]Q}tdt|d dd}ttjt||}| j	
 \}	}
|j|
d |
 }|| d	  |
 \}}|
|d
 | || d	  | j	|
  q||ksnJ ||kstJ d S )Ng      @r   1988Q11987Q2r   rn   r   r`   r   r  r   r   rO   r   r   r   r7   r8   r9   r;   r<   r%   r   r  r  r   r   rc   r   r+   yrsr  r  r  r  r  r   rs   rt   r.   r  r  r  r0   r0   r1   test_finder_quarterly  "   z TestTSPlot.test_finder_quarterlyc                 C   s   g d}t djgt|  }}g }g }|D ]Q}tdt|d dd}ttjt||}| j	
 \}	}
|j|
d |
 }|| d  |
 \}}|
|d	 | || d  | j	|
  q||ksnJ ||kstJ d S )
N)gffffff?g      @r   r   zJan 1988r!     rm   r   r`   r   r  r"  r#  r0   r0   r1   test_finder_monthly  r&  zTestTSPlot.test_finder_monthlyc                 C   sn   t dddd}ttjt||}| j \}}|j|d |	 }|
 d }tddj}||ks5J d S )Nr   i   rm   r   r`   r   1989Q1)r   r   r7   r8   r9   rO   r;   r<   r%   r   r  r   r   )r+   r   rs   rt   r.   r  r   r   r0   r0   r1   test_finder_monthly_long  s   z#TestTSPlot.test_finder_monthly_longc           	      C   s   g d}dd |D }g }dD ]6}t d|dd}ttjt||}| j \}}|j|d |	 }|
| d	  | j|  q||ksLJ d S )
N)r   i    r+    i  i  iz  c                 S   s   g | ]	}t |d djqS )r[   rH   )r   r   .0r\   r0   r0   r1   
<listcomp>  s    z1TestTSPlot.test_finder_annual.<locals>.<listcomp>)r   r3      1   rL      iW  i  1987r[   r   r`   r   )r   r   r7   r8   r9   rO   r;   r<   r%   r   r  r  rc   r   )	r+   r   r   nyearsr   rs   rt   r.   r  r0   r0   r1   test_finder_annual  s   zTestTSPlot.test_finder_annualc           	      C   t   d}t dd|d}ttjt||}| j \}}|j|d |	 }|
 d }tdddj}||ks8J d S )Ni@ 1/1/1999MinrG   r`   r   rH   r   r   r7   r8   r9   rO   r;   r<   r%   r   r  r   r   )	r+   nminutesr   rs   rt   r.   r  r   r   r0   r0   r1   test_finder_minutely  s   zTestTSPlot.test_finder_minutelyc           	      C   r6  )N   r7  r   rG   r`   r   rH   r9  )	r+   nhoursr   rs   rt   r.   r  r   r   r0   r0   r1   test_finder_hourly  s   zTestTSPlot.test_finder_hourlyc           
      C   s6  t  }tj|jdd< | j \}}|j|d | }t	|dks%J |d }|
 }tjj|t|tjd}t|tjjjsCJ |j}|dddf  sRJ | j|  t  }|g d }tj|jdd< | j \}}|j|d}| }t	|dksJ |d }|
 }tjj|t|tjd}t|tjjjsJ |j}|dddf  sJ | j|  g d}ttjt	||}	tj|	jdd< | j \}}|	j|d | }t	|dksJ |d }|
 }tjj|t|tjd}t|tjjjs	J |j}|dddf  sJ d S )	Nr      r`   r#   r   mask
fill_value)	r   r#   r   r   r   r4   r'        r   )r|   r}   r7   nanr   r;   r<   r%   r'   rO   r   maMaskedArrayr   
isinstancecorerA  r   rc   r   r   r8   r9   )
r+   r-   rt   r.   linesliner   rA  rQ   rs   r0   r0   r1   	test_gaps  sP   zTestTSPlot.test_gapsc           
      C   s   t  }tj|jdd< | j \}}|j|d t|j	d |j	d dd}t
tjt||}|jdd	 | }t|d
ksCJ t|j d
ksNJ |d }| }tjj|t|tjd}t|tjjjslJ |j}	|	ddd
f  s{J d S )Nr   r?  r`   r   r"   12hrH   Tsecondary_yr#   r@  )r|   r}   r7   rE  r   r;   r<   r%   r   r    r   r8   r9   rO   r'   right_axr   rF  rG  r   rH  rI  rA  r   )
r+   lowrt   r.   idxhr   rJ  rK  r   rA  r0   r0   r1   test_gap_upsample>  s    zTestTSPlot.test_gap_upsamplec           
      C   sZ  t tjd}t tjd}| j \}}|jdd}t|ds$J t|dr+J | }|	 d }t |
 | }t|| |  dksNJ |d   rXJ | j| | j \}}	|j|	d |	  d	ksuJ | j|	  | }|jdd}	|  sJ t|drJ t|dsJ t|	dsJ t|	drJ d S )
Nr3   TrN  left_axrP  r   rightr`   left)r   r7   r8   r9   r;   r<   r%   r   get_axesr'   r   r(   r|   assert_series_equal	get_yaxisget_ticks_positionget_visiblerc   r   )
r+   rs   ser2rA   rt   r.   r  rK  r   ax2r0   r0   r1   test_secondary_yS  s0   zTestTSPlot.test_secondary_yc                 C   s6  t ddd}ttjd|}ttjd|}| j \}}|jdd}t|ds,J t|dr3J |	 }|
 d }t| |  }	t||	 |  d	ksXJ |d   rbJ | j| | j \}}
|j|
d
 |
  dksJ | j|
  | }|jdd}
|  sJ d S )Nr   r3   r  TrN  rT  rP  r   rU  r`   rV  )r   r   r7   r8   r9   r;   r<   r%   r   rW  r'   r   r(   to_timestampr|   rX  rY  rZ  r[  rc   r   )r+   rQ   rs   r\  rA   rt   r.   r  rK  r   r]  r0   r0   r1   test_secondary_y_tso  s*   zTestTSPlot.test_secondary_y_tsc                 C   sn   t tjd}| j \}}|jdd|d}t|dsJ t|dr%J | }|d 	 
 dks5J d S )	Nr3   TdensityrO  kindr.   rT  rP  r#   rU  )r   r7   r8   r9   r;   r<   r%   r   rW  rY  rZ  r+   rs   rA   r.   r  r0   r0   r1   test_secondary_kde  s   zTestTSPlot.test_secondary_kdec                 C   sR   t tjd}| j \}}|jdd|d | }|d  	 dks'J d S )Nr3   Tbarrb  r#   rU  )
r   r7   r8   r9   r;   r<   r%   rW  rY  rZ  rd  r0   r0   r1   test_secondary_bar  s
   zTestTSPlot.test_secondary_barc                 C   sx   t tjddg dd}|jddgdd}|d	   d
ks"J |d   dks.J |d   d
ks:J d S )Nr   rI   rY   r  cr   rY   ri  T)rO  r<   r   rU  r#   rV  r   r   r7   r8   r9   r%   rY  rZ  r+   r@   r  r0   r0   r1   test_secondary_frame  s
   zTestTSPlot.test_secondary_framec                 C   sz   t tjddg dd}|jdddgdd	}|d
   dks#J |d   dks/J |d   dks;J d S )Nr   rI   rh  rj  rf  rY   ri  T)rc  rO  r<   r   rU  r#   rV  r   rk  rl  r0   r0   r1   test_secondary_bar_frame  s
   z#TestTSPlot.test_secondary_bar_framec                 C   s   t  }|g d }| j \}}|j|d |jd|d}| }t|d  }t|d  }t ||j	
d t ||j	
d | \}	}
|j	
 }|	|d jksZJ |
|d jkscJ d S 	Nr   r   r3   r   r'        rC  r`   gry   r   r#   r_   r"   )r|   r}   r;   r<   r%   r'   r   r(   r   r    r   r   r   r+   s1s2rt   r.   r]  rJ  idx1idx2rV  rU  pidxr0   r0   r1   test_mixed_freq_regular_first  s   
z(TestTSPlot.test_mixed_freq_regular_firstc                 C   s   t  }|g d }| j \}}|jd|d |j|d t|dr%J | }|d  }t ||j	
tj |d  }t ||j	
tj d S Nrp  rs  ry   r`   r   r   r#   )r|   r}   r;   r<   r%   r   r'   r(   assert_numpy_array_equalr    r   r   rN   r+   ru  rv  rt   r.   rJ  x1x2r0   r0   r1   test_mixed_freq_irregular_first  s   z*TestTSPlot.test_mixed_freq_irregular_firstc                 C   s   t   }|jg dd d f }| j \}}|j|d |jd|d}| }t|d 	 }t|d 	 }|
|jdsDJ |
|jdsOJ | \}	}
|j }|	|d jkscJ |
|d jkslJ d S ro  )r|   r}   to_framer   r;   r<   r%   r'   r   r(   equalsr    r   r   r   rt  r0   r0   r1    test_mixed_freq_regular_first_df  s   
z+TestTSPlot.test_mixed_freq_regular_first_dfc                 C   s   t   }|jg dd d f }| j \}}|jd|d |j|d t|dr,J | }|d 	 }t 
||jtj |d 	 }t 
||jtj d S r{  )r|   r}   r  r   r;   r<   r%   r   r'   r(   r|  r    r   r   rN   r}  r0   r0   r1   "test_mixed_freq_irregular_first_df  s   z-TestTSPlot.test_mixed_freq_irregular_first_dfc                 C   s   t dddd}t dddd}ttjt||}ttjt||}| j \}}|j|d |j|d |	 D ]}t
| djdksIJ q;d S )	Nr7  m  rk   r   r'  rm   r`   r   r   r   r7   r8   r9   rO   r;   r<   r%   r'   r   r(   r   r+   rR  idxlhighrQ  rt   r.   rK  r0   r0   r1   test_mixed_freq_hf_first  s   z#TestTSPlot.test_mixed_freq_hf_firstc                 C   s   t dddd}tjd}t||d}|d }| j \}}|j	|d}|j	d	|d
 |j
d  d |j
d  d ksBJ d S )Nz2012-01-01 13:00
2012-01-02r   rH   r'  r   rj   r`   rry   r   r#   )r   r7   r8   r9   r   r   interpolater;   r<   r%   rJ  r(   )r+   ts_indts_datar-   ts2rt   r.   r0   r0   r1   test_mixed_freq_alignment  s   ,z$TestTSPlot.test_mixed_freq_alignmentc           	      C   sZ  t dddd}t dddd}ttjt||}ttjt||}| j \}}|jd|d |jd|d |	 D ]}t
| d	jdksKJ q=| }t|jd
ksYJ | j|  t dddd}t dddd}ttjt||}ttjt||}| j \}}|j|d |j|d |	 D ]}t
| d	jdksJ qd S )Nr7  r  rk   r   r'  rm   T)legendr.   r   r      rj   r   r   r`   )r   r   r7   r8   r9   rO   r;   r<   r%   r'   r   r(   r   
get_legendtextsrc   r   )	r+   rR  r  r  rQ  rt   r.   rK  legr0   r0   r1   test_mixed_freq_lf_first  s,   z#TestTSPlot.test_mixed_freq_lf_firstc                 C   sb   t  }|g d }tdddd}ttjt||}| j	 \}}|j
|d |j
|d d S )N)r   r#   r   rI   r   r   r   r      r4   r3   rC              z1/3/2000r   r_   r   r`   )r|   r}   r   r   r7   r8   r9   rO   r;   r<   r%   )r+   r-   r   r   psrt   r.   r0   r0   r1   test_mixed_freq_irreg_period  s   z'TestTSPlot.test_mixed_freq_irreg_periodc                 C   s  t dddd}|d d |dd  }ttt||}ttt||}| jjddd\}\}}|j|d	 |j|d	 |jdksEJ |jdksLJ |j	d
 
 d |j	d
 
 d ks`J | j \}}| }|j|d	 |j|d	 |j	d
 
 d |j	d
 
 d ksJ d S )N
2015-01-01rI   rm   r   r#   r   T)nrowssharexr`   r   r!   )r   rP   r   r:   rO   r;   r<   r%   r   rJ  r   twinx)r+   rw  rx  ru  rv  rA   ax1r]  r0   r0   r1   test_mixed_freq_shared_ax"  s   (,z$TestTSPlot.test_mixed_freq_shared_axc                 C   s   | j  \}}tdtdg}ttt||}|j|d | d 	 }|j
 t| ks2J t| |j
 ks?J d S )Nr  z
2015-01-03r`   r   )r;   r<   r   r
   r   r:   rO   r%   r'   r(   r    minmax)r+   rt   r.   dtir   r/   r0   r0   r1   test_nat_handlingB  s   zTestTSPlot.test_nat_handlingc                 C   s   t dddd}t dddd}ttjt||}ttjt||}| j \}}|j|d |j|d |	 D ]}t
| dj|jksJJ q;d S )	Nr7  4   rl   r   r'  rm   r`   r   r  r  r0   r0   r1   test_to_weekly_resamplingM  s   z$TestTSPlot.test_to_weekly_resamplingc                 C   s   t dddd}t dddd}ttjt||}ttjt||}| j \}}|j|d |j|d |	 j
tj}tjg dtjd	}| D ](}	t|	 d
j|jks]J |	jdd}
t|
dkrpt|
| qNt|
| qNt  d S )Nr7  r  rl   r   r'  rm   r`   i  i  i  i  i  i   i  i  i  i  i  i  dtyper   Forig)r   r   r7   r8   r9   rO   r;   r<   r%   r   asi8r   float64rW   r'   r   r(   r   r|   r|  rc   )r+   rR  r  r  rQ  rt   r.   
expected_h
expected_lrK  r/   r0   r0   r1   test_from_weekly_resamplingX  s&   z&TestTSPlot.test_from_weekly_resamplingc                 C   s"  t dddd}t dddd}ttjt|d|g dd	}ttjt|d|g dd	}d
D ]\}}| j \}}|j|d|d |j|d|d tj	g dtj
d}	tjt|	tj
d}
tdD ].}|j| }t| j|jksvJ t|jdd|	 |
|| j7 }
t|jdd|
 qc| jtj
}	tjt|	tj
d}
tdD ]1}|jd|  }t| dj|jksJ t|jdd|	 |
|| j7 }
t|jdd|
 qq0d
D ]\}}| j \}}|j|d|d |j|d|d | jtj
}	tjt|	tj
d}
tdD ]1}|j| }t| dj|jks%J t|jdd|	 |
|| j7 }
t|jdd|
 qtj	g dtj
d}	tjt|	tj
d}
tdD ]3}|jd|  }t| dj|jksqJ t|jdd|	 |
|| j7 }
t|jdd|
 qZqd S )Nr7  r  rl   r   r'  rm   rI   )r   r#   r   r   ))rK  area)r  rK  T)rc  stackedr.   r  r  Fr  r   )r   r   r7   r8   randrO   r;   r<   r%   rW   r  zerosr:   rJ  r   r(   r   r|   r|  rN   r   r   r  r   )r+   rR  r  r  rQ  kind1kind2rt   r.   
expected_x
expected_yrX   rK  rJ  r0   r0   r1   $test_from_resampling_area_line_mixedo  sj     

z/TestTSPlot.test_from_resampling_area_line_mixedc                 C   s  t dddd}t dddd}ttjt||}ttjt||}| j \}}|j|d |j|d t|	 dksAJ |	 D ]}t
| d	jd
ksSJ qEt  | j \}}|j|d |j|d t|	 dksuJ |	 D ]}t
| d	jd
ksJ qyd S )Nz2014-07-01 09:00ri   2   rG   100Lr   r`   r   r   r   )r   r   r7   r8   r9   rO   r;   r<   r%   r'   r   r(   r   r|   rc   r  r0   r0   r1   "test_mixed_freq_second_millisecond  s$   z-TestTSPlot.test_mixed_freq_second_millisecondc                 C   s   t dddt dddt dddg}ttjt|dt|td}t|j	 t
ddd	}|g d
 t}ttjt|d|}| j \}}t|j	|d d S )Nr   r#   r   rD  rI   r  r   r3   r  )r   r   r   r4   r`   )r   r   r7   r8   r9   rO   r	   r   r$   r%   r   r   r;   r<   )r+   rQ   r@   rt   r.   r0   r0   r1   test_irreg_dtypes  s   " 
zTestTSPlot.test_irreg_dtypesc                    s  t dddddd tjddd }t fdd|D }ttjt|tjt|d|d	}| j	
 \}}|j|d
 | }| }t||D ];\}}	tt|d\}
}t|
d\}}
|	 }t|dkr|dkrzt||
|d}n	t||
|d}||ksJ qNd S )Nr#   rI   r   r   rD  c                    "   g | ]} t t|d   qS r   r   r   r   r-  tr0   r1   r/       " z(TestTSPlot.test_time.<locals>.<listcomp>r  r   r`   <   %H:%M:%S%H:%M)r   r7   r8   randintcumsumrW   r   r9   rO   r;   r<   r%   
get_xticksr=   r   divmodr   r   r   r   r+   deltasr-   r@   rA   r.   tickslabels_tick_labelmr   hr   r   r0   r  r1   	test_time  s*   "zTestTSPlot.test_timec                    s  t dddddd tjddd }t fdd|D }ttjt|tjt|d|d	}| j	
 \}}|j|d
 | }| }t||D ];\}}	tt|d\}
}t|
d\}}
|	 }t|dkr|dkrzt||
|d}n	t||
|d}||ksJ qN|dd | }| }t||D ];\}}	tt|d\}
}t|
d\}}
|	 }t|dkr|dkrt||
|d}n	t||
|d}||ksJ qd S )Nr#   rI   r   r   rD  c                    r  r  r  r-  r  r0   r1   r/  	  r  z4TestTSPlot.test_time_change_xlim.<locals>.<listcomp>r  r   r`   r  r  r  z1:30z5:00)r   r7   r8   r  r  rW   r   r9   rO   r;   r<   r%   r  r=   r   r  r   r   r   r   r   r  r0   r  r1   test_time_change_xlim  sD   "z TestTSPlot.test_time_change_xlimc                    s|  t dddddd tjddd }t fdd|D }ttjt|tjt|d|d	}| j	
 \}}|j|d
}| }| }t||D ]m\}}	tt|d\}
}t|t| d }t|
d\}}
|	 }t|dkr|d dkrt||
||d}n.|d dkrt||
||dd d }n|dkrt||
||d}n
t||
||d}||ksJ qNd S )Nr#   rI   r   r   rD  c                    r  ))microsecondsr  r-  r  r0   r1   r/  2  r  z.TestTSPlot.test_time_musec.<locals>.<listcomp>r  r   r`   r  g    .Ai  r   r  r  )r   r7   r8   r  r  rW   r   r9   rO   r;   r<   r%   r  r=   r   r  r   roundr   r   r   )r+   r  r-   r@   rA   r.   r  r  r  r  r  r   r   r  r   r   r0   r  r1   test_time_musec/  s4   "zTestTSPlot.test_time_musecc                 C   s   t dddd}t dddd}ttjt||}ttjt||}| j \}}|j|d |jd|d	}|	 D ]}t
| jdksIJ q<t|d
sQJ t|drXJ |j	 D ]}t
| jdksjJ q]d S )Nr7  r  rk   r   r'  rm   r`   TrO  r.   rT  rP  )r   r   r7   r8   r9   rO   r;   r<   r%   r'   r   r(   r   r   rT  r  r0   r0   r1   test_secondary_upsampleN  s   z"TestTSPlot.test_secondary_upsamplec                 C   sN  | j  }|d}t }|jddg|d | }t| dks%J |	 d 
 dks1J |	 d 
 d	ks=J |	 d
 
 dksIJ |	 d 
 dksUJ |j d u s^J t }| D ]	}||  qet|dkswJ | j | | j  }|d}|jddgd|d | }t| dksJ |	 d 
 dksJ |	 d 
 dksJ |	 d
 
 dksJ |	 d 
 dksJ | j | | j  \}}|jddg|d | }|	 d 
 dksJ |	 d 
 dksJ | j | | j  \}}|jddgd|d | }|	 d 
 dks*J |	 d 
 dks7J | j | | j  }|d}t }|jddg|d}| }t| dkscJ |j d u smJ t }| D ]
}||  qtt|dksJ | j | t }| j  }|d}|jddg|d}| }t| dksJ |j d u sJ t }| D ]
}||  qt|dksJ | j   | j  }|d}|jddg|d}| }t| dks J |j d u s
J t }| D ]
}||  qt|dks%J d S )N   r[   r_   r  r   r   z	A (right)r#   z	B (right)r   r   rI   rk   F)rO  
mark_rightr.   rf  )rc  rO  r.   )rc  rO  r  r.   )r;   figureadd_subplotr|   makeTimeDataFramer%   r  rO   r'   	get_textsr   rP  setaddr~   rc   r<   makeDataFrame)r+   rA   r.   r@   r  colorsrK  r0   r0   r1   test_secondary_legend]  s   










z TestTSPlot.test_secondary_legendc                 C   sz   t dddd}ttjt|d|}| j \}}|j|d}|	 }|
 D ]}t| dkr:| dks:J q(d S )	Nr   r'  rm   r   rI   r`   r   r   )r   r   r7   r8   r9   rO   r;   r<   r%   r   r   r   get_rotation)r+   r   r@   rt   r.   r  rK  r0   r0   r1   test_format_date_axis  s   z TestTSPlot.test_format_date_axisc                 C   sX   t dddd}ttt|}| j \}}|j||dd}tt	|d 
 | d S )Nr  r3   rk   startr   r   Y)rB   r   )r   r&   r:   rO   r;   r<   r%   r|   r   r   r(   )r+   r\   r]   rt   r.   rJ  r0   r0   r1   test_ax_plot  s
   zTestTSPlot.test_ax_plotc           
      C   s  t dddt dddg}tddd}tdd	d}d
dd}| j \}}|jdd |D |fi | |jdd |D |fi | | \}}tjdd |D tjd}	t	
| d d df |	 tjdd |D tjd}	t	
| d d df |	 d S )N  r'     i  r#   g      $@g      &@g      ?g      (@-r   )fmtlwc                 S      g | ]}|  qS r0   	toordinalr-  r0   r0   r1   r/        z0TestTSPlot.test_mpl_nopandas.<locals>.<listcomp>c                 S   r  r0   r  r-  r0   r0   r1   r/    r  c                 S   r  r0   r  r-  r0   r0   r1   r/    r  r  r   c                 S   r  r0   r  r-  r0   r0   r1   r/    r  )r   r7   r   r;   r<   	plot_dater'   rW   r  r|   r|  r   )
r+   datesvalues1values2kwrt   r.   line1line2expr0   r0   r1   test_mpl_nopandas  s   
 zTestTSPlot.test_mpl_nopandasc                 C   s   ddl m} t d d }|g d }| j \}}|d d j|d |dd  j|d | \}}|||j	
 d|ksCJ |||j	 d|ksQJ d S )Nr   DatetimeConverterrD  r#   r   r   r   r  r4   r3   r'  rq  rr  rC  r  r  r   r`    r   r  r|   r}   r;   r<   r%   r   convertr    r  r  r+   r  r-   ts_irregularrt   r.   rV  rU  r0   r0   r1    test_irregular_ts_shared_ax_xlim  s    z+TestTSPlot.test_irregular_ts_shared_ax_xlimc                 C   s   g d}g d}t d|d}t d|d}| j \}}|j|d | \}}|jd|d | \}	}
||	ks:J ||
k s@J d S )	N)r#   r   rI   r   )r   r   r   r  r#   r   r   r`   Tr  )r   r;   r<   r%   r   r+   index_1index_2ru  rv  rt   r.   left_beforeright_before
left_afterright_afterr0   r0   r1   test_secondary_y_non_ts_xlim  s   z'TestTSPlot.test_secondary_y_non_ts_xlimc                 C   s   t dddd}t dddd}td|d}td|d}| j \}}|j|d	 | \}}|jd
|d | \}	}
||	ks@J ||
k sFJ d S )N
2000-01-01r   rk   r  z
2000-01-05r#   r   r   r`   Tr  )r   r   r;   r<   r%   r   r  r0   r0   r1    test_secondary_y_regular_ts_xlim  s   z+TestTSPlot.test_secondary_y_regular_ts_xlimc           	      C   s   t dddd}td|d}| j \}}|j|d | \}}|d jd	|d
 | \}}||ks8J ||ks>J d S )Nr  r  r  r   r#   r   r`   rk   Tr  )r   r   r;   r<   r%   r   resamplemean)	r+   r   r-   rt   r.   r  r  r  r  r0   r0   r1   #test_secondary_y_mixed_freq_ts_xlim  s   z.TestTSPlot.test_secondary_y_mixed_freq_ts_xlimc                 C   s   ddl m} t d d }|g d }| j \}}|d d j|d |dd  jd|d |d d j|d | \}}|||j	
 d	|ksNJ |||j	 d	|ks\J d S )
Nr   r  rD  r  r   r`   Tr  r  r  r  r0   r0   r1   "test_secondary_y_irregular_ts_xlim  s    z-TestTSPlot.test_secondary_y_irregular_ts_xlimc                 C   sZ   t dddt dddg}| j \}}|| tddddtddddg}|| d S )Ni  r#   r   r'  )r   r;   r<   r%   r   )r+   rN   rt   r.   r0   r0   r1   test_plot_outofbounds_datetime.  s
   
z)TestTSPlot.test_plot_outofbounds_datetimec                 C   s   dd t dD }tdddd}tt jt|d|}| j \}}|j	d|d	 | j
  | }d
d |D }t|t|ksEJ ||ksKJ d S )Nc                 S   s   g | ]}d |dqS )z00:00:00.0000000z0>2dr0   )r.  rX   r0   r0   r1   r/  8  s    zATestTSPlot.test_format_timedelta_ticks_narrow.<locals>.<listcomp>r3   0nsr   rI   r   r5   c                 S   r  r0   r   r-  r0   r0   r1   r/  A  r  )r7   r   r   r   r8   r9   rO   r;   r<   r%   drawr=   r+   expected_labelsr   r@   rA   r.   r  result_labelsr0   r0   r1   "test_format_timedelta_ticks_narrow7  s   
z-TestTSPlot.test_format_timedelta_ticks_narrowc                 C   s   g d}t dddd}ttjt|d|}| j \}}|jd|d}| j	  |
 }d	d
 |D }t|t|ks?J ||ksEJ d S )N)	z00:00:00z1 days 03:46:40z2 days 07:33:20z3 days 11:20:00z4 days 15:06:40z5 days 18:53:20z6 days 22:40:00z8 days 02:26:40z9 days 06:13:20r  r3   1 dr   rI   r   r5   c                 S   r  r0   r  r-  r0   r0   r1   r/  Y  r  z?TestTSPlot.test_format_timedelta_ticks_wide.<locals>.<listcomp>)r   r   r7   r8   r9   rO   r;   r<   r%   r  r=   r  r0   r0   r1    test_format_timedelta_ticks_wideE  s   
z+TestTSPlot.test_format_timedelta_ticks_widec                 C   s   t tdtddd}| j \}}t|j|d tdddd}t tj	t
||}| j \}}t|j|d tddd	d}t tj	t
||}| j \}}t|j|d d S )
Nr   1dayr  r`   z1 day 2 hr 30 min 10 sr3   r"  r   z1 ns)r   r:   r   r;   r<   r$   r%   r7   r8   r9   rO   )r+   r   rt   r.   r    r0   r0   r1   test_timedelta_plot]  s   zTestTSPlot.test_timedelta_plotc                 C   s`   t dddd}|}tddd}tdddd d d }| j \}}|j||g||gd	 d S )
Nr   r3   r   r   r   r#   g?r"   )weights)r   r7   r   r;   r<   hist)r+   r   r\   w1w2rt   r.   r0   r0   r1   	test_histo  s   zTestTSPlot.test_histc                 C   s   t g dtdddtdddtdddgd}t g dtdddtd	ddtd
ddgd}| j \}}|j|d |j|d |j|d d S )NrT   r,  r'  r  r   i  r   i  i  r  r`   )r   r   r;   r<   r%   )r+   ru  rv  rt   r.   r0   r0   r1   test_overlapping_datetimex  s$   





z$TestTSPlot.test_overlapping_datetimez1GH9053 matplotlib does not use ax.xaxis.converterc                 C   s   t tjdtdddd}| }tt |j|j	|j
dd W d    n1 s,w   Y  |j\}}t| |  d S )Nr3   z
1970-01-02r  r   rs  )r   )r   r7   r8   r9   r   r%   r|   assert_produces_warningDeprecationWarningr    rN   rJ  r|  r   )r+   r   r.   l1l2r0   r0   r1   test_add_matplotlib_datetime64  s   
z)TestTSPlot.test_add_matplotlib_datetime64c                 C   s~   t tjdddddgd}tdddd	|d
< | j \}}|jd
d|d | j	  |
 d }d}| |ks=J d S )Nr   r3   r   r\   r]   rj  z
2018-01-01rk   r   r   )r\   r]   r   )r   r7   r8   RandomStater  r   r;   r<   scatterr  r=   r   )r+   r@   rA   r.   rB   r  r0   r0   r1   "test_matplotlib_scatter_datetime64  s    
z-TestTSPlot.test_matplotlib_scatter_datetime64c                 C   s   t g d}t|g dd}|jddd}| j|dd t g d}t|g dd}|jddd}| j|d	d |djdd
d}| j|d	d |djddd}| j|dd |jddd
d
d}| j|d	d |jddd
dd}| j|dd d S )N)
2020-05-01
2020-05-02z
2020-05-03rT   )r\   r]   r\   r]   r   )xrot)r4  r5  z
2020-05-04r   T)r]   	use_indexF)r\   r]   r<   r  )r   r   r%   _check_ticks_props	set_index)r+   r\   r@   r  r0   r0   r1   test_check_xticks_rot  s    z TestTSPlot.test_check_xticks_rotN)___name__
__module____qualname__rd   markfilterwarningsr2   rC   rS   rZ   rh   parametrizeru   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   xfailr   r   r   r   r   r   r   r   r	  r  r  r%  r(  r*  r5  slowr;  r>  rL  rS  r^  r`  tdskip_if_no_scipyre  rg  rm  rn  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  r!  r#  r%  r*  r+  r0  r3  r:  r0   r0   r0   r1   r   -   s    









	

	
		(


3
		 [)[

		
r   c              	   O   s  dd l m} | }z|  |d}|d| }t|dd }	| |i |}
|
d us/J |d| }|d urR|jj	}t
|trG|j}|	d u rR|j	|ksRJ |d ura|	d u ra|j	|ksaJ |d}||d< | |i |}
|
d uswJ tjdd}|| W d    n1 sw   Y  tjdd}t|| W d    n1 sw   Y  W || d S W || d S || w )Nr   r  r.   r      T)return_filelike)matplotlib.pyplotpyplotgcfclfr  popgcagetattrr    r   rH  r   r   r|   ensure_cleansavefigpickledumprc   )fr   seriesargskwargsr;   rA   r.   orig_axorig_axfreqr   dfreqpathr0   r0   r1   r$     s>   


r$   )NN),__doc__r   r   r   r   rP  numpyr7   rd   pandas._libs.tslibsr   r   pandas.util._test_decoratorsutil_test_decoratorsrC  pandasr   r	   r
   r   r   r   r   pandas._testing_testingr|   pandas.core.indexes.datetimesr   r   r   pandas.core.indexes.periodr   r   r   pandas.core.indexes.timedeltasr   pandas.tests.plotting.commonr   pandas.tseries.offsetsr   skip_if_no_mplr   r$   r0   r0   r0   r1   <module>   s8    $	           "