o
    Û­jð ã                   @   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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 'd¡Z(G dd„ dƒZ)ddd„Z*dS )z< Test cases for time series specific (freq conversion, etc) é    )ÚdateÚdatetimeÚtimeÚ	timedeltaN)Ú
BaseOffsetÚ	to_offset)Úfreq_to_period_freqstr)Ú	DataFrameÚIndexÚNaTÚSeriesÚconcatÚisnaÚto_datetime)ÚDatetimeIndexÚbdate_rangeÚ
date_range)ÚPeriodÚPeriodIndexÚperiod_range)Útimedelta_range)Ú_check_ticks_props)ÚWeekOfMonthÚ
matplotlibc                   @   sH  e Zd Zej d¡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ej dg d¢¡dd„ ƒZdd„ Zdd„ Zej dddg¡dd„ ƒZdd „ Zd!d"„ Zej dg d¢¡d#d$„ ƒZej d%g d&¢¡d'd(„ ƒZej dg d¢¡d)d*„ ƒZej dg d+¢¡d,d-„ ƒZej d%g d&¢¡d.d/„ ƒZej d0¡ej dg d¢¡d1d2„ ƒƒZej dg d¢¡d3d4„ ƒZd5d6„ Zd7d8„ Zd9d:„ Zd;d<„ Zejj d=d>�d?d@„ ƒZ!dAdB„ Z"dCdD„ Z#dEdF„ Z$dGdH„ Z%dIdJ„ Z&dKdL„ Z'dMdN„ Z(dOdP„ Z)ej dQ¡ej dRe*e+j,dSe+j-dT�e.dUdSdV�dW�e/e*e+j,dSe+j-dT�e.dUdSdV�dW�e*e+j,dSe+j-dT�e.dUdSdV�dW�dX dYœƒg¡dZd[„ ƒƒZ0d\d]„ Z1d^d_„ Z2d`da„ Z3dbdc„ Z4ddde„ Z5dfdg„ Z6ejj7dhdi„ ƒZ8djdk„ Z9dldm„ Z:dndo„ Z;dpdq„ Z<drds„ Z=dtdu„ Z>dvdw„ Z?dxdy„ Z@dzd{„ 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•„ ZNd–d—„ ZOej d0¡d˜d™„ ƒZPdšd›„ ZQdœd�„ ZRejj džd>�dŸd „ ƒZSd¡d¢„ ZTd£d¤„ ZUd¥d¦„ ZVd§d¨„ ZWej d©dªd«g¡d¬d­„ ƒZXej d©dªd«g¡d®d¯„ ƒZYd°d±„ ZZd²d³„ Z[d´dµ„ Z\d¶d·„ Z]d¸d¹„ Z^dºd»„ Z_d¼d½„ Z`d¾d¿„ ZadÀdÁ„ ZbdÂdÃ„ ZcdÄdÅ„ ZddÆdÇ„ ZedÈdÉ„ ZfdÊdË„ ZgdÌdÍ„ Zhejj d=d>�dÎ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j dîd>�dïdð„ ƒZydñdò„ Zzdódô„ Z{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t| ¡ ƒƒ ¡ }|d j|d j	fd	ks3J ‚|d
 j|d
 j	fdksAJ ‚d S )Nú1/1/2011é   Úh)ÚperiodsÚfreqÚtzg     �g@g     „t@©Úindexr   ©r   r   éÿÿÿÿ)é   r   )
r   r   Ú_check_plot_worksÚplotÚnextÚiterÚ	get_linesÚ	get_xdataÚhourÚminute)ÚselfÚtz_aware_fixturer    r"   ÚtsÚaxÚxdata© r3   úd/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/plotting/test_datetimelike.pyÚtest_ts_plot_with_tz0   s   
 zTestTSPlot.test_ts_plot_with_tzc                 C   sd   t tj d¡ d¡tdƒd�}tj ¡ \}}|j	d|d� | 
¡ | ¡  D ]
}| ¡ dks/J ‚q%d S )Nr   )é
   é	   r6   r!   ©Úfontsizer1   )r	   ÚnpÚrandomÚdefault_rngÚstandard_normalÚrangeÚmplÚpyplotÚsubplotsr'   Úget_xticklabelsÚget_yticklabelsÚget_fontsize)r.   ÚdfÚ_r1   Úlabelr3   r3   r4   Útest_fontsize_set_correctly=   s   ÿÿz&TestTSPlot.test_fontsize_set_correctlyc                 C   s’   t dddd�}t|jd d�}ttj d¡ t|ƒdf¡|d�}t	|j
ƒ |d	d
…  |dd… ¡}ttj d¡ t|ƒdf¡|d�}t	|j
ƒ d S )Nú1/1/1987ÚMSéd   ©r   r   ©r   r   é   r!   r   é(   é-   éc   )r   r   Úvaluesr	   r:   r;   r<   r=   Úlenr&   r'   Úunion)r.   ÚidxrE   Údf2r3   r3   r4   Útest_frame_inferredG   s   ÿ
ÿzTestTSPlot.test_frame_inferredc                 C   sL   t dddd�}t|jd d�}ttj d¡ t|ƒdf¡|d�}t	|j
ƒ d S )	Nz2008-1-1 00:15:00Ú15minr6   rL   rM   r   rN   r!   )r   r   rR   r	   r:   r;   r<   r=   rS   r&   r'   ©r.   rU   rE   r3   r3   r4   Útest_frame_inferred_n_gt_1X   s   ÿz%TestTSPlot.test_frame_inferred_n_gt_1c                 C   s:   t  g d¢¡}t||d�}t|j|d� t|j|d� d S )N©r%   r   rN   r!   )Úxerr)Úyerr)r:   Úarrayr	   r&   r'   )r.   ÚiÚar3   r3   r4   Útest_is_error_nozeroindexa   s   z$TestTSPlot.test_is_error_nozeroindexc                 C   sd   t dddd�}tg d¢g d¢dœ|ƒ}tj ¡ \}}|j|d� t| ¡ ƒd	ks*J ‚tj |¡ d S )
NrI   ÚYErN   rL   ©ÚxÚyÚzr[   ©ÚAÚB©r1   r%   )	r   r	   r?   r@   rA   r'   rS   r*   Úclose)r.   rU   rE   Úfigr1   r3   r3   r4   Útest_nonnumeric_excludeh   s   z"TestTSPlot.test_nonnumeric_excludec                 C   sj   t dddd�}tg d¢g d¢dœ|ƒ}d}tjt|d	�� |d
  ¡  W d   ƒ d S 1 s.w   Y  d S )NrI   rb   rN   rL   rc   r[   rg   zno numeric data to plot©Úmatchrh   )r   r	   ÚpytestÚraisesÚ	TypeErrorr'   )r.   rU   rE   Úmsgr3   r3   r4   Útest_nonnumeric_exclude_errorq   s   "ÿz(TestTSPlot.test_nonnumeric_exclude_errorr   )ÚsÚminr   ÚDÚWÚMÚQÚYc                 C   óJ   t d|dd�}ttj d¡ t|ƒ¡|ƒ}tj 	¡ \}}t
|j|d� d S ©Nú
12/31/1999rK   rL   r   rj   )r   r   r:   r;   r<   r=   rS   r?   r@   rA   r&   r'   ©r.   r   rU   ÚserrF   r1   r3   r3   r4   Útest_tsplot_periodx   ó   zTestTSPlot.test_tsplot_period)	ru   rv   r   rw   rx   ÚMEzQE-DECrb   Ú1B30Minc                 C   r|   r}   )r   r   r:   r;   r<   r=   rS   r?   r@   rA   r&   r'   r   r3   r3   r4   Útest_tsplot_datetime   s   zTestTSPlot.test_tsplot_datetimec                 C   s\   t tjdtjd�tddd�d�}tj ¡ \}}|jd|d� d}|| 	¡ d	  
¡ ks,J ‚d S )
Nr6   ©Údtypeú
2020-01-01©r   r!   Úk©Ústyler1   )ç        r�   r�   r%   r   )r   r:   ÚarangeÚfloat64r   r?   r@   rA   r'   r*   Ú	get_color)r.   r0   rF   r1   Úcolorr3   r3   r4   Útest_tsplotˆ   s   ÿzTestTSPlot.test_tsplotc                 C   s®   t tjdtjd�tddd�d�}d}tjt|d�� |jdd	d
� W d   ƒ n1 s+w   Y  |j	dd�}tjt|d�� |jdd	d
� W d   ƒ d S 1 sPw   Y  d S )Nr6   r†   rˆ   r‰   r!   z�Cannot pass 'style' string with a color symbol and 'color' keyword argument. Please use one or the other or pass 'style' without a color symbolrn   zb-z#000099)rŒ   r‘   T)Údrop)
r   r:   rŽ   r�   r   rp   rq   Ú
ValueErrorr'   Úreset_index)r.   r0   rs   ru   r3   r3   r4   Útest_both_style_and_color‘   s   ÿÿÿ"ÿz$TestTSPlot.test_both_style_and_colorÚmsÚusc                 C   sJ   t j ¡ \}}tdd|d�}ttj d¡ t	|ƒ¡|ƒ}t
|j|d� d S )Nú1/1/2012rK   ©r   r   r   rj   )r?   r@   rA   r   r   r:   r;   r<   r=   rS   r&   r'   )r.   r   rF   r1   Úrngr€   r3   r3   r4   Útest_high_freq¡   s   zTestTSPlot.test_high_freqc                 C   sn   ddl m} |d dƒd u sJ ‚|ddƒdksJ ‚|tddƒdƒtddƒjks(J ‚|ddƒtd	dƒjks5J ‚d S )
Nr   )Úget_datevaluerw   éÃ  r{   ry   z1987-12rI   z1987-1-1)Ú%pandas.plotting._matplotlib.converterr�   r   Úordinal)r.   r�   r3   r3   r4   Útest_get_datevalue¨   s
    zTestTSPlot.test_get_datevaluec                 C   sr   dd„ }t dtdddd�d�}tj ¡ \}}|j|d	� ||d
ƒ t dtdddd�d�}|j|d	� ||dƒ d S )Nc                 S   s>   |   ¡ d }| ¡ d j}| ¡ d }||  ||¡ksJ ‚d S )Nr   )r*   r+   r    Ú	get_ydataÚformat_coord)r1   Úexpected_stringÚ
first_lineÚfirst_xÚfirst_yr3   r3   r4   Úcheck_format_of_first_point±   s   zITestTSPlot.test_ts_plot_format_coord.<locals>.check_format_of_first_pointr%   z
2014-01-01rN   zYE-DECrš   r!   rj   zt = 2014  y = 1.000000rw   zt = 2014-01-01  y = 1.000000)r   r   r?   r@   rA   r'   )r.   r¨   ÚannualrF   r1   Údailyr3   r3   r4   Útest_ts_plot_format_coord°   s   
z$TestTSPlot.test_ts_plot_format_coordc                 C   s>   t d|dd�}ttj d¡ t|ƒ¡|ƒ}t|j|j	j
ƒ d S ©Nr~   rK   rL   r   )r   r   r:   r;   r<   r=   rS   r&   r'   r"   r   ©r.   r   rU   r€   r3   r3   r4   Útest_line_plot_period_seriesÂ   s   z'TestTSPlot.test_line_plot_period_seriesÚfrqncy)Ú1sÚ3sÚ5minÚ7hÚ4DÚ8WÚ11MÚ3Yc                 C   ó@   t d|dd�}ttj d¡ t|ƒ¡|ƒ}t|j|j	j
jƒ d S r¬   )r   r   r:   r;   r<   r=   rS   r&   r'   r"   r   Ú	rule_code)r.   r¯   rU   ru   r3   r3   r4   Ú test_line_plot_period_mlt_seriesÈ   s   z+TestTSPlot.test_line_plot_period_mlt_seriesc                 C   r¸   r¬   )r   r   r:   r;   r<   r=   rS   r&   r'   r"   r   r¹   r­   r3   r3   r4   Útest_line_plot_datetime_seriesÒ   s   z)TestTSPlot.test_line_plot_datetime_series)ru   rv   r   rw   rx   rƒ   ÚQErb   c                 C   sJ   t d|dd�}ttj d¡ t|ƒdf¡|g d¢d�}t|j|j	j
ƒ d S )Nr~   rK   rL   r   rN   ©rh   ri   ÚC©r"   Úcolumns)r   r	   r:   r;   r<   r=   rS   r&   r'   r"   r   ©r.   r   rU   rE   r3   r3   r4   Útest_line_plot_period_frameÚ   s   ýz&TestTSPlot.test_line_plot_period_framec                 C   sd   t d|dd�}ttj d¡ t|ƒdf¡|g d¢d�}td|jj	j
ƒ}|j |¡j	}t|j|ƒ d S ©	Nr~   rK   rL   r   rN   r½   r¿   r%   )r   r	   r:   r;   r<   r=   rS   r   r"   r   r¹   Úasfreqr&   r'   )r.   r¯   rU   rE   r   r3   r3   r4   Útest_line_plot_period_mlt_frameä   s   ýz*TestTSPlot.test_line_plot_period_mlt_framez3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                 C   sd   t d|dd�}ttj d¡ t|ƒdf¡|g d¢d�}td|jj	j
ƒ}|j |¡j	}t|j|ƒ d S rÃ   )r   r	   r:   r;   r<   r=   rS   r   r"   r   r¹   Ú	to_periodr&   r'   rÁ   r3   r3   r4   Útest_line_plot_datetime_frameõ   s   ýz(TestTSPlot.test_line_plot_datetime_framec                 C   sn   t d|dd�}ttj d¡ t|ƒ¡|ƒ}t|jtt 	|j
¡ƒƒ}t|j|j
jƒ |jg d¢ }t|jƒ d S )Nr~   rK   rL   r   )r   rN   é   é   )r   r   r:   r;   r<   r=   rS   rR   r
   Úasarrayr"   r&   r'   Úinferred_freqÚilocr­   r3   r3   r4   Útest_line_plot_inferred_freq  s   z'TestTSPlot.test_line_plot_inferred_freqc                 C   sf   t j ¡ \}}tddƒ}ttt|ƒƒ|d�}t|d d… |dd … gƒ}|j|d� t	|dƒr1J ‚d S )Nz2001-1-1z	2001-1-10r!   rN   rÈ   rj   r   )
r?   r@   rA   r   r   r>   rS   r   r'   Úhasattr)r.   rF   r1   r›   r0   r3   r3   r4   Útest_fake_inferred_business  s   
z&TestTSPlot.test_fake_inferred_businessc                 C   s.   t tjdtjd�tddd�d�}t|jƒ d S )Nr6   r†   rˆ   r‰   r!   )r   r:   rŽ   r�   r   r&   r'   )r.   r€   r3   r3   r4   Útest_plot_offset_freq  s   ÿz TestTSPlot.test_plot_offset_freqc                 C   s:   t dddd�}ttj d¡ t|ƒ¡|d�}t|jƒ d S )Nz
2023-01-01ÚBQSr6   rL   r   r!   )	r   r   r:   r;   r<   r=   rS   r&   r'   ©r.   Údrr€   r3   r3   r4   Útest_plot_offset_freq_business  s   z)TestTSPlot.test_plot_offset_freq_businessc                 C   sR   t tdddƒtdddƒtdddƒgƒ}ttj d¡ t|ƒ¡|d�}t|j	ƒ d S )NéÐ  r%   rÉ   é   r   r!   )
r
   r   r   r:   r;   r<   r=   rS   r&   r'   rÒ   r3   r3   r4   Ú test_plot_multiple_inferred_freq#  s   &z+TestTSPlot.test_plot_multiple_inferred_freqzApi changed in 3.6.0)Úreasonc                 C   sÂ   dd l m  m  m} tdddd�}ttj d¡ 	t
|ƒdf¡|d�}tj ¡ \}}|j|d� | ¡ }| ¡ }| ¡ }t||ƒD ]\}	}
| |	¡ d	¡}t|
 ¡ ƒ}t
|ƒr^||ks^J ‚qBd S )
Nr   z2012-6-22 21:59:51.960928r—   éô  rL   r   r!   rj   ú%H:%M:%S.%f)rŸ   ÚplottingÚ_matplotlibÚ	converterr   r	   r:   r;   r<   r=   rS   r?   r@   rA   r'   Ú	get_xaxisÚget_ticklocsÚget_ticklabelsÚzipÚ_from_ordinalÚstrftimeÚstrÚget_text)r.   ÚconvrU   rE   rF   r1   ÚaxisÚtlocsÚtlabelsÚlocrG   ÚxpÚrsr3   r3   r4   Útest_uhf(  s"   ÿ€üzTestTSPlot.test_uhfc                 C   s°   t dddd�}ttj d¡ t|ƒdf¡|d�}|jg d¢ }tj	 
¡ \}}|j|d� t| ¡ d	  ¡ d d …d	f ƒ ¡ }d
}t |dd … ||d |g ¡dk  ¡ sVJ ‚d S )Nú2012-6-22 21:59:51ru   r6   rL   r   r!   )r   r%   rN   é   rj   r   ç)QÎ ÈEè>r%   ç:Œ0âŽyE>)r   r	   r:   r;   r<   r=   rS   rÌ   r?   r@   rA   r'   r   r*   Ú
get_xydataÚdiffÚfabsÚall)r.   rU   rE   ÚirregrF   r1   ÚdiffsÚsecr3   r3   r4   Útest_irreg_hf=  s   ÿ$0zTestTSPlot.test_irreg_hfc                 C   s¦   t dddd�}ttj d¡ t|ƒdf¡|d�}tj 	¡ \}}|j
 t¡|_
|j|d� t| ¡ d  ¡ d d …df ƒ ¡ }d	}t |d
d … | ¡dk  ¡ sQJ ‚d S )Nrî   ru   r6   rL   r   r!   rj   r   rð   r%   rñ   )r   r	   r:   r;   r<   r=   rS   r?   r@   rA   r"   ÚastypeÚobjectr'   r   r*   rò   ró   rô   rõ   )r.   rU   rV   rF   r1   r÷   rø   r3   r3   r4   Útest_irreg_hf_objectK  s   ÿ$&zTestTSPlot.test_irreg_hf_objectc                 C   s†   t tjdtjd�tddd�d�}|jg d¢ }tj ¡ \}}|j	|d�}|d us*J ‚t
| ¡ d  ¡ |jƒD ]
\}}||ks@J ‚q6d S )	Nr6   r†   rˆ   r‰   r!   )r   r%   r   é   rj   r   )r   r:   rŽ   r�   r   rÌ   r?   r@   rA   r'   rá   r*   r+   r"   )r.   r€   rF   r1   Úretrì   rë   r3   r3   r4   Ú"test_irregular_datetime64_repr_bugW  s   ÿ ÿz-TestTSPlot.test_irregular_datetime64_repr_bugc                 C   s   t tdƒtddd�ƒ}d}|jd  ¡ }tjt|d�� t|t|ƒdd�|_W d   ƒ n1 s0w   Y  t	j
 ¡ \}}|j|d	� | ¡ d  ¡ d
 |jd jksTJ ‚| ¡ d  ¡ }tjt|d�� t|d�jdksnJ ‚W d   ƒ d S 1 syw   Y  d S )NrÈ   rˆ   r‰   úPeriodDtype\[B\] is deprecatedr   rn   ri   ©Ústartr   r   rj   r#   ©Údata)r   r>   r   r"   Úto_timestampÚtmÚassert_produces_warningÚFutureWarningrS   r?   r@   rA   r'   r*   rò   r    r+   r   Úfreqstr)r.   Úbtsrs   ÚdtrF   r1   rU   r3   r3   r4   Útest_business_freqe  s   ÿ$"ÿzTestTSPlot.test_business_freqc                 C   s˜   t tjdtjd�tdddd�d� d¡}| d¡}tj 	¡ \}}|j
|d	� | ¡ d
  ¡ d |jd
 jks8J ‚| ¡ d
  ¡ }t|d�jdksJJ ‚d S )Ni,  r†   rˆ   ri   rš   r!   ÚBMEry   rj   r   r#   r  )r   r:   rŽ   r�   r   rÄ   rÆ   r?   r@   rA   r'   r*   rò   r"   r    r+   r   r	  )r.   r
  r0   rF   r1   rU   r3   r3   r4   Útest_business_freq_convertr  s   þý
$z%TestTSPlot.test_business_freq_convertc                 C   s˜   t ƒ }ttjdtjd�tddd�d� |¡}tj 	¡ \}}|j
|d� | ¡ d  ¡ }d}tjt|d	�� t|d
� W d   ƒ d S 1 sEw   Y  d S )Nr6   r†   rˆ   r‰   r!   rj   r   z)freq not specified and cannot be inferredrn   r  )r   r   r:   rŽ   r�   r   rÄ   r?   r@   rA   r'   r*   r+   rp   rq   r”   r   )r.   r   r
  rF   r1   rU   rs   r3   r3   r4   Útest_freq_with_no_period_alias~  s   ÿþ"ÿz)TestTSPlot.test_freq_with_no_period_aliasc                 C   sf   t dddd�tdd� }tt d¡|d�}tj ¡ \}}|j|d� | 	¡ d	  
¡ }t|ƒjr1J ‚d S )
Nz
2012-12-20é   r   rš   é   ©Úminutesr!   rj   r   )r   r   r	   r:   rŽ   r?   r@   rA   r'   r*   r+   r
   Úis_normalized)r.   rU   rE   rF   r1   rì   r3   r3   r4   Útest_nonzero_baseŒ  s   zTestTSPlot.test_nonzero_basec                 C   sl   t dttjdtjd�tddd�d�iƒ}tj ¡ \}}|j	|d� | 
¡ d  ¡ }t |j ¡ t|ƒ¡ d S )	Nr`   r6   r†   rˆ   r‰   r!   rj   r   )r	   r   r:   rŽ   r�   r   r?   r@   rA   r'   r*   r+   r  Úassert_index_equalr"   rÆ   r   )r.   r
  rF   r1   rU   r3   r3   r4   Útest_dataframe•  s   
þÿÿzTestTSPlot.test_dataframez8ignore:Period with BDay freq is deprecated:FutureWarningÚobjr6   r†   rˆ   r‰   r!   r%   ©r`   Úbc                 C   s^  t j ¡ \}}|j|d� | ¡ }| |d d |d d ¡ | ¡ }|d |d d ks/J ‚|d |d d ks;J ‚td|jƒtd|jƒf}| dd¡ | ¡ }t|d ƒ|d j	ks^J ‚t|d ƒ|d j	kskJ ‚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s£J ‚| ¡ }t j |¡ d S )
Nrj   r   rÈ   r%   r6   ú1/1/2000z4/1/2000rÕ   rï   )r?   r@   rA   r'   Úget_xlimÚset_xlimr   r   Úintr    r   Ú
get_figurerk   )r.   r  rF   r1   ÚxlimÚresultÚexpectedrl   r3   r3   r4   Útest_axis_limits£  s&   zTestTSPlot.test_axis_limitsc                 C   s¬   dd l m  m  m} | tdƒ¡|jksJ ‚| tdƒ¡|jks$J ‚| tdƒ¡|jks0J ‚| tdƒ¡|jks<J ‚| tdƒ¡|j	ksHJ ‚| tdƒ¡|jksTJ ‚d S )Nr   ri   rw   rƒ   r¼   rb   rx   )
rŸ   rÛ   rÜ   rÝ   Ú
get_finderr   Ú_daily_finderÚ_monthly_finderÚ_quarterly_finderÚ_annual_finder)r.   ræ   r3   r3   r4   Útest_get_finderÕ  s   zTestTSPlot.test_get_finderc                 C   s  g d¢}d}t jt|d�� tddd�jgt|ƒ  }}W d   ƒ n1 s&w   Y  g }g }|D ]O}td|d�}ttj	 
d¡ t|ƒ¡|ƒ}	tj ¡ \}
}|	j|d	� | ¡ }| | ¡ d
 ¡ | ¡ \}}| |d |¡ | | ¡ d
 ¡ tj | ¡ ¡ q1||ks‡J ‚||ks�J ‚d S )N)r6   rO   éü   i�  i¶  i¾
  é'  z#Period with BDay freq is deprecatedrn   z1999-1-1ri   rM   r‰   r   rj   r   çÍÌÌÌÌÌì?)r  r  r  r   r    rS   r   r   r:   r;   r<   r=   r?   r@   rA   r'   rÞ   ÚappendÚget_majorticklocsr  r  rk   r  )r.   Úday_lstrs   Úxpl1Úxpl2Úrs1Úrs2Únr›   r€   rF   r1   ÚxaxisÚvminÚvmaxr3   r3   r4   Útest_finder_dailyß  s(   ÿzTestTSPlot.test_finder_dailyc                 C   sò   ddg}t dƒjgt|ƒ  }}g }g }|D ]T}tdt|d ƒdd�}ttj d¡ 	t|ƒ¡|ƒ}t
j ¡ \}	}
|j|
d	� |
 ¡ }| | ¡ d
 ¡ |
 ¡ \}}|
 |d |¡ | | ¡ d
 ¡ t
j |
 ¡ ¡ q||ksqJ ‚||kswJ ‚d S )Ng      @rÖ   Ú1988Q1Ú1987Q2rï   rz   rš   r   rj   r   r,  ©r   r    rS   r   r  r   r:   r;   r<   r=   r?   r@   rA   r'   rÞ   r-  r.  r  r  rk   r  ©r.   Úyrsr0  r1  r2  r3  r4  r›   r€   rF   r1   r5  r6  r7  r3   r3   r4   Útest_finder_quarterly÷  ó"   z TestTSPlot.test_finder_quarterlyc                 C   sò   g d¢}t dƒjgt|ƒ  }}g }g }|D ]T}tdt|d ƒdd�}ttj d¡ 	t|ƒ¡|ƒ}t
j ¡ \}	}
|j|
d� |
 ¡ }| | ¡ d	 ¡ |
 ¡ \}}|
 |d
 |¡ | | ¡ d	 ¡ t
j |
 ¡ ¡ q||ksqJ ‚||kswJ ‚d S )N)gffffffò?g      @rï   rÖ   zJan 1988r:  é   ry   rš   r   rj   r   r,  r;  r<  r3   r3   r4   Útest_finder_monthly  r?  zTestTSPlot.test_finder_monthlyc                 C   st   t dddd�}ttj d¡ t|ƒ¡|ƒ}tj 	¡ \}}|j
|d� | ¡ }| ¡ d }tddƒj}||ks8J ‚d S )	Nr9  i   ry   rš   r   rj   r   Ú1989Q1)r   r   r:   r;   r<   r=   rS   r?   r@   rA   r'   rÞ   r.  r   r    )r.   r›   r€   rF   r1   r5  rì   rë   r3   r3   r4   Útest_finder_monthly_long#  s   z#TestTSPlot.test_finder_monthly_longc           	      C   s¢   g d¢}dd„ |D ƒ}g }dD ]9}t d|dd�}ttj d¡ t|ƒ¡|ƒ}tj 	¡ \}}|j
|d	� | ¡ }| | ¡ d
 ¡ tj | ¡ ¡ q||ksOJ ‚d S )N)rž   iÄ  éÆ  rD  éË  iä  i  iz  c                 S   s   g | ]	}t |d d�j‘qS )r{   rM   )r   r    ©Ú.0rd   r3   r3   r4   Ú
<listcomp>/  s    z1TestTSPlot.test_finder_annual.<locals>.<listcomp>)rÈ   r6   é   é1   rQ   éÇ   iW  ié  Ú1987r{   rš   r   rj   r   )r   r   r:   r;   r<   r=   rS   r?   r@   rA   r'   rÞ   r-  r.  rk   r  )	r.   rë   rì   Únyearsr›   r€   rF   r1   r5  r3   r3   r4   Útest_finder_annual-  s   zTestTSPlot.test_finder_annualc           	      C   óz   d}t dd|d�}ttj d¡ t|ƒ¡|ƒ}tj 	¡ \}}|j
|d� | ¡ }| ¡ d }tddd�j}||ks;J ‚d S )	Ni@ ú1/1/1999ÚMinrL   r   rj   r   rM   ©r   r   r:   r;   r<   r=   rS   r?   r@   rA   r'   rÞ   r.  r   r    )	r.   Únminutesr›   r€   rF   r1   r5  rì   rë   r3   r3   r4   Útest_finder_minutely<  s   zTestTSPlot.test_finder_minutelyc           	      C   rO  )	Né   rP  r   rL   r   rj   r   rM   rR  )	r.   Únhoursr›   r€   rF   r1   r5  rì   rë   r3   r3   r4   Útest_finder_hourlyI  s   zTestTSPlot.test_finder_hourlyc                 C   sÐ   t tjdtjd�tddd�d�}tj|jdd…< tj 	¡ \}}|j
|d� | ¡ }t|ƒd	ks1J ‚|d
 }| ¡ }tjj|t|ƒtjd�}t|tjjjƒsOJ ‚|j}|dd…d	f  ¡ s^J ‚tj | ¡ ¡ d S )Nr  r†   rˆ   r‰   r!   rÈ   é   rj   r%   r   ©ÚmaskÚ
fill_value)r   r:   rŽ   r�   r   ÚnanrÌ   r?   r@   rA   r'   r*   rS   rò   ÚmaÚMaskedArrayr   Ú
isinstanceÚcorerZ  rõ   rk   r  ©r.   r0   rF   r1   ÚlinesÚliner  rZ  r3   r3   r4   Ú	test_gapsU  s   ÿzTestTSPlot.test_gapsc                 C   sÞ   t tjdtjd�tddd�d�}|jg d¢ }tj|jdd…< tj 	¡ \}}|j
|d	�}| ¡ }t|ƒd
ks8J ‚|d }| ¡ }tjj|t|ƒtjd�}t|tjjjƒsVJ ‚|j}|dd…d
f  ¡ seJ ‚tj | ¡ ¡ d S )Nr  r†   rˆ   r‰   r!   ©	r   r%   r   rÈ   rý   r7   r@  é   é   r   rÈ   rj   r%   r   rY  )r   r:   rŽ   r�   r   rÌ   r\  r?   r@   rA   r'   r*   rS   rò   r]  r^  r   r_  r`  rZ  rõ   rk   r  ra  r3   r3   r4   Útest_gaps_irregularh  s    ÿzTestTSPlot.test_gaps_irregularc           	      C   sÄ   g d¢}t tj d¡ t|ƒ¡|ƒ}tj|jdd…< tj	 
¡ \}}|j|d� | ¡ }t|ƒdks3J ‚|d }| ¡ }tjj|t|ƒtjd�}t|tjjjƒsQJ ‚|j}|dd…df  ¡ s`J ‚d S )Nre  r   rÈ   rj   r%   r   rY  )r   r:   r;   r<   r=   rS   r\  rÌ   r?   r@   rA   r'   r*   rò   r]  r^  r   r_  r`  rZ  rõ   )	r.   rU   r€   rF   r1   rb  rc  r  rZ  r3   r3   r4   Útest_gaps_non_ts}  s   zTestTSPlot.test_gaps_non_tsc           
      C   s  t tjdtjd�tddd�d�}tj|jdd…< tj 	¡ \}}|j
|d� t|jd	 |jd
 dd�}t tj d¡ t|ƒ¡|ƒ}|j
dd� | ¡ }t|ƒdksRJ ‚t|j ¡ ƒdks]J ‚|d	 }| ¡ }tjj|t|ƒtjd�}t|tjjjƒs{J ‚|j}	|	dd…df  ¡ sŠJ ‚d S )Nr  r†   rˆ   r‰   r!   rÈ   rX  rj   r   r$   Ú12hrM   r   T©Úsecondary_yr%   rY  )r   r:   rŽ   r�   r   r\  rÌ   r?   r@   rA   r'   r"   r;   r<   r=   rS   r*   Úright_axrò   r]  r^  r   r_  r`  rZ  rõ   )
r.   ÚlowrF   r1   Úidxhru   rb  rc  r  rZ  r3   r3   r4   Útest_gap_upsampleŽ  s$   ÿzTestTSPlot.test_gap_upsamplec                 C   s¶   t tj d¡ d¡ƒ}tj ¡ \}}|jdd�}t	|dƒsJ ‚t	|dƒr&J ‚| 
¡ }| ¡ d }t | ¡ | ¡ ƒ}t ||¡ | ¡  ¡ dksIJ ‚|d  ¡  ¡ rSJ ‚tj |¡ d S )	Nr   r6   Trk  Úleft_axrm  r   Úright)r   r:   r;   r<   r=   r?   r@   rA   r'   rÎ   Úget_axesr*   r¢   r+   r  Úassert_series_equalÚ	get_yaxisÚget_ticks_positionÚget_visiblerk   )r.   r€   rl   rF   r1   Úaxesrc  rë   r3   r3   r4   Útest_secondary_y¥  s   zTestTSPlot.test_secondary_yc                 C   sn   t tj d¡ d¡ƒ t tj d¡ d¡ƒ}tj ¡ \}}|j|d� | 	¡  
¡ dks-J ‚tj | ¡ ¡ d S )Nr   r6   rj   Úleft)r   r:   r;   r<   r=   r?   r@   rA   r'   ru  rv  rk   r  )r.   Úser2rF   Úax2r3   r3   r4   Útest_secondary_y_yaxis³  s   z!TestTSPlot.test_secondary_y_yaxisc                 C   sŒ   t tj d¡ d¡ƒ}t tj d¡ d¡ƒ}| ¡ }|jdd�}| ¡  ¡ s(J ‚t|dƒr/J ‚t|dƒs6J ‚t|dƒs=J ‚t|dƒrDJ ‚d S )Nr   r6   Trk  rq  rm  )	r   r:   r;   r<   r=   r'   ru  rw  rÎ   )r.   r€   r{  r1   r|  r3   r3   r4   Útest_secondary_both»  s   zTestTSPlot.test_secondary_bothc           	      C   sÈ   t ddd�}ttj d¡ d¡|ƒ}tj ¡ \}}|j	dd�}t
|dƒs&J ‚t
|dƒr-J ‚| ¡ }| ¡ d	 }t| ¡ | ¡ ƒ ¡ }t ||¡ | ¡  ¡ d
ksRJ ‚|d	  ¡  ¡ r\J ‚tj |¡ d S )Nr  r6   r‰   r   Trk  rq  rm  r   rr  )r   r   r:   r;   r<   r=   r?   r@   rA   r'   rÎ   rs  r*   r¢   r+   r  r  rt  ru  rv  rw  rk   )	r.   rU   r€   rl   rF   r1   rx  rc  rë   r3   r3   r4   Útest_secondary_y_tsÆ  s   zTestTSPlot.test_secondary_y_tsc                 C   sf   t ddd�}ttj d¡ d¡|ƒ}tj ¡ \}}|j	|d� | 
¡  ¡ dks)J ‚tj | ¡ ¡ d S )Nr  r6   r‰   r   rj   rz  )r   r   r:   r;   r<   r=   r?   r@   rA   r'   ru  rv  rk   r  )r.   rU   r{  rF   r|  r3   r3   r4   Útest_secondary_y_ts_yaxisÕ  s   z$TestTSPlot.test_secondary_y_ts_yaxisc                 C   s@   t ddd�}ttj d¡ d¡|ƒ}| ¡ }| ¡  ¡ sJ ‚d S )Nr  r6   r‰   r   )	r   r   r:   r;   r<   r=   r'   ru  rw  )r.   rU   r{  r1   r3   r3   r4   Útest_secondary_y_ts_visibleÝ  s   z&TestTSPlot.test_secondary_y_ts_visiblec                 C   s~   t  d¡ ttj d¡ d¡ƒ}tj 	¡ \}}|j
dd|d�}t|dƒs&J ‚t|dƒr-J ‚| ¡ }|d	  ¡  ¡ d
ks=J ‚d S )NÚscipyr   r6   TÚdensity©rl  Úkindr1   rq  rm  r%   rr  )rp   Úimportorskipr   r:   r;   r<   r=   r?   r@   rA   r'   rÎ   rs  ru  rv  ©r.   r€   rl   r1   rx  r3   r3   r4   Útest_secondary_kdeã  s   
zTestTSPlot.test_secondary_kdec                 C   sX   t tj d¡ d¡ƒ}tj ¡ \}}|jdd|d� | 	¡ }|d  
¡  ¡ dks*J ‚d S )Nr   r6   TÚbarr„  r%   rr  )r   r:   r;   r<   r=   r?   r@   rA   r'   rs  ru  rv  r‡  r3   r3   r4   Útest_secondary_barí  s
   zTestTSPlot.test_secondary_barc                 C   s|   t tj d¡ d¡g d¢d�}|jddgdd�}|d	  ¡  ¡ d
ks$J ‚|d  ¡  ¡ dks0J ‚|d  ¡  ¡ d
ks<J ‚d S )Nr   ©rÈ   rN   ©r`   r  Úc©rÀ   r`   r�  T)rl  rA   r   rr  r%   rz  ©r	   r:   r;   r<   r=   r'   ru  rv  ©r.   rE   rx  r3   r3   r4   Ú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s%J ‚|d  ¡  ¡ dks1J ‚|d  ¡  ¡ dks=J ‚d S )Nr   r‹  rŒ  rŽ  r‰  r`   r�  T)r…  rl  rA   r   rr  r%   rz  r�  r�  r3   r3   r4   Útest_secondary_bar_frameý  s   ÿz#TestTSPlot.test_secondary_bar_framec                 C   s  t tjdtjd�tdddd�d�}|jg d¢ }tj ¡ \}}|j	|d� |j	d	|d
�}| 
¡ }d}tjt|d��7 t|d  ¡ ƒ}t|d  ¡ ƒ}	t ||j d¡¡ t |	|j d¡¡ | ¡ \}
}|j ¡ }W d   ƒ n1 ssw   Y  |
|d jks�J ‚||d jksŠJ ‚d S ©Nrg  r†   rˆ   ri   rš   r!   ©r   rÈ   r6   rÖ   r@  é   é   rf  rj   Úgr‹   r   rn   r   r%   r$   )r   r:   rŽ   r�   r   rÌ   r?   r@   rA   r'   r*   r  r  r  r   r+   r  r"   rÆ   r  r    ©r.   Ús1Ús2rF   r1   r|  rb  rs   Úidx1Úidx2rz  rr  Úpidxr3   r3   r4   Útest_mixed_freq_regular_first  s(   þø	z(TestTSPlot.test_mixed_freq_regular_firstc                 C   s´   t tjdtjd�tddd�d�}|jg d¢ }tj ¡ \}}|j	d|d� |j	|d	� t
|d
ƒr2J ‚| ¡ }|d  ¡ }t ||j t¡j¡ |d  ¡ }t ||j t¡j¡ d S ©Nrg  r†   rˆ   r‰   r!   r”  r—  r‹   rj   r   r   r%   )r   r:   rŽ   r�   r   rÌ   r?   r@   rA   r'   rÎ   r*   r+   r  Úassert_numpy_array_equalr"   rú   rû   rR   ©r.   r™  rš  rF   r1   rb  Úx1Úx2r3   r3   r4   Útest_mixed_freq_irregular_first!  s   ÿz*TestTSPlot.test_mixed_freq_irregular_firstc                 C   s(  t tjdtjd�tdddd�d� ¡ }|jg d¢d d …f }tj 	¡ \}}|j
|d� |j
d	|d
�}| ¡ }d}tjt|d��9 t|d  ¡ ƒ}t|d  ¡ ƒ}	| |j d¡¡s[J ‚|	 |j d¡¡sfJ ‚| ¡ \}
}|j ¡ }W d   ƒ n1 s{w   Y  |
|d jks‰J ‚||d jks’J ‚d S r“  )r   r:   rŽ   r�   r   Úto_framerÌ   r?   r@   rA   r'   r*   r  r  r  r   r+   Úequalsr"   rÆ   r  r    r˜  r3   r3   r4   Ú test_mixed_freq_regular_first_df0  s,   þýúz+TestTSPlot.test_mixed_freq_regular_first_dfc                 C   sÀ   t tjdtjd�tddd�d� ¡ }|jg d¢d d …f }tj 	¡ \}}|j
d|d� |j
|d	� t|d
ƒr8J ‚| ¡ }|d  ¡ }t ||j t¡j¡ |d  ¡ }t ||j t¡j¡ d S rŸ  )r   r:   rŽ   r�   r   r¥  rÌ   r?   r@   rA   r'   rÎ   r*   r+   r  r   r"   rú   rû   rR   r¡  r3   r3   r4   Ú"test_mixed_freq_irregular_first_dfF  s   ÿþz-TestTSPlot.test_mixed_freq_irregular_first_dfc                 C   s¤   t dddd�}t dddd�}ttj d¡ t|ƒ¡|ƒ}ttj d¡ t|ƒ¡|ƒ}tj 	¡ \}}|j
|d� |j
|d� | ¡ D ]}t| ¡ d	�jdksOJ ‚qAd S )
NrP  ém  rw   rš   r@  rƒ   r   rj   r  ©r   r   r:   r;   r<   r=   rS   r?   r@   rA   r'   r*   r   r+   r   ©r.   ro  ÚidxlÚhighrn  rF   r1   rc  r3   r3   r4   Útest_mixed_freq_hf_firstV  ó   ÿz#TestTSPlot.test_mixed_freq_hf_firstc                 C   sŽ   t dddd�}tj d¡ d¡}t||d�}| d¡ ¡ }tj	 
¡ \}}|j|d	�}|jd
|d� |jd  ¡ d |jd  ¡ d ksEJ ‚d S )Nz2012-01-01 13:00ú
2012-01-02r   rM   r   r@  r!   rv   rj   Úrr‹   r   r%   )r   r:   r;   r<   r=   r   rÄ   Úinterpolater?   r@   rA   r'   rb  r+   )r.   Úts_indÚts_datar0   Úts2rF   r1   r3   r3   r4   Útest_mixed_freq_alignmenta  s   ,z$TestTSPlot.test_mixed_freq_alignmentc           	      C   sÒ   t dddd�}t dddd�}ttj d¡ t|ƒ¡|ƒ}ttj d¡ t|ƒ¡|ƒ}tj 	¡ \}}|j
d|d	� |j
d|d	� | ¡ D ]}t| ¡ d
�jdksQJ ‚qC| ¡ }t|jƒdks_J ‚tj | ¡ ¡ d S )NrP  r©  rw   rš   r@  rƒ   r   T)Úlegendr1   r  )r   r   r:   r;   r<   r=   rS   r?   r@   rA   r'   r*   r   r+   r   Ú
get_legendÚtextsrk   r  )	r.   ro  r¬  r­  rn  rF   r1   rc  Úlegr3   r3   r4   Útest_mixed_freq_lf_firstn  s   z#TestTSPlot.test_mixed_freq_lf_firstc                 C   s¤   t dddd�}t dddd�}ttj d¡ t|ƒ¡|ƒ}ttj d¡ t|ƒ¡|ƒ}tj 	¡ \}}|j
|d� |j
|d� | ¡ D ]}t| ¡ d	�jdksOJ ‚qAd S )
NrP  éð   rv   rš   rï   r   r   rj   r  rª  r«  r3   r3   r4   Útest_mixed_freq_lf_first_hourly|  r¯  z*TestTSPlot.test_mixed_freq_lf_first_hourlyc                 C   s´   t tjdtjd�tddd�d�}|jg d¢ }d}tjt|d�� t	d	dd
d�}W d   ƒ n1 s2w   Y  t tj
 d¡ t|ƒ¡|ƒ}tj ¡ \}}|j|d� |j|d� d S )Nr  r†   rˆ   r‰   r!   )r   r%   r   rN   rï   rÈ   rÉ   rý   é   r7   r6   rf  é   é   é   é   r   rn   z1/3/2000ri   rš   r   rj   )r   r:   rŽ   r�   r   rÌ   r  r  r  r   r;   r<   r=   rS   r?   r@   rA   r'   )r.   r0   rö   rs   r›   ÚpsrF   r1   r3   r3   r4   Ú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|ƒƒ|ƒ}tjjddd�\}\}}|j|d	� |j|d	� |j	d
ksEJ ‚|j	d
ksLJ ‚|j
d  ¡ d |j
d  ¡ d ks`J ‚d S )Nú
2015-01-01rN   rƒ   rš   r%   r   T)ÚnrowsÚsharexrj   ry   r   r#   )r   rT   r   r>   rS   r?   r@   rA   r'   r   rb  rò   ©r.   r›  rœ  r™  rš  rF   Úax1r|  r3   r3   r4   Útest_mixed_freq_shared_ax•  s   ,z$TestTSPlot.test_mixed_freq_shared_axc                 C   s¦   t dddd�}|d d…  |dd … ¡}ttt|ƒƒ|ƒ}ttt|ƒƒ|ƒ}tj ¡ \}}| ¡ }|j	|d� |j	|d� |j
d  ¡ d	 |j
d  ¡ d	 ksQJ ‚d S )
NrÅ  rN   rƒ   rš   r%   r   rj   r   r#   ©r   rT   r   r>   rS   r?   r@   rA   Útwinxr'   rb  rò   rÈ  r3   r3   r4   Ú test_mixed_freq_shared_ax_twin_x¤  s   ,z+TestTSPlot.test_mixed_freq_shared_ax_twin_xzTODO (GH14330, GH14322)c                 C   s¦   t dddd�}|d d…  |dd … ¡}ttt|ƒƒ|ƒ}ttt|ƒƒ|ƒ}tj ¡ \}}| ¡ }|j	|d� |j	|d� |j
d  ¡ d	 |j
d  ¡ d	 ksQJ ‚d S )
NrÅ  rN   ry   rš   r%   r   rj   r   r#   rË  rÈ  r3   r3   r4   Ú0test_mixed_freq_shared_ax_twin_x_irregular_first²  s   ,z;TestTSPlot.test_mixed_freq_shared_ax_twin_x_irregular_firstc                 C   s‚   t j ¡ \}}tdtdgƒ}ttt|ƒƒ|ƒ}|j|d� | 	¡ d  
¡ }|j ¡ t|ƒ ¡ ks2J ‚t|ƒ ¡ |j ¡ ks?J ‚d S )NrÅ  z
2015-01-03rj   r   )r?   r@   rA   r   r   r   r>   rS   r'   r*   r+   r"   rv   Úmax)r.   rF   r1   Údtiru   r2   r3   r3   r4   Útest_nat_handling¿  s   zTestTSPlot.test_nat_handlingc                 C   s´   t dddd�}t dddd�}ttj d¡ t|ƒ¡|ƒ}ttj d¡ t|ƒ¡|ƒ}tj 	¡ \}}|j
|d� d	}tjt|d
�� |j
|dd� W d   ƒ d S 1 sSw   Y  d S )NrP  é4   rx   rš   r@  rƒ   r   rj   zz'how' is not a valid keyword for plotting functions. If plotting multiple objects on shared axes, resample manually first.rn   Úfoo)r1   Úhow)r   r   r:   r;   r<   r=   rS   r?   r@   rA   r'   rp   rq   r”   )r.   ro  r¬  r­  rn  rF   r1   rs   r3   r3   r4   Ú*test_to_weekly_resampling_disallow_how_kwdÊ  s   ÿ"ÿz5TestTSPlot.test_to_weekly_resampling_disallow_how_kwdc                 C   s¦   t dddd�}t dddd�}ttj d¡ t|ƒ¡|ƒ}ttj d¡ t|ƒ¡|ƒ}tj 	¡ \}}|j
|d� |j
|d� | ¡ D ]}t| ¡ d	�j|jksPJ ‚qAd S )
NrP  rÒ  rx   rš   r@  rƒ   r   rj   r  rª  r«  r3   r3   r4   Útest_to_weekly_resamplingÙ  s   ÿz$TestTSPlot.test_to_weekly_resamplingc                 C   sþ   t dddd�}t dddd�}ttj d¡ t|ƒ¡|ƒ}ttj d¡ t|ƒ¡|ƒ}tj 	¡ \}}|j
|d� |j
|d� | ¡ j tj¡}tjg d	¢tjd
�}| ¡ D ](}	t|	 ¡ d�j|jkscJ ‚|	jdd�}
t|
ƒdkrvt |
|¡ qTt |
|¡ qTd S )NrP  rÒ  rx   rš   r@  rƒ   r   rj   ©iê  iï  ió  i÷  iû  i   i  i  i  i  i  i  r†   r  F©Úorig)r   r   r:   r;   r<   r=   rS   r?   r@   rA   r'   rÆ   Úasi8rú   r�   r^   r*   r   r+   r   r  r   )r.   ro  r¬  r­  rn  rF   r1   Ú
expected_hÚ
expected_lrc  r2   r3   r3   r4   Útest_from_weekly_resamplingä  s&   þúz&TestTSPlot.test_from_weekly_resamplingzkind1, kind2)rc  Úarea)rÞ  rc  c                 C   s¾  t dddd�}t dddd�}ttj d¡ t|ƒdf¡|g d	¢d
�}ttj d¡ t|ƒdf¡|g d	¢d
�}t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sxJ ‚t |jdd�|	¡ |
|| j7 }
t |jdd�|
¡ qe| ¡ j tj¡}	tjt|	ƒtjd�}
tdƒD ]1}|jd|  }t| ¡ d�j|jksÁJ ‚t |jdd�|	¡ |
|| j7 }
t |jdd�|
¡ q«d S )NrP  rÒ  rx   rš   r@  rƒ   r   rN   ©r   r%   r   r¿   T©r…  Ústackedr1   r×  r†   FrØ  r  )r   r	   r:   r;   r<   rS   r?   r@   rA   r'   r^   r�   Úzerosr>   rb  r   r+   r   r  r   rR   r¢   rÆ   rÚ  rú   )r.   Úkind1Úkind2ro  r¬  r­  rn  rF   r1   Ú
expected_xÚ
expected_yr_   rc  r3   r3   r4   Ú$test_from_resampling_area_line_mixedú  sF   ýýñ
ûz/TestTSPlot.test_from_resampling_area_line_mixedc                 C   sÀ  t dddd�}t dddd�}ttj d¡ t|ƒdf¡|g d	¢d
�}ttj d¡ t|ƒdf¡|g d	¢d
�}tj ¡ \}}|j	|d|d� |j	|d|d� | 
¡ j tj¡}	tjt|	ƒtjd�}
tdƒD ]/}|j| }t| ¡ d�j|jksxJ ‚t |jdd�|	¡ |
|| j7 }
t |jdd�|
¡ qdtjg d¢tjd�}	tjt|	ƒtjd�}
tdƒD ]1}|jd|  }t| ¡ d�j|jksÂJ ‚t |jdd�|	¡ |
|| j7 }
t |jdd�|
¡ q¬d S )NrP  rÒ  rx   rš   r@  rƒ   r   rN   rß  r¿   Trà  r†   r  FrØ  r×  )r   r	   r:   r;   r<   rS   r?   r@   rA   r'   rÆ   rÚ  rú   r�   râ  r>   rb  r   r+   r   r  r   rR   r¢   r^   )r.   rã  rä  ro  r¬  r­  rn  rF   r1   rå  ræ  r_   rc  rb  r3   r3   r4   Ú0test_from_resampling_area_line_mixed_high_to_low2  sF   ýý
ñûz;TestTSPlot.test_from_resampling_area_line_mixed_high_to_lowc                 C   s¸   t dddd�}t dddd�}ttj d¡ t|ƒ¡|ƒ}ttj d¡ t|ƒ¡|ƒ}tj 	¡ \}}|j
|d� |j
|d� t| ¡ ƒdksGJ ‚| ¡ D ]}t| ¡ d	�jd
ksYJ ‚qKd S ©Nz2014-07-01 09:00ru   é2   rL   Ú100msrÙ   r   rj   r  r—   rª  r«  r3   r3   r4   Ú"test_mixed_freq_second_millisecondh  ó   ÿz-TestTSPlot.test_mixed_freq_second_millisecondc                 C   s¸   t dddd�}t dddd�}ttj d¡ t|ƒ¡|ƒ}ttj d¡ t|ƒ¡|ƒ}tj 	¡ \}}|j
|d� |j
|d� t| ¡ ƒdksGJ ‚| ¡ D ]}t| ¡ d	�jd
ksYJ ‚qKd S ré  rª  r«  r3   r3   r4   Ú.test_mixed_freq_second_millisecond_low_to_highv  rí  z9TestTSPlot.test_mixed_freq_second_millisecond_low_to_highc                 C   sX   t dddƒt dddƒt dddƒg}ttj d¡ t|ƒdf¡t|td�ƒ}t	|j
ƒ d S )NrÕ   r%   rÈ   rg  r   rN   r†   )r   r	   r:   r;   r<   r=   rS   r
   rû   r&   r'   rY   r3   r3   r4   Útest_irreg_dtypes„  s   "
þzTestTSPlot.test_irreg_dtypesc                 C   s^   t ddd�}|g d¢  t¡}ttj d¡ t|ƒdf¡|ƒ}t	j
 ¡ \}}t|j|d� d S )Nr  r6   r‰   )r   r   rÈ   r7   r   rN   rj   )r   rú   rû   r	   r:   r;   r<   r=   rS   r?   r@   rA   r&   r'   )r.   rU   rE   rF   r1   r3   r3   r4   Útest_irreg_dtypes_dt64�  s
    z!TestTSPlot.test_irreg_dtypes_dt64c                    s*  t ddddddƒ‰ tj d¡ ddd¡ ¡ }t ‡ fdd„|D ƒ¡}ttj d¡ t	|ƒ¡tj d¡ t	|ƒ¡d	œ|d
�}t
j ¡ \}}|j|d� | ¡ }| ¡ }t||ƒD ];\}}	tt|ƒdƒ\}
}t|
dƒ\}}
|	 ¡ }t	|ƒdkr’|dkrƒt||
|ƒ d¡}n	t||
|ƒ d¡}||ks’J ‚qWd S )Nr%   rN   r  r   r   rg  c                    ó"   g | ]}ˆ t t|ƒd �  ¡ ‘qS ©r  ©r   r  r   rF  ©Útr3   r4   rH  ˜  ó   " z(TestTSPlot.test_time.<locals>.<listcomp>r  r!   rj   é<   ú%H:%M:%Sú%H:%M)r   r:   r;   r<   ÚintegersÚcumsumr^   r	   r=   rS   r?   r@   rA   r'   Ú
get_xticksrB   rá   Údivmodr  rå   r   rã   ©r.   Údeltasr0   rE   rF   r1   ÚticksÚlabelsÚ_tickÚ_labelÚmru   r   rì   rë   r3   rô  r4   Ú	test_time•  s0   þû€÷zTestTSPlot.test_timec                    sÈ  t ddddddƒ‰ tj d¡ ddd¡ ¡ }t ‡ fdd„|D ƒ¡}ttj d¡ t	|ƒ¡tj d¡ t	|ƒ¡d	œ|d
�}t
j ¡ \}}|j|d� | ¡ }| ¡ }t||ƒD ];\}}	tt|ƒdƒ\}
}t|
dƒ\}}
|	 ¡ }t	|ƒdkr’|dkrƒt||
|ƒ d¡}n	t||
|ƒ d¡}||ks’J ‚qW| 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 )Nr%   rN   r  r   r   rg  c                    rñ  rò  ró  rF  rô  r3   r4   rH  ´  rö  z4TestTSPlot.test_time_change_xlim.<locals>.<listcomp>r  r!   rj   r÷  rø  rù  z1:30z5:00)r   r:   r;   r<   rú  rû  r^   r	   r=   rS   r?   r@   rA   r'   rü  rB   rá   rý  r  rå   r   rã   r  rþ  r3   rô  r4   Útest_time_change_xlim±  sJ   þû€€÷z TestTSPlot.test_time_change_xlimc                    sŽ  t ddddddƒ‰ tj d¡ ddd¡ ¡ }t ‡ fdd„|D ƒ¡}ttj d¡ t	|ƒ¡tj d¡ t	|ƒ¡d	œ|d
�}t
j ¡ \}}|j|d�}| ¡ }| ¡ }t||ƒD ]m\}}	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… }n|dkr´t||
||ƒ d¡}n
t||
||ƒ d¡}||ksÄJ ‚qWd S )Nr%   rN   r  r   r   rg  c                    rñ  ))Úmicrosecondsró  rF  rô  r3   r4   rH  á  rö  z.TestTSPlot.test_time_musec.<locals>.<listcomp>r  r!   rj   r÷  g    €„.Aiè  rÚ   éýÿÿÿrø  rù  )r   r:   r;   r<   rú  rû  r^   r	   r=   rS   r?   r@   rA   r'   rü  rB   rá   rý  r  Úroundrå   r   rã   )r.   rÿ  r0   rE   rF   r1   r   r  r  r  r  ru   r˜   r   rì   rë   r3   rô  r4   Útest_time_musecÞ  s:   þû€ðzTestTSPlot.test_time_musecc                 C   sæ   t dddd�}t dddd�}ttj d¡ t|ƒ¡|ƒ}ttj d¡ t|ƒ¡|ƒ}tj 	¡ \}}|j
|d� |j
d	|d
�}| ¡ D ]}t| ¡ ƒjdksOJ ‚qBt|dƒsWJ ‚t|dƒr^J ‚|j ¡ D ]}t| ¡ ƒjdkspJ ‚qcd S )NrP  r©  rw   rš   r@  rƒ   r   rj   T©rl  r1   rq  rm  )r   r   r:   r;   r<   r=   rS   r?   r@   rA   r'   r*   r   r+   r   rÎ   rq  r«  r3   r3   r4   Útest_secondary_upsample  s   ÿz"TestTSPlot.test_secondary_upsamplec                 C   s(  t j ¡ }| d¡}ttj d¡ d¡t	t
dƒtd�tdddd	�d
�}|jddg|d� | ¡ }t| ¡ ƒdks:J ‚| ¡ d  ¡ dksFJ ‚| ¡ d  ¡ dksRJ ‚| ¡ d  ¡ dks^J ‚| ¡ d  ¡ dksjJ ‚|j ¡ d u ssJ ‚tƒ }| ¡ D ]	}| | ¡ ¡ qzt|ƒdksŒJ ‚t j |¡ d S )NéÓ   r   ©r6   rï   ÚABCDr†   ú
2000-01-01r6   ri   rš   ©rÀ   r"   rh   r  rï   r   ú	A (right)r%   z	B (right)r¾   rN   rw   )r?   r@   ÚfigureÚadd_subplotr	   r:   r;   r<   r=   r
   Úlistrû   r   r'   r¸  rS   r*   Ú	get_textsrå   rm  ÚsetÚaddr�   rk   )r.   rl   r1   rE   rº  Úcolorsrc  r3   r3   r4   Útest_secondary_legend  s(   

ýz TestTSPlot.test_secondary_legendc                 C   sæ   t tj d¡ d¡ttdƒtd�tdddd�d	�}t	j
 ¡ }| d
¡}|jddgd|d� | ¡ }t| ¡ ƒdks;J ‚| ¡ d  ¡ dksGJ ‚| ¡ d  ¡ dksSJ ‚| ¡ d  ¡ dks_J ‚| ¡ d  ¡ dkskJ ‚t	j
 |¡ d S )Nr   r  r  r†   r  r6   ri   rš   r  r  rh   r¾   F)rl  Ú
mark_rightr1   rï   r   r%   rN   rw   )r	   r:   r;   r<   r=   r
   r  rû   r   r?   r@   r  r  r'   r¸  rS   r*   r  rå   rk   ©r.   rE   rl   r1   rº  r3   r3   r4   Útest_secondary_legend_right*  s   ý

z&TestTSPlot.test_secondary_legend_rightc                 C   sš   t tj d¡ d¡ttdƒtd�tdddd�d	�}t	j
 ¡ \}}|jd
dg|d� | ¡ }| ¡ d  ¡ dks9J ‚| ¡ d  ¡ dksEJ ‚t	j
 |¡ d S )Nr   r  r  r†   r  r6   ri   rš   r  r‰  rh   )r…  rl  r1   r   r  r%   ©r	   r:   r;   r<   r=   r
   r  rû   r   r?   r@   rA   r'   r¸  r  rå   rk   r  r3   r3   r4   Útest_secondary_legend_bar;  s   ýz$TestTSPlot.test_secondary_legend_barc                 C   sœ   t tj d¡ d¡ttdƒtd�tdddd�d	�}t	j
 ¡ \}}|jd
dgd|d� | ¡ }| ¡ d  ¡ dks:J ‚| ¡ d  ¡ dksFJ ‚t	j
 |¡ d S )Nr   r  r  r†   r  r6   ri   rš   r  r‰  rh   F)r…  rl  r  r1   r   r%   r  r  r3   r3   r4   Útest_secondary_legend_bar_rightH  s   ýz*TestTSPlot.test_secondary_legend_bar_rightc                 C   sú   t tj d¡ d¡ttdƒtd�tdddd�d	�}t	j
 ¡ }| d
¡}t tj d¡ d¡ttdƒtd�tdddd�d	�}|jddg|d�}| ¡ }t| ¡ ƒdksSJ ‚|j ¡ d u s\J ‚tƒ }| ¡ D ]	}| | ¡ ¡ qct|ƒdksuJ ‚t	j
 |¡ d S )Nr   r  r  r†   r  r6   ri   rš   r  r  r¾   rw   r  rï   )r	   r:   r;   r<   r=   r
   r  rû   r   r?   r@   r  r  r'   r¸  rS   r*   rm  r  r  r�   rk   ©r.   rE   rl   r1   rº  r  rc  r3   r3   r4   Útest_secondary_legend_multi_colU  s*   ý

ýz*TestTSPlot.test_secondary_legend_multi_colc                 C   sÔ   t dt d¡ d¡ ttdƒtd�tdd„ tdƒD ƒtd�d	�}tj	 
¡ }| d
¡}|jddg|d�}| ¡ }t| ¡ ƒdksAJ ‚|j ¡ d u sJJ ‚tƒ }| ¡ D ]	}| | ¡ ¡ qQt|ƒdkscJ ‚tj	 ¡  d S )Nçš™™™™™ñ?éx   ©r  rï   r  r†   c                 S   ó   g | ]}d |› �‘qS ©zi-r3   ©rG  r_   r3   r3   r4   rH  s  ó    z:TestTSPlot.test_secondary_legend_nonts.<locals>.<listcomp>r  r  r  rh   ri   r  rï   )r	   r:   rŽ   Úreshaper
   r  rû   r>   r?   r@   r  r  r'   r¸  rS   r*   rm  r  r  r�   rk   r!  r3   r3   r4   Útest_secondary_legend_nontsn  s    ý

z&TestTSPlot.test_secondary_legend_nontsc                 C   sÊ   t dt d¡ d¡ ttdƒtd�tdd„ tdƒD ƒtd�d	�}tj	 
¡ }| d
¡}|jddg|d�}| ¡ }t| ¡ ƒdksAJ ‚|j ¡ d u sJJ ‚tƒ }| ¡ D ]	}| | ¡ ¡ qQt|ƒdkscJ ‚d S )Nr#  r$  r%  r  r†   c                 S   r&  r'  r3   r(  r3   r3   r4   rH  ˆ  r)  zDTestTSPlot.test_secondary_legend_nonts_multi_col.<locals>.<listcomp>r  r  r  r¾   rw   r  rï   )r	   r:   rŽ   r*  r
   r  rû   r>   r?   r@   r  r  r'   r¸  rS   r*   rm  r  r  r�   r!  r3   r3   r4   Ú%test_secondary_legend_nonts_multi_colƒ  s   ý

z0TestTSPlot.test_secondary_legend_nonts_multi_colc                 C   s‚   t dddd�}ttj d¡ t|ƒdf¡|ƒ}tj 	¡ \}}|j
|d�}| ¡ }| ¡ D ]}t| ¡ ƒdkr>| ¡ d	ks>J ‚q,d S )
Nr™   r@  rƒ   rš   r   rN   rj   r   r  )r   r	   r:   r;   r<   r=   rS   r?   r@   rA   r'   rÞ   rà   rå   Úget_rotation)r.   r›   rE   rF   r1   r5  rc  r3   r3   r4   Útest_format_date_axis—  s    €þz TestTSPlot.test_format_date_axisc                 C   sX   t dddd�}ttt|ƒƒƒ}tj ¡ \}}|j||dd�}t 	t
|d  ¡ ƒ|¡ d S )Nr°  r6   rw   r  r{   )rG   r   )r   r  r>   rS   r?   r@   rA   r'   r  r  r   r+   )r.   rd   re   rF   r1   rb  r3   r3   r4   Ú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¡}tj ¡ \}}|jd
d„ |D ƒ|ddd„ |D ƒ|ddd�\}}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      (@c                 S   ó   g | ]}|  ¡ ‘qS r3   ©Ú	toordinalrF  r3   r3   r4   rH  ³  ó    z0TestTSPlot.test_mpl_nopandas.<locals>.<listcomp>ú-c                 S   r2  r3   r3  rF  r3   r3   r4   rH  ¶  r5  rï   )Ú	linewidthc                 S   r2  r3   r3  rF  r3   r3   r4   rH  ¼  r5  r†   r   c                 S   r2  r3   r3  rF  r3   r3   r4   rH  ¾  r5  )r   r:   rŽ   r?   r@   rA   r'   r^   r�   r  r   rò   )	r.   ÚdatesÚvalues1Úvalues2rF   r1   Úline1Úline2Úexpr3   r3   r4   Útest_mpl_nopandas©  s(   ùý zTestTSPlot.test_mpl_nopandasc                 C   s¸   ddl m} ttjdtjd�tddd�d�}|jg d¢ }tj	 
¡ \}}|d d	… j|d
� |d	d … j|d
� | ¡ \}}|| |j ¡ d|¡ksLJ ‚|| |j ¡ d|¡ksZJ ‚d S )Nr   ©ÚDatetimeConverterrg  r†   rˆ   r‰   r!   ©r%   rï   rÈ   rÉ   r¾  r7   r6   r@  r•  r–  rf  rÀ  rÁ  rÈ   rj   Ú ©rŸ   r@  r   r:   rŽ   r�   r   rÌ   r?   r@   rA   r'   r  Úconvertr"   rv   rÏ  ©r.   r@  r0   Úts_irregularrF   r1   rz  rr  r3   r3   r4   Ú 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�}tj ¡ \}}|j|d� | ¡ \}}|jd|d� | ¡ \}	}
||	ks:J ‚||
k s@J ‚d S )	N)r%   r   rN   rï   )rÈ   rÉ   rý   r¾  r%   r!   r   rj   Tr  )r   r?   r@   rA   r'   r  ©r.   Úindex_1Úindex_2r™  rš  rF   r1   Úleft_beforeÚright_beforeÚ
left_afterÚright_afterr3   r3   r4   Ú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�}tj ¡ \}}|j|d	� | ¡ \}}|jd
|d� | ¡ \}	}
||	ks@J ‚||
k sFJ ‚d S )Nr  rï   rw   r  z
2000-01-05r%   r!   r   rj   Tr  )r   r   r?   r@   rA   r'   r  rH  r3   r3   r4   Ú 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�}tj ¡ \}}|j|d� | ¡ \}}| d¡ ¡ jd	|d
� | ¡ \}}||ks8J ‚||ks>J ‚d S )Nr  r+  rv   rš   r%   r!   rj   rw   Tr  )	r   r   r?   r@   rA   r'   r  ÚresampleÚmean)	r.   r›   r0   rF   r1   rK  rL  rM  rN  r3   r3   r4   Ú#test_secondary_y_mixed_freq_ts_xlimô  s   z.TestTSPlot.test_secondary_y_mixed_freq_ts_xlimc                 C   sÎ   ddl m} ttjdtjd�tddd�d�}|jg d¢ }tj	 
¡ \}}|d d	… j|d
� |d	d … jd|d� |d d	… j|d
� | ¡ \}}|| |j ¡ d|¡ksWJ ‚|| |j ¡ d|¡kseJ ‚d S )Nr   r?  rg  r†   rˆ   r‰   r!   rA  rÈ   rj   Tr  rB  rC  rE  r3   r3   r4   Ú"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}tj ¡ \}}| |¡ tddddƒtddddƒg}| |¡ d S )Ni�  r%   r   r@  )r   r?   r@   rA   r'   r   )r.   rR   rF   r1   r3   r3   r4   Útest_plot_outofbounds_datetime  s
   
z)TestTSPlot.test_plot_outofbounds_datetimec                 C   s¢   dd„ t  d¡D ƒ}tdddd�}tt j d¡ t|ƒdf¡|ƒ}tj	 
¡ \}}|jd|d	� tj	 ¡  | ¡ }d
d„ |D ƒ}t|ƒt|ƒksIJ ‚||ksOJ ‚d S )Nc                 S   s   g | ]}d |d›�‘qS )z00:00:00.0000000z0>2dr3   r(  r3   r3   r4   rH  !  s    zATestTSPlot.test_format_timedelta_ticks_narrow.<locals>.<listcomp>r6   Ú0Únsrš   r   rN   r8   c                 S   r2  r3   ©rå   rF  r3   r3   r4   rH  *  r5  )r:   rŽ   r   r	   r;   r<   r=   rS   r?   r@   rA   r'   ÚdrawrB   ©r.   Úexpected_labelsr›   rE   rF   r1   r  Úresult_labelsr3   r3   r4   Ú"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 d¡ t|ƒdf¡|ƒ}tj 	¡ \}}|j
d|d�}tj ¡  | ¡ }d	d
„ |D ƒ}t|ƒt|ƒksCJ ‚||ksIJ ‚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:20rV  r6   ú1 drš   r   rN   r8   c                 S   r2  r3   rX  rF  r3   r3   r4   rH  B  r5  z?TestTSPlot.test_format_timedelta_ticks_wide.<locals>.<listcomp>)r   r	   r:   r;   r<   r=   rS   r?   r@   rA   r'   rY  rB   rZ  r3   r3   r4   Ú test_format_timedelta_ticks_wide.  s    
z+TestTSPlot.test_format_timedelta_ticks_widec                 C   s6   t tdƒtddd�ƒ}tj ¡ \}}t|j|d� d S )NrÈ   Ú1dayr‰   rj   )r   r>   r   r?   r@   rA   r&   r'   )r.   ru   rF   r1   r3   r3   r4   Útest_timedelta_plotF  s   zTestTSPlot.test_timedelta_plotc                 C   óJ   t dddd�}ttj d¡ t|ƒ¡|ƒ}tj 	¡ \}}t
|j|d� d S )Nú1 day 2 hr 30 min 10 sr6   r^  rš   r   rj   ©r   r   r:   r;   r<   r=   rS   r?   r@   rA   r&   r'   ©r.   r"   ru   rF   r1   r3   r3   r4   Útest_timedelta_long_periodL  r‚   z%TestTSPlot.test_timedelta_long_periodc                 C   rb  )Nrc  r6   z1 nsrš   r   rj   rd  re  r3   r3   r4   Útest_timedelta_short_periodS  r‚   z&TestTSPlot.test_timedelta_short_periodc                 C   s`   t dddd�}|}t ddd¡}t ddd¡d d d… }tj ¡ \}}|j||g||gd	� d S )
Nr   r6   r   rš   r   r%   gš™™™™™¹?r$   )Úweights)r   r:   rŽ   r?   r@   rA   Úhist)r.   r›   rd   Úw1Úw2rF   r1   r3   r3   r4   Ú	test_histZ  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�}tj ¡ \}}|j|d� |j|d� |j|d� d S )Nr[   rE  r@  r1  rÕ   iÕ  r!   iÍ  iÓ  r0  rj   )r   r   r?   r@   rA   r'   )r.   r™  rš  rF   r1   r3   r3   r4   Útest_overlapping_datetimec  s$   


ýþ


ýþz$TestTSPlot.test_overlapping_datetimez1GH9053 matplotlib does not use ax.xaxis.converterc                 C   sŠ   t tj d¡ d¡tddd�d�}| ¡ }t t	¡� |j|j
|jdd� W d   ƒ n1 s/w   Y  |j\}}t | ¡ | ¡ ¡ d S )Nr   r6   z
1970-01-02r‰   r!   r—  )r‘   )r   r:   r;   r<   r=   r   r'   r  r  ÚDeprecationWarningr"   rR   rb  r   rò   )r.   ru   r1   Úl1Úl2r3   r3   r4   Útest_add_matplotlib_datetime64}  s   
þþ
z)TestTSPlot.test_add_matplotlib_datetime64c                 C   s|   t tj d¡ d¡ddgd�}tdddd	�|d
< tj ¡ \}}|jd
d|d� tj 	¡  | 
¡ d }d}| ¡ |ks<J ‚d S )Nr   )r6   r   rd   re   rŽ  z
2018-01-01r6   rw   rš   r   )rd   re   r  r   )r	   r:   r;   r<   r   r?   r@   rA   ÚscatterrY  rB   rå   )r.   rE   rF   r1   rG   r"  r3   r3   r4   Ú"test_matplotlib_scatter_datetime64�  s   
z-TestTSPlot.test_matplotlib_scatter_datetime64c                 C   ó<   t g d¢ƒ}t|g d¢dœƒ}|jddd�}t|dd� d S )N)ú
2020-05-01ú
2020-05-02z
2020-05-03r[   ©rd   re   rd   re   r   ©Úxrot©r   r	   r'   r   ©r.   rd   rE   rx  r3   r3   r4   Útest_check_xticks_rot˜  s   z TestTSPlot.test_check_xticks_rotc                 C   rt  )N©ru  rv  z
2020-05-04r[   rw  rd   re   r  rx  rz  r{  r3   r3   r4   Útest_check_xticks_rot_irregular   s   z*TestTSPlot.test_check_xticks_rot_irregularc                 C   sb   t g d¢ƒ}t|g d¢dœƒ}| d¡jddd�}t|dd	� | d¡jdd
d�}t|dd	� d S )Nr}  r[   rw  rd   re   T)re   Ú	use_indexr  rx  Fr   )r   r	   Ú	set_indexr'   r   r{  r3   r3   r4   Útest_check_xticks_rot_use_idx§  s   z(TestTSPlot.test_check_xticks_rot_use_idxc                 C   s^   t g d¢ƒ}t|g d¢dœƒ}|jddddd�}t|dd	� |jdddd
d�}t|dd	� d S )Nr}  r[   rw  rd   re   T)rd   re   rA   rÇ  r  rx  Fr   rz  r{  r3   r3   r4   Útest_check_xticks_rot_sharex±  s   z'TestTSPlot.test_check_xticks_rot_sharexN)Ú__name__Ú
__module__Ú__qualname__rp   ÚmarkÚfilterwarningsr5   rH   rW   rZ   ra   rm   rt   Úparametrizer�   r…   r’   r–   rœ   r¡   r«   r®   rº   r»   rÂ   rÅ   rÇ   rÍ   rÏ   rÐ   rÔ   r×   Úxfailrí   rù   rü   rÿ   r  r  r  r  r  r   r:   rŽ   r�   r   r	   r#  r)  r8  r>  rA  rC  rN  ÚslowrT  rW  rd  rh  ri  rp  ry  r}  r~  r  r€  r�  rˆ  rŠ  r‘  r’  rž  r¤  r§  r¨  r®  r¶  r»  r½  rÄ  rÊ  rÍ  rÎ  rÑ  rÕ  rÖ  rÝ  rç  rè  rì  rî  rï  rð  r  r  r
  r  r  r  r  r   r"  r+  r,  r.  r/  r>  rG  rO  rP  rS  rT  rU  r]  r_  ra  rf  rg  rl  rm  rq  rs  r|  r~  r�  r‚  r3   r3   r3   r4   r   /   sR   


		
ÿ
	

ÿ
ÿ

	ÿ

ÿÿ
	
	ÿ
þ
þ
þüûÿûþ



		



7
5	-#

		

r   c              	   O   sf  dd l m} | ¡ }z¢| ¡  | d¡}| d| ¡ ¡}t|dd ƒ}	| |i |¤Ž}
|
d us/J ‚| d| ¡ ¡}|d urR|jj	}t
|tƒrG|j}|	d u rR|j	|ksRJ ‚|d ur]t|j	dd�}|d urk|	d u rk||kskJ ‚| d¡}||d< | |i |¤Ž}
|
d us�J ‚tjdd��}t ||¡ W d   ƒ n1 s˜w   Y  W | |¡ d S W | |¡ d S | |¡ w )	Nr   r  r1   r   T)Ú	is_periodéÔ   )Úreturn_filelike)Úmatplotlib.pyplotr@   ÚgcfÚclfr  ÚpopÚgcaÚgetattrr"   r   r_  r   r¹   r   r  Úensure_cleanÚpickleÚdumprk   )Úfr   ÚseriesÚargsÚkwargsÚpltrl   r1   Úorig_axÚorig_axfreqrþ   ÚdfreqÚax_freqÚpathr3   r3   r4   r&   ¼  s<   


ÿýr&   )NN)+Ú__doc__r   r   r   r   r•  Únumpyr:   rp   Úpandas._libs.tslibsr   r   Úpandas._libs.tslibs.dtypesr   Úpandasr	   r
   r   r   r   r   r   Úpandas._testingÚ_testingr  Úpandas.core.indexes.datetimesr   r   r   Úpandas.core.indexes.periodr   r   r   Úpandas.core.indexes.timedeltasr   Úpandas.tests.plotting.commonr   Úpandas.tseries.offsetsr   r†  r?   r   r&   r3   r3   r3   r4   Ú<module>   s<    $	
             