a
    ëÝEbÆ¿  ã                   @   sÚ  d dl Z d dlZd dl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 d dlmZ d dlmZ d dlmZ dd„ Zej de   dddd dd¡e   dddd dd¡e   dddddd¡ge   dddd dd¡e   dddddd¡ge   dddd	dd¡e   dddd
dd¡ggg¡ej dg d¢¡dd„ ƒƒZej dg d¢¡dd„ ƒZej dg d¢¡dd„ ƒZdd„ Zdd„ Zdd„ Z edgƒdd„ ƒZ!edgƒdd „ ƒZ"ed!gƒd"d#„ ƒZ#ed$gƒd%d&„ ƒZ$d'd(„ Z%d)d*„ Z&ed+gƒd,d-„ ƒZ'd.d/„ Z(d0d1„ Z)ed2gƒd3d4„ ƒZ*d5d6„ Z+d7d8„ Z,ej d9e j-d:d;�d<d=„ e.d>d?d@ƒD ƒfe j-dAdB�dCd=„ e.ddDd
ƒD ƒfe j-d@dE�dFd=„ e.d dGd	ƒD ƒfe j-dHdI�dJd=„ e.d dKƒD ƒfg¡dLdM„ ƒZ/dNdO„ Z0e&dPdQ„ ƒZ1e&dRdS„ ƒZ2dTdU„ Z3dVdW„ Z4ej dXe j-dYdZ�d[fe j-ddI�d\fe j-ddE�d]fe j-ddB�d^fe j-dd;�d_fe j-d`d;�dafe j-dbd;�dafg¡dcdd„ ƒZ5dedf„ Z6ej dXe j-d:d;�dgd=„ e.dhdid@ƒD ƒfe j-djdB�g dk¢fe j-djdE�g dl¢fe j-d	dZ�g dm¢fg¡dndo„ ƒZ7dpdq„ Z8drds„ Z9dtdu„ Z:dvdw„ Z;edxgƒdydz„ ƒZ<d{d|„ Z=d}d~„ Z>dd€„ Z?d�d‚„ Z@dƒd„„ ZAejjBd…d†„ ƒZCejjBd‡dˆ„ ƒZDd‰dŠ„ ZEd‹dŒ„ ZFd�dŽ„ ZGej d�de j-ddB�fdd�ge j-ddB�e j-d�dB�gfg¡d‘d’„ ƒZHd“d”„ ZId•d–„ ZJd—d˜„ ZKd™dš„ ZLd›dœ„ ZMd�dž„ ZNdŸd „ ZOdS )¡é    N)Ú
rc_contextÚstyle)Úimage_comparisonc                     sî   t   ddd¡‰ ‡ fdd„tddƒD ƒ} tj| dd�}t g d	¢¡}tjd
d�}| ddd¡}| | |¡\}| ||¡\}tj 	|j
dd�|j
dd�¡ tjd
d�}| ddd¡}| || ¡\}| ||¡\}tj 	|jdd�|jdd�¡ d S )Néá  é   c                    s   g | ]}ˆ t j|d � ‘qS )©Údays)ÚdatetimeÚ	timedelta)Ú.0Úx©Úbase© ú[/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/matplotlib/tests/test_dates.pyÚ
<listcomp>   ó    z$test_date_numpyx.<locals>.<listcomp>r   é   údatetime64[ns]©Údtype)ç        ç       @ç      ð?)é
   é   )ZfigsizeF)Úorig)r	   ÚrangeÚnpÚarrayÚpltÚfigureÚadd_subplotÚplotÚtestingÚassert_equalZ	get_xdataZ	get_ydata)ÚtimeZtimenpÚdataÚfigÚaxÚhZhnpr   r   r   Útest_date_numpyx   s    r+   Út0r   r   r   r   r   )zdatetime64[s]zdatetime64[us]zdatetime64[ms]r   c                 C   s4   t  | ¡}tj| |d�}t  |¡}tj ||¡ d S )Nr   )ÚmdatesÚdate2numr   r   r$   r%   )r,   r   r&   ÚtnpÚnptimer   r   r   Útest_date_date2num_numpy#   s    

r1   c                 C   sR   t   dddddd¡}t |¡tjg}tj|dg| d�}t |¡}tj ||¡ d S )Nr   r   r   ÚNaTr   )r	   r-   r.   r   Únanr   r$   Zassert_array_equal)r   r,   Útmplr/   r0   r   r   r   Útest_date2num_NaT7   s
    
r5   Úunits)ÚsÚmsÚusÚnsc                 C   s$   t  t d| ¡¡}t |¡s J ‚d S )Nr2   )r-   r.   r   Ú
datetime64Úisnan)r6   r4   r   r   r   Útest_date2num_NaT_scalarC   s    r=   c               	   C   s²   t  ¡ \} }| ¡  |  ¡  tj | ¡ t 	t 
d¡¡t 	t 
d¡¡g¡ t ¡  t d¡ t  ¡ \} }| ¡  |  ¡  tj | ¡ t 	t 
d¡¡t 	t 
d¡¡g¡ t ¡  d S )Nú
2000-01-01z
2010-01-01ú
0000-12-31)r    ÚsubplotsZ
xaxis_dateÚdraw_without_renderingr   r$   Úassert_allcloseÚget_xlimr-   r.   r;   Ú_reset_epoch_test_exampleÚ	set_epoch©r(   r)   r   r   r   Útest_date_emptyI   s&    ÿÿ
ÿÿrG   c                  C   sH   t  ¡ } |  ¡ }| ddgddg¡ |j ¡  tj | 	¡ ddg¡ d S )Né2   éF   r   r   )
r    r!   r"   r#   ÚxaxisZ	axis_dater   r$   rB   rC   rF   r   r   r   Útest_date_not_empty_   s
    
rK   c               	   C   sæ   t  ¡ \} }| d¡ | t d¡t d¡gddg¡ tj | ¡ t	 
t d¡¡t	 
t d¡¡g¡ t	 ¡  t	 d¡ t  ¡ \} }| d¡ | t d¡t d¡gddg¡ tj | ¡ t	 
t d¡¡t	 
t d¡¡g¡ t	 ¡  d S )Nç      ø?z
2016-01-01z
2016-01-02r   r   r?   )r    r@   Úaxhliner#   r   r;   r$   rB   rC   r-   r.   rD   rE   rF   r   r   r   Útest_axhlineh   s&    
 ÿÿ

 ÿÿrN   zdate_axhspan.pngc                  C   sn   t   ddd¡} t   ddd¡}t ¡ \}}|j| |ddd� | | t jdd	� |t jdd	� ¡ |jdd
� d S )NéÙ  r   é   é   Úblueç      Ð?©Z	facecolorÚalphaé   r   ©Úleft)r	   r    r@   ZaxhspanÚset_ylimr
   Úsubplots_adjust©r,   Útfr(   r)   r   r   r   Útest_date_axhspan|   s    ÿr]   zdate_axvspan.pngc                  C   sj   t   ddd¡} t   ddd¡}t ¡ \}}|j| |ddd� | | t jd	d
� |t jd	d
� ¡ | ¡  d S )NéÐ  r   rP   éÚ  rQ   rR   rS   rT   iÐ  r   )r	   r    r@   ZaxvspanÚset_xlimr
   Úautofmt_xdater[   r   r   r   Útest_date_axvspanˆ   s    ÿrb   zdate_axhline.pngc                  C   sl   t   ddd¡} t   ddd¡}t ¡ \}}|j| ddd� | | t jdd	� |t jdd	� ¡ |jd
d� d S ©NrO   r   rP   é   rR   r   ©ÚcolorZlwrV   r   rS   rW   )r	   r    r@   rM   rY   r
   rZ   r[   r   r   r   Útest_date_axhline”   s    ÿrg   zdate_axvline.pngc                  C   sh   t   ddd¡} t   ddd¡}t ¡ \}}|j| ddd� | | t jdd	� |t jdd	� ¡ | ¡  d S )
Nr^   r   rP   rQ   Úredr   re   rV   r   )r	   r    r@   Zaxvliner`   r
   ra   r[   r   r   r   Útest_date_axvline    s    ÿri   c                 C   s   |   d¡ t ddd¡}t ddd¡}t ¡ \}}t t¡�H}|j||fdd� t|ƒdks`J ‚dt	|d j
ƒv svJ ‚W d   ƒ n1 sŠ0    Y  | g g ¡ |j t ¡ ¡ |j ¡ ƒ }t|ƒd	ksÌJ ‚| jrætd
d„ | jD ƒƒsêJ ‚t| jƒdksüJ ‚d S )NÚWARNINGr^   r   rP   T)Úautoz)Attempting to set identical left == rightr   éè  c                 s   s"   | ]}|j d ko|jdkV  qdS )zmatplotlib.tickerrj   N)ÚnameÚ	levelname)r   Úrecordr   r   r   Ú	<genexpr>Â   s   ÿz+test_too_many_date_ticks.<locals>.<genexpr>)Z	set_levelr	   r    r@   ÚpytestÚwarnsÚUserWarningr`   ÚlenÚstrÚmessager#   rJ   Úset_major_locatorr-   Ú
DayLocatorZget_major_locatorÚrecordsÚall)Zcaplogr,   r\   r(   r)   ÚrecÚvr   r   r   Útest_too_many_date_ticks¬   s"    
ÿ$þr}   c                    s   t  ˆ ¡‡ fdd„ƒ}|S )Nc                      s$   t  ¡  t  d¡ ˆ ƒ  t  ¡  d S )Nr>   )r-   rD   rE   r   ©Úthefuncr   r   ÚwrapperÉ   s    
z%_new_epoch_decorator.<locals>.wrapper)Ú	functoolsÚwraps)r   r€   r   r~   r   Ú_new_epoch_decoratorÈ   s    rƒ   zRRuleLocator_bounds.pngc                  C   s¶   dd l m  m}  |  ¡  t ddd¡}t ddd¡}t ¡ }t ¡ }| d¡ |j	||gddgdd	� t
jtjjd
d�}t
 |¡}|j |¡ |j t
 |¡¡ | ¡  | ¡  d S )Nr   rl   r   ip  Tr   r   Úo©Úmarkeréô  ©Úinterval)Úmatplotlib.testing.jpl_unitsr$   Ú	jpl_unitsÚregisterr	   r    r!   ÚsubplotÚset_autoscale_onr#   r-   ÚrrulewrapperÚdateutilÚrruleZYEARLYÚRRuleLocatorrJ   rw   Úset_major_formatterÚAutoDateFormatterÚautoscale_viewra   )r6   r,   r\   r(   r)   r‘   Úlocatorr   r   r   Útest_RRuleLocatorÒ   s    

r—   c                  C   s@   t  ¡ } tjdddt jd�}tjdddt jd�}|  ||¡ d S )Nr   )ÚyearÚmonthÚdayÚtzinfoé   )r-   rx   r	   ÚUTCÚtick_values)ÚlocÚx1Úy1r   r   r   Útest_RRuleLocator_dayrangeê   s    r¢   c               	   C   sn   t jtjjdd�} t  | ¡}tjdddd�}tjddddd�}ddg}ttt	t  
| ||¡¡ƒƒ|ksjJ ‚d S )	NrV   rˆ   iä  r   )r˜   r™   rš   )r˜   r™   rš   Úmicrosecondú2020-01-01 00:00:00+00:00z 2020-01-01 00:00:00.000001+00:00)r-   r�   r�   r‘   ZSECONDLYr’   r	   ÚlistÚmapru   Únum2daterž   )r‘   rŸ   Úd1Úd2Úexpectedr   r   r   Útest_RRuleLocator_close_minmaxò   s    
ÿr«   z#DateFormatter_fractionalSeconds.pngc                  C   sˆ   dd l m  m}  |  ¡  t dddddd¡}t dddddd¡}t ¡ }t ¡ }| d¡ |j	||gddgdd� | 
¡  | ¡  d S )	Nr   iÑ  r   Tr   r   r„   r…   )rŠ   r$   r‹   rŒ   r	   r    r!   r�   rŽ   r#   r•   ra   )r6   r,   r\   r(   r)   r   r   r   Útest_DateFormatterþ   s    
r¬   c               	   C   s*  dt jd< t ddddd¡t ddddd¡t dddd	d¡g} g d
¢}t  ¡ \}}| | |¡ |j t d¡¡ |j	 
¡  dd„ | ¡ D ƒ}g d¢}||ks J ‚|j t ¡ ¡ |j t d¡¡ t d¡}|j t |¡¡ |j t d¡¡ |j	 
¡  dd„ |jdd�D ƒ}g d¢}||k�s&J ‚dS )zh
    Test if setting the locator only will update the AutoDateFormatter to use
    the new locator.
    z%d %H:%Mzdate.autoformatter.minuteiâ  é	   é   é   r   é;   r   )r   r   r   )r   r®   c                 S   s   g | ]}|  ¡ ‘qS r   ©Úget_text©r   Útlr   r   r   r   &  r   z.test_locator_set_formatter.<locals>.<listcomp>)z30 08:00z30 08:30z30 09:00z30 09:30z30 10:00z30 10:30)rV   é7   )é   é   )é   é-   c                 S   s   g | ]}|  ¡ ‘qS r   r±   r³   r   r   r   r   2  r   Úminor)Úwhich)z30 08:15z30 08:45z30 09:15z30 09:45z30 10:15N)r    ÚrcParamsr	   r@   r#   rJ   rw   r-   ZMinuteLocatorÚcanvasÚdrawÚget_xticklabelsÚmtickerZNullLocatorZset_minor_locatorZset_minor_formatterr”   )Útr   r(   r)   Z
ticklabelsrª   Z	decoy_locr   r   r   Útest_locator_set_formatter  s,    
þ


rÂ   c                  C   sN   G dd„ dƒ} dd„ }t  | ƒ ¡}||jd< |t ddd¡gƒd	gksJJ ‚d S )
Nc                   @   s   e Zd Zdd„ ZdS )z.test_date_formatter_callable.<locals>._Locatorc                 S   s   dS )Niõÿÿÿr   )Úselfr   r   r   Ú	_get_unit:  r   z8test_date_formatter_callable.<locals>._Locator._get_unitN)Ú__name__Ú
__module__Ú__qualname__rÄ   r   r   r   r   Ú_Locator9  s   rÈ   c                 S   s   dd„ | D ƒS )Nc                 S   s   g | ]}|  d ¡‘qS )z	%d-%m//%Y)Ústrftime)r   Údtr   r   r   r   =  r   zVtest_date_formatter_callable.<locals>.callable_formatting_function.<locals>.<listcomp>r   )ÚdatesÚ_r   r   r   Úcallable_formatting_function<  s    zBtest_date_formatter_callable.<locals>.callable_formatting_functioniöÿÿÿéÞ  r¶   é   z25-12//2014)r-   r”   Zscaledr	   )rÈ   rÍ   Ú	formatterr   r   r   Útest_date_formatter_callable7  s
    
rÑ   zdelta, expectedé (  ©Úweeksc                 C   s   g | ]}d | ‘qS ©z$\mathdefault{%d}$r   )r   r˜   r   r   r   r   F  r   r   éÆ  i{  rP   r®   r   c                 C   s   g | ]}d | ‘qS )z $\mathdefault{1990{-}01{-}%02d}$r   )r   rš   r   r   r   r   H  r   é    ©Úhoursc                 C   s   g | ]}d | ‘qS )z$\mathdefault{01{-}01\;%02d}$r   )r   Úhourr   r   r   r   J  r   rQ   r   ©Úminutesc                 C   s   g | ]}d | ‘qS )z$\mathdefault{01\;00{:}%02d}$r   )r   Zminur   r   r   r   L  r   é   c                    s|   t  d¡ t ddd¡}||  }tjdd�}| ¡  |j t |¡t |¡¡ tj	|dd�‰ ‡ fdd	„|ƒ D ƒ|ksxJ ‚d S )
NÚdefaultrÖ   r   F©Úinterval_multiplesT©Zusetexc                    s   g | ]}ˆ |ƒ‘qS r   r   )r   rŸ   ©rÐ   r   r   r   Y  r   z.test_date_formatter_usetex.<locals>.<listcomp>)
r   Zuser	   r-   ÚAutoDateLocatorÚcreate_dummy_axisÚaxisÚset_view_intervalr.   r”   )Údeltarª   r¨   r©   r–   r   râ   r   Útest_date_formatter_usetexD  s    
rè   c                  C   sÔ   t j dddtjd�} t j dddtjd�}t jdd�}tt | ||¡ƒdksNJ ‚|t jdd� }tt | ||¡ƒdksxJ ‚t j dddtjd�}t jd	d�}t | ||¡}t|ƒd
ks¶J ‚t |d ¡|| ksÐJ ‚dS )zj
    This test should check if drange works as expected, and if all the
    rounding errors are fixed
    iÛ  r   ©r›   r   rØ   é   ©ÚmicrosecondsrÏ   é   é   éÿÿÿÿN)r	   r-   r�   r
   rt   Zdranger§   )ÚstartÚendrç   Z	dateranger   r   r   Útest_drange\  s    rò   c               
   C   sì   dd„ } t   ddd¡}t jdd�g d¢gt jdd�g d	¢gt jd
d�g d¢gt jdd�g d¢gt jdd�g d¢gt jdd�g d¢gt jdd�g d¢gt jdd�g d¢gf}|D ]8\}}|| }| ||ƒ}tttt |ƒ ¡ƒƒ|ks®J ‚q®d S )Nc                 S   s.   t jdd�}| ¡  |jjt  | |g¡Ž  |S )NFrß   ©r-   rã   rä   rå   ræ   r.   ©Údate1Údate2r–   r   r   r   Ú_create_auto_date_locatorz  s    z9test_auto_date_locator.<locals>._create_auto_date_locatorrÖ   r   rÒ   rÓ   )
ú1990-01-01 00:00:00+00:00z2010-01-01 00:00:00+00:00z2030-01-01 00:00:00+00:00z2050-01-01 00:00:00+00:00z2070-01-01 00:00:00+00:00z2090-01-01 00:00:00+00:00z2110-01-01 00:00:00+00:00z2130-01-01 00:00:00+00:00z2150-01-01 00:00:00+00:00z2170-01-01 00:00:00+00:00é4   )rø   z1990-02-01 00:00:00+00:00z1990-03-01 00:00:00+00:00z1990-04-01 00:00:00+00:00z1990-05-01 00:00:00+00:00z1990-06-01 00:00:00+00:00z1990-07-01 00:00:00+00:00z1990-08-01 00:00:00+00:00z1990-09-01 00:00:00+00:00z1990-10-01 00:00:00+00:00z1990-11-01 00:00:00+00:00z1990-12-01 00:00:00+00:00é�   r   )z1990-01-05 00:00:00+00:00z1990-01-26 00:00:00+00:00z1990-02-16 00:00:00+00:00z1990-03-09 00:00:00+00:00z1990-03-30 00:00:00+00:00z1990-04-20 00:00:00+00:00z1990-05-11 00:00:00+00:00é(   )z1990-01-03 00:00:00+00:00z1990-01-10 00:00:00+00:00z1990-01-17 00:00:00+00:00z1990-01-24 00:00:00+00:00z1990-01-31 00:00:00+00:00z1990-02-07 00:00:00+00:00rØ   )rø   z1990-01-01 04:00:00+00:00z1990-01-01 08:00:00+00:00z1990-01-01 12:00:00+00:00z1990-01-01 16:00:00+00:00z1990-01-01 20:00:00+00:00z1990-01-02 00:00:00+00:00z1990-01-02 04:00:00+00:00z1990-01-02 08:00:00+00:00z1990-01-02 12:00:00+00:00z1990-01-02 16:00:00+00:00rP   rÛ   )rø   z1990-01-01 00:05:00+00:00z1990-01-01 00:10:00+00:00z1990-01-01 00:15:00+00:00z1990-01-01 00:20:00+00:00©Úseconds)	rø   z1990-01-01 00:00:05+00:00z1990-01-01 00:00:10+00:00z1990-01-01 00:00:15+00:00z1990-01-01 00:00:20+00:00z1990-01-01 00:00:25+00:00z1990-01-01 00:00:30+00:00z1990-01-01 00:00:35+00:00z1990-01-01 00:00:40+00:00éÜ  rë   )z 1989-12-31 23:59:59.999500+00:00rø   z 1990-01-01 00:00:00.000500+00:00z 1990-01-01 00:00:00.001000+00:00z 1990-01-01 00:00:00.001500+00:00z 1990-01-01 00:00:00.002000+00:00©r	   r
   r¥   r¦   ru   r-   r§   )r÷   r¨   ÚresultsÚt_deltarª   r©   r–   r   r   r   Útest_auto_date_locatorx  s>    
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿÒ8
r  c               
   C   sì   dd„ } t jdd�g d¢gt jdd�g d¢gt jdd	�g d
¢gt jdd	�g d¢gt jdd�g d¢gt jdd�g d¢gt jdd�g d¢gt jdd�g d¢gf}t   ddd¡}|D ]8\}}|| }| ||ƒ}tttt |ƒ ¡ƒƒ|ks®J ‚q®d S )Nc                 S   s.   t jdd�}| ¡  |jjt  | |g¡Ž  |S )NTrß   ró   rô   r   r   r   r÷   Á  s    zAtest_auto_date_locator_intmult.<locals>._create_auto_date_locatorrÒ   rÓ   ©z1980-01-01 00:00:00+00:00z2000-01-01 00:00:00+00:00r¤   z2040-01-01 00:00:00+00:00z2060-01-01 00:00:00+00:00z2080-01-01 00:00:00+00:00z2100-01-01 00:00:00+00:00z2120-01-01 00:00:00+00:00z2140-01-01 00:00:00+00:00z2160-01-01 00:00:00+00:00z2180-01-01 00:00:00+00:00z2200-01-01 00:00:00+00:00rù   )ú1997-01-01 00:00:00+00:00ú1997-02-01 00:00:00+00:00ú1997-03-01 00:00:00+00:00ú1997-04-01 00:00:00+00:00ú1997-05-01 00:00:00+00:00z1997-06-01 00:00:00+00:00z1997-07-01 00:00:00+00:00z1997-08-01 00:00:00+00:00z1997-09-01 00:00:00+00:00z1997-10-01 00:00:00+00:00z1997-11-01 00:00:00+00:00z1997-12-01 00:00:00+00:00rú   r   )
r  z1997-01-15 00:00:00+00:00r  z1997-02-15 00:00:00+00:00r  z1997-03-15 00:00:00+00:00r  z1997-04-15 00:00:00+00:00r  z1997-05-15 00:00:00+00:00rû   )r  z1997-01-05 00:00:00+00:00z1997-01-09 00:00:00+00:00z1997-01-13 00:00:00+00:00z1997-01-17 00:00:00+00:00z1997-01-21 00:00:00+00:00z1997-01-25 00:00:00+00:00z1997-01-29 00:00:00+00:00r  z1997-02-05 00:00:00+00:00z1997-02-09 00:00:00+00:00rØ   )r  z1997-01-01 04:00:00+00:00z1997-01-01 08:00:00+00:00z1997-01-01 12:00:00+00:00z1997-01-01 16:00:00+00:00z1997-01-01 20:00:00+00:00z1997-01-02 00:00:00+00:00z1997-01-02 04:00:00+00:00z1997-01-02 08:00:00+00:00z1997-01-02 12:00:00+00:00z1997-01-02 16:00:00+00:00rP   rÛ   )r  z1997-01-01 00:05:00+00:00z1997-01-01 00:10:00+00:00z1997-01-01 00:15:00+00:00z1997-01-01 00:20:00+00:00rü   )	r  z1997-01-01 00:00:05+00:00z1997-01-01 00:00:10+00:00z1997-01-01 00:00:15+00:00z1997-01-01 00:00:20+00:00z1997-01-01 00:00:25+00:00z1997-01-01 00:00:30+00:00z1997-01-01 00:00:35+00:00z1997-01-01 00:00:40+00:00rþ   rë   )z 1996-12-31 23:59:59.999500+00:00r  z 1997-01-01 00:00:00.000500+00:00z 1997-01-01 00:00:00.001000+00:00z 1997-01-01 00:00:00.001500+00:00z 1997-01-01 00:00:00.002000+00:00éÍ  r   rÿ   )r÷   r   r¨   r  rª   r©   r–   r   r   r   Útest_auto_date_locator_intmult¿  s>    
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿÍ=
r
  c                  C   sR   t jdd�} t  | ¡}d}| ||dt j  |dt j  g¡}|g d¢ksNJ ‚d S )NTrß   g    €BÃ@r‡   i„  )ú00:00z00.0005z00.0009)r-   rã   ÚConciseDateFormatterÚformat_ticksZMUSECONDS_PER_DAY)r–   rÐ   Z	year_1996Ústringsr   r   r   Ú test_concise_formatter_subsecond  s    
ýr  c               
   C   sè   dd„ } t   ddd¡}t jdd�dd„ td	d
dƒD ƒgt jdd�g d¢gt jdd�g d¢gt jdd�g d¢gt jdd�g d¢gt jdd�g d¢gt jdd�g d¢gt jdd�g d¢gf}|D ]&\}}|| }| ||ƒ}||ks¼J ‚q¼d S )Nc                 S   sf   t  ¡ \}}tjdd�}t |¡}|j |¡ |j |¡ | | |¡ |j	 
¡  dd„ | ¡ D ƒ}|S )NTrß   c                 S   s   g | ]}|  ¡ ‘qS r   r±   ©r   Ústr   r   r   r      r   zMtest_concise_formatter.<locals>._create_auto_date_locator.<locals>.<listcomp>©r    r@   r-   rã   r  Úyaxisrw   r“   rY   r½   r¾   Úget_yticklabels©rõ   rö   r(   r)   r–   rÐ   Ústsr   r   r   r÷     s    

z9test_concise_formatter.<locals>._create_auto_date_locatorr	  r   rÒ   rÓ   c                 S   s   g | ]}t |ƒ‘qS r   ©ru   ©r   rÁ   r   r   r   r   %  r   z*test_concise_formatter.<locals>.<listcomp>é¼  é™  rP   rù   )Ú1997ÚFebÚMarÚAprÚMayÚJunÚJulÚAugÚSepÚOctÚNovÚDecrú   r   )
ÚJanÚ15r  r(  r  r(  r  r(  r  r(  rû   )r'  Ú05Ú09Ú13Ú17Ú21Ú25Ú29r  r)  r*  rØ   )zJan-01ú04:00ú08:00ú12:00ú16:00ú20:00zJan-02r0  r1  r2  r3  rÛ   )r  ú00:05ú00:10ú00:15ú00:20rü   )	r  r)  Ú10r(  Ú20r.  Ú30Ú35Ú40r   )ú59.5r  ú00.5ú01.0ú01.5ú02.0ú02.5©r	   r
   r   ©r÷   r¨   r   r  rª   r©   r  r   r   r   Útest_concise_formatter  s>    
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿç
rF  zt_delta, expectedg{®Gáz„?rü   z1997-Jan-01 00:00z1997-Jan-01 00:01ú1997-Jan-01ú1997-Jan-02ú1997-Jané   Ú é  c                 C   s~   t   ddd¡}||  }t ¡ \}}t ¡ }t |¡}|j |¡ |j |¡ | 	||gddg¡ |j
 ¡  | ¡ |kszJ ‚d S )Nr	  r   r   )r	   r    r@   r-   rã   r  rJ   rw   r“   r#   r½   r¾   Ú
get_offset)r  rª   r¨   r©   r(   r)   r–   rÐ   r   r   r   Ú"test_concise_formatter_show_offsetG  s    


rN  c                  C   sä   t  ¡ \} }t ddd¡}|tjdd� }t ¡ }t |¡}|j |¡ |j 	|¡ | 
||gddg¡ |  ¡  | ¡ dks€J ‚| ||tjdd� ¡ |  ¡  | ¡ dks°J ‚| ||tjdd� ¡ |  ¡  | ¡ dksàJ ‚d S )	Nr	  r   rL  rÓ   r   rK  r   rI  )r    r@   r	   r
   r-   rã   r  rJ   rw   r“   r#   rA   rM  r`   )r(   r)   r¨   r©   r–   rÐ   r   r   r   Útest_offset_changes_  s     
rO  c                 C   s   g | ]}d |f ‘qS rÕ   r   r  r   r   r   r   w  r   r  r  rû   )r'  ú$\mathdefault{05}$ú$\mathdefault{09}$z$\mathdefault{13}$z$\mathdefault{17}$z$\mathdefault{21}$z$\mathdefault{25}$z$\mathdefault{29}$r  rP  rQ  )zJan$\mathdefault{{-}01}$ú$\mathdefault{04{:}00}$ú$\mathdefault{08{:}00}$ú$\mathdefault{12{:}00}$ú$\mathdefault{16{:}00}$z$\mathdefault{20{:}00}$zJan$\mathdefault{{-}02}$rR  rS  rT  rU  )z$\mathdefault{59.5}$z$\mathdefault{00{:}00}$z$\mathdefault{00.5}$z$\mathdefault{01.0}$z$\mathdefault{01.5}$z$\mathdefault{02.0}$z$\mathdefault{02.5}$c                 C   sj   t   ddd¡}||  }tjdd�}| ¡  |j t |¡t |¡¡ tj|dd�}| |ƒ ¡|ksfJ ‚d S )Nr	  r   Trß   rá   )	r	   r-   rã   rä   rå   ræ   r.   r  r  )r  rª   r¨   r©   r–   rÐ   r   r   r   Útest_concise_formatter_usetexu  s    rV  c               
      sô   g d¢‰ ‡ fdd„} t   ddd¡}t jdd�dd	„ td
ddƒD ƒgt jdd�g d¢gt jdd�g d¢gt jdd�g d¢gt jdd�g d¢gt jdd�g d¢gt jdd�g d¢gt jdd�g d¢gf}|D ]&\}}|| }| ||ƒ}||ksÈJ ‚qÈd S )N)z%Yz%m/%Yzday: %dú%H hr %M minrW  z	%S.%f secc                    sj   t  ¡ \}}tjdd�}tj|ˆ d�}|j |¡ |j |¡ | | |¡ |j	 
¡  dd„ | ¡ D ƒ}|S )NTrß   ©Úformatsc                 S   s   g | ]}|  ¡ ‘qS r   r±   r  r   r   r   r   £  r   zUtest_concise_formatter_formats.<locals>._create_auto_date_locator.<locals>.<listcomp>r  r  rX  r   r   r÷   š  s    
zAtest_concise_formatter_formats.<locals>._create_auto_date_locatorr	  r   rÒ   rÓ   c                 S   s   g | ]}t |ƒ‘qS r   r  r  r   r   r   r   ¨  r   z2test_concise_formatter_formats.<locals>.<listcomp>r  r  rP   rù   )r  ú02/1997ú03/1997ú04/1997ú05/1997z06/1997z07/1997z08/1997z09/1997z10/1997z11/1997z12/1997rú   r   )
ú01/1997úday: 15rZ  r_  r[  r_  r\  r_  r]  r_  rû   )r^  úday: 05úday: 09zday: 13zday: 17zday: 21zday: 25zday: 29rZ  r`  ra  rØ   )zday: 01ú04 hr 00 minú08 hr 00 minú12 hr 00 minú16 hr 00 minz20 hr 00 minzday: 02rb  rc  rd  re  rÛ   )ú00 hr 00 minz00 hr 05 minz00 hr 10 minz00 hr 15 minz00 hr 20 minrü   )	rf  z05.000000 secz10.000000 secz15.000000 secz20.000000 secz25.000000 secz30.000000 secz35.000000 secz40.000000 secr   )z59.500000 secrf  z00.500000 secz01.000000 secz01.500000 secz02.000000 secz02.500000 secrD  rE  r   rX  r   Útest_concise_formatter_formats–  s$    ÿå 
rg  c               
      sô   g d¢‰ ‡ fdd„} t   ddd¡}t jdd�dd	„ td
ddƒD ƒgt jdd�g d¢gt jdd�g d¢gt jdd�g d¢gt jdd�g d¢gt jdd�g d¢gt jdd�g d¢gt jdd�g d¢gf}|D ]&\}}|| }| ||ƒ}||ksÈJ ‚qÈd S )N)rK  z'%yz%Bz%m-%dz%Sz%S.%fc                    sj   t  ¡ \}}tjdd�}tj|ˆ d�}|j |¡ |j |¡ | | |¡ |j	 
¡  dd„ | ¡ D ƒ}|S )NTrß   ©Zzero_formatsc                 S   s   g | ]}|  ¡ ‘qS r   r±   r  r   r   r   r   Ú  r   zVtest_concise_formatter_zformats.<locals>._create_auto_date_locator.<locals>.<listcomp>r  r  rh  r   r   r÷   Ð  s    ÿ
zBtest_concise_formatter_zformats.<locals>._create_auto_date_locatorr	  r   rÒ   rÓ   c                 S   s   g | ]}t |ƒ‘qS r   r  r  r   r   r   r   ß  r   z3test_concise_formatter_zformats.<locals>.<listcomp>r  r  rP   rù   )z'97r  r  r  r  r   r!  r"  r#  r$  r%  r&  rú   r   )
ÚJanuaryr(  ÚFebruaryr(  ZMarchr(  ZAprilr(  r  r(  rû   )ri  r)  r*  r+  r,  r-  r.  r/  rj  r)  r*  rØ   )z01-01r0  r1  r2  r3  r4  z01-02r0  r1  r2  r3  rÛ   )Ú00r5  r6  r7  r8  rü   )	rk  r)  r9  r(  r:  r.  r;  r<  r=  r   )r>  z00.0r?  r@  rA  rB  rC  rD  rE  r   rh  r   Útest_concise_formatter_zformatsÍ  s@    
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿç
rl  c            
      C   sÌ   dd„ } t   ddd¡jt jjd�}t jdd�g d¢d	gt jd
d�g d¢dgt jdd�g d¢dgt jdd�g d¢dgf}t  t jdd�¡}|D ]:\}}}|| }| |||ƒ\}}	||ksºJ ‚|	|ksŒJ ‚qŒd S )Nc                 S   sx   t  ¡ \}}tjdd�}tj||d�}|j |¡ |j |¡ | | |¡ |j	 
¡  dd„ | ¡ D ƒ}||j ¡  ¡ fS )NTrß   ©Útzc                 S   s   g | ]}|  ¡ ‘qS r   r±   r  r   r   r   r     r   zPtest_concise_formatter_tz.<locals>._create_auto_date_locator.<locals>.<listcomp>)r    r@   r-   rã   r  r  rw   r“   rY   r½   r¾   r  Zget_offset_textr²   )rõ   rö   rn  r(   r)   r–   rÐ   r  r   r   r   r÷     s    
z<test_concise_formatter_tz.<locals>._create_auto_date_locatorr	  r   ré   rû   rØ   )ú03:00ú07:00ú11:00ú15:00ú19:00z23:00ro  rp  rq  rr  rs  rH  rP   rÛ   )ro  z03:05z03:10z03:15z03:20rG  rü   )	ro  r)  r9  r(  r:  r.  r;  r<  r=  z1997-Jan-01 03:00r   )r>  ro  r?  r@  rA  rB  rC  r   )r	   ÚreplaceÚtimezoneÚutcr
   )
r÷   r¨   r   Znew_tzr  Zexpected_stringsZexpected_offsetr©   r  Úoffsetr   r   r   Útest_concise_formatter_tz  s2    
ý
þ
þ
þórx  c            	   	   C   s"  dd„ } t jdd�g d¢gt jdd�g d¢gt jdd	�g d
¢gt jdd	�g d¢gt jdd�g d¢gt jdd�g d¢gt jdd�g d¢gf}tj d¡}t j ddd|d�}|D ]p\}}tddiƒ�J || }| |||ƒ}tttt	j
|ƒ |d�ƒƒ}||ksüJ ‚W d   ƒ q¬1 �s0    Y  q¬d S )Nc                 S   s0   t jd|d�}| ¡  |jjt  | |g¡Ž  |S )NT©rà   rn  ró   )rõ   rö   rn  r–   r   r   r   r÷   +  s    zDtest_auto_date_locator_intmult_tz.<locals>._create_auto_date_locatorrÒ   rÓ   )z1980-01-01 00:00:00-08:00z2000-01-01 00:00:00-08:00z2020-01-01 00:00:00-08:00z2040-01-01 00:00:00-08:00z2060-01-01 00:00:00-08:00z2080-01-01 00:00:00-08:00z2100-01-01 00:00:00-08:00z2120-01-01 00:00:00-08:00z2140-01-01 00:00:00-08:00z2160-01-01 00:00:00-08:00z2180-01-01 00:00:00-08:00z2200-01-01 00:00:00-08:00rù   )ú1997-01-01 00:00:00-08:00ú1997-02-01 00:00:00-08:00ú1997-03-01 00:00:00-08:00ú1997-04-01 00:00:00-08:00ú1997-05-01 00:00:00-07:00z1997-06-01 00:00:00-07:00z1997-07-01 00:00:00-07:00z1997-08-01 00:00:00-07:00z1997-09-01 00:00:00-07:00z1997-10-01 00:00:00-07:00z1997-11-01 00:00:00-08:00z1997-12-01 00:00:00-08:00rú   r   )
rz  z1997-01-15 00:00:00-08:00r{  z1997-02-15 00:00:00-08:00r|  z1997-03-15 00:00:00-08:00r}  z1997-04-15 00:00:00-07:00r~  z1997-05-15 00:00:00-07:00rû   )rz  z1997-01-05 00:00:00-08:00z1997-01-09 00:00:00-08:00z1997-01-13 00:00:00-08:00z1997-01-17 00:00:00-08:00z1997-01-21 00:00:00-08:00z1997-01-25 00:00:00-08:00z1997-01-29 00:00:00-08:00r{  z1997-02-05 00:00:00-08:00z1997-02-09 00:00:00-08:00rØ   )rz  z1997-01-01 04:00:00-08:00z1997-01-01 08:00:00-08:00z1997-01-01 12:00:00-08:00z1997-01-01 16:00:00-08:00z1997-01-01 20:00:00-08:00z1997-01-02 00:00:00-08:00z1997-01-02 04:00:00-08:00z1997-01-02 08:00:00-08:00z1997-01-02 12:00:00-08:00z1997-01-02 16:00:00-08:00rP   rÛ   )rz  z1997-01-01 00:05:00-08:00z1997-01-01 00:10:00-08:00z1997-01-01 00:15:00-08:00z1997-01-01 00:20:00-08:00rü   )	rz  z1997-01-01 00:00:05-08:00z1997-01-01 00:00:10-08:00z1997-01-01 00:00:15-08:00z1997-01-01 00:00:20-08:00z1997-01-01 00:00:25-08:00z1997-01-01 00:00:30-08:00z1997-01-01 00:00:35-08:00z1997-01-01 00:00:40-08:00zCanada/Pacificr	  r   ré   z_internal.classic_modeFrm  )r	   r
   r�   rn  Úgettzr   r¥   r¦   ru   r-   r§   )	r÷   r   rn  r¨   r  rª   r©   r–   r  r   r   r   Ú!test_auto_date_locator_intmult_tz*  s>    
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿÔ5r€  zdate_inverted_limit.pngc                  C   st   t   ddd¡} t   ddd¡}t ¡ \}}|j| ddd� | | t jdd	� |t jdd	� ¡ | ¡  |jd
d� d S rc   )r	   r    r@   rM   rY   r
   Zinvert_yaxisrZ   r[   r   r   r   Útest_date_inverted_limitp  s    ÿr�  c                    s    t j d¡}tj}tjddddd|d�}tjddd	�}d
‰ d}| |||d�}|||ƒ}dt t 	d¡¡ ‰‡ ‡fdd„t
|ƒD ƒ}	tt |¡ƒ}
|
|	ksœJ ‚d S )NzEurope/BrusselsrÎ   r   r®   r   ré   é!   r¹   )rÜ   rý   g      ˜?r¯   ©rð   ÚfreqZperiodsg    ´p&Ar?   c                    s   g | ]}ˆ|ˆ   ‘qS r   r   ©r   Úi©Zinterval_daysr,   r   r   r   �  r   z&_test_date2num_dst.<locals>.<listcomp>)r�   rn  r  r-   r�   r	   r
   r.   r   r;   r   r¥   )Ú
date_rangeÚ
tz_convertZBRUSSELSr�   Údtstartr‰   ÚNZdt_utcZdt_bxlZexpected_ordinalfZactual_ordinalfr   r‡  r   Ú_test_date2num_dst}  s    
rŒ  c                     s4   G dd„ dt j ƒ‰ ‡ fdd„} dd„ }t| |ƒ d S )Nc                       sD   e Zd ZdZ‡ fdd„Z‡ fdd„Z‡ fdd„Zedd	„ ƒZ‡  Z	S )
z%test_date2num_dst.<locals>.dt_tzawarezü
        This bug specifically occurs because of the normalization behavior of
        pandas Timestamp objects, so in order to replicate it, we need a
        datetime-like object that applies timezone normalization after
        subtraction.
        c                    sX   t ƒ  |¡}t|dd ƒ}|d ur>t|dd ƒ}|d ur>| |¡}t|tjƒrT|  |¡}|S )Nr›   Ú	normalize)ÚsuperÚ__sub__Úgetattrr�  Ú
isinstancer	   Ú
mk_tzaware)rÃ   ÚotherÚrr›   Z	localizer©Ú	__class__r   r   r�  Ÿ  s    

z-test_date2num_dst.<locals>.dt_tzaware.__sub__c                    s   |   tƒ  |¡¡S ©N)r’  rŽ  Ú__add__)rÃ   r“  r•  r   r   r˜  ­  s    z-test_date2num_dst.<locals>.dt_tzaware.__add__c                    s   t ƒ  |¡}|  |¡S r—  )rŽ  Ú
astimezoner’  )rÃ   r›   rÊ   r•  r   r   r™  °  s    z0test_date2num_dst.<locals>.dt_tzaware.astimezonec                 S   s<   i }d}|D ] }t ||d ƒ}|d ur|||< q| f i |¤ŽS )N)r˜   r™   rš   rÚ   ÚminuteÚsecondr£   r›   )r�  )ÚclsÚdatetime_objÚkwargsÚattrsÚattrÚvalr   r   r   r’  ´  s    	
z0test_date2num_dst.<locals>.dt_tzaware.mk_tzaware)
rÅ   rÆ   rÇ   Ú__doc__r�  r˜  r™  Úclassmethodr’  Ú__classcell__r   r   r•  r   Ú
dt_tzaware—  s   r¥  c                    s"   ˆ  | ¡‰ ‡ ‡fdd„t|ƒD ƒS )Nc                    s   g | ]}ˆ |ˆ  ‘qS r   r   r…  ©rŠ  r„  r   r   r   Ë  r   z9test_date2num_dst.<locals>.date_range.<locals>.<listcomp>)r’  r   rƒ  ©r¥  r¦  r   rˆ  È  s    
z%test_date2num_dst.<locals>.date_rangec                    s   ‡ fdd„| D ƒS )Nc                    s   g | ]}|  ˆ ¡‘qS r   )r™  )r   Údré   r   r   r   Ï  r   z9test_date2num_dst.<locals>.tz_convert.<locals>.<listcomp>r   )Zdt_listr›   r   ré   r   r‰  Î  s    z%test_date2num_dst.<locals>.tz_convert)r	   rŒ  )rˆ  r‰  r   r§  r   Útest_date2num_dst“  s    1r©  c                    s   ‡ fdd„}t ˆ j|ƒ d S )Nc                     s   ˆ j j| Ž  t¡S r—  )ZDatetimeIndexr‰  ÚastypeÚobject)Úargs©Úpdr   r   r‰  Ø  s    z,test_date2num_dst_pandas.<locals>.tz_convert)rŒ  rˆ  )r®  r‰  r   r­  r   Útest_date2num_dst_pandasÔ  s    r¯  c                 C   s–   |dƒ}| t   dddd¡|ƒ}| t   dddd¡|ƒ}tjtjj|d�}| ||¡}t j ddddtj ¡ d�t j ddd	d
tj ¡ d�g}||ks’J ‚d S )NzAustralia/Sydneyr   rí   r   r   )r„  rŠ  é   ré   r   é   )	r	   r-   r�   r�   r‘   ZDAILYZbetweenrn  Ztzutc)Ú	attach_tzZget_tzZSYDrŠ  ZdtendÚruleZactÚexpr   r   r   Ú_test_rrulewrapperÞ  s    ÿrµ  c                  C   s   dd„ } t | tjjƒ d S )Nc                 S   s   | j |d�S )Nré   )rt  ©rÊ   Zzir   r   r   r²  î  s    z$test_rrulewrapper.<locals>.attach_tz)rµ  r�   rn  r  )r²  r   r   r   Útest_rrulewrapperí  s    r·  c                  C   s"   t  d¡} dd„ }t|| jƒ d S )NÚpytzc                 S   s
   |  | ¡S r—  )Úlocalizer¶  r   r   r   r²  ù  s    z)test_rrulewrapper_pytz.<locals>.attach_tz)rq   Úimportorskiprµ  ru  )r¸  r²  r   r   r   Útest_rrulewrapper_pytzô  s    
r»  c                     sÎ   t  d¡} |  d¡‰ ‡ fdd„tdƒD ƒ}tjdˆ d�}| ¡  |j t 	|d ¡d	 t 	|d
 ¡d	 ¡ t
 g d¢¡}|t 	t
 d¡¡ }t
j ||ƒ ¡ g d¢}ttttj|ƒ ˆ d�ƒƒ}||ksÊJ ‚d S )Nr¸  zAmerica/New_Yorkc              	      s*   g | ]"}ˆ   t d dd¡¡t |¡ ‘qS )r_   r   )r¹  r	   r
   r…  rm  r   r   r     s   ÿÿz)test_yearlocator_pytz.<locals>.<listcomp>r^   Try  r   r   rï   )g{ŸªjÀa&Ag{Ÿªjšd&Ag{Ÿªjtg&Ag{ŸªjNj&Ag{Ÿªj*m&Ag{Ÿªjp&Ag{ŸªjÞr&Ar?   )z2009-01-01 00:00:00-05:00z2010-01-01 00:00:00-05:00z2011-01-01 00:00:00-05:00z2012-01-01 00:00:00-05:00z2013-01-01 00:00:00-05:00z2014-01-01 00:00:00-05:00z2015-01-01 00:00:00-05:00rm  )rq   rº  ru  r   r-   rã   rä   rå   ræ   r.   r   r   r;   r$   rB   r¥   r¦   ru   r§   )r¸  r   r–   rÁ   rª   r  r   rm  r   Útest_yearlocator_pytzÿ  s     


ÿÿr¼  c                  C   sº   dd„ } t   ddd¡}t jdd�ddddœg d	¢gt jdd�dd
ddœg d¢gt jdd�ddddœddggf}|D ]B\}}}|| }| ||fi |¤Ž}tttt |ƒ ¡ƒƒ|ksrJ ‚qrd S )Nc                 [   s6   t jf i |¤Ž}| ¡  |j t  | ¡t  |¡¡ |S r—  )r-   ZYearLocatorrä   rå   ræ   r.   )rõ   rö   rž  r–   r   r   r   Ú_create_year_locator  s    ÿz.test_YearLocator.<locals>._create_year_locatorrÖ   r   rÒ   rÓ   rP   )r   r™   rš   r  rV   rœ   )z1980-05-16 00:00:00+00:00z2000-05-16 00:00:00+00:00z2020-05-16 00:00:00+00:00z2040-05-16 00:00:00+00:00z2060-05-16 00:00:00+00:00z2080-05-16 00:00:00+00:00z2100-05-16 00:00:00+00:00z2120-05-16 00:00:00+00:00z2140-05-16 00:00:00+00:00z2160-05-16 00:00:00+00:00z2180-05-16 00:00:00+00:00z2200-05-16 00:00:00+00:00i  r­   rÏ   z1980-09-25 00:00:00+00:00z2000-09-25 00:00:00+00:00rÿ   )r½  r¨   r   rç   Ú	argumentsrª   r©   r–   r   r   r   Útest_YearLocator  s&    

þ	

þ	

þîr¿  c                   C   sè   t  t¡� tjdd� W d   ƒ n1 s,0    Y  t  t¡� tjdd� W d   ƒ n1 sb0    Y  t  t¡� tjdd� W d   ƒ n1 s˜0    Y  t  t¡� tjdd� W d   ƒ n1 sÎ0    Y  tjdd� d S )Nrï   rˆ   g      ø¿r   gÍÌÌÌÌÌô?r   )rq   ÚraisesÚ
ValueErrorr-   rx   r   r   r   r   Útest_DayLocator>  s    ****rÂ  c                  C   s    t j dddtjd�} |  ¡  d S )Ni²  r   ré   )r	   r-   r�   Útzname)rÊ   r   r   r   Útest_tz_utcJ  s    rÄ  z	x, tdeltarL   c                 C   s   t  | ¡}||ksJ ‚d S r—  )r-   Znum2timedelta)r   ZtdeltarÊ   r   r   r   Útest_num2timedeltaO  s    
rÅ  c                  C   sN   t  d¡t  d¡g} t | ¡}t  ddg¡t t  d¡¡ }t j ||¡ d S )Nr>   z
2001-01-01ç    H&Ag    ìJ&Ar?   )r   r;   r-   r.   r   r$   r%   )rÊ   ÚdnrÁ   r   r   r   Útest_datetime64_in_listX  s    
ÿrÈ  c                  C   s  t  d¡} t ¡  t ¡  t t¡� t d¡ W d   ƒ n1 sD0    Y  t ¡  t d¡ | t  d¡  	d¡}| 	d¡}t j
 t | ¡t|ƒ¡ t ¡  t d¡ t j
 t | ¡d¡ t ¡  t d¡ t j
 t | ¡|d	 ¡ t ¡  t d
¡ t j
 t t  d¡¡d¡ d S )Nr>   z
0000-01-01z
1970-01-01údatetime64[D]Úintr?   rÆ  z1970-01-01T01:00:00gUUUUUU¥?ú1970-01-01T00:00:00z1970-01-01T12:00:00g      à?)r   r;   r-   rD   Z	get_epochrq   rÀ  ÚRuntimeErrorrE   rª  r$   r%   r.   ÚfloatrB   )ÚdaterÊ   r   r   r   Útest_change_epocha  s,    
(




þrÏ  c                  C   sŠ   t jdddd�} tjdd�}dg|jd< | ¡  |j t | d	 ¡t | d
 ¡¡ t	j
tdd��}|ƒ }W d   ƒ n1 s|0    Y  d S )Nz
2001-01-10z
2001-03-04rÉ  r   Frß   r   r   r   rï   zAutoDateLocator was unable)Úmatch)r   Úaranger-   rã   Z	intervaldrä   rå   ræ   r.   rq   rr   rs   )rË   r–   r{   Zlocsr   r   r   Útest_warn_notintervals�  s    ÿrÒ  c                  C   s  dt jd< tjdddd�} t  ¡ \}}| | t t| ƒ¡¡ |j ¡  | 	¡ d  
¡ dks^J ‚| 	¡ d	  
¡ d
ksvJ ‚dt jd< t  ¡ \}}| | t t| ƒ¡¡ |j ¡  | 	¡ d  
¡ dksÄJ ‚| 	¡ d	  
¡ dksÜJ ‚t t¡� dt jd< W d   ƒ n1 �s0    Y  d S )NZconcisezdate.converterz
2020-01-01ú
2020-05-01rÉ  r   r   r'  r   r(  rk   zJan 01 2020úJan 15 2020Úboo)r    r¼   r   rÑ  r@   r#   rt   r½   r¾   r¿   r²   rq   rÀ  rÁ  ©rË   r(   r)   r   r   r   Útest_change_converterŒ  s    



r×  c                  C   sà   dt jd< tjdddd�} t  ¡ \}}| | t t| ƒ¡¡ |j ¡  | 	¡ d  
¡ dks^J ‚| 	¡ d	  
¡ d
ksvJ ‚dt jd< t  ¡ \}}| | t t| ƒ¡¡ |j ¡  | 	¡ d  
¡ dksÄJ ‚| 	¡ d	  
¡ dksÜJ ‚d S )NFzdate.interval_multiplesz
2020-01-10rÓ  rÉ  r   r   zJan 10 2020r   zJan 24 2020ÚTruerÔ  zFeb 01 2020)r    r¼   r   rÑ  r@   r#   rt   r½   r¾   r¿   r²   rÖ  r   r   r   Útest_change_interval_multiples¡  s    



rÙ  c                   C   s˜   t  ¡ �| t ¡  t d¡ t d¡dks.J ‚t d¡dks@J ‚t ¡  t d¡ t d¡dksdJ ‚t d¡dksvJ ‚W d   ƒ n1 sŠ0    Y  d S )	Nr?   i€Q ç    xò%Aç    zò%Ai £ rË  r   r   )Ú_apiZ'suppress_matplotlib_deprecation_warningr-   rD   rE   Z	epoch2numZ	num2epochr   r   r   r   Útest_epoch2num´  s    


rÝ  c                   C   sp   t  ¡  t  d¡ t  d¡dks$J ‚t  d¡dks6J ‚t  ¡  t  d¡ t  d¡dksZJ ‚t  d¡dkslJ ‚d S )	Nr?   g   @ÆžBArÚ  rÛ  g   ÀÆžBArË  r   r   )r-   rD   rE   Z
julian2numZ
num2julianr   r   r   r   Útest_julian2numÁ  s    

rÞ  )Pr	   Zdateutil.tzr�   Zdateutil.rruler�   Únumpyr   rq   Z
matplotlibr   r   Zmatplotlib.datesrË   r-   Zmatplotlib.pyplotZpyplotr    Zmatplotlib.testing.decoratorsr   Zmatplotlib.tickerZtickerrÀ   Zmatplotlib._apirÜ  r+   ÚmarkZparametrizer1   r5   r=   rG   rK   rN   r]   rb   rg   ri   r}   rƒ   r—   r¢   r«   r¬   rÂ   rÑ   r
   r   rè   rò   r  r
  r  rF  rN  rO  rV  rg  rl  rx  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   Ú<module>   s  ÿÿÿþû	

	






 
ÿ
ÿ
ÿ
ÿù


F
K1ù	

ÿ
ÿ
ÿ
ÿñ
74)F
A



'
ÿÿÿ
	 