o
    ‘i+Ý  ã                   @   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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„ Z0e&dRdS„ ƒZ1e&dTdU„ ƒZ2dVdW„ Z3dXdY„ Z4e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„ ƒZ5dgdh„ Z6didj„ Z7ej dZe j-d<d=dkd?„ e.dldmdBƒD ƒfe j-dndDg do¢fe j-dndGg dp¢fe j-d	d\g dq¢fg¡drds„ ƒZ8dtdu„ Z9dvdw„ Z:dxdy„ Z;dzd{„ Z<ed|gƒd}d~„ ƒZ=dd€„ Z>dd‚„ Z?dƒd„„ Z@d…d†„ ZAd‡dˆ„ ZBejjCd‰dŠ„ ƒZDejjCd‹dŒ„ ƒZEddŽ„ ZFdd„ 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š„ ZKd›dœ„ ZLddž„ ZMdŸd „ ZNd¡d¢„ ZOd£d¤„ ZPd¥d¦„ ZQej d§d¨¡d©dª„ ƒZRd«d¬„ ZSd­d®„ ZTej d¯d°¡d±d²„ ƒZUd³d´„ ZVdµd¶„ ZWd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© új/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/matplotlib/tests/test_dates.pyÚ
<listcomp>   s    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$   Úassert_array_equal)r   r,   Útmplr/   r0   r   r   r   Útest_date2num_NaT7   s
   
r6   Úunits)ÚsÚmsÚusÚnsc                 C   s$   t  t d| ¡¡}t |¡sJ ‚d S )Nr2   )r-   r.   r   Ú
datetime64Úisnan)r7   r5   r   r   r   Útest_date2num_NaT_scalarC   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   L   ó    ÿz(test_date2num_masked.<locals>.<listcomp>é   )r   r   r   r   r   r   r   )Úmask)FTTFFFT©Útzinfoc                    rB   rC   r	   rD   r   r   r   r   U   rF   )r
   r   Úmar   r   r-   r.   r$   r4   ZgetmaskÚUTC)ÚdatesZnpdatesr   r   r   Útest_date2num_maskedI   s(   ÿÿ
ÿÿÿ
ÿrN   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&   ÿÿ
ÿÿrX   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$   rS   rT   rW   r   r   r   Útest_date_not_emptys   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   rP   )r    rQ   Úaxhliner#   r   r<   r$   rS   rT   r-   r.   rU   rV   rW   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    rQ   ZaxhspanÚset_ylimr   Úsubplots_adjust©r,   Útfr(   r)   r   r   r   Útest_date_axhspan   s   ÿrn   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   ra   éÚ  rb   rc   rd   re   iÐ  r   )r
   r    rQ   ZaxvspanÚset_xlimr   Úautofmt_xdaterl   r   r   r   Útest_date_axvspanœ   s   ÿrs   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   ra   é   rc   r   ©ÚcolorZlwrg   r   rd   rh   )r
   r    rQ   r^   rj   r   rk   rl   r   r   r   Útest_date_axhline¨   s   ÿrx   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 )
Nro   r   ra   rb   Úredr   rv   rg   r   )r
   r    rQ   Zaxvlinerq   r   rr   rl   r   r   r   Útest_date_axvline´   s   ÿrz   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ÚWARNINGro   r   ra   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.tickerr{   N)ÚnameÚ	levelname)r   Úrecordr   r   r   Ú	<genexpr>Ö   s
   € ÿ
ÿz+test_too_many_date_ticks.<locals>.<genexpr>)Z	set_levelr
   r    rQ   ÚpytestÚwarnsÚUserWarningrq   ÚlenÚstrÚmessager#   r[   Úset_major_locatorr-   Ú
DayLocatorZget_major_locatorÚrecordsÚall)Zcaplogr,   rm   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-   rU   rV   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ÚRRuleLocatorr[   rˆ   Úset_major_formatterÚAutoDateFormatterÚautoscale_viewrr   )r7   r,   rm   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ÚdayrJ   é   )r-   r‰   r
   rL   Ú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 )	Nrg   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¦   rr   )r7   r,   rm   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   :  ó    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)rg   é7   )r@   é   )rA   é-   c                 S   rÂ   r   rÃ   rÅ   r   r   r   r   F  rÇ   Úminor)Úwhich)z30 08:15z30 08:45z30 09:15z30 09:45z30 10:15N)r    ÚrcParamsr
   rQ   r#   r[   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_unitN  s    z8test_date_formatter_callable.<locals>._Locator._get_unitN)Ú__name__Ú
__module__Ú__qualname__rÕ   r   r   r   r   Ú_LocatorM  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   Q  ó    zVtest_date_formatter_callable.<locals>.callable_formatting_function.<locals>.<listcomp>r   )rM   Ú_r   r   r   Úcallable_formatting_functionP  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_callableK  s
   
"râ   zdelta, expectedé (  ©Úweeksc                 C   ó   g | ]}d | ‘qS ©z$\mathdefault{%d}$r   )r   r©   r   r   r   r   Z  rÇ   r   éÆ  i{  ra   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Ç   rb   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   m  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_usetexX  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   rI   r   rê   é   ©Úmicrosecondsrà   é   é   éÿÿÿÿN)r
   r-   rL   r   r…   Zdranger¸   )ÚstartÚendrù   Z	dateranger   r   r   Útest_drangep  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:00ra   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ÿ   rg   r   rG   rg   )Ú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:00ra   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   A  rÇ   zMtest_concise_formatter.<locals>._create_auto_date_locator.<locals>.<listcomp>©r    rQ   r-   rõ   r!  Úyaxisrˆ   r¤   rj   rÎ   rÏ   Úget_yticklabels©r  r	  r(   r)   r§   rá   Ústsr   r   r   r
  8  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   F  rÇ   z*test_concise_formatter.<locals>.<listcomp>é¼  é™  ra   r  )Ú1997ÚFebÚMarÚAprÚMayÚJunÚJulÚAugÚSepÚOctÚNovÚDecr  r   )
ÚJanÚ15r2  r>  r3  r>  r4  r>  r5  r>  r  )r=  Ú05Ú09Ú13Ú17Ú21Ú25Ú29r2  r?  r@  rê   )zJan-01ú04:00ú08:00ú12:00ú16:00ú20:00zJan-02rF  rG  rH  rI  rí   )r   ú00:05ú00:10ú00:15ú00:20r  )	r   r?  Ú10r>  Ú20rD  Ú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_formatter7  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    rQ   r-   rõ   r!  r[   rˆ   r¤   r#   rÎ   rÏ   Ú
get_offset)r  r»   r¹   rº   r(   r)   r§   rá   r   r   r   Ú"test_concise_formatter_show_offseth  s   


rd  c                  C   sz   t   ddd¡t   ddd¡g} ddg}t ¡ \}}| | |¡ t ¡  |j_}|jjd u s.J ‚|j	| Ž  |jj|ks;J ‚d S )Nro   r   r²   r   ra   r   )
r
   r    rQ   r#   r-   ZConciseDateConverterr[   Ú	converterr7   rq   )r   Úyr(   r)   Úconvr   r   r   Útest_concise_converter_stays€  s   

rh  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   rb  rä   r   ra  r   r_  rG   r¿   r1  )r    rQ   r
   r   r-   rõ   r!  r[   rˆ   r¤   r#   rR   rc  rq   )r(   r)   r¹   rº   r§   rá   r   r   r   Útest_offset_changes•  s*   
ÿri  c                 C   s   g | ]}d |f ‘qS rç   r   r.  r   r   r   r   ±  rÜ   r/  r0  r  )r=  ú$\mathdefault{05}$ú$\mathdefault{09}$z$\mathdefault{13}$z$\mathdefault{17}$z$\mathdefault{21}$z$\mathdefault{25}$z$\mathdefault{29}$r2  rj  rk  )zJan$\mathdefault{{-}01}$ú$\mathdefault{04{:}00}$ú$\mathdefault{08{:}00}$ú$\mathdefault{12{:}00}$ú$\mathdefault{16{:}00}$z$\mathdefault{20{:}00}$zJan$\mathdefault{{-}02}$rl  rm  rn  ro  )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   rp  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 minrs  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*  ru  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/  r0  ra   r  )r1  ú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: 15rw  r|  rx  r|  ry  r|  rz  r|  r  )r{  úday: 05úday: 09zday: 13zday: 17zday: 21zday: 25zday: 29rw  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 secrZ  r[  r   ru  r   Útest_concise_formatter_formatsÐ  s&   ÿå 
ýr„  c               
      rq  )N)ra  z'%yz%Bz%m-%dz%Sz%S.%fc                    rt  )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/  r0  ra   r  )z'97r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r  r   )
ÚJanuaryr>  ÚFebruaryr>  ZMarchr>  ZAprilr>  r5  r>  r  )r‡  r?  r@  rA  rB  rC  rD  rE  rˆ  r?  r@  rê   )z01-01rF  rG  rH  rI  rJ  z01-02rF  rG  rH  rI  rí   )Ú00rK  rL  rM  rN  r  )	r‰  r?  rO  r>  rP  rD  rQ  rR  rS  r   )rT  z00.0rU  rV  rW  rX  rY  rZ  r[  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   E  rÇ   zPtest_concise_formatter_tz.<locals>._create_auto_date_locator.<locals>.<listcomp>)r    rQ   r-   rõ   r!  r(  rˆ   r¤   rj   rÎ   rÏ   r)  Zget_offset_textrÄ   )r  r	  rŒ  r(   r)   r§   rá   r+  r   r   r   r
  <  s   
z<test_concise_formatter_tz.<locals>._create_auto_date_locatorr  r   rI   r  rê   )ú03:00ú07:00ú11:00ú15:00ú19:00z23:00r  rŽ  r  r  r‘  r^  ra   rí   )r  z03:05z03:10z03:15z03:20r]  r  )	r  r?  rO  r>  rP  rD  rQ  rR  rS  z1997-Jan-01 03:00r   )rT  r  rU  rV  rW  rX  rY  r   )r
   ÚreplaceÚtimezoneÚutcr   )
r
  r¹   r  Znew_tzr  Zexpected_stringsZexpected_offsetrº   r#  Úoffsetr   r   r   Útest_concise_formatter_tz;  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
  e  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:00ra   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   rI   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_tzd  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 rt   )r
   r    rQ   r^   rj   r   Zinvert_yaxisrk   rl   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   rI   é!   rÊ   )rî   r  i€Q rÀ   ©r  ÚfreqZperiodsg    ´p&ArP   c                    s   g | ]}ˆ|ˆ   ‘qS r   r   rD   ©Zinterval_daysr,   r   r   r   Ç  ó    z&_test_date2num_dst.<locals>.<listcomp>)r¡   rŒ  r  r-   rL   r
   r   r  r.   r   r<   r   r¶   )Ú
date_rangeÚ
tz_convertZBRUSSELSrL   Ú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 )NrJ   Ú	normalize)ÚsuperÚ__sub__Úgetattrrª  Ú
isinstancer
   Ú
mk_tzaware)rÔ   ÚotherÚrrJ   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Ô   rJ   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´   rJ   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   rD   ©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   ÚdrI   r   r   r   	  rÜ   z9test_date2num_dst.<locals>.tz_convert.<locals>.<listcomp>r   )Zdt_listrJ   r   rI   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§  é   rI   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 )NrI   )r’  ©rÛ   Zzir   r   r   rÒ  (  s   z$test_rrulewrapper.<locals>.attach_tzrÎ  r   rÿ   r   r   )r¢  r§  rJ   Zuntilr   rI   r   )r×  r¡   rŒ  r  r
   r-   r    r¢   rÑ  ÚafterÚbeforeZ_base_tzinfoZ	_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Ò  A  s   
z)test_rrulewrapper_pytz.<locals>.attach_tz)r‚   Úimportorskipr×  r“  )rÜ  rÒ  r   r   r   Útest_rrulewrapper_pytz<  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 )rp   r   )rÝ  r
   r   rD   r‹  r   r   r   L  s
    ÿÿz)test_yearlocator_pytz.<locals>.<listcomp>ro   Tr—  r   r   r  )g{ŸªjÀa&Ag{Ÿªjšd&Ag{Ÿªjtg&Ag{ŸªjNj&Ag{Ÿªj*m&Ag{Ÿªjp&Ag{ŸªjÞr&ArP   )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$   rS   r¶   r·   r†   r¸   Zallcloser­   Zget_locator)rÜ  r   r§   rÒ   r»   r&  r   r‹  r   Útest_yearlocator_pytzG  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_locatori  s   ÿz.test_YearLocator.<locals>._create_year_locatorrè   r   rã   rä   ra   )r   rª   r«   r  rg   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_YearLocatorh  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   rI   rL   )r
   r-   rL   Ú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&ArP   )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-01rO   údatetime64[D]ÚintrP   rì  z1970-01-01T01:00:00gUUUUUU¥?ú1970-01-01T00:00:00z1970-01-01T12:00:00g      à?)r   r<   r-   rU   Z	get_epochr‚   rä  ÚRuntimeErrorrV   rÈ  r$   r%   r.   ÚfloatrS   )Ú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 unable©Úmatch)r   Úaranger-   rõ   Z	intervaldrö   r÷   rø   r.   r‚   rƒ   r„   )rM   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ø  rQ   r#   r…   rÎ   rÏ   rÐ   rÄ   r‚   rä  rå  ©rM   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ø  rQ   r#   r…   rÎ   rÏ   rÐ   rÄ   rý  r   r   r   Útest_change_interval_multiplesò  s   



r   c                   C   sÊ   t  ¡  t  d¡ t tj¡ t  d¡dksJ ‚t  d¡dks"J ‚W d   ƒ n1 s,w   Y  t  ¡  t  d¡ t tj¡ t  d¡dksJJ ‚t  d¡dksSJ ‚W d   ƒ d S 1 s^w   Y  d S )	NrP   g   @ÆžBAg    xò%Ag    zò%Ag   ÀÆžBArñ  r   r   )	r-   rU   rV   r‚   rƒ   ÚmplZMatplotlibDeprecationWarningZ
julian2numZ
num2julianr   r   r   r   Útest_julian2num  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ç  rI   r   ZIcelandú
2022-01-10z
2022-01-08r?   rÀ   r   r“  z Aiceland is not a valid timezonerö  ZAicelandr‹  z%tz must be string or tzinfo subclass.)r-   ZDateLocatorZnonsingularr   Úinfrö   Zdatalim_to_dtr
   r“  r”  rŒ  rL   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_datestr2numC  s   ÿ
þÿÿr  Úkwarg)rv  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 )Nra  rr  z argument must be a liströ  )r-   rõ   r‚   rä  rå  r!  )r  r§   r¼  r÷  r   r   r   Ú!test_concise_formatter_exceptionsO  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_callY  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   c  s    z(test_datetime_masked.<locals>.<listcomp>r   r   )r   r   r   rÿ   rg   r   r  )	r   r   r   rK   Zmasked_greaterr    rQ   r#   rT   )r   rf  Úmr(   r)   r   r   r   Útest_datetime_masked`  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	 convertsrö  )r‚   rä  rå  r-   r¸   )r¿  r   r   r   Útest_num2date_errorl  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 rI   gq®<  jø@rg   )r-   r¸   r
   r“  r”  r   r   r   r   Útest_num2date_roundoffr  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   rI   z%Y-%b-%d %H:%Mz2011-Jan-01 00:00zPacific/Kiritimatiz2011-Jan-01 14:00)r-   r.   r
   rL   ZDateFormatterr  )r&   rá   r   r   r   Útest_DateFormatter_settzz  s   ÿ

r  )Xr
   Zdateutil.tzr¡   Zdateutil.rruler’   Únumpyr   r‚   Z
matplotlibr  r   r   Zmatplotlib.datesrM   r-   Zmatplotlib.pyplotZpyplotr    Zmatplotlib.testing.decoratorsr   Zmatplotlib.tickerZtickerrÑ   r+   ÚmarkZparametrizer1   r6   r>   rN   rX   r\   r_   rn   rs   rx   rz   r   r”   r¨   r±   r¼   r½   rÓ   râ   r   r   rú   r  r  r  r$  r\  rd  rh  ri  rp  r„  rŠ  r–  rž  rŸ  r©  rÇ  rÍ  r×  rÛ  rÜ  rß  rà  rã  ræ  rê  rë  rî  rõ  rù  rþ  r   r  r	  r  r  r  r  r  r  r  r   r   r   r   Ú<module>   s$   ÿÿÿþû	

	





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

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

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