U
    ¾mœ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ddddddddg¡dd„ ƒZej ddddddddddg	¡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ddddddddg¡d'd(„ ƒZej d)d*d+d,d-d.d/d0d1g¡d2d3„ ƒZej ddddddddddg	¡d4d5„ ƒZej dddddddddg¡d6d7„ ƒZej d)d*d+d,d-d.d/d0d1g¡d8d9„ ƒZej ddddddddddg	¡d:d;„ ƒZej ddddddddddg	¡d<d=„ ƒZd>d?„ Zd@dA„ ZdBdC„ ZejjdDdE�dFdG„ ƒZdHdI„ ZdJdK„ Z dLdM„ Z!dNdO„ Z"dPdQ„ Z#dRdS„ Z$dTdU„ Z%dVdW„ Z&dXdY„ Z'dZd[„ Z(d\d]„ Z)d^d_„ Z*d`da„ Z+dbdc„ Z,ejj-ddde„ ƒZ.dfdg„ Z/dhdi„ Z0djdk„ Z1dldm„ Z2dndo„ Z3e4j5dpdq„ ƒZ6drds„ Z7dtdu„ Z8dvdw„ Z9dxdy„ Z:dzd{„ Z;d|d}„ Z<d~d„ Z=d€d�„ Z>d‚dƒ„ Z?d„d…„ Z@d†d‡„ ZAdˆd‰„ ZBdŠd‹„ ZCdŒd�„ ZDdŽd�„ ZEd�d‘„ ZFd’d“„ ZGd”d•„ ZHd–d—„ ZId˜d™„ ZJdšd›„ ZKdœd�„ ZLdždŸ„ ZMejjdDdE�d d¡„ ƒZNd¢d£„ ZOd¤d¥„ ZPd¦d§„ ZQd¨d©„ ZRdªd«„ ZSd¬d­„ ZTd®d¯„ ZUd°d±„ ZVd²d³„ ZWd´dµ„ ZXd¶d·„ ZYd¸d¹„ ZZdºd»„ Z[ejjd¼dE�d½d¾„ ƒZ\d¿dÀ„ Z]dÁdÂ„ Z^dÃS )ÄÚ
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sft	‚|d
 j|d
 jfdks‚t	‚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ÚAssertionError)ÚselfZtz_aware_fixturer   r    ÚtsÚaxÚxdata© r0   ú`/home/sam/Atlas/atlas_env/lib/python3.8/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sFt‚qFd S )Né
   é	   r   r   ©Zfontsizer.   )r   ÚnpÚrandomÚrandnÚrangeÚpltÚsubplotsr%   Úget_xticklabelsZget_yticklabelsZget_fontsizer+   )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/1987ZMSéd   ©r   r   ©r   é   r   r   é(   é-   éc   z2008-1-1 00:15:00Z15Tr3   )r   r   Úvaluesr   r6   r7   r8   Úlenr$   r%   Úunion)r,   Úidxr=   Údf2r0   r0   r1   Útest_frame_inferredD   s    

zTestTSPlot.test_frame_inferredc                 C   s<   t  dddg¡}t||d�}t|j|d� t|j|d� d S )Nr#   r   rE   r   )Zxerr)Zyerr)r6   Ú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dddgdd	dgd
œ|ƒ}| j ¡ \}}|j|d� t| ¡ ƒdksXt‚| j |¡ d}t	j
t|d�� |d  ¡  W 5 Q R X d S )NrA   ÚArE   rC   ÚxÚyÚzr#   r   )rS   ÚB©r.   zno numeric data to plot©Úmatch)r   r   r:   r;   r%   rJ   r'   r+   ÚcloseÚpytestÚraisesÚ	TypeError)r,   rL   r=   r>   r.   Úmsgr0   r0   r1   Útest_nonnumeric_exclude^   s    z"TestTSPlot.test_nonnumeric_excluder   ÚSÚTr   ÚDÚWÚMÚQrS   c                 C   sD   t d|dd�}ttj t|ƒ¡|ƒ}| j ¡ \}}t|j	|d� d S ©Nú
12/31/1999rB   rC   rX   )
r   r   r6   r7   r8   rJ   r:   r;   r$   r%   ©r,   r   rL   ÚserÚ_r.   r0   r0   r1   Útest_tsplot_periodk   s    zTestTSPlot.test_tsplot_periodzQ-DECZ1B30Minc                 C   sD   t d|dd�}ttj t|ƒ¡|ƒ}| j ¡ \}}t|j	|d� d S rg   )
r   r   r6   r7   r8   rJ   r:   r;   r$   r%   ri   r0   r0   r1   Útest_tsplot_datetimer   s    zTestTSPlot.test_tsplot_datetimec                 C   sD   t  ¡ }| j ¡ \}}|jd|d� d}|| ¡ d  ¡ ks@t‚d S )NÚk©Ústyler.   )ç        rq   rq   r#   r   )ÚtmÚmakeTimeSeriesr:   r;   r%   r'   Ú	get_colorr+   )r,   r-   rk   r.   Úcolorr0   r0   r1   Útest_tsplot{   s
    zTestTSPlot.test_tsplotc              	   C   sl   t  ¡ }d}tjt|d�� |jddd� W 5 Q R X |jdd�}tjt|d�� |jddd� W 5 Q R X d S )Nz�Cannot pass 'style' string with a color symbol and 'color' keyword argument. Please use one or the other or pass 'style' without a color symbolrY   zb-z#000099)rp   ru   T)Zdrop)rr   rs   r\   r]   Ú
ValueErrorr%   Zreset_index)r,   r-   r_   Ú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/2012rB   ©r   r   rX   )
r:   r;   r   r   r6   r7   r8   rJ   r$   r%   )r,   r   rk   r.   Úrngrj   r0   r0   r1   Útest_high_freq�   s    zTestTSPlot.test_high_freqc                 C   sn   ddl m} |d dƒd kst‚|ddƒdks0t‚|tddƒdƒtddƒjksPt‚|ddƒtd	dƒjksjt‚d S )
Nr   )Úget_datevaluerc   éÃ  rS   re   z1987-12rA   z1987-1-1)Ú%pandas.plotting._matplotlib.converterr€   r+   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:t‚d S )Nr   )r'   r(   rƒ   Ú	get_ydataZformat_coordr+   )r.   Zexpected_stringÚ
first_lineZfirst_xZ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-01rE   zA-DECr}   r   rX   zt = 2014  y = 1.000000rc   zt = 2014-01-01  y = 1.000000)r   r   r:   r;   r%   rr   r[   )r,   r‡   Zannualrk   r.   Z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 ©Nrh   rB   rC   )
r   r   r6   r7   r8   rJ   r$   r%   r    r   ©r,   r   rL   rj   r0   r0   r1   Útest_line_plot_period_series²   s    z'TestTSPlot.test_line_plot_period_seriesÚfrqncyZ1SZ3SZ5TZ7HZ4DZ8WZ11MZ3Ac                 C   s:   t d|dd�}ttj t|ƒ¡|ƒ}t|j|jj	j
ƒ d S r‰   )r   r   r6   r7   r8   rJ   r$   r%   r    r   Ú	rule_code)r,   rŒ   rL   rx   r0   r0   r1   Ú test_line_plot_period_mlt_series¸   s    z+TestTSPlot.test_line_plot_period_mlt_seriesc                 C   s:   t d|dd�}ttj t|ƒ¡|ƒ}t|j|jj	j
ƒ d S r‰   )r   r   r6   r7   r8   rJ   r$   r%   r    r   r�   rŠ   r0   r0   r1   Útest_line_plot_datetime_seriesÂ   s    z)TestTSPlot.test_line_plot_datetime_seriesc                 C   sD   t d|dd�}ttj t|ƒd¡|dddgd�}t|j|jj	ƒ d S ©	Nrh   rB   rC   rE   rS   rW   ÚC©r    Úcolumns)
r   r   r6   r7   r8   rJ   r$   r%   r    r   ©r,   r   rL   r=   r0   r0   r1   Útest_line_plot_period_frameÊ   s    "z&TestTSPlot.test_line_plot_period_framec                 C   sT   t d|dd�}ttj t|ƒd¡|dddgd�}|j |jjj	¡j}t
|j|ƒ d S r�   )r   r   r6   r7   r8   rJ   r    Úasfreqr   r�   r$   r%   )r,   rŒ   rL   r=   r   r0   r0   r1   Útest_line_plot_period_mlt_frameÐ   s    "z*TestTSPlot.test_line_plot_period_mlt_framec                 C   sT   t d|dd�}ttj t|ƒd¡|dddgd�}|j |jjj	¡j}t
|j|ƒ d S r�   )r   r   r6   r7   r8   rJ   r    Ú	to_periodr   r�   r$   r%   r”   r0   r0   r1   Útest_line_plot_datetime_frameÜ   s    "z(TestTSPlot.test_line_plot_datetime_framec                 C   sj   t d|dd�}ttj t|ƒ¡|ƒ}t|jtt |j	¡ƒƒ}t
|j|j	jƒ |ddddg }t
|jƒ d S )Nrh   rB   rC   r   rE   é   é   )r   r   r6   r7   r8   rJ   rI   r	   Zasarrayr    r$   r%   Z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ƒrbt	‚d S )Nz2001-1-1z	2001-1-10r   rE   rš   rX   r   )
r:   r;   r   r   r9   rJ   r   r%   Úhasattrr+   )r,   rk   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   ZBQSr3   rC   r   )rr   rs   r$   r%   r   r    r   r6   r7   r8   rJ   )r,   rj   Ú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   r6   r7   r8   rJ   r$   r%   )r,   rŸ   rj   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 ]8\}	}
| |	¡ d	¡}t|
 ¡ ƒ}t	|ƒr|||ks|t‚q|d S )
Nr   z2012-6-22 21:59:51.960928ÚLéô  rC   r   r   rX   ú%H:%M:%S.%f)r‚   ÚplottingÚ_matplotlibÚ	converterr   r   r6   r7   r8   rJ   r:   r;   r%   Ú	get_xaxisZget_ticklocsÚget_ticklabelsÚzipZ_from_ordinalÚstrftimeÚstrÚget_textr+   )r,   ÚconvrL   r=   rk   r.   ZaxisZtlocsZtlabelsÚlocr?   Ú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ddd	d
g }| j ¡ \}}|j	|d� t
| ¡ d  ¡ d d …df ƒ ¡ }d}t |dd … ||d |g ¡dk  ¡ s¨t‚| j ¡ \}}| ¡ }|j t¡|_|j	|d� t
| ¡ d  ¡ d d …df ƒ ¡ }t |dd … | ¡dk  ¡ �s t‚d S )Nz2012-6-22 21:59:51ra   rB   rC   r   r   r   r#   rE   é   rX   g)QÎ ÈEè>g:Œ0âŽyE>)r   r   r6   r7   r8   rJ   Úilocr:   r;   r%   r   r'   Ú
get_xydataÚdiffÚfabsÚallr+   Úcopyr    ÚastypeÚobject)	r,   rL   r=   Úirregrk   r.   ZdiffsÚsecrM   r0   r0   r1   Útest_irreg_hf  s    $,$zTestTSPlot.test_irreg_hfc                 C   sp   t  ¡ }|ddddg }| j ¡ \}}|j|d�}|d k	s>t‚t| ¡ d  ¡ |j	ƒD ]\}}||ksVt‚qVd S )Nr   r#   r   é   rX   )
rr   rs   r:   r;   r%   r+   r­   r'   r(   r    )r,   rj   rk   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sFt	‚| ¡ d  
¡ }t|d�jdksjt	‚d S )NrX   r   r!   ©ÚdatarW   )rr   ZmakePeriodSeriesr:   r;   r%   r'   r¸   r    rƒ   r+   r(   r   Úfreqstr©r,   Úbtsrk   r.   rL   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sXt‚| ¡ d  ¡ }t|d�jdks|t‚d S )Ni,  ZBMre   rX   r   r!   rÅ   )rr   rs   r–   r˜   r:   r;   r%   r'   r¸   r    rƒ   r+   r(   r   rÇ   )r,   rÉ   r-   rk   r.   rL   r0   r0   r1   Útest_business_freq_convert@  s    
$z%TestTSPlot.test_business_freq_convertc              	   C   sl   t ƒ }t d¡ |¡}| j ¡ \}}|j|d� | ¡ d  ¡ }d}t	j
t|d�� t|d� W 5 Q R X d S )Nrš   rX   r   z)freq not specified and cannot be inferredrY   rÅ   )r   rr   rs   r–   r:   r;   r%   r'   r(   r\   r]   rw   r   )r,   r   rÉ   rk   r.   rL   r_   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rbt‚d S )
Nz
2012-12-20é   r   r}   é   ©Úminutesr   rX   r   )r   r   r   r6   Úaranger:   r;   r%   r'   r(   r	   Úis_normalizedr+   )r,   rL   r=   rk   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 )NrQ   rX   r   )r   rr   rs   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 ]}||ƒ qŒd S )Nc                    sH  |   ¡ }|  |d d |d d ¡ |   ¡ }|d |d d ksDt‚|d |d d ks\t‚td| jƒtd| jƒf}|  dd¡ |   ¡ }t|d ƒ|d jks¢t‚t|d ƒ|d jks¼t‚td| jƒtd| jƒf}|  tdddƒtdddƒ¡ |   ¡ }t|d ƒ|d jk�st‚t|d ƒ|d jk�s0t‚|  ¡ }ˆ j	 
|¡ d S )	Nr   rš   r#   r3   ú1/1/2000z4/1/2000r¡   r¶   )Úget_xlimÚset_xlimr+   r   r   Úintrƒ   r   Ú
get_figurer:   r[   )r.   ZxlimÚresultÚexpectedr>   ©r,   r0   r1   Ú_testf  s"    z*TestTSPlot.test_axis_limits.<locals>._testrX   r#   ©rQ   ÚbT)r;   )rr   rs   r:   r;   r%   r   )r,   rÞ   rj   rk   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s0t‚| tdƒ¡|jksHt‚| tdƒ¡|jks`t‚| tdƒ¡|j	ksxt‚| tdƒ¡|j
ks�t‚| tdƒ¡|jks¨t‚d S )Nr   rW   rc   re   rf   rS   rd   )r‚   r¨   r©   rª   Z
get_finderr   Z_daily_finderr+   Z_monthly_finderZ_quarterly_finderZ_annual_finder)r,   r±   r0   r0   r1   Útest_get_finder�  s    zTestTSPlot.test_get_finderc                 C   sð   dddddddg}t dd	d
�jgt|ƒ  }}g }g }|D ]˜}td|d�}ttj t|ƒ¡|ƒ}| j 	¡ \}	}
|j
|
d� |
 ¡ }| | ¡ d ¡ |
 ¡ \}}|
 |d |¡ | | ¡ d ¡ | j |
 ¡ ¡ q:||ksàt‚||ksìt‚d S )Nr3   rF   éü   i�  i¶  i¾
  é'  z1999-1-1rW   rD   ©r   rX   r   çÍÌÌÌÌÌì?)r   rƒ   rJ   r   r   r6   r7   r8   r:   r;   r%   r«   ÚappendÚget_majorticklocsr×   rØ   r[   rÚ   r+   )r,   Zday_lstÚxpl1Úxpl2Úrs1Úrs2Únr~   rj   rk   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 ]¢}tdt|d ƒdd�}ttj t|ƒ¡|ƒ}| j	 
¡ \}	}
|j|
d� |
 ¡ }| | ¡ d	 ¡ |
 ¡ \}}|
 |d
 |¡ | | ¡ d	 ¡ | j	 |
 ¡ ¡ q,||ksÜt‚||ksèt‚d S )Ng      @r¢   Ú1988Q1Ú1987Q2r¶   rf   r}   rX   r   rç   ©r   rƒ   rJ   r   rÙ   r   r6   r7   r8   r:   r;   r%   r«   rè   ré   r×   rØ   r[   rÚ   r+   ©r,   Zyrsrê   rë   rì   rí   rî   r~   rj   rk   r.   rï   rð   rñ   r0   r0   r1   Útest_finder_quarterly­  s"    z TestTSPlot.test_finder_quarterlyc                 C   sð   ddddg}t dƒjgt|ƒ  }}g }g }|D ]¢}tdt|d ƒdd	�}ttj t|ƒ¡|ƒ}| j	 
¡ \}	}
|j|
d
� |
 ¡ }| | ¡ d ¡ |
 ¡ \}}|
 |d |¡ | | ¡ d ¡ | j	 |
 ¡ ¡ q0||ksàt‚||ksìt‚d S )Ngffffffò?g      @r¶   r¢   zJan 1988rô   é   re   r}   rX   r   rç   rõ   rö   r0   r0   r1   Útest_finder_monthlyÃ  s"    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sjt‚d S )Nró   i   re   r}   rX   r   Z1989Q1)r   r   r6   r7   r8   rJ   r:   r;   r%   r«   ré   r   rƒ   r+   )r,   r~   rj   rk   r.   rï   r´   r³   r0   r0   r1   Útest_finder_monthly_longÙ  s    z#TestTSPlot.test_finder_monthly_longc           	      C   s¨   ddddddddg}dd	„ |D ƒ}g }d
D ]l}t d|dd�}ttj t|ƒ¡|ƒ}| j ¡ \}}|j|d� | 	¡ }| 
| ¡ d ¡ | j | ¡ ¡ q*||ks¤t‚d S )Nr�   iÄ  iÆ  éË  iä  i  iz  c                 S   s   g | ]}t |d d�j‘qS )rS   rD   )r   rƒ   ©Ú.0rT   r0   r0   r1   Ú
<listcomp>å  s     z1TestTSPlot.test_finder_annual.<locals>.<listcomp>)rš   r3   é   é1   rH   éÇ   iW  ié  Z1987rS   r}   rX   r   )r   r   r6   r7   r8   rJ   r:   r;   r%   r«   rè   ré   r[   rÚ   r+   )	r,   r³   r´   Znyearsr~   rj   rk   r.   rï   r0   r0   r1   Útest_finder_annualã  s    zTestTSPlot.test_finder_annualc           	      C   st   d}t dd|d�}ttj t|ƒ¡|ƒ}| j ¡ \}}|j|d� | 	¡ }| 
¡ d }tddd�j}||kspt‚d S )Ni@ ú1/1/1999ZMinrC   rX   r   rD   ©r   r   r6   r7   r8   rJ   r:   r;   r%   r«   ré   r   rƒ   r+   )	r,   Znminutesr~   rj   rk   r.   rï   r´   r³   r0   r0   r1   Útest_finder_minutelyò  s    zTestTSPlot.test_finder_minutelyc           	      C   st   d}t dd|d�}ttj t|ƒ¡|ƒ}| j ¡ \}}|j|d� | 	¡ }| 
¡ d }tddd�j}||kspt‚d S )Né   r  r   rC   rX   r   rD   r  )	r,   Znhoursr~   rj   rk   r.   rï   r´   r³   r0   r0   r1   Útest_finder_hourlyÿ  s    zTestTSPlot.test_finder_hourlyc           
   
   C   sZ  t  ¡ }tj|jdd…< | j ¡ \}}|j|d� | ¡ }t	|ƒdksJt
‚|d }| ¡ }tjj|t|ƒtjd�}t|tjjjƒs†t
‚|j}|dd…df  ¡ s¤t
‚| j | ¡ ¡ t  ¡ }|dddddd	d
ddg	 }tj|jdd…< | j ¡ \}}|j|d�}| ¡ }t	|ƒdk�st
‚|d }| ¡ }tjj|t|ƒtjd�}t|tjjjƒ�sXt
‚|j}|dd…df  ¡ �sxt
‚| j | ¡ ¡ dddddd	d
ddg	}ttj t	|ƒ¡|ƒ}	tj|	jdd…< | j ¡ \}}|	j|d� | ¡ }t	|ƒdk�søt
‚|d }| ¡ }tjj|t|ƒtjd�}t|tjjjƒ�s6t
‚|j}|dd…df  ¡ �sVt
‚d S )Nrš   é   rX   r#   r   ©ÚmaskZ
fill_valuer   rÂ   r4   rø   é   é   )rr   rs   r6   Únanr·   r:   r;   r%   r'   rJ   r+   r¸   ÚmaÚMaskedArrayr   Ú
isinstanceÚcorer
  r»   r[   rÚ   r   r7   r8   )
r,   r-   rk   r.   ÚlinesÚlinerÆ   r
  rL   rj   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s†t‚t|j ¡ ƒd
ksœt‚|d }| ¡ }tjj|t|ƒtjd�}t|tjjjƒsØt‚|j}	|	dd…d
f  ¡ söt‚d S )Nrš   r  rX   r   r"   Z12hrD   T©Úsecondary_yr#   r	  )rr   rs   r6   r  r·   r:   r;   r%   r   r    r   r7   r8   rJ   r'   r+   Úright_axr¸   r  r  r   r  r  r
  r»   )
r,   Úlowrk   r.   Úidxhrx   r  r  rÆ   r
  r0   r0   r1   Útest_gap_upsample>  s     zTestTSPlot.test_gap_upsamplec           
      C   sd  t tj d¡ƒ}t tj d¡ƒ}| j ¡ \}}|jdd�}t|dƒsHt‚t|dƒrVt‚| 	¡ }| 
¡ d }t | ¡ | ¡ ƒ}t ||¡ | ¡  ¡ dksœt‚|d  ¡  ¡ r°t‚| j |¡ | j ¡ \}}	|j|	d� |	 ¡  ¡ d	ksêt‚| j |	 ¡ ¡ | ¡ }|jdd�}	| ¡  ¡ �s t‚t|dƒ�r0t‚t|dƒ�s@t‚t|	dƒ�sPt‚t|	dƒ�r`t‚d S )
Nr3   Tr  Úleft_axr  r   ÚrightrX   Úleft)r   r6   r7   r8   r:   r;   r%   r�   r+   Úget_axesr'   r…   r(   rr   Úassert_series_equalÚ	get_yaxisÚget_ticks_positionÚget_visibler[   rÚ   )
r,   rj   Úser2r>   rk   r.   rá   r  r³   Úax2r0   r0   r1   Útest_secondary_yS  s0    zTestTSPlot.test_secondary_yc                 C   s8  t ddd�}ttj d¡|ƒ}ttj d¡|ƒ}| j ¡ \}}|jdd�}t|dƒsXt	‚t|dƒrft	‚| 
¡ }| ¡ d }t| ¡ | ¡ ƒ ¡ }	t ||	¡ | ¡  ¡ d	ks°t	‚|d  ¡  ¡ rÄt	‚| j |¡ | j ¡ \}}
|j|
d
� |
 ¡  ¡ dksþt	‚| j |
 ¡ ¡ | ¡ }|jdd�}
| ¡  ¡ �s4t	‚d S )NrÖ   r3   ræ   Tr  r  r  r   r  rX   r  )r   r   r6   r7   r8   r:   r;   r%   r�   r+   r  r'   r…   r(   Zto_timestamprr   r  r   r!  r"  r[   rÚ   )r,   rL   rj   r#  r>   rk   r.   rá   r  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<t‚t|dƒrJt‚| 	¡ }|d  
¡  ¡ dksjt‚d S )	Nr3   TZdensity©r  Úkindr.   r  r  r#   r  )r   r6   r7   r8   r:   r;   r%   r�   r+   r  r   r!  ©r,   rj   r>   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sNt
‚d S )Nr3   TÚbarr'  r#   r  )r   r6   r7   r8   r:   r;   r%   r  r   r!  r+   r)  r0   r0   r1   Útest_secondary_bar’  s
    zTestTSPlot.test_secondary_barc                 C   sz   t tj dd¡dddgd�}|jddgdd�}|d	  ¡  ¡ d
ksFt‚|d  ¡  ¡ dks^t‚|d  ¡  ¡ d
ksvt‚d S )Nrš   rE   rQ   rà   Úc©r“   T)r  r;   r   r  r#   r  r   ©r   r6   r7   r8   r%   r   r!  r+   ©r,   r=   rá   r0   r0   r1   Útest_secondary_frame™  s
    zTestTSPlot.test_secondary_framec                 C   s|   t tj dd¡dddgd�}|jdddgdd	�}|d
  ¡  ¡ dksHt‚|d  ¡  ¡ dks`t‚|d  ¡  ¡ dksxt‚d S )Nrš   rE   rQ   rà   r-  r.  r+  T)r(  r  r;   r   r  r#   r  r   r/  r0  r0   r0   r1   Útest_secondary_bar_frame   s
    z#TestTSPlot.test_secondary_bar_framec              	   C   sÖ   t  ¡ }|ddddddddg }| j ¡ \}}|j|d	� |jd
|d�}| ¡ }t|d  ¡ ƒ}t|d  ¡ ƒ}t  ||j	 
d¡¡ t  ||j	 
d¡¡ | ¡ \}	}
|j	 
¡ }|	|d jksÀt‚|
|d jksÒt‚d S ©Nr   rš   r3   r¢   rø   é   é   r  rX   Úgro   r#   rW   r"   )rr   rs   r:   r;   r%   r'   r   r(   rÔ   r    r˜   r×   rƒ   r+   ©r,   Ús1Ús2rk   r.   r$  r  Úidx1Úidx2r  r  Zpidxr0   r0   r1   Útest_mixed_freq_regular_first§  s    
z(TestTSPlot.test_mixed_freq_regular_firstc              	   C   s¦   t  ¡ }|ddddddddg }| j ¡ \}}|jd	|d
� |j|d� t|dƒrVt‚| ¡ }|d  ¡ }t  	||j
 t¡j¡ |d  ¡ }t  	||j
 t¡j¡ d S ©Nr   rš   r3   r¢   rø   r4  r5  r  r6  ro   rX   r   r#   )rr   rs   r:   r;   r%   r�   r+   r'   r(   Úassert_numpy_array_equalr    r½   r¾   rI   ©r,   r8  r9  rk   r.   r  Úx1Zx2r0   r0   r1   Útest_mixed_freq_irregular_first½  s    z*TestTSPlot.test_mixed_freq_irregular_firstc              	   C   sè   t  ¡  ¡ }|jddddddddgd d …f }| j ¡ \}}|j|d	� |jd
|d�}| ¡ }t|d  	¡ ƒ}t|d  	¡ ƒ}| 
|j d¡¡s”t‚| 
|j d¡¡sªt‚| ¡ \}	}
|j ¡ }|	|d jksÒt‚|
|d jksät‚d S r3  )rr   rs   Úto_framer·   r:   r;   r%   r'   r   r(   Úequalsr    r˜   r+   r×   rƒ   r7  r0   r0   r1   Ú test_mixed_freq_regular_first_dfÊ  s    "
z+TestTSPlot.test_mixed_freq_regular_first_dfc              	   C   s´   t  ¡  ¡ }|jddddddddgd d …f }| j ¡ \}}|jd	|d
� |j|d� t|dƒrdt‚| 	¡ }|d  
¡ }t  ||j t¡j¡ |d  
¡ }t  ||j t¡j¡ d S r=  )rr   rs   rB  r·   r:   r;   r%   r�   r+   r'   r(   r>  r    r½   r¾   rI   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svt‚qvd S )	Nr  ém  rc   r}   rø   re   rX   rÅ   ©r   r   r6   r7   r8   rJ   r:   r;   r%   r'   r   r(   r   r+   ©r,   r  ÚidxlÚhighr  rk   r.   r  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s„t‚d S )Nz2012-01-01 13:00ú
2012-01-02r   rD   rø   r   rb   rX   Úrro   r   r#   )r   r6   r7   r8   r   r–   Zinterpolater:   r;   r%   r  r(   r+   )r,   Zts_indZts_datar-   Zts2rk   r.   r0   r0   r1   Útest_mixed_freq_alignmentô  s    z$TestTSPlot.test_mixed_freq_alignmentc           	      C   s^  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szt‚qz| ¡ }t|jƒd
ks²t‚| 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�s8t‚�q8d S )Nr  rF  rc   r}   rø   re   T)Zlegendr.   rÅ   r   éð   rb   r¶   r   rX   )r   r   r6   r7   r8   rJ   r:   r;   r%   r'   r   r(   r   r+   Ú
get_legendZtextsr[   rÚ   )	r,   r  rI  rJ  r  rk   r.   r  Úlegr0   r0   r1   Útest_mixed_freq_lf_first  s*    z#TestTSPlot.test_mixed_freq_lf_firstc                 C   s~   t  ¡ }|ddddddddd	d
ddddddg }tdddd�}ttj t|ƒ¡|ƒ}| j 	¡ \}}|j
|d� |j
|d� d S )Nr   r#   r   rE   r¶   rš   r›   rÂ   é   r4   r3   r  é   é   é   é   z1/3/2000rÎ   rW   r}   rX   )rr   rs   r   r   r6   r7   r8   rJ   r:   r;   r%   )r,   r-   r¿   r~   Zpsrk   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sŠt	‚|jdks˜t	‚|j
d
  ¡ d |j
d
  ¡ d ksÀt	‚| j ¡ \}}| ¡ }|j|d	� |j|d	� |j
d
  ¡ d |j
d
  ¡ d k�st	‚d S )Nú
2015-01-01rE   re   r}   r#   r   T)ZnrowsÚsharexrX   r   r!   )r   rK   r   r9   rJ   r:   r;   r%   r   r+   r  r¸   Ztwinx)r,   r:  r;  r8  r9  r>   Z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sdt‚t|ƒ ¡ |j
 ¡ ks~t‚d S )NrY  z
2015-01-03rX   r   )r:   r;   r   r
   r   r9   rJ   r%   r'   r(   r    Úminr+   Úmax)r,   rk   r.   Zdtirx   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svt‚qvd S )	Nr  é4   rd   r}   rø   re   rX   rÅ   rG  rH  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dd	d
dddddddddgtjd�}| ¡ D ]P}	t|	 ¡ d�j|jksÎt‚|	jdd�}
t|
ƒdkrôt |
|¡ q°t |
|¡ q°t ¡  d S )Nr  r_  rd   r}   rø   re   rX   éê  éï  éó  é÷  éû  é   é  é  é  é  é  é  ©ZdtyperÅ   F©Úorig)r   r   r6   r7   r8   rJ   r:   r;   r%   r˜   Úasi8r½   Úfloat64rO   r'   r   r(   r   r+   rr   r>  r[   )r,   r  rI  rJ  r  rk   r.   Z
expected_hZ
expected_lr  r/   r0   r0   r1   Útest_from_weekly_resamplingX  s&    þz&TestTSPlot.test_from_weekly_resamplingc                 C   sZ  t dddd�}t dddd�}ttj t|ƒd¡|dd	d
gd�}ttj t|ƒd¡|dd	d
gd�}dD �]p\}}| j ¡ \}}|j|d|d� |j|d|d� tj	ddddddddddddgtj
d�}	tjt|	ƒtj
d�}
tdƒD ]^}|j| }t| ¡ ƒj|jk�st‚t |jdd�|	¡ |
|| j7 }
t |jdd�|
¡ qà| ¡ j tj
¡}	tjt|	ƒtj
d�}
tdƒD ]f}|jd|  }t| ¡ d�j|jk�sœt‚t |jdd�|	¡ |
|| j7 }
t |jdd�|
¡ �qnqddD �]v\}}| j ¡ \}}|j|d|d� |j|d|d� | ¡ j tj
¡}	tjt|	ƒtj
d�}
tdƒD ]b}|j| }t| ¡ d�j|jk�slt‚t |jdd�|	¡ |
|| j7 }
t |jdd�|
¡ �qBtj	ddddddddddddgtj
d�}	tjt|	ƒtj
d�}
tdƒD ]f}|jd|  }t| ¡ d�j|jk�st‚t |jdd�|	¡ |
|| j7 }
t |jdd�|
¡ �qê�qÜd S )Nr  r_  rd   r}   rø   re   rE   r   r#   r   r’   ))r  Úarea)rs  r  T)r(  Zstackedr.   ra  rb  rc  rd  re  rf  rg  rh  ri  rj  rk  rl  rm  Frn  rÅ   )r   r   r6   r7   ÚrandrJ   r:   r;   r%   rO   rq  Zzerosr9   r  r   r(   r   r+   rr   r>  rI   r…   r˜   rp  r½   )r,   r  rI  rJ  r  Zkind1Zkind2rk   r.   Z
expected_xZ
expected_yrP   r  r  r0   r0   r1   Ú$test_from_resampling_area_line_mixedo  s”    ""ôñ

ôñ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s‚t
‚| 	¡ D ]}t| ¡ d	�jd
ksŠt
‚qŠt ¡  | j ¡ \}}|j|d� |j|d� t| 	¡ ƒdksêt
‚| 	¡ D ]}t| ¡ d	�jd
ksòt
‚qòd S )Nz2014-07-01 09:00ra   é2   rC   Z100Lr¦   rX   r   rÅ   r¥   )r   r   r6   r7   r8   rJ   r:   r;   r%   r'   r+   r   r(   r   rr   r[   rH  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	�}|d
dddg  t¡}ttj t|ƒd¡|ƒ}| j ¡ \}}t|j	|d� d S )Nr¡   r#   rš   r  rE   rm  rÖ   r3   ræ   r   r   r4   rX   )r   r   r6   r7   r8   rJ   r	   r¾   r$   r%   r   r½   r:   r;   )r,   rL   r=   rk   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 ]v\}}	tt|ƒdƒ\}
}t|
dƒ\}}
|	 ¡ }t|ƒdkrœ|dkrôt||
|ƒ d¡}nt||
|ƒ d¡}||ksœt‚qœd S )Nr#   rE   rÎ   r   r  c                    s"   g | ]}ˆ t t|ƒd �  ¡ ‘qS ©rÏ   ©r   rÙ   r   rü   ©Útr0   r1   rþ   ñ  s     z(TestTSPlot.test_time.<locals>.<listcomp>rß   r   rX   é<   ú%H:%M:%Sú%H:%M)r   r6   r7   ÚrandintÚcumsumrO   r   r8   rJ   r:   r;   r%   Ú
get_xticksr<   r­   ÚdivmodrÙ   r°   r   r®   r+   ©r,   Údeltasr-   r=   r>   r.   ÚticksÚlabelsÚ_tickÚ_labelÚmrx   Ú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 ]v\}}	tt|ƒdƒ\}
}t|
dƒ\}}
|	 ¡ }t|ƒdkrœ|dkrôt||
|ƒ d¡}nt||
|ƒ d¡}||ksœt‚qœ| dd¡ | ¡ }| ¡ }t||ƒD ]~\}}	tt|ƒdƒ\}
}t|
dƒ\}}
|	 ¡ }t|ƒdk�r:|dk�r–t||
|ƒ d¡}nt||
|ƒ d¡}||k�s:t‚�q:d S )Nr#   rE   rÎ   r   r  c                    s"   g | ]}ˆ t t|ƒd �  ¡ ‘qS ry  rz  rü   r{  r0   r1   rþ   	  s     z4TestTSPlot.test_time_change_xlim.<locals>.<listcomp>rß   r   rX   r}  r~  r  z1:30z5:00)r   r6   r7   r€  r�  rO   r   r8   rJ   r:   r;   r%   r‚  r<   r­   rƒ  rÙ   r°   r   r®   r+   rØ   r„  r0   r{  r1   Útest_time_change_xlim  s@      ÿ
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 ]à\}}	tt|ƒdƒ\}
}t|t|ƒ d ƒ}t|
dƒ\}}
|	 ¡ }t|ƒdkrœ|d dk�rt||
||ƒ d¡}n`|d dk�r<t||
||ƒ d¡d d… }n4|dk�r\t||
||ƒ d¡}nt||
||ƒ d¡}||ksœt‚qœd S )Nr#   rE   rÎ   r   r  c                    s"   g | ]}ˆ t t|ƒd �  ¡ ‘qS ))Úmicrosecondsrz  rü   r{  r0   r1   rþ   2  s     z.TestTSPlot.test_time_musec.<locals>.<listcomp>rß   r   rX   r}  g    €„.Aiè  r§   éýÿÿÿr~  r  )r   r6   r7   r€  r�  rO   r   r8   rJ   r:   r;   r%   r‚  r<   r­   rƒ  rÙ   Úroundr°   r   r®   r+   )r,   r…  r-   r=   r>   r.   r†  r‡  rˆ  r‰  rŠ  rx   r{   r‹  r´   r³   r0   r{  r1   Útest_time_musec/  s2      ÿ
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sxt‚qxt|d
ƒs¢t‚t|dƒr°t‚|j 	¡ D ]}t
| ¡ ƒjdksºt‚qºd S )Nr  rF  rc   r}   rø   re   rX   T©r  r.   r  r  )r   r   r6   r7   r8   rJ   r:   r;   r%   r'   r   r(   r   r+   r�   r  rH  r0   r0   r1   Útest_secondary_upsampleN  s    z"TestTSPlot.test_secondary_upsamplec                 C   sZ  | j  ¡ }| d¡}t ¡ }|jddg|d� | ¡ }t| ¡ ƒdksJt	‚| 
¡ d  ¡ dksbt	‚| 
¡ d  ¡ d	kszt	‚| 
¡ d
  ¡ dks’t	‚| 
¡ d  ¡ dksªt	‚|j ¡ d ks¼t	‚tƒ }| ¡ D ]}| | ¡ ¡ qÊt|ƒdksît	‚| j  |¡ | j  ¡ }| d¡}|jddgd|d� | ¡ }t| ¡ ƒdk�s@t	‚| 
¡ d  ¡ dk�sZt	‚| 
¡ d  ¡ dk�stt	‚| 
¡ d
  ¡ dk�sŽt	‚| 
¡ d  ¡ dk�s¨t	‚| j  |¡ | j  ¡ \}}|jddg|d� | ¡ }| 
¡ d  ¡ dk�söt	‚| 
¡ d  ¡ dk�st	‚| j  |¡ | j  ¡ \}}|jddgd|d� | ¡ }| 
¡ d  ¡ dk�s`t	‚| 
¡ d  ¡ dk�szt	‚| j  |¡ | j  ¡ }| d¡}t ¡ }|jddg|d�}| ¡ }t| ¡ ƒdk�sÒt	‚|j ¡ d k�sæt	‚tƒ }| ¡ D ]}| | ¡ ¡ �qôt|ƒdk�st	‚| j  |¡ t ¡ }| j  ¡ }| d¡}|jddg|d�}| ¡ }t| ¡ ƒdk�stt	‚|j ¡ d k�sˆt	‚tƒ }| ¡ D ]}| | ¡ ¡ �q–t|ƒdk�s¾t	‚| j  ¡  | j  ¡ }| d¡}|jddg|d�}| ¡ }t| ¡ ƒdk�st	‚|j ¡ d k�s t	‚tƒ }| ¡ D ]}| | ¡ ¡ �q.t|ƒdk�sVt	‚d S )NéÓ   rS   rW   r’  r¶   r   z	A (right)r#   z	B (right)r   r‘   rE   rc   F)r  Ú
mark_rightr.   r+  )r(  r  r.   )r(  r  r•  r.   )r:   ZfigureÚadd_subplotrr   ZmakeTimeDataFramer%   rP  rJ   r'   r+   Z	get_textsr°   r  ÚsetÚaddrt   r[   r;   ZmakeDataFrame)r,   r>   r.   r=   rQ  Úcolorsr  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rP| ¡ dksPt‚qPd S )	Nr|   rø   re   r}   rE   rX   r   rÎ   )r   r   r6   r7   r8   rJ   r:   r;   r%   r«   r¬   r°   Zget_rotationr+   )r,   r~   r=   rk   r.   rï   r  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 )NrL  r3   rc   ©Ústartr   r   ÚY)r?   r   )r   r&   r9   rJ   r:   r;   r%   rr   rÔ   r   r(   )r,   rT   rU   rk   r.   r  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|Ž |jdd„ |D ƒ|f|Ž | ¡ \}}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¶   )ÚfmtZlwc                 S   s   g | ]}|  ¡ ‘qS r0   ©Ú	toordinalrü   r0   r0   r1   rþ   Ò  s     z0TestTSPlot.test_mpl_nopandas.<locals>.<listcomp>c                 S   s   g | ]}|  ¡ ‘qS r0   r¤  rü   r0   r0   r1   rþ   Ó  s     c                 S   s   g | ]}|  ¡ ‘qS r0   r¤  rü   r0   r0   r1   rþ   ×  s     rm  r   c                 S   s   g | ]}|  ¡ ‘qS r0   r¤  rü   r0   r0   r1   rþ   Ù  s     )r   r6   rÑ   r:   r;   Z	plot_dater'   rO   rq  rr   r>  r¸   )
r,   ÚdatesZvalues1Zvalues2Úkwrk   r.   Úline1Úline2Úexpr0   r0   r1   Útest_mpl_nopandasÊ  s    
zTestTSPlot.test_mpl_nopandasc                 C   s¼   ddl m} t ¡ d d… }|dddddd	d
ddddddg }| j ¡ \}}|d d… j|d� |dd … j|d� | ¡ \}}|| |j	 
¡ d|¡ksœt‚|| |j	 ¡ d|¡ks¸t‚d S )Nr   ©ÚDatetimeConverterr  r#   r¶   rš   r›   rS  r4   r3   rø   r4  r5  r  rU  rV  rX   Ú ©r‚   r­  rr   rs   r:   r;   r%   r×   Úconvertr    r\  r+   r]  ©r,   r­  r-   Zts_irregularrk   r.   r  r  r0   r0   r1   Ú test_irregular_ts_shared_ax_xlimÜ  s    "z+TestTSPlot.test_irregular_ts_shared_ax_xlimc                 C   sŒ   ddddg}ddddg}t d|d	�}t d|d	�}| j ¡ \}}|j|d
� | ¡ \}}|jd|d� | ¡ \}	}
||	ks|t‚||
k sˆt‚d S )Nr#   r   rE   r¶   rš   r›   rÂ   rS  r   rX   Tr’  )r   r:   r;   r%   r×   r+   ©r,   Zindex_1Zindex_2r8  r9  rk   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€t‚||
k sŒt‚d S )Nú
2000-01-01r¶   rc   rœ  z
2000-01-05r#   r   r   rX   Tr’  )r   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spt‚||ks|t‚d S )Nr¹  rå   r\  r}   r#   r   rX   rc   Tr’  )	r   r   r:   r;   r%   r×   ZresampleZmeanr+   )	r,   r~   r-   rk   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… }|dddddd	d
ddddddg }| j ¡ \}}|d d… j|d� |dd … jd|d� |d d… j|d� | ¡ \}}|| |j	 
¡ d|¡ks²t‚|| |j	 ¡ d|¡ksÎt‚d S )Nr   r¬  r  r#   r¶   rš   r›   rS  r4   r3   rø   r4  r5  r  rU  rV  rX   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,   rI   rk   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sŠt‚||ks–t‚d S )Nc                 S   s   g | ]}d |d›�‘qS )z00:00:00.0000000z0>2dr0   )rý   rP   r0   r0   r1   rþ   8  s     zATestTSPlot.test_format_timedelta_ticks_narrow.<locals>.<listcomp>r3   Ú0Únsr}   rE   r   r5   c                 S   s   g | ]}|  ¡ ‘qS r0   ©r°   rü   r0   r0   r1   rþ   A  s     )r6   rÑ   r   r   r7   r8   rJ   r:   r;   r%   Údrawr<   r+   ©r,   Zexpected_labelsr~   r=   r>   r.   r‡  Zresult_labelsr0   r0   r1   Ú"test_format_timedelta_ticks_narrow7  s    
z-TestTSPlot.test_format_timedelta_ticks_narrowc              	   C   sœ   ddddddddd	g	}t d
ddd�}ttj t|ƒd¡|ƒ}| j ¡ \}}|jd|d�}| j 	¡  | 
¡ }dd„ |D ƒ}t|ƒt|ƒksŒt‚||ks˜t‚d S )Nz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}   rE   r   r5   c                 S   s   g | ]}|  ¡ ‘qS r0   rÀ  rü   r0   r0   r1   rþ   Y  s     z?TestTSPlot.test_format_timedelta_ticks_wide.<locals>.<listcomp>)r   r   r6   r7   r8   rJ   r:   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š   Z1dayræ   rX   z1 day 2 hr 30 min 10 sr3   rÄ  r}   z1 ns)r   r9   r   r:   r;   r$   r%   r6   r7   r8   rJ   )r,   rx   rk   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   r6   rÑ   r:   r;   Úhist)r,   r~   rT   Zw1Zw2rk   r.   r0   r0   r1   Ú	test_histo  s    zTestTSPlot.test_histc                 C   s–   t dddgtdddƒtdddƒtdddƒgd	�}t dddgtd
ddƒtdddƒtdddƒgd	�}| j ¡ \}}|j|d� |j|d� |j|d� d S )Nr#   r   rE   rû   rø   r¡  r¡   iÕ  r   iÍ  iÓ  r   rX   )r   r   r:   r;   r%   )r,   r8  r9  rk   r.   r0   r0   r1   Útest_overlapping_datetimex  s$    


ýþ


ýþz$TestTSPlot.test_overlapping_datetimez1GH9053 matplotlib does not use ax.xaxis.converterc              	   C   sp   t tj d¡tddd�d�}| ¡ }t t¡� |j|j	|j
dd� W 5 Q R X |j\}}t | ¡ | ¡ ¡ d S )Nr3   z
1970-01-02ræ   r   r6  )ru   )r   r6   r7   r8   r   r%   rr   Zassert_produces_warningÚDeprecationWarningr    rI   r  r>  r¸   )r,   rx   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szt‚d S )Nr   r3   r   rT   rU   r.  z
2018-01-01rc   r}   r   )rT   rU   rÆ   )r   r6   r7   ZRandomStatert  r   r:   r;   ZscatterrÁ  r<   r°   r+   )r,   r=   r>   r.   r?   rÜ   r0   r0   r1   Ú"test_matplotlib_scatter_datetime64Ÿ  s     
z-TestTSPlot.test_matplotlib_scatter_datetime64c                 C   s  t dddgƒ}t|dddgdœƒ}|jdd	d�}| j|d
d� t dddgƒ}t|dddg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 )Nz
2020-05-01z
2020-05-02z
2020-05-03r#   r   rE   )rT   rU   rT   rU   r   )Zxrotz
2020-05-04rÎ   T)rU   Z	use_indexF)rT   rU   r;   rZ  )r   r   r%   Z_check_ticks_propsZ	set_index)r,   rT   r=   rá   r0   r0   r1   Útest_check_xticks_rotª  s     z TestTSPlot.test_check_xticks_rotN)_Ú__name__Ú
__module__Ú__qualname__r\   ÚmarkÚfilterwarningsr2   r@   rN   rR   r`   Zparametrizerl   rm   rv   ry   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  Zslowr  r  r  r  r%  r&  ÚtdZskip_if_no_scipyr*  r,  r1  r2  r<  rA  rD  rE  rK  rN  rR  rX  r[  r^  r`  rr  ru  rw  rx  rŒ  r�  r‘  r“  rš  r›  rŸ  r«  r²  r¸  rº  r»  r¼  r½  rÃ  rÅ  rÆ  rÉ  rÊ  rÎ  rÏ  rÐ  r0   r0   r0   r1   r   -   sì   


 ÿ


 ÿ
 ÿ

 ÿ
	 ÿ
 ÿ
	
		(


3
		 [)[

		
r   c              	   O   sB  dd l m} | ¡ }�z| ¡  | d¡}| d| ¡ ¡}t|dd ƒ}	| ||Ž}
|
d k	s\t	‚| d| ¡ ¡}|d k	r¢|j
j}t|tƒrŒ|j}|	d kr¢|j|ks¢t	‚|d k	rÀ|	d krÀ|j|ksÀt	‚| d¡}||d< | ||Ž}
|
d k	sèt	‚tjdd��}| |¡ W 5 Q R X tjdd��}t ||¡ W 5 Q R X W 5 | |¡ X d S )Nr   r”  r.   r   éÔ   T)Zreturn_filelike)Zmatplotlib.pyplotZpyplotZgcfr[   Zclfr–  ÚpopZgcaÚgetattrr+   r    r   r  r   r�   rr   Zensure_cleanZsavefigÚpickleÚdump)Úfr   ZseriesÚargsÚkwargsr:   r>   r.   Zorig_axZorig_axfreqrÃ   ZdfreqÚpathr0   r0   r1   r$   Å  s6    




r$   )NN),Ú__doc__r   r   r   r   rÚ  Únumpyr6   r\   Zpandas._libs.tslibsr   r   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsrÖ  Zpandasr   r	   r
   r   r   r   r   Zpandas._testingZ_testingrr   Zpandas.core.indexes.datetimesr   r   r   Zpandas.core.indexes.periodr   r   r   Zpandas.core.indexes.timedeltasr   Zpandas.tests.plotting.commonr   Zpandas.tseries.offsetsr   Zskip_if_no_mplr   r$   r0   r0   r0   r1   Ú<module>   s6   $	           "