o
    ÕjÕÜ  ã                   @   s2  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„ 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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&d0d1„ Z'd2d3„ Z(ed4gƒd5d6„ ƒZ)d7d8„ Z*d9d:„ Z+ej d;e j,d<d=d>d?„ e-d@dAdBƒD ƒfe j,dCdDdEd?„ e-ddFd
ƒD ƒfe j,dBdGdHd?„ e-d dId	ƒD ƒfe j,dJdKdLd?„ e-d dMƒD ƒfg¡dNdO„ ƒZ.dPdQ„ Z/e%dRdS„ ƒZ0e%dTdU„ ƒZ1dVdW„ Z2dXdY„ Z3ej dZe j,d[d\d]fe j,ddKd^fe j,ddGd_fe j,ddDd`fe j,dd=dafe j,dbd=dcfe j,ddd=dcfg¡dedf„ ƒZ4dgdh„ Z5didj„ Z6dkdl„ Z7ej dZe j,d<d=dmd?„ e-dndodBƒD ƒfe j,dpdDg dq¢fe j,dpdGg dr¢fe j,d	d\g ds¢fg¡dtdu„ ƒZ8dvdw„ Z9dxdy„ Z:dzd{„ Z;d|d}„ Z<ed~gƒdd€„ ƒZ=dd‚„ Z>dƒd„„ Z?d…d†„ Z@d‡dˆ„ ZAd‰dŠ„ ZBejjCd‹dŒ„ ƒZDejjCddŽ„ ƒZEdd„ ZFd‘d’„ ZGd“d”„ ZHej d•de j,ddDfdd–ge j,ddDe j,d–dDgfg¡d—d˜„ ƒZId™dš„ ZJd›dœ„ ZKddž„ ZLdŸd „ ZMd¡d¢„ ZNd£d¤„ ZOd¥d¦„ ZPej d§d¨¡d©dª„ ƒZQd«d¬„ ZRd­d®„ ZSej d¯d°¡d±d²„ ƒZTd³d´„ ZUdµd¶„ ZVd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© ú\/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/matplotlib/tests/test_dates.pyÚ
<listcomp>   s    z$test_date_numpyx.<locals>.<listcomp>r   é   údatetime64[ns]©Údtype)ç        g       @ç      ð?)é
   é   )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   

r0   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#   Úassert_array_equal)r   r+   Útmplr.   r/   r   r   r   Útest_date2num_NaT6   s
   
r5   Úunits)ÚsÚmsÚusÚnsc                 C   s$   t  t d| ¡¡}t |¡sJ ‚d S )Nr1   )r,   r-   r   Ú
datetime64Úisnan)r6   r4   r   r   r   Útest_date2num_NaT_scalarB   s   r=   c                     s²   t   ddd¡‰ tjj‡ fdd„tdƒD ƒg d¢d} t | ¡}tj tj 	|¡d	¡ t j dddtj
d
‰ tjj‡ fdd„tdƒD ƒg d¢d} t | ¡}tj tj 	|¡d	¡ d S )Néæ  é   é   c                    ó    g | ]}ˆ t jd | d ‘qS ©r   r   r	   ©r   Úir   r   r   r   K   ó    ÿz(test_date2num_masked.<locals>.<listcomp>é   )r   r   r   r   r   r   r   )Úmask)FTTFFFT©Útzinfoc                    rA   rB   r	   rC   r   r   r   r   T   rE   )r
   r   Úmar   r   r,   r-   r#   r3   ZgetmaskÚUTC)ÚdatesZnpdatesr   r   r   Útest_date2num_maskedH   s(   ÿÿ
ÿÿÿ
ÿrM   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_empty\   s&   ÿÿ
ÿÿrW   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#   rR   rS   rV   r   r   r   Útest_date_not_emptyr   s
   
r[   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   rO   )r   rP   Úaxhliner"   r   r;   r#   rR   rS   r,   r-   rT   rU   rV   r   r   r   Útest_axhline{   s&   
 ÿÿ

 ÿÿr^   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   rP   ZaxhspanÚset_ylimr   Úsubplots_adjust©r+   Útfr'   r(   r   r   r   Útest_date_axhspan   s   ÿrm   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   r`   éÚ  ra   rb   rc   rd   iÐ  r   )r
   r   rP   ZaxvspanÚset_xlimr   Úautofmt_xdaterk   r   r   r   Útest_date_axvspan›   s   ÿrr   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 ©Nr_   r   r`   é   rb   r   ©ÚcolorZlwrf   r   rc   rg   )r
   r   rP   r]   ri   r   rj   rk   r   r   r   Útest_date_axhline§   s   ÿrw   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 )
Nrn   r   r`   ra   Úredr   ru   rf   r   )r
   r   rP   Zaxvlinerp   r   rq   rk   r   r   r   Útest_date_axvline³   s   ÿry   c                 C   s   |   d¡ t ddd¡}t ddd¡}t ¡ \}}t t¡$}|j||fdd t|ƒdks0J ‚dt	|d j
ƒv s;J ‚W d   ƒ n1 sEw   Y  | g g ¡ |j t ¡ ¡ |j ¡ ƒ }t|ƒd	ksfJ ‚| jrstd
d„ | jD ƒƒsuJ ‚t| jƒdks~J ‚d S )NÚWARNINGrn   r   r`   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.tickerrz   N)ÚnameÚ	levelname)r   Úrecordr   r   r   Ú	<genexpr>Õ   s
   € ÿ
ÿz+test_too_many_date_ticks.<locals>.<genexpr>)Z	set_levelr
   r   rP   ÚpytestÚwarnsÚUserWarningrp   ÚlenÚstrÚmessager"   rZ   Úset_major_locatorr,   Ú
DayLocatorZget_major_locatorÚrecordsÚall)Zcaplogr+   rl   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,   rT   rU   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   r|   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ÚRRuleLocatorrZ   r‡   Úset_major_formatterÚAutoDateFormatterÚautoscale_viewrq   )r6   r+   rl   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ÚdayrI   é   )r,   rˆ   r
   rK   Ú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s5J ‚d S )	Nrf   r˜   éä  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Úmapr…   Ú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¥   rq   )r6   r+   rl   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sPJ ‚|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   ó   g | ]}|  ¡ ‘qS r   ©Úget_text©r   Útlr   r   r   r   9  ó    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)rf   é7   )r?   é   )r@   é-   c                 S   rÁ   r   rÂ   rÄ   r   r   r   r   E  rÆ   Úminor)Úwhich)z30 08:15z30 08:45z30 09:15z30 09:45z30 10:15N)r   ÚrcParamsr
   rP   r"   rZ   r‡   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s%J ‚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_unitM  s    z8test_date_formatter_callable.<locals>._Locator._get_unitN)Ú__name__Ú
__module__Ú__qualname__rÔ   r   r   r   r   Ú_LocatorL  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   P  ó    zVtest_date_formatter_callable.<locals>.callable_formatting_function.<locals>.<listcomp>r   )rL   Ú_r   r   r   Úcallable_formatting_functionO  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_callableJ  s
   
"rá   zdelta, expectedé (  ©Úweeksc                 C   ó   g | ]}d | ‘qS ©z$\mathdefault{%d}$r   )r   r¨   r   r   r   r   Y  rÆ   r   éÆ  i{  r`   r¾   r   c                 C   rå   )z $\mathdefault{1990{-}01{-}%02d}$r   )r   rª   r   r   r   r   [  rÆ   é    ©Úhoursc                 C   rå   )z$\mathdefault{01{-}01\;%02d}$r   )r   Úhourr   r   r   r   ]  rÆ   ra   r   ©Úminutesc                 C   rå   )z$\mathdefault{01\;00{:}%02d}$r   )r   Zminur   r   r   r   _  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s<J ‚d S )
NÚdefaultrç   r   F©Úinterval_multiplesT©Zusetexc                    s   g | ]}ˆ |ƒ‘qS r   r   )r   r­   ©rà   r   r   r   l  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_usetexW  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s'J ‚|t jdd }tt | ||¡ƒdks<J ‚|t jdd }tt | ||¡ƒdksQJ ‚t j dddtjd}t jd	d}t | ||¡}t|ƒd
kspJ ‚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   rH   r   ré   é   ©Úmicrosecondsrß   é   é   éÿÿÿÿN)r
   r,   rK   r   r„   Zdranger·   )ÚstartÚendrø   Z	dateranger   r   r   Útest_drangeo  s   r  c               
   C   sr  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 ]\}}|| }| ||ƒ}tttt |ƒ ¡ƒƒ|kssJ ‚qWt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s¢J ‚tjdd }|jddddddddœks·J ‚d S )!Nc                 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‘  ó   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:00r`   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þ   rf   rÿ   rF   rf   )Úmaxticks)r
   r   rµ   r¶   r…   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 ]\}}|| }| ||ƒ}tttt |ƒ ¡ƒƒ|kssJ ‚qWd S )Nc                 S   r  )NTrð   r  r  r   r   r   r	  á  r
  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:00r`   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  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s'J ‚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sqJ ‚q^d S )Nc                 S   sf   t  ¡ \}}tjdd}t |¡}|j |¡ |j |¡ | | |¡ |j	 
¡  dd„ | ¡ D ƒ}|S )NTrð   c                 S   rÁ   r   rÂ   ©r   Ústr   r   r   r   @  rÆ   zMtest_concise_formatter.<locals>._create_auto_date_locator.<locals>.<listcomp>©r   rP   r,   rô   r   Úyaxisr‡   r£   ri   rÍ   rÎ   Úget_yticklabels©r  r  r'   r(   r¦   rà   Ústsr   r   r   r	  7  s   

z9test_concise_formatter.<locals>._create_auto_date_locatorr  r   râ   rã   c                 S   ó   g | ]}t |ƒ‘qS r   ©r…   ©r   rÑ   r   r   r   r   E  rÆ   z*test_concise_formatter.<locals>.<listcomp>é¼  é™  r`   r  )Ú1997ÚFebÚMarÚAprÚMayÚJunÚJulÚAugÚSepÚOctÚNovÚDecr  r   )
ÚJanÚ15r1  r=  r2  r=  r3  r=  r4  r=  r  )r<  Ú05Ú09Ú13Ú17Ú21Ú25Ú29r1  r>  r?  ré   )zJan-01ú04:00ú08:00ú12:00ú16:00ú20:00zJan-02rE  rF  rG  rH  rì   )r  ú00:05ú00:10ú00:15ú00:20r  )	r  r>  Ú10r=  Ú20rC  Ú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_formatter6  s@   
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿç
ýr[  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s=J ‚d S )Nr  r   r   )r
   r   rP   r,   rô   r   rZ   r‡   r£   r"   rÍ   rÎ   Ú
get_offset)r  rº   r¸   r¹   r'   r(   r¦   rà   r   r   r   Ú"test_concise_formatter_show_offsetg  s   


rc  c                  C   sŽ   t   ddd¡} | t jdd }t ¡ \}}t ¡ }t |¡}|j |¡ |j 	|¡ | 
¡  | | |gddg¡ |j ¡  | ¡ dksEJ ‚d S )Nr  r   é<   r   r   r^  )r
   r   r   rP   r,   rô   r   rZ   r‡   r£   Zinvert_xaxisr"   rÍ   rÎ   rb  )r¸   r¹   r'   r(   r¦   rà   r   r   r   Ú+test_concise_formatter_show_offset_inverted  s   

re  c                  C   s®   t   ddd¡t   ddd¡g} ddg}t ¡ \}}| | |¡ t ¡ }tjtdd |j	 
|¡ W d   ƒ n1 s:w   Y  |j	jd u sGJ ‚|j| Ž  |j	 ¡ |ksUJ ‚d S )	Nrn   r   r±   r   r`   r   zalready has a converter©Úmatch)r
   r   rP   r"   r,   ZConciseDateConverterr   r‚   rƒ   rZ   Zset_converterr6   rp   Zget_converter)r   Úyr'   r(   Úconvr   r   r   Útest_concise_converter_stays  s   
ÿ
rj  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sXJ ‚| |tjd	d |tjd
d ¡ |  ¡  | ¡ dksvJ ‚| ||tjdd ¡ |  ¡  | ¡ dksŽJ ‚d S )Nr  r   ra  rã   r   r`  r   r^  rF   r¾   r0  )r   rP   r
   r   r,   rô   r   rZ   r‡   r£   r"   rQ   rb  rp   )r'   r(   r¸   r¹   r¦   rà   r   r   r   Útest_offset_changes§  s*   
ÿrk  c                 C   s   g | ]}d |f ‘qS ræ   r   r-  r   r   r   r   Ã  rÛ   r.  r/  r  )r<  ú$\mathdefault{05}$ú$\mathdefault{09}$z$\mathdefault{13}$z$\mathdefault{17}$z$\mathdefault{21}$z$\mathdefault{25}$z$\mathdefault{29}$r1  rl  rm  )zJan$\mathdefault{{-}01}$ú$\mathdefault{04{:}00}$ú$\mathdefault{08{:}00}$ú$\mathdefault{12{:}00}$ú$\mathdefault{16{:}00}$z$\mathdefault{20{:}00}$zJan$\mathdefault{{-}02}$rn  ro  rp  rq  )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s3J ‚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_usetexÁ  s   rr  c               
      óô   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swJ ‚qdd S )N)ú%Yz%m/%Yzday: %dú%H hr %M minru  z	%S.%f secc                    ój   t  ¡ \}}tjdd}tj|ˆ d}|j |¡ |j |¡ | | |¡ |j	 
¡  dd„ | ¡ D ƒ}|S )NTrð   ©Úformatsc                 S   rÁ   r   rÂ   r$  r   r   r   r   ï  rÆ   zUtest_concise_formatter_formats.<locals>._create_auto_date_locator.<locals>.<listcomp>r&  r)  rw  r   r   r	  æ  s   
zAtest_concise_formatter_formats.<locals>._create_auto_date_locatorr  r   râ   rã   c                 S   r+  r   r,  r-  r   r   r   r   ô  rÆ   z2test_concise_formatter_formats.<locals>.<listcomp>r.  r/  r`   r  )r0  ú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: 15ry  r~  rz  r~  r{  r~  r|  r~  r  )r}  úday: 05úday: 09zday: 13zday: 17zday: 21zday: 25zday: 29ry  r  r€  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: 02r  r‚  rƒ  r„  rì   )ú00 hr 00 minz00 hr 05 minz00 hr 10 minz00 hr 15 minz00 hr 20 minr  )	r…  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 secr…  z00.500000 secz01.000000 secz01.500000 secz02.000000 secz02.500000 secrY  rZ  r   rw  r   Útest_concise_formatter_formatsâ  s&   ÿå 
ýr†  c               
      rs  )N)r`  z'%yz%Bz%m-%dz%Sz%S.%fc                    rv  )NTrð   ©Úzero_formatsc                 S   rÁ   r   rÂ   r$  r   r   r   r   &  rÆ   zVtest_concise_formatter_zformats.<locals>._create_auto_date_locator.<locals>.<listcomp>r&  r)  r‡  r   r   r	    s   ÿ
zBtest_concise_formatter_zformats.<locals>._create_auto_date_locatorr  r   râ   rã   c                 S   r+  r   r,  r-  r   r   r   r   +  rÆ   z3test_concise_formatter_zformats.<locals>.<listcomp>r.  r/  r`   r  )z'97r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r  r   )
ÚJanuaryr=  ÚFebruaryr=  ZMarchr=  ZAprilr=  r4  r=  r  )r‰  r>  r?  r@  rA  rB  rC  rD  rŠ  r>  r?  ré   )z01-01rE  rF  rG  rH  rI  z01-02rE  rF  rG  rH  rì   )Ú00rJ  rK  rL  rM  r  )	r‹  r>  rN  r=  rO  rC  rP  rQ  rR  r   )rS  z00.0rT  rU  rV  rW  rX  rY  rZ  r   r‡  r   Útest_concise_formatter_zformats  sB   
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿç
ýrŒ  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scJ ‚qFd S )Nc                 S   sx   t  ¡ \}}tjdd}tj||d}|j |¡ |j |¡ | | |¡ |j	 
¡  dd„ | ¡ D ƒ}||j ¡  ¡ fS )NTrð   ©Útzc                 S   rÁ   r   rÂ   r$  r   r   r   r   W  rÆ   zPtest_concise_formatter_tz.<locals>._create_auto_date_locator.<locals>.<listcomp>)r   rP   r,   rô   r   r'  r‡   r£   ri   rÍ   rÎ   r(  Zget_offset_textrÃ   )r  r  rŽ  r'   r(   r¦   rà   r*  r   r   r   r	  N  s   
z<test_concise_formatter_tz.<locals>._create_auto_date_locatorr  r   rH   r  ré   )ú03:00ú07:00ú11:00ú15:00ú19:00z23:00r  r  r‘  r’  r“  r]  r`   rì   )r  z03:05z03:10z03:15z03:20r\  r  )	r  r>  rN  r=  rO  rC  rP  rQ  rR  z1997-Jan-01 03:00r   )rS  r  rT  rU  rV  rW  rX  r   )r
   ÚreplaceÚtimezoneÚutcr   )
r	  r¸   r  Znew_tzr  Zexpected_stringsZexpected_offsetr¹   r"  Úoffsetr   r   r   Útest_concise_formatter_tzM  s4   
ý
þ
þ
þóü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 ]7\}}tddiƒ% || }| |||ƒ}tttt	j
|ƒ |dƒƒ}||ks~J ‚W d   ƒ n1 sˆw   Y  qVd S )Nc                 S   s0   t jd|d}| ¡  |jjt  | |g¡Ž  |S )NT©rñ   rŽ  r  )r  r  rŽ  r¦   r   r   r   r	  w  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:00r`   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   rH   z_internal.classic_modeFr  )r
   r   r    rŽ  Úgettzr   rµ   r¶   r…   r,   r·   )	r	  r  rŽ  r¸   r  rº   r¹   r¦   r%  r   r   r   Ú!test_auto_date_locator_intmult_tzv  sD   
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿÔ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 rs   )r
   r   rP   r]   ri   r   Zinvert_yaxisrj   rk   r   r   r   Útest_date_inverted_limit¼  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sQJ ‚d S )NzEurope/BrusselsrÞ   r   r¾   r   rH   é!   rÉ   )rí   r  i€Q r¿   ©r  ÚfreqZperiodsg    ´p&ArO   c                    s   g | ]}ˆ|ˆ   ‘qS r   r   rC   ©Zinterval_daysr+   r   r   r   Ù  ó    z&_test_date2num_dst.<locals>.<listcomp>)r    rŽ  rŸ  r,   rK   r
   r   r  r-   r   r;   r   rµ   )Ú
date_rangeÚ
tz_convertZBRUSSELSrK   Ú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ƒr*|  |¡}|S )NrI   Ú	normalize)ÚsuperÚ__sub__Úgetattrr¬  Ú
isinstancer
   Ú
mk_tzaware)rÓ   ÚotherÚrrI   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·  ù  ó   z-test_date2num_dst.<locals>.dt_tzaware.__add__c                    s   t ƒ  |¡}|  |¡S r¶  )r­  Ú
astimezoner±  )rÓ   rI   rÚ   r´  r   r   r¹  ü  s   
z0test_date2num_dst.<locals>.dt_tzaware.astimezonec                 S   s<   i }d}|D ]}t ||d ƒ}|d ur|||< q| di |¤ŽS )N)r¨   r©   rª   rë   ÚminuteÚsecondr³   rI   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   rC   ©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   ÚdrH   r   r   r     rÛ   z9test_date2num_dst.<locals>.tz_convert.<locals>.<listcomp>r   )Zdt_listrI   r   rH   r   r¨    r¸  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¨  $  r¸  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sIJ ‚d S )NúAustralia/Sydneyr   rþ   r   r   )r¤  r©  é   rH   r   é   )	r
   r,   rŸ   r    r¡   ÚDAILYZbetweenrŽ  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sPJ ‚|j|ksWJ ‚|jdks^J ‚d S )Nc                 S   s   | j |dS )NrH   )r”  ©rÚ   Zzir   r   r   rÔ  :  s   z$test_rrulewrapper.<locals>.attach_tzrÐ  r   rþ   r   r   )r¤  r©  rI   Zuntilr   rH   r   )rÙ  r    rŽ  rŸ  r
   r,   rŸ   r¡   rÓ  ÚafterÚbeforeZ_base_tzinfoZ	_interval)rÔ  rÕ  r©  rÖ  r×  r   r   r   Útest_rrulewrapper9  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  s   
z)test_rrulewrapper_pytz.<locals>.attach_tz)r   ÚimportorskiprÙ  r•  )rÞ  rÔ  r   r   r   Útest_rrulewrapper_pytzN  s   
rá  c                     s2  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seJ ‚t
 | |d |d ¡t
 g d¢¡¡szJ ‚t
 | |d |d ¡ |d |d ¡t
 g d¢¡¡s—J ‚d S )NrÞ  zAmerica/New_Yorkc              	      s*   g | ]}ˆ   t d dd¡¡t |¡ ‘qS )ro   r   )rß  r
   r   rC   r  r   r   r   ^  s
    ÿÿz)test_yearlocator_pytz.<locals>.<listcomp>rn   Tr™  r   r   r   )g{ŸªjÀa&Ag{Ÿªjšd&Ag{Ÿªjtg&Ag{ŸªjNj&Ag{Ÿªj*m&Ag{Ÿªjp&Ag{ŸªjÞr&ArO   )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:00r  r   )	g‚£ªª‰Ì@g‚£ªª*‰Ì@g‚£ªª:‰Ì@g‚£ªªJ‰Ì@g‚£ªªZ‰Ì@g‚£ªªj‰Ì@g‚£ªªz‰Ì@g‚£ªªŠ‰Ì@g‚£ªªš‰Ì@)r   rà  r•  r   r,   rô   rõ   rö   r÷   r-   r   r   r;   r#   rR   rµ   r¶   r…   r·   Zallcloser¬   Zget_locator)rÞ  r   r¦   rÑ   rº   r%  r   r  r   Útest_yearlocator_pytzY  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 ]!\}}}|| }| ||fi |¤Ž}tttt |ƒ ¡ƒƒ|ksZJ ‚q9d S )Nc                 [   s6   t jdi |¤Ž}| ¡  |j t  | ¡t  |¡¡ |S )Nr   )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ã   r`   )r   r©   rª   r  rf   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_YearLocatorz  s(   

þ
	
þ
	
þî ýrå  c                   C   sè   t  t¡ tjdd W d   ƒ n1 sw   Y  t  t¡ tjdd W d   ƒ n1 s1w   Y  t  t¡ tjdd W d   ƒ n1 sLw   Y  t  t¡ tjdd W d   ƒ n1 sgw   Y  tjdd d S )Nr   r˜   g      ø¿r   gÍÌÌÌÌÌô?r   )r   ÚraisesÚ
ValueErrorr,   rˆ   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   rH   rK   )r
   r,   rK   Útzname©rÚ   r   r   r   Útest_tz_utc­  s   rì  z	x, tdeltar\   c                 C   s   t  | ¡}||ksJ ‚d S r¶  )r,   Znum2timedelta)r   ZtdeltarÚ   r   r   r   Útest_num2timedelta²  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&ArO   )r   r;   r,   r-   r   r#   r$   )rÚ   ÚdnrÑ   r   r   r   Útest_datetime64_in_list»  s   
ÿrð  c                  C   s  t  d¡} t ¡  t ¡  t t¡ t d¡ W d   ƒ n1 s"w   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-01rN   údatetime64[D]ÚintrO   rî  z1970-01-01T01:00:00gUUUUUU¥?z1970-01-01T00:00:00z1970-01-01T12:00:00g      à?)r   r;   r,   rT   Z	get_epochr   ræ  ÚRuntimeErrorrU   rÊ  r#   r$   r-   ÚfloatrR   )Ú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   ƒ d S 1 s?w   Y  d S )Nz
2001-01-10z
2001-03-04rñ  r   Frð   r   r   r   r   zAutoDateLocator was unablerf  )r   Úaranger,   rô   Z	intervaldrõ   rö   r÷   r-   r   r‚   rƒ   )rL   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s;J ‚dt jd< t  ¡ \}}| | t t| ƒ¡¡ |j ¡  | 	¡ d  
¡ dksbJ ‚| 	¡ d	  
¡ dksnJ ‚t t¡ dt jd< W d   ƒ d S 1 s„w   Y  d S )NZconcisezdate.converterz
2020-01-01ú
2020-05-01rñ  r   r   r<  r   r=  r{   zJan 01 2020úJan 15 2020Úboo)r   rÌ   r   r÷  rP   r"   r„   rÍ   rÎ   rÏ   rÃ   r   ræ  rç  ©rL   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s;J ‚dt jd< t  ¡ \}}| | t t| ƒ¡¡ |j ¡  | 	¡ d  
¡ dksbJ ‚| 	¡ d	  
¡ dksnJ ‚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÷  rP   r"   r„   rÍ   rÎ   rÏ   rÃ   rü  r   r   r   Útest_change_interval_multiples  s   



rÿ  c               
   C   sØ  t  ¡ } |  dtj¡dksJ ‚|  dd¡dksJ ‚|  dd¡dks#J ‚|  dd¡dks-J ‚|  ¡  |  ¡ tjdddddtjj	dtjdddddtjj	dfksQJ ‚| j
t jksYJ ‚d}tj
 |¡}| j
|kshJ ‚|  d¡ | j
|kstJ ‚|  ¡  | 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s¯J ‚tjtdd t jdd W d   ƒ n1 sÇw   Y  tjtdd t jdd W d   ƒ d S 1 såw   Y  d S )Nr   ©r   r   r   )éþÿÿÿr   ré  rH   r   ZIcelandú
2022-01-10z
2022-01-08r>   r¿   r   r•  z Aiceland is not a valid timezonerf  ZAicelandr  z%tz must be string or tzinfo subclass.)r,   ZDateLocatorZnonsingularr   Úinfrõ   Zdatalim_to_dtr
   r•  r–  rŽ  rK   r    rŸ  Ú
set_tzinforö   Zset_data_intervalr-   r   rÌ   r   ræ  rç  Ú	TypeError)r¦   Ztz_strZ
iceland_tzr   r   r   Útest_DateLocator  sF   
þ
ÿ
þ
ÿÿ"þr  c                  C   sœ   t  d¡dks	J ‚tjdddd} t jd| ddksJ ‚t t jdd	g| dt dd
g¡k¡s1J ‚t  g ¡jdks;J ‚t  g tjdddd¡jdksLJ ‚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_datestr2numE  s   ÿ
þÿÿr	  Úkwarg)rx  rˆ  Zoffset_formatsc                 C   sd   t  ¡ }| ddgi}| › d}tjt|d t j|fi |¤Ž W d   ƒ d S 1 s+w   Y  d S )Nr`  rt  z argument must be a listrf  )r,   rô   r   ræ  rç  r   )r
  r¦   r¾  rg  r   r   r   Ú!test_concise_formatter_exceptionsQ  s   
"ÿr  c                  C   s8   t  ¡ } t  | ¡}|dƒdksJ ‚| d¡dksJ ‚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_call[  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   e  s    z(test_datetime_masked.<locals>.<listcomp>r   rÿ   )r   r   r   rþ   rf   r   r   )	r   r   r   rJ   Zmasked_greaterr   rP   r"   rS   )r   rh  Úmr'   r(   r   r   r   Útest_datetime_maskedb  s   r  rÁ  )iÀ½ðÿi€–˜ c                 C   sF   t jtd| › dd t | ¡ W d   ƒ d S 1 sw   Y  d S )NzDate ordinal z	 convertsrf  )r   ræ  rç  r,   r·   )rÁ  r   r   r   Útest_num2date_errorn  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s+J ‚d S )Ngj®<  jø@iÃ  r   é   r   rþ   i,B rH   gq®<  jø@rf   )r,   r·   r
   r•  r–  r   r   r   r   Útest_num2date_roundofft  s   ÿÿr  c               
   C   sV   t  tjdddddt jd¡} t  d¡}|| ƒdksJ ‚| d¡ || ƒdks)J ‚d S )	Nrú   r   r   rH   z%Y-%b-%d %H:%Mz2011-Jan-01 00:00zPacific/Kiritimatiz2011-Jan-01 14:00)r,   r-   r
   rK   ZDateFormatterr  )r%   rà   r   r   r   Útest_DateFormatter_settz|  s   ÿ

r  )Wr
   Zdateutil.tzr    Zdateutil.rruler‘   Únumpyr   r   Z
matplotlibr   r   Zmatplotlib.datesrL   r,   Zmatplotlib.pyplotZpyplotr   Zmatplotlib.testing.decoratorsr   Zmatplotlib.tickerZtickerrÐ   r*   ÚmarkZparametrizer0   r5   r=   rM   rW   r[   r^   rm   rr   rw   ry   rŒ   r“   r§   r°   r»   r¼   rÒ   rá   r   r   rù   r  r  r  r#  r[  rc  re  rj  rk  rr  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   Ú<module>   s"   ÿÿÿþû	

	






 
ÿ
ÿ
ÿ
ÿù

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

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