a
    ü
þdIß  ã                   @   s|  d dl Z d dlZd dlZd dlZd dlZd dlZd dlm	Z	m
Z
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¬„ ZSej d­d®ejTfdejUfd¯ejVfdnejWfd°ejXfd±ejYff¡d²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© úd/var/www/html/stable-diffusion-webui/venv/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    

r3   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/   r0   r    Únanr!   r&   Úassert_array_equal)r   r.   Útmplr1   r2   r   r   r   Útest_date2num_NaT6   s
    
r8   Úunits)ÚsÚmsÚusÚnsc                 C   s$   t  t d| ¡¡}t |¡s J ‚d S )Nr4   )r/   r0   r    Ú
datetime64Úisnan)r9   r7   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                    s    g | ]}ˆ t jd | d ‘qS ©r   r   r
   ©r   Úir   r   r   r   K   s   ÿz(test_date2num_masked.<locals>.<listcomp>é   )r   r   r   r   r   r   r   )Úmask)FTTFFFT©Útzinfoc                    s    g | ]}ˆ t jd | d ‘qS rD   r
   rE   r   r   r   r   T   s   ÿ)r   r    Úmar!   r   r/   r0   r&   r6   ZgetmaskÚUTC)ÚdatesZnpdatesr   r   r   Útest_date2num_maskedH   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/   r0   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_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   rP   )r"   rQ   Úaxhliner%   r    r>   r&   rS   rT   r/   r0   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   Zredr   rv   rg   r   )r   r"   rQ   Zaxvlinerq   r   rr   rl   r   r   r   Útest_date_axvline³   s    ÿry   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Ú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.tickerrz   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   )r9   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sjJ ‚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   )r9   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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   9  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   )rB   é   )rC   é-   c                 S   s   g | ]}|  ¡ ‘qS 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   rQ   r%   r[   r‡   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_unitM  r   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  r   zVtest_date_formatter_callable.<locals>.callable_formatting_function.<locals>.<listcomp>r   )rM   Ú_r   r   r   Úcallable_formatting_functionO  s    zBtest_date_formatter_callable.<locals>.callable_formatting_functioniöÿÿÿéÞ  rB   é   z25-12//2014)r/   r¤   Zscaledr   )r×   rÛ   Ú	formatterr   r   r   Útest_date_formatter_callableJ  s
    
rß   zdelta, expectedé (  ©Úweeksc                 C   s   g | ]}d | ‘qS ©z$\mathdefault{%d}$r   )r   r¨   r   r   r   r   Y  r   r   éÆ  i{  ra   r¾   r   c                 C   s   g | ]}d | ‘qS )z $\mathdefault{1990{-}01{-}%02d}$r   )r   rª   r   r   r   r   [  r   é    ©Úhoursc                 C   s   g | ]}d | ‘qS )z$\mathdefault{01{-}01\;%02d}$r   )r   Úhourr   r   r   r   ]  r   rb   r   ©Úminutesc                 C   s   g | ]}d | ‘qS )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sxJ ‚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_intervalr0   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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   rI   r   ræ   é   ©ÚmicrosecondsrÝ   é   é   éÿÿÿÿN)r   r/   rL   r   r„   Zdranger·   )ÚstartÚendrõ   Z	dateranger   r   r   Útest_drangeo  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ô   r0   ©Ú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: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ë   rB   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 ]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: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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"   rQ   r/   rñ   r  Úyaxisr‡   r£   rj   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   s   g | ]}t |ƒ‘qS r   ©r…   ©r   rÐ   r   r   r   r   E  r   z*test_concise_formatter.<locals>.<listcomp>é¼  é™  ra   r  )Ú1997ÚFebÚMarÚAprÚMayÚJunÚJulÚAugÚSepÚOctÚNovÚDecr  r   )
ÚJanÚ15r+  r7  r,  r7  r-  r7  r.  r7  r	  )r6  Ú05Ú09Ú13Ú17Ú21Ú25Ú29r+  r8  r9  ræ   )zJan-01ú04:00ú08:00ú12:00ú16:00ú20:00zJan-02r?  r@  rA  rB  ré   )r  ú00:05ú00:10ú00:15ú00:20r
  )	r  r8  Ú10r7  Ú20r=  Ú30Ú35Ú40r   )ú59.5r  ú00.5ú01.0ú01.5ú02.0ú02.5©r   r   r   ©r  r¸   r  r  rº   r¹   r  r   r   r   Útest_concise_formatter6  s>    
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿç
rU  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"   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_offsetg  s    


r]  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svJ ‚d S )Nro   r   r±   r   ra   r   )
r   r"   rQ   r%   r/   ZConciseDateConverterr[   Ú	converterr9   rq   )r   Úyr*   r+   Úconvr   r   r   Útest_concise_converter_stays  s    

ra  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   r[  rá   r   rZ  r   rX  rG   r¾   r*  )r"   rQ   r   r   r/   rñ   r  r[   r‡   r£   r%   rR   r\  rq   )r*   r+   r¸   r¹   r¦   rÞ   r   r   r   Útest_offset_changes”  s*    
ÿrb  c                 C   s   g | ]}d |f ‘qS rã   r   r'  r   r   r   r   °  r   r(  r)  r	  )r6  ú$\mathdefault{05}$ú$\mathdefault{09}$z$\mathdefault{13}$z$\mathdefault{17}$z$\mathdefault{21}$z$\mathdefault{25}$z$\mathdefault{29}$r+  rc  rd  )zJan$\mathdefault{{-}01}$ú$\mathdefault{04{:}00}$ú$\mathdefault{08{:}00}$ú$\mathdefault{12{:}00}$ú$\mathdefault{16{:}00}$z$\mathdefault{20{:}00}$zJan$\mathdefault{{-}02}$re  rf  rg  rh  )z$\mathdefault{59.5}$z$\mathdefault{00{:}00}$z$\mathdefault{00.5}$z$\mathdefault{01.0}$z$\mathdefault{01.5}$z$\mathdefault{02.0}$z$\mathdefault{02.5}$c                 C   sj   t   ddd¡}||  }tjdd}| ¡  |j t |¡t |¡¡ tj|dd}| |ƒ ¡|ksfJ ‚d S )Nr  r   Trí   rï   )	r   r/   rñ   rò   ró   rô   r0   r  r  )r  rº   r¸   r¹   r¦   rÞ   r   r   r   Útest_concise_formatter_usetex®  s    ri  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 minrk  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$  rl  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)  ra   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: 15rn  rs  ro  rs  rp  rs  rq  rs  r	  )rr  úday: 05úday: 09zday: 13zday: 17zday: 21zday: 25zday: 29rn  rt  ru  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: 02rv  rw  rx  ry  ré   )ú00 hr 00 minz00 hr 05 minz00 hr 10 minz00 hr 15 minz00 hr 20 minr
  )	rz  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 secrz  z00.500000 secz01.000000 secz01.500000 secz02.000000 secz02.500000 secrS  rT  r   rl  r   Útest_concise_formatter_formatsÏ  s$    ÿå 
r{  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)rZ  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$  r|  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)  ra   r  )z'97r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r  r   )
ÚJanuaryr7  ÚFebruaryr7  ZMarchr7  ZAprilr7  r.  r7  r	  )r~  r8  r9  r:  r;  r<  r=  r>  r  r8  r9  ræ   )z01-01r?  r@  rA  rB  rC  z01-02r?  r@  rA  rB  ré   )Ú00rD  rE  rF  rG  r
  )	r€  r8  rH  r7  rI  r=  rJ  rK  rL  r   )rM  z00.0rN  rO  rP  rQ  rR  rS  rT  r   r|  r   Útest_concise_formatter_zformats  s@    
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿç
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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   D  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ˆ  rW  ra   ré   )r„  z03:05z03:10z03:15z03:20rV  r
  )	r„  r8  rH  r7  rI  r=  rJ  rK  rL  z1997-Jan-01 03:00r   )rM  r„  rN  rO  rP  rQ  rR  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î   rƒ  r  )r  r  rƒ  r¦   r   r   r   r  d  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_tzc  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 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s¢J ‚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   rE   ©Zinterval_daysr.   r   r   r   Æ  r   z&_test_date2num_dst.<locals>.<listcomp>)r    rƒ  r”  r/   rL   r   r   r  r0   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ƒrT|  |¡}|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«  æ  s    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| f i |¤ŽS )N)r¨   r©   rª   rè   ÚminuteÚsecondr³   rJ   )r£  )ÚclsZ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   rE   ©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œ    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  é   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s J ‚|j|ks®J ‚|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Æ  @  s    z)test_rrulewrapper_pytz.<locals>.attach_tz)r   Ú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 )rp   r   )rÑ  r   r   rE   r‚  r   r   r   K  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ô   r0   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_pytzF  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ô   r0   )r  r  r°  r¦   r   r   r   Ú_create_year_locatorh  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_YearLocatorg  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   )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/   r0   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 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-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'   r0   Ú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   ƒ 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ô   r0   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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   r6  r   r7  r{   zJan 01 2020úJan 15 2020Z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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í  rQ   r%   r„   rÌ   rÍ   rÎ   rÂ   rñ  r   r   r   Útest_change_interval_multiplesñ  s    



rô  c                   C   sœ   t  tj¡| t ¡  t d¡ t d¡dks2J ‚t d¡dksDJ ‚t ¡  t d¡ t d¡dkshJ ‚t d¡dkszJ ‚W d   ƒ n1 sŽ0    Y  d S )	NrP   g   @ÆžBAg    xò%Ag    zò%Ag   ÀÆžBAræ  r   r   )	r   r‚   r   ÚMatplotlibDeprecationWarningr/   rU   rV   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Ü  rI   r   ZIcelandú
2022-01-10z
2022-01-08rA   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_intervalr0   r"   rÊ   r   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ù  ç    €ŽÒ@rA   r   r   r²   z2022-01)rì   z2022-02g    @–Ò@r   )r/   Zdatestr2numr   ré  r    rŠ   r!   ÚsizerÞ  r   r   r   Útest_datestr2numA  s    ÿþ
ÿÿr   Úkwarg)rm  r}  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 )NrZ  rj  z argument must be a listrë  )r/   rñ   r   rÙ  rÚ  r  )r  r¦   r°  rì  r   r   r   Ú!test_concise_formatter_exceptionsM  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_callW  s    
r  zspan, expected_locatorg{®Gáz”?é   éÈ   ro   c                 C   sL   t  tj¡, t | ¡\}}t||ƒs*J ‚W d   ƒ n1 s>0    Y  d S rª  )r   r‚   r   rõ  r/   Zdate_ticker_factoryr¤  )ÚspanZexpected_locatorr¦   rÚ   r   r   r   Útest_date_ticker_factory^  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   n  r   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   r_  Úmr*   r+   r   r   r   Útest_datetime_maskedk  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ë  )r   rÙ  rÚ  r/   r·   )r³  r   r   r   Útest_num2date_errorw  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 rI   gq®<  jø@rg   )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   rI   z%Y-%b-%d %H:%Mz2011-Jan-01 00:00zPacific/Kiritimatiz2011-Jan-01 14:00)r/   r0   r   rL   ZDateFormatterrû  )r(   rÞ   r   r   r   Útest_DateFormatter_settz…  s    ÿ

r  )_r   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parametrizer3   r8   r@   rN   rX   r\   r_   rn   rs   rx   ry   rŒ   r“   r§   r°   r»   r¼   rÑ   rß   r   r   rö   r   r  r  r  rU  r]  ra  rb  ri  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Ë   ZHourLocatorrˆ   ZWeekdayLocatorZMonthLocatorrÕ  r  r
  r  r  r  r   r   r   r   Ú<module>   s4  ÿÿÿþû	

	






 
ÿ
ÿ
ÿ
ÿù

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

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