a
    s=icÓ×  ã                   @   sh  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
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;e-d<d=d>ƒfe j,d?d@dAdB„ e-ddCd
ƒD ƒfe j,d>dDdEdB„ e-d dFd	ƒD ƒfe j,dGdHdIdB„ e-d dJƒD ƒfg¡dKdL„ ƒZ.dMdN„ Z/e%dOdP„ ƒZ0e%dQdR„ ƒZ1dSdT„ Z2dUdV„ Z3ej dWe j,dXdYdZfe j,ddHd[fe j,ddDd\fe j,dd@d]fe j,dd;d^fe j,d_d;d`fe j,dad;d`fg¡dbdc„ ƒZ4ddde„ Z5ej dWe j,d:d;e-dfdgd>ƒfe j,dhd@g di¢fe j,dhdDg dj¢fe j,d	dYg dk¢fg¡dldm„ ƒZ6dndo„ Z7dpdq„ Z8drds„ Z9dtdu„ Z:edvgƒdwdx„ ƒZ;dydz„ Z<d{d|„ Z=d}d~„ Z>dd€„ Z?dd‚„ Z@ejjAdƒd„„ ƒZBejjAd…d†„ ƒZCd‡dˆ„ ZDd‰dŠ„ ZEd‹dŒ„ ZFej dde j,dd@fddŽge j,dd@e j,dŽd@gfg¡dd„ ƒZGd‘d’„ ZHd“d”„ ZId•d–„ ZJd—d˜„ ZKd™dš„ ZLd›dœ„ ZMddž„ ZNdŸd „ ZOd¡d¢„ ZPej d£d¤¡d¥d¦„ ƒZQd§d¨„ ZRej d©dªejSfdejTfd«ejUfdhejVfd¬ejWfd­ejXff¡d®d¯„ ƒZYd°d±„ ZZd²d³„ Z[ej d´dµ¡d¶d·„ ƒZ\d¸d¹„ Z]dºd»„ Z^dS )¼é    N)Ú_apiÚ
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© úl/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/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    

r2   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-   Útmplr0   r1   r   r   r   Útest_date2num_NaT6   s
    
r6   Úunits)ÚsÚmsÚusÚnsc                 C   s$   t  t d| ¡¡}t |¡s J ‚d S )Nr3   )r.   r/   r   Ú
datetime64Úisnan)r7   r5   r   r   r   Útest_date2num_NaT_scalarB   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ú
1970-01-01z
1970-01-02ú
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_emptyH   s&    ÿÿ
ÿÿrH   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%   rC   rD   rG   r   r   r   Útest_date_not_empty^   s
    
rL   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!   rA   Úaxhliner$   r   r<   r%   rC   rD   r.   r/   rE   rF   rG   r   r   r   Útest_axhlineg   s&    
 ÿÿ

 ÿÿrO   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!   rA   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   rQ   éÚ  rR   rS   rT   rU   iÐ  r   )r
   r!   rA   ZaxvspanÚset_xlimr   Úautofmt_xdater\   r   r   r   Útest_date_axvspan‡   s    ÿrc   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 ©NrP   r   rQ   é   rS   r   ©ÚcolorZlwrW   r   rT   rX   )r
   r!   rA   rN   rZ   r   r[   r\   r   r   r   Útest_date_axhline“   s    ÿrh   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   rQ   rR   Úredr   rf   rW   r   )r
   r!   rA   Zaxvlinera   r   rb   r\   r   r   r   Útest_date_axvlineŸ   s    ÿrj   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   rQ   T)Úautoz.Attempting to set identical low and high xlimsr   éè  c                 s   s"   | ]}|j d ko|jdkV  qdS )zmatplotlib.tickerrk   N)ÚnameÚ	levelname)r   Úrecordr   r   r   Ú	<genexpr>Á   s   ÿz+test_too_many_date_ticks.<locals>.<genexpr>)Z	set_levelr
   r!   rA   ÚpytestÚwarnsÚUserWarningra   ÚlenÚstrÚmessager$   rK   Úset_major_locatorr.   Ú
DayLocatorZget_major_locatorÚrecordsÚall)Zcaplogr-   r]   r)   r*   Z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 )Nú
2000-01-01)r.   rE   rF   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   rm   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ÚRRuleLocatorrK   rx   Úset_major_formatterÚAutoDateFormatterÚautoscale_viewrb   )r7   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.   ry   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 )	NrW   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Úmaprv   Ú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–   rb   )r7   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)rW   é7   )é   é   )é   é-   c                 S   s   g | ]}|  ¡ ‘qS r   r³   rµ   r   r   r   r   1  r   Úminor)Úwhich)z30 08:15z30 08:45z30 09:15z30 09:45z30 10:15N)r!   ÚrcParamsr
   rA   r$   rK   rx   r.   Ú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_unit9  r   z8test_date_formatter_callable.<locals>._Locator._get_unitN)Ú__name__Ú
__module__Ú__qualname__rÇ   r   r   r   r   Ú_Locator8  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_callable6  s
    
rÔ   zdelta, expectedé (  ©ÚweekséÆ  i{  rQ   r°   r   c                 C   s   g | ]}d | ‘qS )z1990-01-%02dr   )r   r›   r   r   r   r   G  r   r   é    ©Úhoursc                 C   s   g | ]}d | ‘qS )z
01-01 %02dr   )r   Úhourr   r   r   r   I  r   rR   r   ©Úminutesc                 C   s   g | ]}d | ‘qS )z
01 00:%02dr   )r   Zminur   r   r   r   K  r   é   c                    s†   t  d¡ t ddd¡}||  }tjdd}| ¡  |j t |¡t |¡¡ tj	|dd‰ ‡ fdd	„|ƒ D ƒd
d	„ |D ƒks‚J ‚d S )NÚdefaultrØ   r   F©Úinterval_multiplesT©Zusetexc                    s   g | ]}ˆ |ƒ‘qS r   r   )r   r    ©rÓ   r   r   r   X  r   z.test_date_formatter_usetex.<locals>.<listcomp>c                 S   s   g | ]}d | ‘qS ©z+{\fontfamily{\familydefault}\selectfont %s}r   ©r   r8   r   r   r   r   X  s   )
r   Zuser
   r.   ÚAutoDateLocatorÚcreate_dummy_axisÚaxisÚset_view_intervalr/   r•   )Údeltar¬   rª   r«   r—   r   rä   r   Útest_date_formatter_usetexC  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 }tt | ||¡ƒdks¢J ‚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
    éÛ  r   ©rœ   r   rÚ   é   ©ÚmicrosecondsrÒ   é   é   éÿÿÿÿN)r
   r.   rž   r   ru   Zdranger©   )ÚstartÚendrë   Z	dateranger   r   r   Útest_drange\  s    r÷   c               
   C   sx  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®tjdd}|jddddddddœksJ ‚tjt	j
jdid }|jddddddddœksHJ ‚tjdd }|jddddddddœkstJ ‚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_locator~  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:00rQ   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:00Frá   rß   r¸   r±   )r   r   r   rò   rW   ró   é   rW   )Úmaxticks)r
   r   r§   r¨   rv   r.   r©   rç   r  r‘   r’   ZMONTHLY)rü   rª   ÚresultsÚt_deltar¬   r«   r—   r   r   r   Útest_auto_date_locator|  sJ    
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿÒ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:00rQ   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¨   rv   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!   rA   r.   rç   r  Úyaxisrx   r”   rZ   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   ©rv   ©r   rÄ   r   r   r   r   2  r   z*test_concise_formatter.<locals>.<listcomp>é¼  é™  rQ   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#  r1  r2  rÚ   ©zJan-01ú04:00ú08:00ú12:00ú16:00ú20:00zJan-02r9  r:  r;  r<  rÝ   )r  ú00:05ú00:10ú00:15ú00:20r  )	r  r1  Ú10r/  Ú20r6  Ú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>    
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿç
rP  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!   rA   r.   rç   r  rK   rx   r”   r$   rÀ   rÁ   Ú
get_offset)r  r¬   rª   r«   r)   r*   r—   rÓ   r   r   r   Ú"test_concise_formatter_show_offsetT  s    


rX  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 |tjd
d ¡ |  ¡  | ¡ dksìJ ‚| ||tjdd ¡ |  ¡  | ¡ dksJ ‚d S )Nr  r   rV  rÖ   r   rU  r   rS  r  r°   r"  )r!   rA   r
   r   r.   rç   r  rK   rx   r”   r$   rB   rW  ra   )r)   r*   rª   r«   r—   rÓ   r   r   r   Útest_offset_changesl  s*    
ÿrY  r   r!  r   r0  r8  rG  c                 C   st   t   ddd¡}||  }tjdd}| ¡  |j t |¡t |¡¡ tj|dd}| |ƒ ¡dd„ |D ƒkspJ ‚d S )Nr  r   Trá   rã   c                 S   s   g | ]}d | ‘qS rå   r   ræ   r   r   r   r   š  s   z1test_concise_formatter_usetex.<locals>.<listcomp>)	r
   r.   rç   rè   ré   rê   r/   r  r  )r  r¬   rª   r«   r—   rÓ   r   r   r   Útest_concise_formatter_usetex†  s    ÿrZ  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)ú%Yz%m/%Yzday: %dú%H hr %M minr\  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  r]  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!  rQ   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: 15r_  rd  r`  rd  ra  rd  rb  rd  r   )rc  úday: 05úday: 09zday: 13zday: 17zday: 21zday: 25zday: 29r_  re  rf  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: 02rg  rh  ri  rj  rÝ   )ú00 hr 00 minz00 hr 05 minz00 hr 10 minz00 hr 15 minz00 hr 20 minr  )	rk  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 secrk  z00.500000 secz01.000000 secz01.500000 secz02.000000 secz02.500000 secrN  rO  r   r]  r   Útest_concise_formatter_formatsž  s$    ÿå 
rl  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)rU  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á   ©Ú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  rm  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!  rQ   rþ   )z'97r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  rÿ   r   )
ÚJanuaryr/  ÚFebruaryr/  ÚMarchr/  ÚAprilr/  r&  r/  r   )ro  r1  r2  r3  r4  r5  r6  r7  rp  r1  r2  rÚ   )z01-01r9  r:  r;  r<  r=  z01-02r9  r:  r;  r<  rÝ   )Ú00r>  r?  r@  rA  r  )	rs  r1  rB  r/  rC  r6  rD  rE  rF  r   )rH  z00.0rI  rJ  rK  rL  rM  rN  rO  r   rm  r   Útest_concise_formatter_zformatsÕ  s@    
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿç
rt  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!   rA   r.   rç   r  r  rx   r”   rZ   rÀ   rÁ   r  Zget_offset_textr´   )rú   rû   rv  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:00rw  rx  ry  rz  r{  rR  rQ   rÝ   )rw  z03:05z03:10z03:15z03:20rQ  r  )	rw  r1  rB  r/  rC  r6  rD  rE  rF  z1997-Jan-01 03:00r   )rH  rw  rI  rJ  rK  rL  rM  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    
ý
þ
þ
þó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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â   rv  rø   )rú   rû   rv  r—   r   r   r   rü   3  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   )
r‚  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   )r‚  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Ú   )r‚  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:00rQ   rÝ   )r‚  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  )	r‚  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_modeFru  )r
   r   r‘   rv  Úgettzr   r§   r¨   rv   r.   r©   )	rü   r  rv  rª   r  r¬   r«   r—   r  r   r   r   Ú!test_auto_date_locator_intmult_tz2  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 rd   )r
   r!   rA   rN   rZ   r   Zinvert_yaxisr[   r\   r   r   r   Útest_date_inverted_limitx  s    ÿr‰  c                    s¦   t j d¡}tj}tjddddd|d}tjddd	}|j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  é€Q 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‘   rv  r‡  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 )NúAustralia/Sydneyr   rò   r   r   )r  r“  é   rî   r   é   )	r
   r.   r   r‘   r’   ÚDAILYZbetweenrv  Ztzutc)Ú	attach_tzZget_tzÚSYDr“  ÚdtendÚruleZactÚexpr   r   r   Ú_test_rrulewrapperæ  s    ÿrÂ  c               	   C   sÀ   dd„ } t | tjjƒ tj d¡}t dddd¡}t dddd¡}tjtjj|||d}| 	|¡tjddd	dd|d
ks|J ‚| 
|¡tjddddd|d
ks J ‚|j|ks®J ‚|jdks¼J ‚d S )Nc                 S   s   | j |dS )Nrî   )r|  ©rÍ   Zzir   r   r   r½  ö  s    z$test_rrulewrapper.<locals>.attach_tzr¹  r   rò   r   r   )r  r“  rœ   Zuntilr   rî   r   )rÂ  r‘   rv  r‡  r
   r.   r   r’   r¼  ÚafterÚbeforeZ_base_tzinfoÚ	_interval)r½  r¾  r“  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)rr   ÚimportorskiprÂ  r}  )rÈ  r½  r   r   r   Útest_rrulewrapper_pytz
  s    
rË  c                     s4  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 ‚t
 | |d |d ¡t
 g d¢¡¡sôJ ‚t
 | |d |d ¡ |d |d ¡t
 g d¢¡¡s0J ‚d S )NrÈ  zAmerica/New_Yorkc              	      s*   g | ]"}ˆ   t d dd¡¡t |¡ ‘qS )r`   r   )rÉ  r
   r   rŽ  ru  r   r   r     s   ÿÿz)test_yearlocator_pytz.<locals>.<listcomp>r_   Tr  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:00ru  r   )	g‚£ªª‰Ì@g‚£ªª*‰Ì@g‚£ªª:‰Ì@g‚£ªªJ‰Ì@g‚£ªªZ‰Ì@g‚£ªªj‰Ì@g‚£ªªz‰Ì@g‚£ªªŠ‰Ì@g‚£ªªš‰Ì@)rr   rÊ  r}  r   r.   rç   rè   ré   rê   r/   r   r    r<   r%   rC   r§   r¨   rv   r©   ZallcloserŸ   Zget_locator)rÈ  r   r—   rÄ   r¬   r  r   ru  r   Útest_yearlocator_pytz  s0    


ÿÿÿ
&ÿÿ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.   ÚYearLocatorrè   ré   rê   r/   )rú   rû   r§  r—   r   r   r   Ú_create_year_locator7  s    ÿz.test_YearLocator.<locals>._create_year_locatorrØ   r   rÕ   rÖ   rQ   )r   rš   r›   r	  rW   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_YearLocator6  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   )rr   ÚraisesÚ
ValueErrorr.   ry   r   r   r   r   Útest_DayLocator]  s    ****rÓ  c                  C   s(   t j dddtjd} |  ¡ dks$J ‚d S )Né²  r   rî   rž   )r
   r.   rž   Útzname©rÍ   r   r   r   Útest_tz_utci  s    r×  z	x, tdeltarM   c                 C   s   t  | ¡}||ksJ ‚d S r   )r.   Znum2timedelta)r   ZtdeltarÍ   r   r   r   Útest_num2timedeltan  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_listw  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-01r?   údatetime64[D]Úintr@   rÙ  z1970-01-01T01:00:00gUUUUUU¥?ú1970-01-01T00:00:00z1970-01-01T12:00:00g      à?)r   r<   r.   rE   Z	get_epochrr   rÑ  ÚRuntimeErrorrF   r³  r%   r&   r/   ÚfloatrC   )ÚdaterÍ   r   r   r   Útest_change_epoch€  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/   rr   rs   rt   )rÎ   r—   Ú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/  rl   zJan 01 2020úJan 15 2020Úboo)r!   r¾   r   rå  rA   r$   ru   rÀ   rÁ   rÂ   r´   rr   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å  rA   r$   ru   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@   r‹  ç    xò%Aç    zò%Ai £ rÞ  r   r   )r   Z'suppress_matplotlib_deprecation_warningr.   rE   rF   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.   rE   rF   Z
julian2numZ
num2julianr   r   r   r   Útest_julian2numà  s    

rò  c               
   C   sÞ  t  ¡ } |  dtj¡dksJ ‚|  dd¡dks2J ‚|  dd¡dksFJ ‚|  dd¡dksZJ ‚|  ¡  |  ¡ tjdddddtjj	dtjdddddtjj	dfks¢J ‚| j
t jks²J ‚d}tj
 |¡}| j
|ksÐJ ‚|  d¡ | j
|ksèJ ‚|  ¡  | jjt  d	d
g¡Ž  |  ¡ tjddddd|dtjddddd|dfks@J ‚|tjd< t  ¡ } | j
|ksbJ ‚tjtdd t jdd W d   ƒ n1 s”0    Y  tjtdd t jdd W d   ƒ n1 sÐ0    Y  d S )Nr   ©r   r   r   )éþÿÿÿr   rÔ  rî   r   ZIcelandú
2022-01-10z
2022-01-08éæ  r±   r   r}  z Aiceland is not a valid timezonerã  ZAicelandru  z%tz must be string or tzinfo subclass.)r.   ZDateLocatorZnonsingularr   Úinfrè   Zdatalim_to_dtr
   r}  r~  rv  rž   r‘   r‡  Ú
set_tzinforé   Zset_data_intervalr/   r!   r¾   rr   rÑ  rÒ  Ú	TypeError)r—   Ztz_strZ
iceland_tzr   r   r   Útest_DateLocatorî  sB    þ

ÿþ
,ÿrú  c                  C   sœ   t  d¡dksJ ‚tjdddd} t jd| ddks8J ‚t t jdd	g| dt dd
g¡k¡sbJ ‚t  g ¡jdksvJ ‚t  g tjdddd¡jdks˜J ‚d S )Nrõ  ç    €ŽÒ@rö  r   r   r¤   z2022-01)rà   z2022-02g    @–Ò@r   )r.   Zdatestr2numr
   rá  r   r{   r    ÚsizerÖ  r   r   r   Útest_datestr2num  s    ÿþ
ÿÿrý  Úkwarg)r^  rn  Zoffset_formatsc                 C   sb   t  ¡ }| ddgi}| › d}tjt|d" t j|fi |¤Ž W d   ƒ n1 sT0    Y  d S )NrU  r[  z argument must be a listrã  )r.   rç   rr   rÑ  rÒ  r  )rþ  r—   r§  rä  r   r   r   Ú!test_concise_formatter_exceptions(  s
    
rÿ  c                  C   s8   t  ¡ } t  | ¡}|dƒdks"J ‚| d¡dks4J ‚d S )Nrû  Z2022z2022-01-10 00:00:00)r.   rç   r  Zformat_data_short)r—   rÓ   r   r   r   Útest_concise_formatter_call2  s    
r   zspan, expected_locatorg{®Gáz”?é   éÈ   r_   c                 C   sL   t  tj¡, t | ¡\}}t||ƒs*J ‚W d   ƒ n1 s>0    Y  d S r   )rr   rs   r   ZMatplotlibDeprecationWarningr.   Zdate_ticker_factoryrš  )ÚspanZexpected_locatorr—   rÏ   r   r   r   Útest_date_ticker_factory9  s    r  c                  C   s,   t  ¡ \} }|j t d¡¡ | j ¡  d S )Nz%d/%m
%Y)r!   rA   rK   r”   r.   ÚDateFormatterrÀ   rÁ   rG   r   r   r   Útest_usetex_newlineF  s    r  c                  C   sb   t  dd„ tddƒD ƒ¡} t  g d¢¡}t j |d¡}t ¡ \}}| | |¡ | ¡ dks^J ‚d S )Nc                 S   s   g | ]}t   d d|¡‘qS )r   r   )r
   )r   Únr   r   r   r   O  r   z(test_datetime_masked.<locals>.<listcomp>r   ró   )r   r   r   rò   rW   r   ró  )	r   r    r   ÚmaZmasked_greaterr!   rA   r$   rD   )r   ÚyÚmr)   r*   r   r   r   Útest_datetime_maskedL  s    r  rª  )iÀ½ðÿi€–˜ c                 C   sD   t jtd| › dd t | ¡ W d   ƒ n1 s60    Y  d S )NzDate ordinal z	 convertsrã  )rr   rÑ  rÒ  r.   r©   )rª  r   r   r   Útest_num2date_errorX  s    r  c                   C   sZ   t  d¡tjdddddddtjjdks,J ‚t  d	¡tjdddddd
tjjdksVJ ‚d S )Ngj®<  jø@iÃ  r   é   r   rò   i,B rî   gq®<  jø@rW   )r.   r©   r
   r}  r~  r   r   r   r   Útest_num2date_roundoff^  s    ÿÿr  c               
   C   sV   t  tjdddddt jd¡} t  d¡}|| ƒdks8J ‚| d¡ || ƒdksRJ ‚d S )	Nrí   r   r   rî   z%Y-%b-%d %H:%Mz2011-Jan-01 00:00zPacific/Kiritimatiz2011-Jan-01 14:00)r.   r/   r
   rž   r  rø  )r'   rÓ   r   r   r   Útest_DateFormatter_settzf  s    ÿ

r  )_r
   Zdateutil.tzr‘   Zdateutil.rruler‚   Únumpyr   rr   Z
matplotlibr   r   r   Zmatplotlib.datesrÎ   r.   Zmatplotlib.pyplotZpyplotr!   Zmatplotlib.testing.decoratorsr   Zmatplotlib.tickerZtickerrÃ   r,   ÚmarkZparametrizer2   r6   r>   rH   rL   rO   r^   rc   rh   rj   r}   r„   r˜   r£   r­   r®   rÅ   rÔ   r   r   rì   r÷   r  r  r  rP  rX  rY  rZ  rl  rt  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¿   ZHourLocatorry   ZWeekdayLocatorZMonthLocatorrÍ  r  r  r  r  r  r  r   r   r   r   Ú<module>   s4  ÿÿÿþû	

	






 

ÿ
ÿ
ÿ
ÿù

 
O
K1ù	


ÿ
ÿ
ÿ
ÿø
74)F
A



 '
ÿÿÿ
	 .ÿ
ûÿ

