U
    ÎZjŸØ  ã                   @   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& zdd
l'm(Z( W n e)k
rò   dd„ Z(Y nX 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)Úmpl_ge_3_6_0c                   C   s   dS )NT© r   r   r   új/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/pandas/tests/plotting/test_datetimelike.pyÚ<lambda>-   ó    r   )Ú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eƒ 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„ Z0dhdi„ Z1djdk„ Z2dldm„ Z3dndo„ Z4e5j6dpdq„ ƒZ7drds„ Z8dtdu„ Z9dvdw„ Z:dxdy„ Z;dzd{„ 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�„ ZMdždŸ„ ZNejjeƒ dDdE�d 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[dº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Úxdatar   r   r   Útest_ts_plot_with_tz4   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fontsizer3   )r   ÚnpÚrandomÚrandnÚrangeÚpltÚsubplotsr*   Úget_xticklabelsZget_yticklabelsZget_fontsizer0   )r1   ÚdfÚfigr3   Úlabelr   r   r   Útest_fontsize_set_correctlyA   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15Tr6   )r   r   Úvaluesr   r9   r:   r;   Úlenr)   r*   Úunion)r1   Úidxr@   Údf2r   r   r   Útest_frame_inferredI   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   rH   r$   )Zxerr)Zyerr)r9   Úarrayr   r)   r*   )r1   ÚiÚar   r   r   Útest_is_error_nozeroindex\   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 )NrD   ÚArH   rF   ÚxÚyÚzr(   r   )rV   ÚB©r3   zno numeric data to plot©Úmatch)r   r   r=   r>   r*   rM   r,   r0   ÚcloseÚpytestÚraisesÚ	TypeError)r1   rO   r@   rA   r3   Úmsgr   r   r   Útest_nonnumeric_excludec   s    z"TestTSPlot.test_nonnumeric_excluder"   ÚSÚTr    ÚDÚWÚMÚQrV   c                 C   sD   t d|dd�}ttj t|ƒ¡|ƒ}| j ¡ \}}t|j	|d� d S ©Nú
12/31/1999rE   rF   r[   )
r   r   r9   r:   r;   rM   r=   r>   r)   r*   ©r1   r"   rO   ÚserÚ_r3   r   r   r   Útest_tsplot_periodp   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 rj   )
r   r   r9   r:   r;   rM   r=   r>   r)   r*   rl   r   r   r   Útest_tsplot_datetimew   s    zTestTSPlot.test_tsplot_datetimec                 C   sD   t  ¡ }| j ¡ \}}|jd|d� d}|| ¡ d  ¡ ks@t‚d S )NÚk©Ústyler3   )ç        rt   rt   r(   r   )ÚtmÚmakeTimeSeriesr=   r>   r*   r,   Ú	get_colorr0   )r1   r2   rn   r3   Úcolorr   r   r   Ú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 symbolr\   zb-z#000099)rs   rx   T)Zdrop)ru   rv   r_   r`   Ú
ValueErrorr*   Zreset_index)r1   r2   rb   Úsr   r   r   Ú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/2012rE   ©r!   r"   r[   )
r=   r>   r   r   r9   r:   r;   rM   r)   r*   )r1   r"   rn   r3   Úrngrm   r   r   r   Ú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_datevaluerf   éÃ  rV   rh   z1987-12rD   z1987-1-1)Ú%pandas.plotting._matplotlib.converterrƒ   r0   r   Úordinal)r1   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:t‚d S )Nr   )r,   r-   r†   Ú	get_ydataZformat_coordr0   )r3   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_pointr(   z
2014-01-01rH   zA-DECr€   r$   r[   zt = 2014  y = 1.000000rf   zt = 2014-01-01  y = 1.000000)r   r   r=   r>   r*   ru   r^   )r1   rŠ   Zannualrn   r3   Zdailyr   r   r   Ú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 ©Nrk   rE   rF   )
r   r   r9   r:   r;   rM   r)   r*   r%   r"   ©r1   r"   rO   rm   r   r   r   Ú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   r9   r:   r;   rM   r)   r*   r%   r"   Ú	rule_code)r1   r�   rO   r{   r   r   r   Ú 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   r9   r:   r;   rM   r)   r*   r%   r"   r�   r�   r   r   r   Ú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 ©	Nrk   rE   rF   rH   rV   rZ   ÚC©r%   Úcolumns)
r   r   r9   r:   r;   rM   r)   r*   r%   r"   ©r1   r"   rO   r@   r   r   r   Ú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   r9   r:   r;   rM   r%   Úasfreqr"   r�   r)   r*   )r1   r�   rO   r@   r"   r   r   r   Ú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   r9   r:   r;   rM   r%   Ú	to_periodr"   r�   r)   r*   r—   r   r   r   Ú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 )Nrk   rE   rF   r   rH   é   é   )r   r   r9   r:   r;   rM   rL   r	   Zasarrayr%   r)   r*   Zinferred_freqr�   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ƒrbt	‚d S )Nz2001-1-1z	2001-1-10r$   rH   r�   r[   r"   )
r=   r>   r   r   r<   rM   r   r*   Úhasattrr0   )r1   rn   r3   r�   r2   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BQSr6   rF   r$   )ru   rv   r)   r*   r   r%   r   r9   r:   r;   rM   )r1   rm   Ú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éÐ  r(   rž   é   r$   )	r	   r   r   r9   r:   r;   rM   r)   r*   )r1   r¢   rm   r   r   r   Ú test_plot_multiple_inferred_freq  s    &z+TestTSPlot.test_plot_multiple_inferred_freqzApi changed)Ú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éô  rF   r   r$   r[   ú%H:%M:%S.%f)r…   ÚplottingÚ_matplotlibÚ	converterr   r   r9   r:   r;   rM   r=   r>   r*   Ú	get_xaxisZget_ticklocsÚget_ticklabelsÚzipZ_from_ordinalÚstrftimeÚstrÚget_textr0   )r1   ÚconvrO   r@   rn   r3   ZaxisZtlocsZtlabelsÚlocrB   Ú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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:51rd   rE   rF   r   r$   r   r(   rH   é   r[   g)QÎ ÈEè>g:Œ0âŽyE>)r   r   r9   r:   r;   rM   Úilocr=   r>   r*   r   r,   Ú
get_xydataÚdiffÚfabsÚallr0   Úcopyr%   ÚastypeÚobject)	r1   rO   r@   Úirregrn   r3   ZdiffsÚsecrP   r   r   r   Ú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   é   r[   )
ru   rv   r=   r>   r*   r0   r°   r,   r-   r%   )r1   rm   rn   r3   Úretr·   r¶   r   r   r   Ú"test_irregular_datetime64_repr_bug2  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 )Nr[   r   r&   ©ÚdatarZ   )ru   ZmakePeriodSeriesr=   r>   r*   r,   r»   r%   r†   r0   r-   r   Úfreqstr©r1   Úbtsrn   r3   rO   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sXt‚| ¡ d  ¡ }t|d�jdks|t‚d S )Ni,  ZBMrh   r[   r   r&   rÈ   )ru   rv   r™   r›   r=   r>   r*   r,   r»   r%   r†   r0   r-   r   rÊ   )r1   rÌ   r2   rn   r3   rO   r   r   r   Útest_business_freq_convertF  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�   r[   r   z)freq not specified and cannot be inferredr\   rÈ   )r   ru   rv   r™   r=   r>   r*   r,   r-   r_   r`   rz   r   )r1   r"   rÌ   rn   r3   rO   rb   r   r   r   Útest_freq_with_no_period_aliasO  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$   r[   r   )r   r   r   r9   Úaranger=   r>   r*   r,   r-   r	   Úis_normalizedr0   )r1   rO   r@   rn   r3   r·   r   r   r   Útest_nonzero_base[  s    zTestTSPlot.test_nonzero_basec                 C   sT   t dt ¡ iƒ}| j ¡ \}}|j|d� | ¡ d  ¡ }t |j	 
¡ t|ƒ¡ d S )NrT   r[   r   )r   ru   rv   r=   r>   r*   r,   r-   Úassert_index_equalr%   r›   r   rË   r   r   r   Útest_dataframed  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(   r6   ú1/1/2000z4/1/2000r¤   r¹   )Úget_xlimÚset_xlimr0   r   r"   Úintr†   r   Ú
get_figurer=   r^   )r3   ZxlimÚresultÚexpectedrA   ©r1   r   r   Ú_testl  s"    z*TestTSPlot.test_axis_limits.<locals>._testr[   r(   ©rT   ÚbT)r>   )ru   rv   r=   r>   r*   r   )r1   rá   rm   rn   r3   r@   Úaxesr   rà   r   Útest_axis_limitsk  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   rZ   rf   rh   ri   rV   rg   )r…   r«   r¬   r­   Z
get_finderr   Z_daily_finderr0   Z_monthly_finderZ_quarterly_finderZ_annual_finder)r1   r´   r   r   r   Ú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 )Nr6   rI   éü   i�  i¶  i¾
  é'  z1999-1-1rZ   rG   ©r!   r[   r   çÍÌÌÌÌÌì?)r   r†   rM   r   r   r9   r:   r;   r=   r>   r*   r®   ÚappendÚget_majorticklocsrÚ   rÛ   r^   rÝ   r0   )r1   Zday_lstÚxpl1Úxpl2Úrs1Úrs2Únr�   rm   rn   r3   Ú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Üt‚||ksèt‚d S )Ng      @r¥   Ú1988Q1Ú1987Q2r¹   ri   r€   r[   r   rê   ©r   r†   rM   r   rÜ   r   r9   r:   r;   r=   r>   r*   r®   rë   rì   rÚ   rÛ   r^   rÝ   r0   ©r1   Zyrsrí   rî   rï   rð   rñ   r�   rm   rn   r3   rò   ró   rô   r   r   r   Ú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÷   é   rh   r€   r[   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sjt‚d S )Nrö   i   rh   r€   r[   r   Z1989Q1)r   r   r9   r:   r;   rM   r=   r>   r*   r®   rì   r   r†   r0   )r1   r�   rm   rn   r3   rò   r·   r¶   r   r   r   Ú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 )rV   rG   )r   r†   ©Ú.0rW   r   r   r   Ú
<listcomp>ë  s     z1TestTSPlot.test_finder_annual.<locals>.<listcomp>)r�   r6   é   é1   rK   éÇ   iW  ié  Z1987rV   r€   r[   r   )r   r   r9   r:   r;   rM   r=   r>   r*   r®   rë   rì   r^   rÝ   r0   )	r1   r¶   r·   Znyearsr�   rm   rn   r3   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spt‚d S )Ni@ ú1/1/1999ZMinrF   r[   r   rG   ©r   r   r9   r:   r;   rM   r=   r>   r*   r®   rì   r   r†   r0   )	r1   Znminutesr�   rm   rn   r3   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spt‚d S )Né   r  r    rF   r[   r   rG   r  )	r1   Znhoursr�   rm   rn   r3   rò   r·   r¶   r   r   r   Ú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�   é   r[   r(   r   ©ÚmaskZ
fill_valuer   rÅ   r7   rû   é   é   )ru   rv   r9   Únanrº   r=   r>   r*   r,   rM   r0   r»   ÚmaÚMaskedArrayr   Ú
isinstanceÚcorer  r¾   r^   rÝ   r   r:   r;   )
r1   r2   rn   r3   ÚlinesÚlinerÉ   r  rO   rm   r   r   r   Ú	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  r[   r   r'   Z12hrG   T©Úsecondary_yr(   r  )ru   rv   r9   r  rº   r=   r>   r*   r   r%   r   r:   r;   rM   r,   r0   Úright_axr»   r  r  r   r  r  r  r¾   )
r1   Úlowrn   r3   Úidxhr{   r  r  rÉ   r  r   r   r   Útest_gap_upsampleD  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 )
Nr6   Tr  Úleft_axr  r   Úrightr[   Úleft)r   r9   r:   r;   r=   r>   r*   r    r0   Úget_axesr,   rˆ   r-   ru   Úassert_series_equalÚ	get_yaxisÚget_ticks_positionÚget_visibler^   rÝ   )
r1   rm   Úser2rA   rn   r3   rä   r  r¶   Úax2r   r   r   Útest_secondary_yY  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Ù   r6   ré   Tr  r  r  r   r  r[   r   )r   r   r9   r:   r;   r=   r>   r*   r    r0   r!  r,   rˆ   r-   Zto_timestampru   r"  r#  r$  r%  r^   rÝ   )r1   rO   rm   r&  rA   rn   r3   rä   r  r¶   r'  r   r   r   Útest_secondary_y_tsu  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 )	Nr6   TZdensity©r  Úkindr3   r  r  r(   r  )r   r9   r:   r;   r=   r>   r*   r    r0   r!  r#  r$  ©r1   rm   rA   r3   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sNt
‚d S )Nr6   TÚbarr*  r(   r  )r   r9   r:   r;   r=   r>   r*   r!  r#  r$  r0   r,  r   r   r   Ú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�   rH   rT   rã   Úc©r–   T)r  r>   r   r  r(   r   r   ©r   r9   r:   r;   r*   r#  r$  r0   ©r1   r@   rä   r   r   r   Ú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�   rH   rT   rã   r0  r1  r.  T)r+  r  r>   r   r  r(   r   r   r2  r3  r   r   r   Ú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�   r6   r¥   rû   é   é   r  r[   Úgrr   r(   rZ   r'   )ru   rv   r=   r>   r*   r,   r   r-   r×   r%   r›   rÚ   r†   r0   ©r1   Ús1Ús2rn   r3   r'  r  Úidx1Úidx2r   r  Zpidxr   r   r   Ú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�   r6   r¥   rû   r7  r8  r  r9  rr   r[   r"   r(   )ru   rv   r=   r>   r*   r    r0   r,   r-   Úassert_numpy_array_equalr%   rÀ   rÁ   rL   ©r1   r;  r<  rn   r3   r  Úx1Zx2r   r   r   Ú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 r6  )ru   rv   Úto_framerº   r=   r>   r*   r,   r   r-   Úequalsr%   r›   r0   rÚ   r†   r:  r   r   r   Ú 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@  )ru   rv   rE  rº   r=   r>   r*   r    r0   r,   r-   rA  r%   rÀ   rÁ   rL   rB  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svt‚qvd S )	Nr  ém  rf   r€   rû   rh   r[   rÈ   ©r   r   r9   r:   r;   rM   r=   r>   r*   r,   r   r-   r"   r0   ©r1   r  ÚidxlÚhighr  rn   r3   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„t‚d S )Nz2012-01-01 13:00ú
2012-01-02r    rG   rû   r$   re   r[   Úrrr   r   r(   )r   r9   r:   r;   r   r™   Zinterpolater=   r>   r*   r  r-   r0   )r1   Zts_indZts_datar2   Zts2rn   r3   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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  rI  rf   r€   rû   rh   T)Zlegendr3   rÈ   r   éð   re   r¹   r    r[   )r   r   r9   r:   r;   rM   r=   r>   r*   r,   r   r-   r"   r0   Ú
get_legendZtextsr^   rÝ   )	r1   r  rL  rM  r  rn   r3   r  Úlegr   r   r   Ú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   rH   r¹   r�   rž   rÅ   é   r7   r6   r  é   é   é   é   z1/3/2000rÑ   rZ   r€   r[   )ru   rv   r   r   r9   r:   r;   rM   r=   r>   r*   )r1   r2   rÂ   r�   Zpsrn   r3   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Š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-01rH   rh   r€   r(   r   T)ZnrowsÚsharexr[   r   r&   )r   rN   r   r<   rM   r=   r>   r*   r"   r0   r  r»   Ztwinx)r1   r=  r>  r;  r<  rA   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sdt‚t|ƒ ¡ |j
 ¡ ks~t‚d S )Nr\  z
2015-01-03r[   r   )r=   r>   r   r
   r   r<   rM   r*   r,   r-   r%   Úminr0   Úmax)r1   rn   r3   Zdtir{   r4   r   r   r   Útest_nat_handlingK  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   rg   r€   rû   rh   r[   rÈ   rJ  rK  r   r   r   Útest_to_weekly_resamplingW  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  rb  rg   r€   rû   rh   r[   éê  éï  éó  é÷  éû  é   é  é  é  é  é  é  ©ZdtyperÈ   F©Úorig)r   r   r9   r:   r;   rM   r=   r>   r*   r›   Úasi8rÀ   Úfloat64rR   r,   r   r-   r"   r0   ru   rA  r^   )r1   r  rL  rM  r  rn   r3   Z
expected_hZ
expected_lr  r4   r   r   r   Útest_from_weekly_resamplingb  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  rb  rg   r€   rû   rh   rH   r   r(   r   r•   ))r  Úarea)rv  r  T)r+  Zstackedr3   rd  re  rf  rg  rh  ri  rj  rk  rl  rm  rn  ro  rp  Frq  rÈ   )r   r   r9   r:   ÚrandrM   r=   r>   r*   rR   rt  Zzerosr<   r  r   r-   r"   r0   ru   rA  rL   rˆ   r›   rs  rÀ   )r1   r  rL  rM  r  Zkind1Zkind2rn   r3   Z
expected_xZ
expected_yrS   r  r  r   r   r   Ú$test_from_resampling_area_line_mixedy  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:00rd   é2   rF   Z100Lr©   r[   r   rÈ   r¨   )r   r   r9   r:   r;   rM   r=   r>   r*   r,   r0   r   r-   r"   ru   r^   rK  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	�}|d
dddg  t¡}ttj t|ƒd¡|ƒ}| j ¡ \}}t|j	|d� d S )Nr¤   r(   r�   r  rH   rp  rÙ   r6   ré   r   r   r7   r[   )r   r   r9   r:   r;   rM   r	   rÁ   r)   r*   r   rÀ   r=   r>   )r1   rO   r@   rn   r3   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œt‚qœd S )Nr(   rH   rÑ   r   r  c                    s"   g | ]}ˆ t t|ƒd �  ¡ ‘qS ©rÒ   ©r   rÜ   r   rÿ   ©Útr   r   r  û  s     z(TestTSPlot.test_time.<locals>.<listcomp>râ   r$   r[   é<   ú%H:%M:%Sú%H:%M)r   r9   r:   ÚrandintÚcumsumrR   r   r;   rM   r=   r>   r*   Ú
get_xticksr?   r°   ÚdivmodrÜ   r³   r   r±   r0   ©r1   Údeltasr2   r@   rA   r3   Ú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œ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(   rH   rÑ   r   r  c                    s"   g | ]}ˆ t t|ƒd �  ¡ ‘qS r|  r}  rÿ   r~  r   r   r    s     z4TestTSPlot.test_time_change_xlim.<locals>.<listcomp>râ   r$   r[   r€  r�  r‚  z1:30z5:00)r   r9   r:   rƒ  r„  rR   r   r;   rM   r=   r>   r*   r…  r?   r°   r†  rÜ   r³   r   r±   r0   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œt‚qœd S )Nr(   rH   rÑ   r   r  c                    s"   g | ]}ˆ t t|ƒd �  ¡ ‘qS ))Úmicrosecondsr}  rÿ   r~  r   r   r  <  s     z.TestTSPlot.test_time_musec.<locals>.<listcomp>râ   r$   r[   r€  g    €„.Aiè  rª   éýÿÿÿr�  r‚  )r   r9   r:   rƒ  r„  rR   r   r;   rM   r=   r>   r*   r…  r?   r°   r†  rÜ   Úroundr³   r   r±   r0   )r1   rˆ  r2   r@   rA   r3   r‰  rŠ  r‹  rŒ  r{   r~   r�  r·   r¶   r   r~  r   Útest_time_musec9  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  rI  rf   r€   rû   rh   r[   T©r  r3   r  r  )r   r   r9   r:   r;   rM   r=   r>   r*   r,   r   r-   r"   r0   r    r  rK  r   r   r   Útest_secondary_upsampleX  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éÓ   rV   rZ   r”  r¹   r   z	A (right)r(   z	B (right)r   r”   rH   rf   F)r  Ú
mark_rightr3   r.  )r+  r  r3   )r+  r  r—  r3   )r=   ZfigureÚadd_subplotru   ZmakeTimeDataFramer*   rS  rM   r,   r0   Z	get_textsr³   r  ÚsetÚaddrw   r^   r>   ZmakeDataFrame)r1   rA   r3   r@   rT  Úcolorsr  r   r   r   Útest_secondary_legendg  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û   rh   r€   rH   r[   r   rÑ   )r   r   r9   r:   r;   rM   r=   r>   r*   r®   r¯   r³   Zget_rotationr0   )r1   r�   r@   rn   r3   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 )NrO  r6   rf   ©Ústartr!   r"   ÚY)rB   r   )r   r+   r<   rM   r=   r>   r*   ru   r×   r   r-   )r1   rW   rX   rn   r3   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|Ž |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 r   ©Ú	toordinalrÿ   r   r   r   r  Ü  s     z0TestTSPlot.test_mpl_nopandas.<locals>.<listcomp>c                 S   s   g | ]}|  ¡ ‘qS r   r¦  rÿ   r   r   r   r  Ý  s     c                 S   s   g | ]}|  ¡ ‘qS r   r¦  rÿ   r   r   r   r  á  s     rp  r   c                 S   s   g | ]}|  ¡ ‘qS r   r¦  rÿ   r   r   r   r  ã  s     )r   r9   rÔ   r=   r>   Z	plot_dater,   rR   rt  ru   rA  r»   )
r1   ÚdatesZvalues1Zvalues2Úkwrn   r3   Úline1Úline2Úexpr   r   r   Ú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ž   rV  r7   r6   rû   r7  r8  r  rX  rY  r[   Ú ©r…   r¯  ru   rv   r=   r>   r*   rÚ   Úconvertr%   r_  r0   r`  ©r1   r¯  r2   Zts_irregularrn   r3   r   r  r   r   r   Ú 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   rH   r¹   r�   rž   rÅ   rV  r$   r[   Tr”  )r   r=   r>   r*   rÚ   r0   ©r1   Zindex_1Zindex_2r;  r<  rn   r3   Ú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€t‚||
k sŒt‚d S )Nú
2000-01-01r¹   rf   rž  z
2000-01-05r(   r$   r   r[   Tr”  )r   r   r=   r>   r*   rÚ   r0   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spt‚||ks|t‚d S )Nr»  rè   r_  r€   r(   r$   r[   rf   Tr”  )	r   r   r=   r>   r*   rÚ   ZresampleZmeanr0   )	r1   r�   r2   rn   r3   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… }|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ž   rV  r7   r6   rû   r7  r8  r  rX  rY  r[   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�  r(   r   rû   )r   r=   r>   r*   r   )r1   rL   rn   r3   r   r   r   Útest_plot_outofbounds_datetime8  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>2dr   )r   rS   r   r   r   r  C  s     zATestTSPlot.test_format_timedelta_ticks_narrow.<locals>.<listcomp>r6   Ú0Únsr€   rH   r   r8   c                 S   s   g | ]}|  ¡ ‘qS r   ©r³   rÿ   r   r   r   r  L  s     )r9   rÔ   r   r   r:   r;   rM   r=   r>   r*   Údrawr?   r0   ©r1   Zexpected_labelsr�   r@   rA   r3   rŠ  Zresult_labelsr   r   r   Ú"test_format_timedelta_ticks_narrowA  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À  r6   ú1 dr€   rH   r   r8   c                 S   s   g | ]}|  ¡ ‘qS r   rÂ  rÿ   r   r   r   r  d  s     z?TestTSPlot.test_format_timedelta_ticks_wide.<locals>.<listcomp>)r   r   r9   r:   r;   rM   r=   r>   r*   rÃ  r?   r0   rÄ  r   r   r   Ú test_format_timedelta_ticks_wideP  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é   r[   z1 day 2 hr 30 min 10 sr6   rÆ  r€   z1 ns)r   r<   r   r=   r>   r)   r*   r9   r:   r;   rM   )r1   r{   rn   r3   r%   r   r   r   Útest_timedelta_ploth  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   r6   r    r€   r   r(   gš™™™™™¹?r'   )Úweights)r   r9   rÔ   r=   r>   Úhist)r1   r�   rW   Zw1Zw2rn   r3   r   r   r   Ú	test_histz  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   rH   rþ   rû   r£  r¤   iÕ  r$   iÍ  iÓ  r¢  r[   )r   r   r=   r>   r*   )r1   r;  r<  rn   r3   r   r   r   Útest_overlapping_datetimeƒ  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 )Nr6   z
1970-01-02ré   r$   r9  )rx   )r   r9   r:   r;   r   r*   ru   Zassert_produces_warningÚDeprecationWarningr%   rL   r  rA  r»   )r1   r{   r3   Úl1Úl2r   r   r   Ú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   r6   r   rW   rX   r1  z
2018-01-01rf   r€   r   )rW   rX   rÉ   )r   r9   r:   ZRandomStaterw  r   r=   r>   ZscatterrÃ  r?   r³   r0   )r1   r@   rA   r3   rB   rß   r   r   r   Ú"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   rH   )rW   rX   rW   rX   r   )Zxrotz
2020-05-04rÑ   T)rX   Z	use_indexF)rW   rX   r>   r]  )r   r   r*   Z_check_ticks_propsZ	set_index)r1   rW   r@   rä   r   r   r   Útest_check_xticks_rotµ  s     z TestTSPlot.test_check_xticks_rotN)`Ú__name__Ú
__module__Ú__qualname__r_   ÚmarkÚfilterwarningsr5   rC   rQ   rU   rc   Zparametrizero   rp   ry   r|   r‚   r‡   r‹   rŽ   r‘   r’   r˜   rš   rœ   rŸ   r¡   r£   r¦   Zxfailr   r¸   rÄ   rÇ   rÍ   rÎ   rÏ   rÖ   rØ   rå   ræ   rõ   rú   rü   rý   r  Zslowr  r
  r  r  r(  r)  ÚtdZskip_if_no_scipyr-  r/  r4  r5  r?  rD  rG  rH  rN  rQ  rU  r[  r^  ra  rc  ru  rx  rz  r{  rŽ  r�  r“  r•  rœ  r�  r¡  r­  r´  rº  r¼  r½  r¾  r¿  rÅ  rÇ  rÈ  rË  rÌ  rÐ  rÑ  rÒ  r   r   r   r   r   2   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–  r3   r"   éÔ   T)Zreturn_filelike)Zmatplotlib.pyplotZpyplotZgcfr^   Zclfr˜  ÚpopZgcaÚgetattrr0   r%   r"   r  r   r�   ru   Zensure_cleanZsavefigÚpickleÚdump)Úfr"   ZseriesÚargsÚkwargsr=   rA   r3   Zorig_axZorig_axfreqrÆ   ZdfreqÚpathr   r   r   r)   Ð  s6    




r)   )NN)/Ú__doc__r   r   r   r   rÜ  Únumpyr9   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_testingru   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.plotting._matplotlib.compatr   ÚImportErrorZpandas.tseries.offsetsr   Zskip_if_no_mplr   r)   r   r   r   r   Ú<module>   s>   $	           (