a
    nÝEb{×  ã                   @   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)j*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dd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zej dg d¢¡dd„ ƒZdd „ Zd!d"„ Zej dg d¢¡d#d$„ ƒZd%d&„ Z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"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.dUdV„ Z/dWdX„ Z0e1j2dYdZ„ ƒZ3d[d\„ Z4d]d^„ Z5d_d`„ Z6dadb„ Z7dcdd„ Z8dedf„ Z9dgdh„ Z:didj„ Z;dkdl„ Z<dmdn„ Z=dodp„ Z>dqdr„ Z?dsdt„ Z@dudv„ ZAdwdx„ ZBdydz„ ZCd{d|„ ZDd}d~„ ZEdd€„ ZFd�d‚„ ZGdƒd„„ ZHd…d†„ ZId‡dˆ„ ZJd‰dŠ„ ZKd‹dŒ„ ZLd�dŽ„ ZMd�d�„ ZNd‘d’„ ZOd“d”„ ZPd•d–„ ZQd—d˜„ ZRd™dš„ ZSd›dœ„ ZTd�dž„ ZUdŸd „ ZVd¡d¢„ ZWd£d¤„ ZXejjYd¥d¦�d§d¨„ ƒZZd©dª„ Z[d«d¬„ Z\d­S )®Ú
TestTSPlotc                 C   s€   t  | |¡ g d¢| _dd„ | jD ƒ}dd„ |D ƒ| _dd„ |D ƒ| _g d¢}dd„ |D ƒ}dd„ |D ƒ| _d	d„ |D ƒ| _d S )
N)ÚSÚTÚHÚDÚWÚMÚQÚAc                 S   s   g | ]}t d |dd�‘qS ©ú
12/31/1999éd   ©ÚfreqÚperiods)r   ©Ú.0Úx© r*   úg/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/plotting/test_datetimelike.pyÚ
<listcomp>5   ó    z+TestTSPlot.setup_method.<locals>.<listcomp>c                 S   s"   g | ]}t tj t|ƒ¡|ƒ‘qS r*   ©r   ÚnpÚrandomÚrandnÚlenr'   r*   r*   r+   r,   6   r-   c                 S   s,   g | ]$}t tj t|ƒd ¡|g d¢d�‘qS ©é   ©r    ÚBÚC©ÚindexÚcolumns©r   r/   r0   r1   r2   r'   r*   r*   r+   r,   7   s   ÿ)	r   r   r   r   r   r   zQ-DECr    Z1B30Minc                 S   s   g | ]}t d |dd�‘qS r!   )r   r'   r*   r*   r+   r,   =   r-   c                 S   s"   g | ]}t tj t|ƒ¡|ƒ‘qS r*   r.   r'   r*   r*   r+   r,   >   r-   c                 S   s,   g | ]$}t tj t|ƒd ¡|g d¢d�‘qS r3   r;   r'   r*   r*   r+   r,   ?   s   ÿ)r   Úsetup_methodr%   Ú
period_serÚ	period_dfÚdatetime_serÚdatetime_df)ÚselfÚmethodÚidxr%   r*   r*   r+   r<   1   s    
þþzTestTSPlot.setup_methodc                 C   s   t  ¡  d S ©N)ÚtmÚclose)rA   rB   r*   r*   r+   Úteardown_methodD   s    zTestTSPlot.teardown_methodc                 C   s°   |}t ddd|d�}tddg|d�}t d ¡�n t|jƒ | ¡ }t| ¡ ƒd  ¡ }|d j	|d j
fd	ksrJ ‚|d
 j	|d
 j
fdksŽJ ‚W d   ƒ n1 s¢0    Y  d S )Nú1/1/2011é   r   )r&   r%   Útzg     �g@g     „t@©r9   r   ©r   r   éÿÿÿÿ)é   r   )r   r   rE   Úassert_produces_warningÚ_check_plot_worksÚplotÚlistÚ	get_linesÚ	get_xdataÚhourÚminute)rA   Ztz_aware_fixturerJ   r9   ÚtsÚaxÚxdatar*   r*   r+   Útest_ts_plot_with_tzG   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sFJ ‚qFd S )Né
   é	   rK   rI   ©ZfontsizerX   )r   r/   r0   r1   ÚrangeÚpltÚsubplotsrQ   Úget_xticklabelsZget_yticklabelsZget_fontsize)rA   ÚdfÚfigrX   Úlabelr*   r*   r+   Útest_fontsize_set_correctlyT   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MSr#   r$   ©r%   r4   rK   r   é(   é-   éc   z2008-1-1 00:15:00Z15Tr[   )r   r   Úvaluesr   r/   r0   r1   r2   rP   rQ   Úunion)rA   rC   rb   Údf2r*   r*   r+   Útest_frame_inferred\   s    

zTestTSPlot.test_frame_inferredc                 C   s:   t  g d¢¡}t||d�}t|j|d� t|j|d� d S )N©rN   rI   r4   rK   )Zxerr)Zyerr)r/   Úarrayr   rP   rQ   )rA   ÚiÚar*   r*   r+   Útest_is_error_nozeroindexo   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sTJ ‚| j |¡ d
}tj	t
|d�� |d  ¡  W d   ƒ n1 s”0    Y  d S )Nrf   r    r4   r$   )r)   ÚyÚzro   )r    r6   ©rX   rN   zno numeric data to plot©Úmatch)r   r   r_   r`   rQ   r2   rS   rF   ÚpytestÚraisesÚ	TypeError)rA   rC   rb   rc   rX   Úmsgr*   r*   r+   Útest_nonnumeric_excludev   s    z"TestTSPlot.test_nonnumeric_excludec                 C   s†   | j  ¡ \}}t ¡ }| jD ]}t|j|d� q| jD ]}t|j|d� q6| j  ¡ \}}|jd|d� d}|| ¡ d  	¡ ks‚J ‚d S )Nrv   Úk©ÚstylerX   )ç        r�   r�   rN   r   )
r_   r`   rE   ÚmakeTimeSeriesr=   rP   rQ   r?   rS   Ú	get_color)rA   Ú_rX   rW   ÚsÚcolorr*   r*   r+   Útest_tsplotƒ   s    

zTestTSPlot.test_tsplotc                 C   s”   t  ¡ }d}tjt|d�� |jddd� W d   ƒ n1 s>0    Y  |jdd�}tjt|d�� |jddd� W d   ƒ n1 s†0    Y  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 symbolrw   zb-z#000099)r€   r†   T)Zdrop)rE   r‚   ry   rz   Ú
ValueErrorrQ   Zreset_index)rA   rW   r|   r…   r*   r*   r+   Útest_both_style_and_color“   s    ÿ,z$TestTSPlot.test_both_style_and_colorc                 C   sV   ddg}|D ]D}| j  ¡ \}}tdd|d�}ttj t|ƒ¡|ƒ}t|j	|d� qd S )NÚmsÚusú1/1/2012r#   ©r&   r%   rv   )
r_   r`   r   r   r/   r0   r1   r2   rP   rQ   )rA   Zfreaksr%   r„   rX   ÚrngÚserr*   r*   r+   Ú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s0J ‚|tddƒdƒtddƒjksPJ ‚|ddƒtd	dƒjksjJ ‚d S )
Nr   )Úget_datevaluer   éÃ  r    r   z1987-12rf   z1987-1-1)Ú%pandas.plotting._matplotlib.converterr‘   r   Úordinal)rA   r‘   r*   r*   r+   Ú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   )rS   rT   r”   Ú	get_ydataZformat_coord)rX   Zexpected_stringÚ
first_lineZfirst_xZfirst_yr*   r*   r+   Úcheck_format_of_first_point³   s    zITestTSPlot.test_ts_plot_format_coord.<locals>.check_format_of_first_pointrN   z
2014-01-01r4   zA-DECr�   rK   rv   zt = 2014  y = 1.000000r   zt = 2014-01-01  y = 1.000000)r   r   r_   r`   rQ   rE   rF   )rA   r˜   Zannualr„   rX   Zdailyr*   r*   r+   Útest_ts_plot_format_coord²   s    

z$TestTSPlot.test_ts_plot_format_coordc                 C   s    | j D ]}t|j|jjƒ qd S rD   )r=   rP   rQ   r9   r%   ©rA   r…   r*   r*   r+   Útest_line_plot_period_seriesÅ   s    
z'TestTSPlot.test_line_plot_period_seriesÚfrqncy)Z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 )Nr"   r#   r$   )r   r   r/   r0   r1   r2   rP   rQ   r9   r%   Ú	rule_code)rA   rœ   rC   r…   r*   r*   r+   Ú test_line_plot_period_mlt_seriesÉ   s    z+TestTSPlot.test_line_plot_period_mlt_seriesc                 C   s"   | j D ]}t|j|jjjƒ qd S rD   )r?   rP   rQ   r9   r%   r�   rš   r*   r*   r+   Útest_line_plot_datetime_seriesÓ   s    
z)TestTSPlot.test_line_plot_datetime_seriesc                 C   s    | j D ]}t|j|jjƒ qd S rD   )r>   rP   rQ   r9   r%   )rA   rb   r*   r*   r+   Ú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 )Nr"   r#   r$   r4   r5   r8   )r   r   r/   r0   r1   r2   r9   Úasfreqr%   r�   rP   rQ   )rA   rœ   rC   rb   r%   r*   r*   r+   Útest_line_plot_period_mlt_frameÛ   s     z*TestTSPlot.test_line_plot_period_mlt_framec                 C   s0   | j D ]$}|j |jjj¡j}t|j|ƒ qd S rD   )r@   r9   Ú	to_periodr%   r�   rP   rQ   )rA   rb   r%   r*   r*   r+   Útest_line_plot_datetime_frameç   s    
z(TestTSPlot.test_line_plot_datetime_framec                 C   sN   | j D ]B}t|jtt |j¡ƒƒ}t|j|jj	ƒ |g d¢ }t|jƒ qd S )N)r   r4   é   é   )
r?   r   rk   r	   r/   Zasarrayr9   rP   rQ   Zinferred_freq)rA   r�   r*   r*   r+   Ú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ƒrbJ ‚d S )Nz2001-1-1z	2001-1-10rK   r4   r¥   rv   r%   )	r_   r`   r   r   r^   r2   r   rQ   Úhasattr)rA   r„   rX   rŽ   rW   r*   r*   r+   Ú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BQSr[   r$   rK   )rE   r‚   rP   rQ   r   r9   r   r/   r0   r1   r2   )rA   r�   Údrr*   r*   r+   Ú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éÐ  rN   r¦   é   rK   )	r	   r   r   r/   r0   r1   r2   rP   rQ   )rA   rª   r�   r*   r*   r+   Ú test_plot_multiple_inferred_freq  s    &z+TestTSPlot.test_plot_multiple_inferred_freqc                 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|J ‚q|d S )
Nr   z2012-6-22 21:59:51.960928ÚLéô  r$   rI   rK   rv   ú%H:%M:%S.%f)r“   ÚplottingÚ_matplotlibÚ	converterr   r   r/   r0   r1   r2   r_   r`   rQ   Ú	get_xaxisZget_ticklocsÚget_ticklabelsÚzipZ_from_ordinalÚstrftimeÚstrÚget_text)rA   ÚconvrC   rb   r„   rX   ZaxisZtlocsZtlabelsÚlocrd   ÚxpÚrsr*   r*   r+   Ú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  ¡ s¤J ‚| j ¡ \}}| ¡ }|j t¡|_|j	|d� t
| ¡ d	  ¡ d d …d	f ƒ ¡ }t |dd … | ¡dk  ¡ �sJ ‚d S )Nz2012-6-22 21:59:51r   r#   r$   rI   rK   )r   rN   r4   é   rv   r   g)QÎ ÈEè>rN   g:Œ0âŽyE>)r   r   r/   r0   r1   r2   Úilocr_   r`   rQ   r   rS   Ú
get_xydataÚdiffÚfabsÚallÚcopyr9   ÚastypeÚobject)	rA   rC   rb   Úirregr„   rX   ZdiffsÚsecrm   r*   r*   r+   Ú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sRJ ‚qRd S )N)r   rN   rI   é   rv   r   )	rE   r‚   r_   r`   rQ   r·   rS   rT   r9   )rA   r�   r„   rX   Úretr¾   r½   r*   r*   r+   Ú"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sFJ ‚| ¡ d  	¡ }t
|d�jdksjJ ‚d S )Nrv   r   rL   ©Údatar6   )rE   ZmakePeriodSeriesr_   r`   rQ   rS   rÂ   r9   r”   rT   r   Úfreqstr©rA   Úbtsr„   rX   rC   r*   r*   r+   Útest_business_freq:  s    $zTestTSPlot.test_business_freqc                 C   s€   t  d¡ d¡}| d¡}| j ¡ \}}|j|d� | ¡ d  ¡ d |j	d j
ksXJ ‚| ¡ d  ¡ }t|d�jdks|J ‚d S )Ni,  ZBMr   rv   r   rL   rÏ   )rE   r‚   r¡   r£   r_   r`   rQ   rS   rÂ   r9   r”   rT   r   rÑ   )rA   rÓ   rW   r„   rX   rC   r*   r*   r+   Útest_business_freq_convertB  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   ƒ n1 sr0    Y  d S )Nr¥   rv   r   z)freq not specified and cannot be inferredrw   rÏ   )r   rE   r‚   r¡   r_   r`   rQ   rS   rT   ry   rz   rˆ   r   )rA   r%   rÓ   r„   rX   rC   r|   r*   r*   r+   Útest_freq_with_no_period_aliasK  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rbJ ‚d S )
Nz
2012-12-20é   r   r�   é   ©ÚminutesrK   rv   r   )r   r   r   r/   Úaranger_   r`   rQ   rS   rT   r	   Úis_normalized)rA   rC   rb   r„   rX   r¾   r*   r*   r+   Útest_nonzero_baseW  s    zTestTSPlot.test_nonzero_basec                 C   sT   t dt ¡ iƒ}| j ¡ \}}|j|d� | ¡ d  ¡ }t |j	 
¡ t|ƒ¡ d S )Nrr   rv   r   )r   rE   r‚   r_   r`   rQ   rS   rT   Úassert_index_equalr9   r£   r   rÒ   r*   r*   r+   Ú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sDJ ‚|d |d d ks\J ‚td| jƒtd| jƒf}|  dd¡ |   ¡ }t|d ƒ|d jks¢J ‚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�sJ ‚t|d ƒ|d jk�s0J ‚|  ¡ }ˆ j 	|¡ d S )	Nr   r¥   rN   r[   ú1/1/2000z4/1/2000r¬   rÀ   )
Úget_xlimÚset_xlimr   r%   Úintr”   r   Ú
get_figurer_   rF   )rX   ZxlimÚresultÚexpectedrc   ©rA   r*   r+   Ú_testh  s"    z*TestTSPlot.test_axis_limits.<locals>._testrv   rN   ©rr   ÚbT)r`   )rE   r‚   r_   r`   rQ   r   )rA   rè   r�   r„   rX   rb   Úaxesr*   rç   r+   Útest_axis_limitsg  s    zTestTSPlot.test_axis_limitsc                 C   s¬   dd l m  m  m} | tdƒ¡|jks0J ‚| tdƒ¡|jksHJ ‚| tdƒ¡|jks`J ‚| tdƒ¡|jksxJ ‚| tdƒ¡|j	ks�J ‚| tdƒ¡|jks¨J ‚d S )Nr   r6   r   r   r   r    r   )
r“   r²   r³   r´   Z
get_finderr   Z_daily_finderZ_monthly_finderZ_quarterly_finderZ_annual_finder)rA   r»   r*   r*   r+   Útest_get_finder�  s    zTestTSPlot.test_get_finderc                 C   sæ   g d¢}t ddd�jgt|ƒ  }}g }g }|D ]˜}td|d�}ttj t|ƒ¡|ƒ}| j 	¡ \}	}
|j
|
d� |
 ¡ }| | ¡ d ¡ |
 ¡ \}}|
 |d |¡ | | ¡ d ¡ | j |
 ¡ ¡ q0||ksÖJ ‚||ksâJ ‚d S )	N)r[   rh   éü   i�  i¶  i¾
  é'  z1999-1-1r6   rg   ©r&   rv   r   çÍÌÌÌÌÌì?)r   r”   r2   r   r   r/   r0   r1   r_   r`   rQ   rµ   ÚappendÚget_majorticklocsrá   râ   rF   rä   )rA   Zday_lstÚxpl1Úxpl2Úrs1Úrs2ÚnrŽ   r�   r„   rX   ÚxaxisÚvminÚvmaxr*   r*   r+   Ú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ÜJ ‚||ksèJ ‚d S )Ng      @r­   Ú1988Q1Ú1987Q2rÀ   r   r�   rv   r   rñ   ©r   r”   r2   r   rã   r   r/   r0   r1   r_   r`   rQ   rµ   rò   ró   rá   râ   rF   rä   ©rA   Zyrsrô   rõ   rö   r÷   rø   rŽ   r�   r„   rX   rù   rú   rû   r*   r*   r+   Útest_finder_quarterly¯  s"    z TestTSPlot.test_finder_quarterlyc                 C   sì   g d¢}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ÜJ ‚||ksèJ ‚d S )
N)gffffffò?g      @rÀ   r­   zJan 1988rþ   é   r   r�   rv   r   rñ   rÿ   r   r*   r*   r+   Ú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sjJ ‚d S )Nrý   i   r   r�   rv   r   Z1989Q1)r   r   r/   r0   r1   r2   r_   r`   rQ   rµ   ró   r   r”   )rA   rŽ   r�   r„   rX   rù   r¾   r½   r*   r*   r+   Útest_finder_monthly_longÛ  s    z#TestTSPlot.test_finder_monthly_longc           	      C   sœ   g d¢}dd„ |D ƒ}g }dD ]l}t d|dd�}ttj t|ƒ¡|ƒ}| j ¡ \}}|j|d� | 	¡ }| 
| ¡ d	 ¡ | j | ¡ ¡ q||ks˜J ‚d S )
N)r’   iÄ  éÆ  r  éË  iä  i  iz  c                 S   s   g | ]}t |d d�j‘qS )r    rg   )r   r”   r'   r*   r*   r+   r,   ç  r-   z1TestTSPlot.test_finder_annual.<locals>.<listcomp>)r¥   r[   é   é1   rj   éÇ   iW  ié  Z1987r    r�   rv   r   )r   r   r/   r0   r1   r2   r_   r`   rQ   rµ   rò   ró   rF   rä   )	rA   r½   r¾   ZnyearsrŽ   r�   r„   rX   rù   r*   r*   r+   Ú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spJ ‚d S )Ni@ ú1/1/1999ZMinr$   rv   r   rg   ©r   r   r/   r0   r1   r2   r_   r`   rQ   rµ   ró   r   r”   )	rA   ZnminutesrŽ   r�   r„   rX   rù   r¾   r½   r*   r*   r+   Ú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spJ ‚d S )Né   r  r   r$   rv   r   rg   r  )	rA   ZnhoursrŽ   r�   r„   rX   rù   r¾   r½   r*   r*   r+   Útest_finder_hourly   s    zTestTSPlot.test_finder_hourlyc           
      C   sd  t  ¡ }tj|dd…< | j ¡ \}}|j|d� | ¡ }t|ƒdksHJ ‚|d }| 	¡ }| j
sd| js|tjj|t|ƒtjd�}t|tjjjƒs�J ‚|j}|dd…df  ¡ s®J ‚| j | ¡ ¡ t  ¡ }|g d¢ }tj|dd…< | j ¡ \}}|j|d�}| ¡ }t|ƒdk�sJ ‚|d }| 	¡ }| j
�s4| j�sLtjj|t|ƒtjd�}t|tjjjƒ�sbJ ‚|j}|dd…df  ¡ �s‚J ‚| j | ¡ ¡ g d¢}ttj t|ƒ¡|ƒ}	tj|	dd…< | j ¡ \}}|	j|d� | ¡ }t|ƒdk�sòJ ‚|d }| 	¡ }| j
�s| j�s*tjj|t|ƒtjd�}t|tjjjƒ�s@J ‚|j}|dd…df  ¡ �s`J ‚d S )	Nr¥   é   rv   rN   r   ©ÚmaskZ
fill_value)	r   rN   rI   r¥   rÌ   r\   r  é   é   rI   )rE   r‚   r/   Únanr_   r`   rQ   rS   r2   rÂ   Úmpl_ge_3_0_0Úmpl_ge_2_2_3ÚmaÚMaskedArrayr   Ú
isinstanceÚcorer  rÅ   rF   rä   r   r0   r1   )
rA   rW   r„   rX   ÚlinesÚlinerÐ   r  rC   r�   r*   r*   r+   Ú	test_gaps  sV    zTestTSPlot.test_gapsc           
      C   s  t  ¡ }tj|dd…< | j ¡ \}}|j|d� t|jd |jd dd�}t	tj
 t|ƒ¡|ƒ}|jdd	� | ¡ }t|ƒd
ks„J ‚t|j ¡ ƒd
ksšJ ‚|d }| ¡ }| js¶| jsÎ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  rv   r   rM   Z12hrg   T©Úsecondary_yrN   r  )rE   r‚   r/   r  r_   r`   rQ   r   r9   r   r0   r1   r2   rS   Úright_axrÂ   r  r  r  r  r   r  r  r  rÅ   )
rA   Úlowr„   rX   Úidxhr…   r  r  rÐ   r  r*   r*   r+   Útest_gap_upsampleB  s"    zTestTSPlot.test_gap_upsamplec           
      C   sf  t tj d¡ƒ}t tj d¡ƒ}| j ¡ \}}|jdd�}t|dƒsHJ ‚t|dƒrVJ ‚| ¡ }| 	¡ d }t | 
¡ | ¡ ƒ}t ||¡ | ¡  ¡ dksœJ ‚|d  ¡  ¡ r°J ‚| j |¡ | j ¡ \}}	|j|	d� |	 ¡  ¡ | jksìJ ‚| j |	 ¡ ¡ | ¡ }|jdd�}	| ¡  ¡ �s"J ‚t|dƒ�r2J ‚t|dƒ�sBJ ‚t|	dƒ�sRJ ‚t|	dƒ�rbJ ‚d S )	Nr[   Tr  Úleft_axr!  r   Úrightrv   )r   r/   r0   r1   r_   r`   rQ   r¨   Úget_axesrS   r–   rT   rE   Úassert_series_equalÚ	get_yaxisÚget_ticks_positionÚget_visiblerF   Údefault_tick_positionrä   )
rA   r�   Úser2rc   r„   rX   rë   r  r½   Úax2r*   r*   r+   Útest_secondary_yX  s0    zTestTSPlot.test_secondary_yc                 C   s<  t ddd�}ttj d¡|ƒ}ttj d¡|ƒ}| j ¡ \}}|jdd�}t|dƒsXJ ‚t|dƒrfJ ‚| 	¡ }| 
¡ d }t| ¡ | ¡ ƒ ¡ }	t ||	¡ | ¡  ¡ d	ks°J ‚|d  ¡  ¡ rÄJ ‚| j |¡ | j ¡ \}}
|j|
d
� |
 ¡  ¡ | jk�sJ ‚| j |
 ¡ ¡ | ¡ }|jdd�}
| ¡  ¡ �s8J ‚d S )Nrà   r[   rð   Tr  r%  r!  r   r&  rv   )r   r   r/   r0   r1   r_   r`   rQ   r¨   r'  rS   r–   rT   Zto_timestamprE   r(  r)  r*  r+  rF   r,  rä   )rA   rC   r�   r-  rc   r„   rX   rë   r  r½   r.  r*   r*   r+   Útest_secondary_y_tst  s*    zTestTSPlot.test_secondary_y_tsc                 C   sn   t tj d¡ƒ}| j ¡ \}}|jdd|d�}t|dƒs<J ‚t|dƒrJJ ‚| ¡ }|d  	¡  
¡ dksjJ ‚d S )	Nr[   TZdensity©r   ÚkindrX   r%  r!  rN   r&  )r   r/   r0   r1   r_   r`   rQ   r¨   r'  r)  r*  ©rA   r�   rc   rX   rë   r*   r*   r+   Útest_secondary_kde�  s    zTestTSPlot.test_secondary_kdec                 C   sR   t tj d¡ƒ}| j ¡ \}}|jdd|d� | ¡ }|d  ¡  	¡ dksNJ ‚d S )Nr[   TÚbarr1  rN   r&  )
r   r/   r0   r1   r_   r`   rQ   r'  r)  r*  r3  r*   r*   r+   Útest_secondary_bar˜  s
    zTestTSPlot.test_secondary_barc                 C   sz   t tj dd¡g d¢d�}|jddgdd�}|d	  ¡  ¡ d
ksDJ ‚|d  ¡  ¡ | jks^J ‚|d  ¡  ¡ d
ksvJ ‚d S )Nr¥   r4   ©rr   rê   Úc©r:   rr   r8  T)r   r`   r   r&  rN   rI   ©r   r/   r0   r1   rQ   r)  r*  r,  ©rA   rb   rë   r*   r*   r+   Útest_secondary_frameŸ  s
    zTestTSPlot.test_secondary_framec                 C   s|   t tj dd¡g d¢d�}|jdddgdd	�}|d
  ¡  ¡ dksFJ ‚|d  ¡  ¡ | jks`J ‚|d  ¡  ¡ dksxJ ‚d S )Nr¥   r4   r7  r9  r5  rr   r8  T)r2  r   r`   r   r&  rN   rI   r:  r;  r*   r*   r+   Ú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s´J ‚|
|d jksÆJ ‚d S ©	N©r   r¥   r[   r­   r  é   é   r  rv   Úgr   r   rN   r6   rM   )rE   r‚   r_   r`   rQ   rS   r   rT   rÞ   r9   r£   rá   r”   ©rA   Ús1Ús2r„   rX   r.  r  Úidx1Úidx2Úleftr&  Zpidxr*   r*   r+   Ú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ƒrJJ ‚| ¡ }|d  ¡ }t  ||j	 
t¡j¡ |d  ¡ }t  ||j	 
t¡j¡ d S ©Nr?  rB  r   rv   r%   r   rN   )rE   r‚   r_   r`   rQ   r¨   rS   rT   Úassert_numpy_array_equalr9   rÇ   rÈ   rk   ©rA   rD  rE  r„   rX   r  Úx1Zx2r*   r*   r+   Ú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¡¡sˆJ ‚| 
|j d¡¡sžJ ‚| ¡ \}	}
|j ¡ }|	|d jksÆJ ‚|
|d jksØJ ‚d S r>  )rE   r‚   Úto_framerÁ   r_   r`   rQ   rS   r   rT   Úequalsr9   r£   rá   r”   rC  r*   r*   r+   Ú 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ƒrXJ ‚| ¡ }|d  	¡ }t  
||j t¡j¡ |d  	¡ }t  
||j t¡j¡ d S rJ  )rE   r‚   rO  rÁ   r_   r`   rQ   r¨   rS   rT   rK  r9   rÇ   rÈ   rk   rL  r*   r*   r+   Ú"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svJ ‚qvd S )	Nr  ém  r   r�   r  r   rv   rÏ   ©r   r   r/   r0   r1   r2   r_   r`   rQ   rS   r   rT   r%   ©rA   r#  ÚidxlÚhighr"  r„   rX   r  r*   r*   r+   Ú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„J ‚d S )Nz2012-01-01 13:00ú
2012-01-02r   rg   r  rK   r   rv   Úrr   r   rN   )r   r/   r0   r1   r   r¡   Zinterpolater_   r`   rQ   r  rT   )rA   Zts_indZts_datarW   Zts2r„   rX   r*   r*   r+   Ú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szJ ‚qz| ¡ }t|jƒd
ks²J ‚| 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�s8J ‚�q8d S )Nr  rS  r   r�   r  r   T)ZlegendrX   rÏ   rI   éð   r   rÀ   r   rv   )r   r   r/   r0   r1   r2   r_   r`   rQ   rS   r   rT   r%   Ú
get_legendZtextsrF   rä   )	rA   r#  rV  rW  r"  r„   rX   r  Úlegr*   r*   r+   Ú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   rN   rI   r4   rÀ   r¥   r¦   rÌ   é   r\   r[   r  é   é   é   é   z1/3/2000rØ   r6   r�   rv   )rE   r‚   r   r   r/   r0   r1   r2   r_   r`   rQ   )rA   rW   rÉ   rŽ   Zpsr„   rX   r*   r*   r+   Ú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ŠJ ‚|jdks˜J ‚|j	d
  
¡ d |j	d
  
¡ d ksÀJ ‚| j ¡ \}}| ¡ }|j|d	� |j|d	� |j	d
  
¡ d |j	d
  
¡ d k�sJ ‚d S )Nú
2015-01-01r4   r   r�   rN   rI   T)ZnrowsÚsharexrv   r   rL   )r   rl   r   r^   r2   r_   r`   rQ   r%   r  rÂ   Ztwinx)rA   rF  rG  rD  rE  rc   Zax1r.  r*   r*   r+   Ú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sdJ ‚t|ƒ ¡ |j
 ¡ ks~J ‚d S )Nrf  z
2015-01-03rv   r   )r_   r`   r   r
   r   r^   r2   rQ   rS   rT   r9   ÚminÚmax)rA   r„   rX   Zdtir…   rY   r*   r*   r+   Útest_nat_handlingJ  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svJ ‚qvd S )	Nr  é4   r   r�   r  r   rv   rÏ   rT  rU  r*   r*   r+   Útest_to_weekly_resamplingV  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 ]P}	t|	 ¡ d
�j|jksºJ ‚|	jdd�}
t|
ƒdkràt |
|¡ qœt |
|¡ qœt ¡  d S )Nr  rl  r   r�   r  r   rv   ©iê  iï  ió  i÷  iû  i   i  i  i  i  i  i  ©ZdtyperÏ   F©Úorig)r   r   r/   r0   r1   r2   r_   r`   rQ   r£   Úasi8rÇ   Úfloat64rp   rS   r   rT   r%   rE   rK  rF   )rA   r#  rV  rW  r"  r„   rX   Z
expected_hZ
expected_lr  rY   r*   r*   r+   Útest_from_weekly_resamplinga  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 �]Z\}}| 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sîJ ‚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‚J ‚t |jdd�|	¡ |
|| j7 }
t |jdd�|
¡ �qTq`d
D �]b\}}| 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�sRJ ‚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 ]f}|jd|  }t| ¡ d�j|jk�sêJ ‚t |jdd�|	¡ |
|| j7 }
t |jdd�|
¡ �q¼�qÂd S )Nr  rl  r   r�   r  r   r4   )r   rN   rI   r8   ))r  Úarea)ru  r  T)r2  ZstackedrX   rn  ro  Frp  rÏ   )r   r   r/   r0   Úrandr2   r_   r`   rQ   rp   rs  Zzerosr^   r  r   rT   r%   rE   rK  rk   r–   r£   rr  rÇ   )rA   r#  rV  rW  r"  Zkind1Zkind2r„   rX   Z
expected_xZ
expected_yrq   r  r  r*   r*   r+   Ú$test_from_resampling_area_line_mixedx  sd      ñ

ñ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‚J ‚| 	¡ D ]}t
| ¡ d	�jd
ksŠJ ‚qŠt ¡  | j ¡ \}}|j|d� |j|d� t| 	¡ ƒdksêJ ‚| 	¡ D ]}t
| ¡ d	�jd
ksòJ ‚qòd S )Nz2014-07-01 09:00r   é2   r$   Z100Lr°   rv   rI   rÏ   r¯   )r   r   r/   r0   r1   r2   r_   r`   rQ   rS   r   rT   r%   rE   rF   rU  r*   r*   r+   Ú"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¬   rN   r¥   r  r4   ro  rà   r[   rð   )r   rI   r¥   r\   rv   )r   r   r/   r0   r1   r2   r	   rÈ   rP   rQ   r   rÇ   r_   r`   )rA   rC   rb   r„   rX   r*   r*   r+   Ú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œJ ‚qœd S )NrN   r4   rØ   r   r  c                    s"   g | ]}ˆ t t|ƒd �  ¡ ‘qS ©rÙ   ©r   rã   r   r'   ©Útr*   r+   r,   ú  r-   z(TestTSPlot.test_time.<locals>.<listcomp>ré   rK   rv   é<   ú%H:%M:%Sú%H:%M)r   r/   r0   ÚrandintÚcumsumrp   r   r1   r2   r_   r`   rQ   Ú
get_xticksra   r·   Údivmodrã   rº   r   r¸   ©rA   ÚdeltasrW   rb   rc   rX   ÚticksÚlabelsÚlÚmr…   Úhr¾   r½   r*   r}  r+   Ú	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œJ ‚qœ| dd¡ | ¡ }| ¡ }t||ƒD ]~\‰ }ttˆ ƒdƒ\}	}
t|	dƒ\}}	| ¡ }t|ƒdk�r:|
dk�r–t||	|
ƒ d¡}nt||	|
ƒ d¡}||k�s:J ‚�q:d S )NrN   r4   rØ   r   r  c                    s"   g | ]}ˆ t t|ƒd �  ¡ ‘qS r{  r|  r'   r}  r*   r+   r,     r-   z4TestTSPlot.test_time_change_xlim.<locals>.<listcomp>ré   rK   rv   r  r€  r�  z1:30z5:00)r   r/   r0   r‚  rƒ  rp   r   r1   r2   r_   r`   rQ   r„  ra   r·   r…  rã   rº   r   r¸   râ   r†  r*   r}  r+   Ú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œJ ‚qœd S )NrN   r4   rØ   r   r  c                    s"   g | ]}ˆ t t|ƒd �  ¡ ‘qS ))Úmicrosecondsr|  r'   r}  r*   r+   r,   ;  r-   z.TestTSPlot.test_time_musec.<locals>.<listcomp>ré   rK   rv   r  g    €„.Aiè  r±   éýÿÿÿr€  r�  )r   r/   r0   r‚  rƒ  rp   r   r1   r2   r_   r`   rQ   r„  ra   r·   r…  rã   Úroundrº   r   r¸   )rA   r‡  rW   rb   rc   rX   rˆ  r‰  rŠ  r‹  r…   r‹   rŒ  r¾   r½   r*   r}  r+   Útest_time_musec8  s0    "ÿ
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sxJ ‚qxt|d
ƒs¢J ‚t|dƒr°J ‚|j 	¡ D ]}t
| ¡ ƒjdksºJ ‚qºd S )Nr  rS  r   r�   r  r   rv   T©r   rX   r%  r!  )r   r   r/   r0   r1   r2   r_   r`   rQ   rS   r   rT   r%   r¨   r%  rU  r*   r*   r+   Útest_secondary_upsampleW  s    z"TestTSPlot.test_secondary_upsamplec                 C   sZ  | j  ¡ }| d¡}t ¡ }|jddg|d� | ¡ }t| ¡ ƒdksJJ ‚| 	¡ d  
¡ dksbJ ‚| 	¡ d  
¡ d	kszJ ‚| 	¡ d
  
¡ dks’J ‚| 	¡ d  
¡ dksªJ ‚|j ¡ d u s¼J ‚tƒ }| ¡ D ]}| | ¡ ¡ qÊt|ƒdksîJ ‚| j  |¡ | j  ¡ }| d¡}|jddgd|d� | ¡ }t| ¡ ƒdk�s@J ‚| 	¡ d  
¡ dk�sZJ ‚| 	¡ d  
¡ dk�stJ ‚| 	¡ d
  
¡ dk�sŽJ ‚| 	¡ d  
¡ dk�s¨J ‚| j  |¡ | j  ¡ \}}|jddg|d� | ¡ }| 	¡ d  
¡ dk�söJ ‚| 	¡ d  
¡ dk�sJ ‚| j  |¡ | j  ¡ \}}|jddgd|d� | ¡ }| 	¡ d  
¡ dk�s`J ‚| 	¡ d  
¡ dk�szJ ‚| j  |¡ | j  ¡ }| d¡}t ¡ }|jddg|d�}| ¡ }t| ¡ ƒdk�sÒJ ‚|j ¡ d u �sæJ ‚tƒ }| ¡ D ]}| | ¡ ¡ �qôt|ƒdk�sJ ‚| j  |¡ t ¡ }| j  ¡ }| d¡}|jddg|d�}| ¡ }t| ¡ ƒdk�stJ ‚|j ¡ d u �sˆJ ‚tƒ }| ¡ D ]}| | ¡ ¡ �q–t|ƒdk�s¾J ‚| j  ¡  | j  ¡ }| d¡}|jddg|d�}| ¡ }t| ¡ ƒdk�sJ ‚|j ¡ d u �s J ‚tƒ }| ¡ D ]}| | ¡ ¡ �q.t|ƒdk�sVJ ‚d S )NéÓ   r    r6   r“  rÀ   r   z	A (right)rN   z	B (right)rI   r7   r4   r   F)r   Ú
mark_rightrX   r5  )r2  r   rX   )r2  r   r–  rX   )r_   ÚfigureÚadd_subplotrE   ZmakeTimeDataFramerQ   r]  r2   rS   Z	get_textsrº   r!  ÚsetÚaddrƒ   rF   r`   ZmakeDataFrame)rA   rc   rX   rb   r^  Úcolorsr  r*   r*   r+   Útest_secondary_legendf  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sPJ ‚qPd S )	NrŒ   r  r   r�   r4   rv   r   rØ   )r   r   r/   r0   r1   r2   r_   r`   rQ   rµ   r¶   rº   Zget_rotation)rA   rŽ   rb   r„   rX   rù   r  r*   r*   r+   Ú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 )NrY  r[   r   ©Ústartr&   r%   ÚY)rd   r   )r   rR   r^   r2   r_   r`   rQ   rE   rÞ   r   rT   )rA   r)   rt   r„   rX   r  r*   r*   r+   Ú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Ù  rN   g      $@g      &@g      à?g      (@ú-rÀ   )ÚfmtZlwc                 S   s   g | ]}|  ¡ ‘qS r*   ©Ú	toordinalr'   r*   r*   r+   r,   Ú  r-   z0TestTSPlot.test_mpl_nopandas.<locals>.<listcomp>c                 S   s   g | ]}|  ¡ ‘qS r*   r¦  r'   r*   r*   r+   r,   Û  r-   c                 S   s   g | ]}|  ¡ ‘qS r*   r¦  r'   r*   r*   r+   r,   ß  r-   ro  r   c                 S   s   g | ]}|  ¡ ‘qS r*   r¦  r'   r*   r*   r+   r,   á  r-   )r   r/   rÛ   r_   r`   Z	plot_daterS   rp   rs  rE   rK  rÂ   )
rA   ÚdatesZvalues1Zvalues2Úkwr„   rX   Úline1Úline2Úexpr*   r*   r+   Ú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s†J ‚|| |j	 ¡ d|¡ks¢J ‚d S )Nr   ©ÚDatetimeConverterr  ©rN   rÀ   r¥   r¦   r`  r\   r[   r  r@  rA  r  rb  rc  r¥   rv   Ú ©r“   r¯  rE   r‚   r_   r`   rQ   rá   Úconvertr9   ri  rj  ©rA   r¯  rW   Zts_irregularr„   rX   rH  r&  r*   r*   r+   Ú 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stJ ‚||
k s€J ‚d S )	N)rN   rI   r4   rÀ   )r¥   r¦   rÌ   r`  rN   rK   rI   rv   Tr“  )r   r_   r`   rQ   rá   ©rA   Zindex_1Zindex_2rD  rE  r„   rX   Úleft_beforeÚright_beforeÚ
left_afterÚright_afterr*   r*   r+   Ú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 sŒJ ‚d S )Nú
2000-01-01rÀ   r   rž  z
2000-01-05rN   rK   rI   rv   Tr“  )r   r   r_   r`   rQ   rá   r¶  r*   r*   r+   Ú 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spJ ‚||ks|J ‚d S )Nr¼  rï   ri  r�   rN   rK   rv   r   Tr“  )r   r   r_   r`   rQ   rá   ZresampleÚmean)	rA   rŽ   rW   r„   rX   r·  r¸  r¹  rº  r*   r*   r+   Ú#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sœJ ‚|| |j	 ¡ d	|¡ks¸J ‚d S )
Nr   r®  r  r°  r¥   rv   Tr“  r±  r²  r´  r*   r*   r+   Ú"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�  rN   rI   r  )r   r_   r`   rQ   r   )rA   rk   r„   rX   r*   r*   r+   Útest_plot_outofbounds_datetime6  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ŠJ ‚||ks–J ‚d S )Nc                 S   s   g | ]}d |d›�‘qS )z00:00:00.0000000z0>2dr*   )r(   rq   r*   r*   r+   r,   A  r-   zATestTSPlot.test_format_timedelta_ticks_narrow.<locals>.<listcomp>r[   Ú0Únsr�   r4   rI   r]   c                 S   s   g | ]}|  ¡ ‘qS r*   ©rº   r'   r*   r*   r+   r,   J  r-   )r/   rÛ   r   r   r0   r1   r2   r_   r`   rQ   Údrawra   ©rA   Zexpected_labelsrŽ   rb   rc   rX   r‰  Zresult_labelsr*   r*   r+   Ú"test_format_timedelta_ticks_narrow?  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sŠJ ‚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Â  r[   ú1 dr�   r4   rI   r]   c                 S   s   g | ]}|  ¡ ‘qS r*   rÄ  r'   r*   r*   r+   r,   b  r-   z?TestTSPlot.test_format_timedelta_ticks_wide.<locals>.<listcomp>)r   r   r/   r0   r1   r2   r_   r`   rQ   rÅ  ra   rÆ  r*   r*   r+   Ú test_format_timedelta_ticks_wideN  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ð   rv   z1 day 2 hr 30 min 10 sr[   rÈ  r�   z1 ns)r   r^   r   r_   r`   rP   rQ   r/   r0   r1   r2   )rA   r…   r„   rX   r9   r*   r*   r+   Útest_timedelta_plotf  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 )
NrH   r[   r   r�   r   rN   gš™™™™™¹?rM   )Úweights)r   r/   rÛ   r_   r`   Úhist)rA   rŽ   r)   Zw1Zw2r„   rX   r*   r*   r+   Ú	test_histx  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 )Nro   r  r  r£  r¬   iÕ  rK   iÍ  iÓ  r¢  rv   )r   r   r_   r`   rQ   )rA   rD  rE  r„   rX   r*   r*   r+   Útest_overlapping_datetime�  s$    


ýþ


ýþz$TestTSPlot.test_overlapping_datetimez1GH9053 matplotlib does not use ax.xaxis.converter)Úreasonc                 C   s„   t tj d¡tddd�d�}| ¡ }t t¡�$ |j|j	|j
dd� W d   ƒ n1 sX0    Y  |j\}}t | ¡ | ¡ ¡ d S )Nr[   z
1970-01-02rð   rK   rB  )r†   )r   r/   r0   r1   r   rQ   rE   rO   ÚDeprecationWarningr9   rk   r  rK  rÂ   )rA   r…   rX   Úl1Úl2r*   r*   r+   Útest_add_matplotlib_datetime64›  s    2
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 }| jrrd}n| jr~d}nd}| ¡ |ks’J ‚d S )Nr   r[   rI   r)   rt   r9  z
2018-01-01r   r�   r   )r)   rt   rÐ   z
2017-12-08z
2017-12-12)r   r/   r0   ZRandomStaterv  r   r_   r`   ZscatterrÅ  ra   Zmpl_ge_3_2_0r  rº   )rA   rb   rc   rX   rd   ræ   r*   r*   r+   Ú"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-03ro   )r)   rt   r)   rt   r   )Zxrot)rÕ  rÖ  z
2020-05-04rØ   T)rt   Z	use_indexF)r)   rt   r`   rg  )r   r   rQ   Z_check_ticks_propsZ	set_index)rA   r)   rb   rë   r*   r*   r+   Útest_check_xticks_rot¸  s     z TestTSPlot.test_check_xticks_rotN)]Ú__name__Ú
__module__Ú__qualname__r<   rG   rZ   re   rn   rs   r}   r‡   r‰   r�   r•   r™   r›   ry   ÚmarkZparametrizerž   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  ÚtdZskip_if_no_scipyr4  r6  r<  r=  rI  rN  rQ  rR  rX  r[  r_  re  rh  rk  rm  rt  rw  ry  rz  r�  rŽ  r’  r”  rœ  r�  r¡  r­  rµ  r»  r½  r¿  rÀ  rÁ  rÇ  rÉ  rÊ  rÍ  rÎ  ZxfailrÓ  rÔ  r×  r*   r*   r*   r+   r   /   s¸   ÿ
ÿ
			(

6

	![)[
		
r   c              	   O   s€  dd l m} | ¡ }�zX| ¡  | d¡}| d| ¡ ¡}t|dd ƒ}	| |i |¤Ž}
|
d us`J ‚| d| ¡ ¡}|d ur¦|jj	}t
|tƒr�|j}|	d u r¦|j	|ks¦J ‚|d urÄ|	d u rÄ|j	|ksÄJ ‚| d¡}||d< | |i |¤Ž}
|
d usðJ ‚tjdd��}| |¡ W d   ƒ n1 �s0    Y  tjdd��}t ||¡ W d   ƒ n1 �sX0    Y  W | |¡ n| |¡ 0 d S )Nr   r•  rX   r%   éÔ   T)Zreturn_filelike)Zmatplotlib.pyplotZpyplotZgcfZclfr˜  ÚpopZgcaÚgetattrr9   r%   r  r   r�   rE   Zensure_cleanZsavefigÚpickleÚdumprF   )Úfr%   ZseriesÚargsÚkwargsr_   rc   rX   Zorig_axZorig_axfreqrÍ   ZdfreqÚpathr*   r*   r+   rP   Ó  s6    


*.rP   )NN)/Ú__doc__r   r   r   r   rà  Únumpyr/   ry   Zpandas._libs.tslibsr   r   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsrÜ  Zpandasr   r	   r
   r   r   r   r   Zpandas._testingZ_testingrE   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   rÛ  ZslowZ
pytestmarkZskip_if_no_mplr   rP   r*   r*   r*   r+   Ú<module>   s8   $	           .