
    EVf+                     
   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 Zej0                  j3                  d e j                   dddd dd       e j                   dddd dd       e j                   dddddd      g e j                   dddd dd       e j                   dddddd      g e j                   dddddd       e j                   dddd	dd      ggg      ej0                  j3                  d
g d      d               Zej0                  j3                  d
g d      d        Zej0                  j3                  dg d      d        Zd Zd Zd Zd Z  edg      d        Z! edg      d        Z" edg      d        Z# edg      d        Z$d Z%d Z& edg      d         Z'd! Z(d" Z) ed#g      d$        Z*d% Z+d& Z,ej0                  j3                  d' e jZ                  d()       e.d*d+d,      D  cg c]  } d-| z  	 c} f e jZ                  d./       e.dd0d	      D cg c]  }d1|z  	 c}f e jZ                  d,2       e.d d3d      D cg c]  }d4|z  	 c}f e jZ                  d56       e.d d7      D cg c]  }d8|z  	 c}fg      d9        Z/d: Z0e&d;        Z1e&d<        Z2d= Z3d> Z4ej0                  j3                  d? e jZ                  d@A      dBf e jZ                  d6      dCf e jZ                  d2      dDf e jZ                  d/      dEf e jZ                  d)      dFf e jZ                  dG)      dHf e jZ                  dI)      dHfg      dJ        Z5dK Z6dL Z7ej0                  j3                  d? e jZ                  d()       e.dMdNd,      D cg c]  }d-|fz  
 c}f e jZ                  dO/      g dPf e jZ                  dO2      g dQf e jZ                  dA      g dRfg      dS        Z8dT Z9dU Z:dV Z;dW Z< edXg      dY        Z=dZ Z>d[ Z?d\ Z@d] ZAd^ ZBej0                  j                  d_        ZDej0                  j                  d`        ZEda ZFdb ZGdc ZHej0                  j3                  ddd e jZ                  d/      fddeg e jZ                  d/       e jZ                  de/      gfg      df        ZIdg ZJdh ZKdi ZLdj ZMdk ZNdl ZOdm ZPdn ZQej0                  j3                  dodp      dq        ZRdr ZSds ZTej0                  j3                  dtdu      dv        ZUdw ZVdx ZWyc c} w c c}w c c}w c c}w c c}w )y    N)
rc_contextstyle)image_comparisonc                  <   t        j                   ddd      } t        dd      D cg c]  }| t        j                  |      z    }}t        j                  |d      }t        j                  g d      }t        j                  d	
      }|j                  ddd      }|j                  ||      \  }|j                  ||      \  }t        j                  j                  |j                  d      |j                  d             t        j                  d	
      }|j                  ddd      }|j                  ||      \  }|j                  ||      \  }t        j                  j                  |j                  d      |j                  d             y c c}w )N     r      daysdatetime64[ns]dtype)               @      ?)
      )figsizeF)orig)datetimerange	timedeltanparraypltfigureadd_subplotplottestingassert_equal	get_xdata	get_ydata)	basextimetimenpdatafigaxhhnps	            d/var/www/html/software/conda/envs/catlas/lib/python3.12/site-packages/matplotlib/tests/test_dates.pytest_date_numpyxr-      s@   T1a(D7<Q{C!D8%%1--CDCXXd"23F88L!D
**W
%C	Aq	!B	t	BA7764 DCJJAKKUK3S]]]5NO
**W
%C	Aq	!B	t	BA774 DCJJAKKUK3S]]]5NO Ds    Ft0r   r   r   r	   r   )zdatetime64[s]zdatetime64[us]zdatetime64[ms]r   c                     t        j                  |       }t        j                  | |      }t        j                  |      }t        j                  j                  ||       y )Nr   )mdatesdate2numr   r   r   r    )r.   r   r%   tnpnptimes        r,   test_date_date2num_numpyr4   #   sD     ??2D
((2U
#C__S!FJJD&)    c                    t        j                   dddddd      }t        j                  |      t        j                  g}t        j
                  |dg|       }t        j                  |      }t        j                  j                  ||       y )Nr   r   r   NaTr   )r   r0   r1   r   nanr   r   assert_array_equal)r   r.   tmplr2   r3   s        r,   test_date2num_NaTr;   7   sk    
 
		4Aq!Q	/BOOB(D
((B;e
,C__S!FJJ!!$/r5   units)smsusnsc                     t        j                  t        j                  d|             }t        j                  |      sJ y )Nr7   )r0   r1   r   
datetime64isnan)r<   r:   s     r,   test_date2num_NaT_scalarrD   C   s+    ??2==67D88D>>r5   c            
      ,   t        j                   ddd      } t        j                  j                  t	        d      D cg c]  }| t        j
                  d|z        z     c}g d      }t        j                  |      }t        j                  j                  t        j                  j                  |      d	       t        j                   dddt        j                  
      } t        j                  j                  t	        d      D cg c]  }| t        j
                  d|z        z     c}g d      }t        j                  |      }t        j                  j                  t        j                  j                  |      d	       y c c}w c c}w )N           r   r
   )r   r   r   r   r   r   r   )mask)FTTFFFTtzinfo)r   r   mar   r   r   r0   r1   r   r9   getmaskUTC)r#   idatesnpdatess       r,   test_date2num_maskedrS   I   s6   T2r*DEEKK"'(,  2 2Q @@ ,2G  IEooe$GJJ!!"%%--"8#)*
 T2r&**=DEEKK"'(,  2 2Q @@ ,2G  IEooe$GJJ!!"%%--"8#)*,,s   #F#Fc            	      J   t        j                         \  } }|j                          | j                          t        j
                  j                  |j                         t        j                  t	        j                  d            t        j                  t	        j                  d            g       t        j                          t        j                  d       t        j                         \  } }|j                          | j                          t        j
                  j                  |j                         t        j                  t	        j                  d            t        j                  t	        j                  d            g       t        j                          y )N
1970-01-01z
1970-01-02
0000-12-31)r   subplots
xaxis_datedraw_without_renderingr   r   assert_allcloseget_xlimr0   r1   rB   _reset_epoch_test_example	set_epochr(   r)   s     r,   test_date_emptyr_   ]   s    llnGCMMO JJr{{} &l0K L &l0K L NO $$&
\"llnGCMMO JJr{{} &l0K L &l0K L NO $$&r5   c                     t        j                         } | j                         }|j                  ddgddg       |j                  j                          t        j                  j                  |j                         ddg       y )N2   F   r   r   )
r   r   r   r   xaxis	axis_dater   r   rZ   r[   r^   s     r,   test_date_not_emptyre   s   s]    
**,C		BGGRHq!fHHJJr{{}r2h7r5   c            	         t        j                         \  } }|j                  d       |j                  t	        j
                  d      t	        j
                  d      gddg       t        j                  j                  |j                         t        j                  t	        j
                  d            t        j                  t	        j
                  d            g       t        j                          t        j                  d       t        j                         \  } }|j                  d       |j                  t	        j
                  d      t	        j
                  d      gddg       t        j                  j                  |j                         t        j                  t	        j
                  d            t        j                  t	        j
                  d            g       t        j                          y )N      ?z
2016-01-01z
2016-01-02r   r   rV   )r   rW   axhliner   r   rB   r   rZ   r[   r0   r1   r\   r]   r^   s     r,   test_axhlineri   |   sH   llnGCJJsOGGR]]<("--*EFAOJJr{{} &l0K L &l0K L NO $$&
\"llnGCJJsOGGR]]<("--*EFAOJJr{{} &l0K L &l0K L NO $$&r5   zdate_axhspan.pngc                  \   t        j                   ddd      } t        j                   ddd      }t        j                         \  }}|j                  | |dd       |j	                  | t        j
                  d	      z
  |t        j
                  d	      z          |j                  d
       y )N  r         blue      ?	facecoloralpha   r
   left)r   r   rW   axhspanset_ylimr   subplots_adjustr.   tfr(   r)   s       r,   test_date_axhspanr{      s     
		4B	'B			4B	'BllnGCJJr2tJ4KKX''Q//X''Q//1T"r5   zdate_axvspan.pngc                  X   t        j                   ddd      } t        j                   ddd      }t        j                         \  }}|j                  | |dd       |j	                  | t        j
                  d	
      z
  |t        j
                  d	
      z          |j                          y )N  r   rl     rm   rn   ro   rp   i  r
   )r   r   rW   axvspanset_xlimr   autofmt_xdatery   s       r,   test_date_axvspanr      s     
		4B	'B			4B	'BllnGCJJr2tJ4KKX''S11X''S113r5   zdate_axhline.pngc                  Z   t        j                   ddd      } t        j                   ddd      }t        j                         \  }}|j                  | dd       |j	                  | t        j
                  d	      z
  |t        j
                  d	      z          |j                  d
       y Nrk   r   rl      rn   r	   colorlwrs   r
   ro   rt   )r   r   rW   rh   rw   r   rx   ry   s       r,   test_date_axhliner      s     
		4B	'B			4B	'BllnGCJJrAJ&KKX''Q//X''Q//1T"r5   zdate_axvline.pngc                  V   t        j                   ddd      } t        j                   ddd      }t        j                         \  }}|j                  | dd       |j	                  | t        j
                  d	      z
  |t        j
                  d	      z          |j                          y )
Nr}   r   rl   rm   redr	   r   rs   r
   )r   r   rW   axvliner   r   r   ry   s       r,   test_date_axvliner      s     
		4B	'B			4B	'BllnGCJJr1J%KKX''Q//X''Q//1r5   c                    | j                  d       t        j                  ddd      }t        j                  ddd      }t        j                         \  }}t	        j
                  t              5 }|j                  ||fd       t        |      dk(  sJ dt        |d   j                        v sJ 	 d d d        |j                  g g        |j                  j                  t        j                                 |j                  j!                                }t        |      d	kD  sJ | j"                  rt%        d
 | j"                  D              sJ t        | j"                        dkD  sJ y # 1 sw Y   xY w)NWARNINGr}   r   rl   T)autoz.Attempting to set identical low and high xlimsr     c              3   \   K   | ]$  }|j                   d k(  xr |j                  dk(   & yw)zmatplotlib.tickerr   N)name	levelname).0records     r,   	<genexpr>z+test_too_many_date_ticks.<locals>.<genexpr>   s5      "& 	**Lv/?/?9/LL"&s   *,)	set_levelr   r   rW   pytestwarnsUserWarningr   lenstrmessager   rc   set_major_locatorr0   
DayLocatorget_major_locatorrecordsall)caplogr.   rz   r(   r)   recvs          r,   test_too_many_date_ticksr      sG    Y			4B	'B			4B	'BllnGC	k	" (c
RH4(3x1}}@s1v~~&' 	( '(
 GGBOHHv0023$""$&Aq6D== >>c "&nn"& & & & v~~"""( (s   0AE..E7c                 B     t        j                          fd       }|S )Nc                      t        j                          t        j                  d                 t        j                          y )N
2000-01-01)r0   r\   r]   )thefuncs   r,   wrapperz%_new_epoch_decorator.<locals>.wrapper   s.    ((*&	((*r5   )	functoolswraps)r   r   s   ` r,   _new_epoch_decoratorr      s%    __W+ +
 Nr5   zRRuleLocator_bounds.pngc                     dd l mc m}  | j                          t	        j                  ddd      }t	        j                  ddd      }t        j                         }t        j                         }|j                  d       |j                  ||gddgd	       t        j                  t        j                  j                  d
      }t        j                  |      }|j                   j#                  |       |j                   j%                  t        j&                  |             |j)                          |j+                          y )Nr   r   r   ip  Tr   r   omarker  interval)matplotlib.testing.jpl_unitsr   	jpl_unitsregisterr   r   r   subplotset_autoscale_onr   r0   rrulewrapperdateutilrruleYEARLYRRuleLocatorrc   r   set_major_formatterAutoDateFormatterautoscale_viewr   )r<   r.   rz   r(   r)   r   locators          r,   test_RRuleLocatorr      s    00	NN 
		4A	&B			4A	&B
**,C	BGGRHsCjG- 5 5DE!!%(GHHw'HH  !9!9'!BCr5   c                      t        j                         } t        j                  dddt         j                        }t        j                  dddt         j                        }| j	                  ||       y )Nr   )yearmonthdayrL      )r0   r   r   rO   tick_values)locx1y1s      r,   test_RRuleLocator_dayranger      sR    



C			&**	EB			6::	FBOOBr5   c                  x   t        j                  t        j                  j                  d      } t        j
                  |       }t        j                  ddd      }t        j                  dddd      }ddg}t        t        t        t        j                  |j                  ||                        |k(  sJ y )	Nrs   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)r0   r   r   r   SECONDLYr   r   listmapr   num2dater   )r   r   d1d2expecteds        r,   test_RRuleLocator_close_minmaxr     s      7 7!DE


e
$C			A1	5B			A1!	DB+24HCR)@ABCxOOOr5   z#DateFormatter_fractionalSeconds.pngc                     dd l mc m}  | j                          t	        j                  dddddd      }t	        j                  dddddd      }t        j                         }t        j                         }|j                  d       |j                  ||gddgd       |j                          |j                          y )	Nr   i  r   Tr   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   )r<   r.   rz   r(   r)   s        r,   test_DateFormatterr     s    00	NN
 
		4Aq!Q	/B			4Aq!Q	/B
**,C	BGGRHsCjG- r5   c            	      d   dt         j                  d<   t        j                  ddddd      t        j                  ddddd      t        j                  dddd	d      g} g d
}t        j                         \  }}|j	                  | |       |j
                  j                  t        j                  d             |j                  j                          |j                         D cg c]  }|j                          }}g d}||k(  sJ |j
                  j                  t        j                                |j
                  j                  t        j                  d             t        j                  d      }|j
                  j!                  t        j"                  |             |j
                  j                  t        j                  d             |j                  j                          |j                  d      D cg c]  }|j                          }}g d}||k(  sJ yc c}w c c}w )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   )z30 08:00z30 08:30z30 09:00z30 09:30z30 10:00z30 10:30)rs   7   )rG      )rH   -   minor)which)z30 08:15z30 08:45z30 09:15z30 09:45z30 10:15N)r   rcParamsr   rW   r   rc   r   r0   MinuteLocatorcanvasdrawget_xticklabelsget_textmtickerNullLocatorset_minor_locatorset_minor_formatterr   )tr$   r(   r)   tl
ticklabelsr   	decoy_locs           r,   test_locator_set_formatterr   +  s   
 1;CLL,-			4B1	-			4B2	.			4BB	/	1A 	AllnGCGGAqMHHv33G<=JJOO*,*<*<*>?B"++-?J?4H!!!HHw2245HHv33G<=$$X.IHH  !9!9)!DEHHv33H=>JJOO*,*<*<7*<*KLB"++-LJLKH!!! @ Ms   %H(H-c                       G d d      } d }t        j                   |              }||j                  d<    |t        j                  ddd      g      dgk(  sJ y )	Nc                       e Zd Zd Zy).test_date_formatter_callable.<locals>._Locatorc                      y)Ni )selfs    r,   	_get_unitz8test_date_formatter_callable.<locals>._Locator._get_unitN  s    Cr5   N)__name__
__module____qualname__r   r   r5   r,   _Locatorr   M  s    'r5   r  c                 J    | D cg c]  }|j                  d       c}S c c}w )Nz	%d-%m//%Y)strftime)rQ   _dts      r,   callable_formatting_functionzBtest_date_formatter_callable.<locals>.callable_formatting_functionP  s    389RK(999    i  rG      z25-12//2014)r0   r   scaledr   )r  r  	formatters      r,   test_date_formatter_callabler  K  s\    ( (: ((4I8ISh''b"567M?JJJr5   zdelta, expected(  weeks  i{  rl   z$\mathdefault{%d}$r   r
       z $\mathdefault{1990{-}01{-}%02d}$hoursrm   z$\mathdefault{01{-}01\;%02d}$r   minutes   z$\mathdefault{01\;00{:}%02d}$c                    t        j                  d       t        j                  ddd      }|| z   }t        j                  d      }|j                          |j                  j                  t        j                  |      t        j                  |             t        j                  |d      } |       D cg c]
  } ||       c}|k(  sJ y c c}w )Ndefaultr  r   Finterval_multiplesTusetex)
r   user   r0   AutoDateLocatorcreate_dummy_axisaxisset_view_intervalr1   r   )deltar   r   r   r   r  r   s          r,   test_date_formatter_usetexr$  X  s     
IIi			4A	&B	eB$$>GLL""6??2#68KL((>I&-i0sIcN0H<<<0s   :Cc                     t        j                   dddt        j                        } t        j                   dddt        j                        }t        j                  d      }t	        t        j
                  | ||            dk(  sJ |t        j                  d      z
  }t	        t        j
                  | ||            dk(  sJ |t        j                  d      z   }t	        t        j
                  | ||            dk(  sJ t        j                   dddt        j                        }t        j                  d	      }t        j
                  | ||      }t	        |      d
k(  sJ t        j                  |d         ||z
  k(  sJ y)zj
    This test should check if drange works as expected, and if all the
    rounding errors are fixed
      r   rK   r   r     microsecondsr
        N)r   r0   rO   r   r   dranger   )startendr#  	dateranges       r,   test_dranger1  p  sI   
 dAq<E


D!Qvzz
:CQ'E v}}UC/0B666 ""2
2Cv}}UC/0B666 ""2
2Cv}}UC/0B666 

D!Qvzz
:C Q'EeS%0Iy>Q??9R=)cEk:::r5   c            
         d } t        j                   ddd      }t        j                  d      g dgt        j                  d      g dgt        j                  d	
      g dgt        j                  d
      g dgt        j                  d      g dgt        j                  d      g dgt        j                  d      g dgt        j                  d      g dgf}|D ]I  \  }}||z   } | ||      }t        t        t        t        j                   |                         |k(  rIJ  t        j                  d      }|j                  ddddddddk(  sJ t        j                  t        j                  j                  di      }|j                  ddddddddk(  sJ t        j                  d      }|j                  ddddddddk(  sJ y ) Nc                     t        j                  d      }|j                           |j                  j                  t        j
                  | |g        |S )NFr  r0   r  r   r!  r"  r1   date1date2r   s      r,   _create_auto_date_locatorz9test_auto_date_locator.<locals>._create_auto_date_locator  sD    ((EB!!#&&&(GHr5   r  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:004   )r9  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  )r9  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:00rl   r  )r9  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)	r9  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:00r9  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  rG   r   )r   r   r	   r*  rs   r+  rI   rs   )maxticks)r   r   r   r   r   r0   r   r  r@  r   r   MONTHLY)r8  r   resultst_deltar   r   r   s          r,   test_auto_date_locatorrD    s    
		4A	&B""2K "",K "",. ""+K
 "",. ""2..
 ""2.. ""55]6Gp % F'\+B3CV__WY789XEEEF
 $$>G2"rbQOOOO$$x~~/E/Eq.IJG2!rbRANNNN$$a0G1qQ1qIIIIr5   c            
      h   d } t        j                  d      g dgt        j                  d      g dgt        j                  d      g d	gt        j                  d
      g dgt        j                  d
      g dgt        j                  d      g dgt        j                  d
      g dgt        j                  d      g dgf}t        j                   ddd      }|D ]I  \  }}||z   } | ||      }t        t        t        t        j                   |                         |k(  rIJ  y )Nc                     t        j                  d      }|j                           |j                  j                  t        j
                  | |g        |S NTr  r4  r5  s      r,   r8  zAtest_auto_date_locator_intmult.<locals>._create_auto_date_locator  sD    ((DA!!#&&&(GHr5   r  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
   )
rI  z1997-01-15 00:00:00+00:00rJ  z1997-02-15 00:00:00+00:00rK  z1997-03-15 00:00:00+00:00rL  z1997-04-15 00:00:00+00:00rM  z1997-05-15 00:00:00+00:00r<  )rI  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:00rJ  z1997-02-05 00:00:00+00:00z1997-02-09 00:00:00+00:00r  )rI  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:00rl   r  )rI  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=  )	rI  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:00rI  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   r0   r   )r8  rB  r   rC  r   r   r   s          r,   test_auto_date_locator_intmultrP    sI    ""2K "",K "",K ""+. "",. ""2..
 ""2.. ""55g;Gz 
		4A	&B$ F'\+B3CV__WY789XEEEFr5   c                      t        j                  d      } t        j                  |       }d}|j                  ||dt         j                  z  z   |dt         j                  z  z   g      }|g dk(  sJ y )NTr  g    B@r   i  )00:00z00.0005z00.0009)r0   r  ConciseDateFormatterformat_ticksMUSECONDS_PER_DAY)r   r  	year_1996stringss       r,    test_concise_formatter_subsecondrX  ,  sv    $$=G++G4II$$C&2222C&2222&4 5G 5555r5   c            
      T   d } t        j                   ddd      }t        j                  d      t        ddd      D cg c]  }t        |       c}gt        j                  d	      g d
gt        j                  d      g dgt        j                  d      g dgt        j                  d      g dgt        j                  d      g dgt        j                  d      g dgt        j                  d      g dgf}|D ]  \  }}||z   } | ||      }||k(  rJ  y c c}w )Nc                    t        j                         \  }}t        j                  d      }t        j                  |      }|j
                  j                  |       |j
                  j                  |       |j                  | |       |j                  j                          |j                         D cg c]  }|j                          }}|S c c}w rG  r   rW   r0   r  rS  yaxisr   r   rw   r   r   get_yticklabelsr   )r6  r7  r(   r)   r   r  ststss           r,   r8  z9test_concise_formatter.<locals>._create_auto_date_locator8  s    ,,.R((DA//8	
""7+
$$Y/
E5!

')'9'9';<r{{}<<
 =s   7CrN  r   r  r      rl   r:  )1997FebMarAprMayJunJulAugSepOctNovDecr;  r
   )
Jan15rc  ro  rd  ro  re  ro  rf  ro  r<  )rn  05091317212529rc  rp  rq  r  )zJan-0104:0008:0012:0016:0020:00zJan-02rw  rx  ry  rz  r  )rR  00:0500:1000:1500:20r=  )	rR  rp  10ro  20ru  303540r   )59.5rR  00.501.001.502.002.5r   r   r   r   )r8  r   r   rB  rC  r   r   rW  s           r,   test_concise_formatterr  7  s@   
 
		4A	&B""2!&tT2!67AQ7 "",- "", ""+ "",? ""2.= ""2.I ""1-I3G: % #'\+B3("""#9 8s   D%zt_delta, expectedg{Gz?r=  z1997-Jan-01 00:00z1997-Jan-01 00:011997-Jan-011997-Jan-021997-Jan      c                    t        j                   ddd      }|| z   }t        j                         \  }}t        j                         }t        j
                  |      }|j                  j                  |       |j                  j                  |       |j                  ||gddg       |j                  j                          |j                         |k(  sJ y )NrN  r   r   )r   r   rW   r0   r  rS  rc   r   r   r   r   r   
get_offset)rC  r   r   r   r(   r)   r   r  s           r,   "test_concise_formatter_show_offsetr  h  s     
		4A	&B	gBllnGC$$&G++G4IHHw'HH  +GGRHq!fJJOO!X---r5   c                     t        j                   ddd      t        j                   ddd      g} ddg}t        j                         \  }}|j                  | |       t	        j
                         x|j                  _        }|j                  j                  J  |j                  |   |j                  j                  |k(  sJ y )Nr}   r   r   r   rl   r   )
r   r   rW   r   r0   ConciseDateConverterrc   	converterr<   r   )r$   yr(   r)   convs        r,   test_concise_converter_staysr    s     
		4A	&(9(9$2(FGA	
AAllnGCGGAqM & ; ; ==BHH88>>!!!BKKO88%%%r5   c                     t        j                         \  } }t        j                  ddd      }|t        j                  d      z   }t	        j
                         }t	        j                  |      }|j                  j                  |       |j                  j                  |       |j                  ||gddg       | j                          |j                         dk(  sJ |j                  ||t        j                  d      z          | j                          |j                         dk(  sJ |j                  |t        j                  d	      z   |t        j                  d
      z          | j                          |j                         dk(  sJ |j                  ||t        j                  d      z          | j                          |j                         dk(  sJ y )NrN  r   r  r  r   r  r	   r  rI   r   rb  )r   rW   r   r   r0   r  rS  rc   r   r   r   rY   r  r   )r(   r)   r   r   r   r  s         r,   test_offset_changesr    s   llnGC			4A	&B	h  s+	+B$$&G++G4IHHw'HH  +GGRHq!f !R'''KKB++!445 !Z///KKX''a00X''b113 !V+++KKB++#667 !R'''r5   r`  ra  r<  )rn  $\mathdefault{05}$$\mathdefault{09}$z$\mathdefault{13}$z$\mathdefault{17}$z$\mathdefault{21}$z$\mathdefault{25}$z$\mathdefault{29}$rc  r  r  )zJan$\mathdefault{{-}01}$$\mathdefault{04{:}00}$$\mathdefault{08{:}00}$$\mathdefault{12{:}00}$$\mathdefault{16{:}00}$z$\mathdefault{20{:}00}$zJan$\mathdefault{{-}02}$r  r  r  r  )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                 p   t        j                   ddd      }|| z   }t        j                  d      }|j                          |j                  j                  t        j                  |      t        j                  |             t        j                  |d      }|j                   |             |k(  sJ y )NrN  r   Tr  r  )	r   r0   r  r   r!  r"  r1   rS  rT  )rC  r   r   r   r   r  s         r,   test_concise_formatter_usetexr    s    , 
		4A	&B	gB$$=GLL""6??2#68KL++GDAI!!'),888r5   c            
      b   g dfd} t        j                   ddd      }t        j                  d      t        ddd	      D cg c]  }t        |       c}gt        j                  d
      g dgt        j                  d      g dgt        j                  d      g dgt        j                  d      g dgt        j                  d	      g dgt        j                  d      g dgt        j                  d      g dgf}|D ]  \  }}||z   } | ||      }||k(  rJ  y c c}w )N)%Yz%m/%Yzday: %d%H hr %M minr  z	%S.%f secc                    t        j                         \  }}t        j                  d      }t        j                  |      }|j
                  j                  |       |j
                  j                  |       |j                  | |       |j                  j                          |j                         D cg c]  }|j                          }}|S c c}w )NTr  )formatsr[  )	r6  r7  r(   r)   r   r  r^  r_  r  s	           r,   r8  zAtest_concise_formatter_formats.<locals>._create_auto_date_locator  s    ,,.R((DA//I	
""7+
$$Y/
E5!

')'9'9';<r{{}<<
 =   :CrN  r   r  r  r`  ra  rl   r:  )rb  02/199703/199704/199705/1997z06/1997z07/1997z08/1997z09/1997z10/1997z11/1997z12/1997r;  r
   )
01/1997day: 15r  r  r  r  r  r  r  r  r<  )r  day: 05day: 09zday: 13zday: 17zday: 21zday: 25zday: 29r  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 secr  )	r8  r   r   rB  rC  r   r   rW  r  s	           @r,   test_concise_formatter_formatsr    sQ   <G
 
		4A	&B			(	+eD	r? .c!f . 				"	% ( 	 
			% ( 	 
			$ ' 	 
		"	% ( 	
 
		B	' *9 	:			B	' * 	
 
		A	& ) 	7
G@ % #'\+B3("""#?.   D,c            
      b   g dfd} t        j                   ddd      }t        j                  d      t        ddd	      D cg c]  }t        |       c}gt        j                  d
      g dgt        j                  d      g dgt        j                  d      g dgt        j                  d      g dgt        j                  d	      g dgt        j                  d      g dgt        j                  d      g dgf}|D ]  \  }}||z   } | ||      }||k(  rJ  y c c}w )N)r  z'%yz%Bz%m-%dz%Sz%S.%fc                    t        j                         \  }}t        j                  d      }t        j                  |      }|j
                  j                  |       |j
                  j                  |       |j                  | |       |j                  j                          |j                         D cg c]  }|j                          }}|S c c}w )NTr  )zero_formatsr[  )	r6  r7  r(   r)   r   r  r^  r_  r  s	           r,   r8  zBtest_concise_formatter_zformats.<locals>._create_auto_date_locator
  s    ,,.R((DA//,0	
""7+
$$Y/
E5!

')'9'9';<r{{}<<
 =r  rN  r   r  r  r`  ra  rl   r:  )z'97rc  rd  re  rf  rg  rh  ri  rj  rk  rl  rm  r;  r
   )
Januaryro  Februaryro  Marchro  Aprilro  rf  ro  r<  )r  rp  rq  rr  rs  rt  ru  rv  r  rp  rq  r  )z01-01rw  rx  ry  rz  r{  z01-02rw  rx  ry  rz  r  )00r|  r}  r~  r  r=  )	r  rp  r  ro  r  ru  r  r  r  r   )r  z00.0r  r  r  r  r  r  )	r8  r   r   rB  rC  r   r   rW  r  s	           @r,   test_concise_formatter_zformatsr    sG   <L 
		4A	&B""2!&tT2!67AQ7 "",> "",6 ""+8 "",A ""2.: ""2.F ""1-H3G: % #'\+B3("""#9 8r  c                     d } t        j                   ddd      j                  t         j                  j                        }t        j                  d      g ddgt        j                  d	
      g ddgt        j                  d      g ddgt        j                  d      g ddgf}t        j                  t        j                  d            }|D ]&  \  }}}||z   } | |||      \  }}	||k(  sJ |	|k(  r&J  y )Nc                    t        j                         \  }}t        j                  d      }t        j                  ||      }|j
                  j                  |       |j
                  j                  |       |j                  | |       |j                  j                          |j                         D cg c]  }|j                          }}||j
                  j                         j                         fS c c}w )NTr  tz)r   rW   r0   r  rS  r\  r   r   rw   r   r   r]  r   get_offset_text)	r6  r7  r  r(   r)   r   r  r^  r_  s	            r,   r8  z<test_concise_formatter_tz.<locals>._create_auto_date_locator<  s    ,,.R((DA//B?	
""7+
$$Y/
E5!

')'9'9';<r{{}<<BHH,,.77999 =s   9C<rN  r   rK   r<  r  )03:0007:0011:0015:0019:00z23:00r  r  r  r  r  r  rl   r  )r  z03:05z03:10z03:15z03:20r  r=  )	r  rp  r  ro  r  ru  r  r  r  z1997-Jan-01 03:00r   )r  r  r  r  r  r  r  r	   )r   replacetimezoneutcr   )
r8  r   rB  new_tzrC  expected_stringsexpected_offsetr   rW  offsets
             r,   test_concise_formatter_tzr  ;  s   
: 
		4A	&	.	.h6G6G6K6K	.	LB"",>
 ""2.= ""2.I# ""1-I#G& x11:;F6= )2!?'\3BFC****(((	)r5   c                     d } t        j                  d      g dgt        j                  d      g dgt        j                  d      g d	gt        j                  d
      g dgt        j                  d
      g dgt        j                  d      g dgt        j                  d
      g dgf}t        j                  j	                  d      }t        j                   ddd|      }|D ]e  \  }}t        ddi      5  ||z   } | |||      }t        t        t        t        j                   |       |                  }||k(  sJ 	 d d d        g y # 1 sw Y   rxY w)Nc                     t        j                  d|      }|j                           |j                  j                  t        j
                  | |g        |S )NTr  r  r4  )r6  r7  r  r   s       r,   r8  zDtest_auto_date_locator_intmult_tz.<locals>._create_auto_date_locatore  sF    ((DRH!!#&&&(GHr5   r  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:00rl   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/PacificrN  r   rK   z_internal.classic_modeFr  )r   r   r   r  gettzr   r   r   r   r0   r   )	r8  rB  r  r   rC  r   r   r   r^  s	            r,   !test_auto_date_locator_intmult_tzr  d  ss    ""0K "",K "",K ""+. "",. ""2..
 ""2..Y3Gj 
		+	,B			4Ab	1B$ "159: 	"gB/B;Gc#vwyR@ABB>!>		" 	""	" 	"s   A
EE!	zdate_inverted_limit.pngc                  z   t        j                   ddd      } t        j                   ddd      }t        j                         \  }}|j                  | dd       |j	                  | t        j
                  d	      z
  |t        j
                  d	      z          |j                          |j                  d
       y r   )r   r   rW   rh   rw   r   invert_yaxisrx   ry   s       r,   test_date_inverted_limitr    s     
		4B	'B			4B	'BllnGCJJrAJ&KKX''Q//X''Q//1OOT"r5   c                    t         j                  j                  d      }t        j                  }t        j
                  ddddd|      }t        j                  dd	      }|j                  d
z  }d} | |||      } |||      }	dt        j                  t        j                  d            z   }
t        |      D cg c]
  }|
||z  z    }}t        t        j                  |	            }||k(  sJ y c c}w )NzEurope/Brusselsr	  r	   r   r   rK   !   r   )r  r>  iQ r   )r.  freqperiodsg    p&ArV   )r   r  r  r0   rO   r   r   r>  r1   r   rB   r   r   )
date_range
tz_convertBRUSSELSrO   dtstartr   interval_daysNdt_utcdt_bxlr.   rP   expected_ordinalfactual_ordinalfs                 r,   _test_date2num_dstr    s     {{  !23H
**C aQ#>G!!"b9H$$u,M	AgHa@F)F	FOOBMM,$?@	@B;@8Daq=01DD6??623O//// Es   ?C6c                  `     G d dt         j                         fd} d }t        | |       y )Nc                   F     e Zd ZdZ fdZ fdZ fdZed        Z xZ	S )%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                     t         |   |      }t        |dd       }| t        |dd       }||j                  |      }t	        |t
        j
                        r| j                  |      }|S )NrL   	normalize)super__sub__getattrr  
isinstancer   
mk_tzaware)r   otherrrL   	localizer	__class__s        r,   r  z-test_date2num_dst.<locals>.dt_tzaware.__sub__  sl    &AQ$/F!#FK>	(((+A!X../OOA&Hr5   c                 @    | j                  t        | 	  |            S N)r  r  __add__)r   r  r  s     r,   r  z-test_date2num_dst.<locals>.dt_tzaware.__add__  s    ??57?5#9::r5   c                 D    t         |   |      }| j                  |      S r  )r  
astimezoner  )r   rL   r  r  s      r,   r  z0test_date2num_dst.<locals>.dt_tzaware.astimezone  s!    #F+B??2&&r5   c                 R    i }d}|D ]  }t        ||d       }||||<     | di |S )N)r   r   r   hourminutesecondr   rL   r   )r  )clsdatetime_objkwargsattrsattrvals         r,   r  z0test_date2num_dst.<locals>.dt_tzaware.mk_tzaware  sI    FE  'lD$7?#&F4L'
 == r5   )
r   r   r  __doc__r  r  r  classmethodr  __classcell__)r  s   @r,   
dt_tzawarer    s+    			;	' 
	! 
	!r5   r  c                 n    j                  |       }t        |      D cg c]
  }|||z  z    c}S c c}w r  )r  r   )r.  r  r  r  rP   r  s        r,   r  z%test_date2num_dst.<locals>.date_range  s4    ''..3Gn=1t8$===s   2c                 J    | D cg c]  }|j                  |       c}S c c}w r  )r  )dt_listrL   ds      r,   r  z%test_date2num_dst.<locals>.tz_convert  s    .56V$666r  )r   r  )r  r  r  s     @r,   test_date2num_dstr    s,    .!X&& .!b>7 z:.r5   c                 <      fd}t         j                  |       y )Nc                  \     j                   j                  |  j                  t              S r  )DatetimeIndexr  astypeobject)argspds    r,   r  z,test_date2num_dst_pandas.<locals>.tz_convert  s'    *r**D188@@r5   )r  r  )r  r  s   ` r,   test_date2num_dst_pandasr    s    A r}}j1r5   c           	          |d      } | t        j                   dddd      |      } | t        j                   dddd      |      }t        j                  t        j                  j
                  |      }|j                  ||      }t        j                   ddddt        j                  j                               t        j                   ddd	d
t        j                  j                               g}||k(  sJ y )NAustralia/Sydneyr   r*  r   r   )r  r     rK   r      )	r   r0   r   r   r   DAILYbetweenr  tzutc)	attach_tzget_tzSYDr  dtendruleactexps           r,   _test_rrulewrapperr.    s    
#
$C))$1a8#>Gh''aA6<EHNN$8$8'JD
,,w
&CT1aHKK4E4E4GHT1aHKK4E4E4GHJC #::r5   c            	      R   d } t        | t        j                  j                         t        j                  j                  d      }t	        j                  dddd      }t	        j                  dddd      }t        j                  t        j                  j                  |||      }|j                  |      t	        j                  ddddd|	      k(  sJ |j                  |      t	        j                  ddd
dd|	      k(  sJ |j                  |k(  sJ |j                  dk(  sJ y )Nc                 &    | j                  |      S )NrK   )r  r  zis     r,   r'  z$test_rrulewrapper.<locals>.attach_tz(  s    zzz$$r5   r!  r   r*  r   r   )r  r  rL   untilr   rK   r	   )r.  r   r  r  r   r0   r   r   r$  afterbefore_base_tzinfo	_interval)r'  r)  r  r*  r+  s        r,   test_rrulewrapperr8  '  s   % y(++"3"34
++

.
/CaA.GdAq!,EHNN$8$8'&)8D::g("3"3D!Q1;>#@ @ @ @;;u!2!24Aq!:="? ? ? ? ###>>Qr5   c                  `    t        j                  d      } d }t        || j                         y )Npytzc                 $    |j                  |       S r  )localizer1  s     r,   r'  z)test_rrulewrapper_pytz.<locals>.attach_tzA  s    {{2r5   )r   importorskipr.  r  )r:  r'  s     r,   test_rrulewrapper_pytzr>  <  s)     v&D y$--0r5   c            
      j   t        j                  d      } | j                  d      }t        d      D cg c]>  }|j	                  t        j
                  ddd            t        j                  |      z   @ }}t        j                  d|      }|j                          |j                  j                  t        j                  |d         d	z
  t        j                  |d
         d	z          t        j                  g d      }|t        j                  t        j                  d            z   }t        j                   j#                  | |              g d}t%        t'        t(        t        j*                   |       |                  }||k(  sJ t        j,                  |j/                  |d   |d         t        j                  g d            sJ t        j,                  |j1                  |d   |d         j/                  |d   |d         t        j                  g d            sJ y c c}w )Nr:  zAmerica/New_Yorkr}   r~   r   Tr  r   r   r,  )g{ja&Ag{jd&Ag{jtg&Ag{jNj&Ag{j*m&Ag{jp&Ag{jr&ArV   )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  )	g@g*@g:@gJ@gZ@gj@gz@g@g@)r   r=  r  r   r<  r   r   r0   r  r   r!  r"  r1   r   r   rB   r   rZ   r   r   r   r   allcloser   get_locator)r:  r  rP   r$   r   r   r   r^  s           r,   test_yearlocator_pytzrB  G  s   v&D	)	*B*/+	7%& 
X&&tQ2	3a 
! 	7A 	7$$DGLL""6??1Q4#8#<#)??1R5#9##=?
 N 	OA 	
FOOBMM,788AJJq'),JH 
c#vwyR89	:B>>;;w**1Q416	9    ;;w**1Q416BB1Q41Nxx	  +	7s   AH0c            
         d } t        j                   ddd      }t        j                  d      ddddg dgt        j                  d      dd	d
dg dgt        j                  d      ddddddggf}|D ]K  \  }}}||z   } | ||fi |}t        t        t        t        j                   |                         |k(  rKJ  y )Nc                     t        j                  di |}|j                          |j                  j	                  t        j
                  |       t        j
                  |             |S )Nr   )r0   YearLocatorr   r!  r"  r1   )r6  r7  r  r   s       r,   _create_year_locatorz.test_YearLocator.<locals>._create_year_locatori  sO    $$.v.!!#&&vu'='-u'=	?r5   r  r   r  r  rl   )r#   r   r   rH  rs   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:00rO  )rF  r   rB  r#  	argumentsr   r   r   s           r,   test_YearLocatorrH  h  s     
		4A	&B""2a2K ""2a3K ""0a3,.IJ%G0 '. F"y(%Z&r2;;CV__WY789XEEEFr5   c                  P   t        j                  t              5  t        j                  d       d d d        t        j                  t              5  t        j                  d       d d d        t        j                  t              5  t        j                  d       d d d        t        j                  t              5  t        j                  d       d d d        t        j                  d       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   pxY w# 1 sw Y   DxY w)Nr,  r   g      r   g?r   )r   raises
ValueErrorr0   r   r   r5   r,   test_DayLocatorrL    s    	z	" '2&'	z	" )4()	z	" &1%&	z	" (3'(
s#' ') )& &( (s/   C8D
DD8DDDD%c                  |    t        j                   dddt        j                        } | j                         dk(  sJ y )N  r   rK   rO   )r   r0   rO   tznamer  s    r,   test_tz_utcrQ    s0    			4Afjj	9B99;%r5   z	x, tdeltarg   c                 <    t        j                  |       }||k(  sJ y r  )r0   num2timedelta)r$   tdeltar  s      r,   test_num2timedeltarU    s     
 
		a	 B<<r5   c                  B   t        j                  d      t        j                  d      g} t        j                  |       }t        j                  ddg      t        j                  t        j                  d            z   }t         j
                  j                  ||       y )Nr   z
2001-01-01    H&Ag    J&ArV   )r   rB   r0   r1   r   r   r    )r  dnr   s      r,   test_datetime64_in_listrY    sm    
--
%r}}\'B	CB		B	7W%	&	|4	5
6AJJB"r5   c                     t        j                  d      } t        j                          t        j                          t        j                  t              5  t        j                  d       d d d        t        j                          t        j                  d       | t        j                  d      z
  j                  d      }|j                  d      }t         j                  j                  t        j                  |       t        |             t        j                          t        j                  d       t         j                  j                  t        j                  |       d       t        j                          t        j                  d       t         j                  j                  t        j                  |       |d	z
         t        j                          t        j                  d
       t         j                  j                  t        j                  t        j                  d            d       y # 1 sw Y   xY w)Nr   z
0000-01-01rU   datetime64[D]intrV   rW  z1970-01-01T01:00:00gUUUUUU?1970-01-01T00:00:00z1970-01-01T12:00:00g      ?)r   rB   r0   r\   	get_epochr   rJ  RuntimeErrorr]   r  r   r    r1   floatrZ   )dater  s     r,   test_change_epochrb    s}   ==&D $$&
	|	$ ' 	&'
 $$&
\"
|,
,	4	4_	EB	5	BJJFOOD159=
$$&
\"JJFOOD18<
$$&
*+JJvt4b6kB
$$&
*+JJ&;<=)' 's   H==Ic                     t        j                  ddd      } t        j                  d      }dg|j                  d<   |j                          |j                  j                  t        j                  | d	         t        j                  | d
                t        j                  t        d      5   |       }d d d        y # 1 sw Y   y xY w)Nz
2001-01-10z
2001-03-04r[  r   Fr  r   r	   r   r,  zAutoDateLocator was unablematch)r   aranger0   r  	intervaldr   r!  r"  r1   r   r   r   )rQ   r   locss      r,   test_warn_notintervalsri    s    IIlLHE$$>G3GaLL""6??58#<#)??59#=?	k)E	F y  s   2CCc                     dt         j                  d<   t        j                  ddd      } t        j                         \  }}|j                  | t        j                  t        |                    |j                  j                          |j                         d   j                         dk(  sJ |j                         d	   j                         d
k(  sJ dt         j                  d<   t        j                         \  }}|j                  | t        j                  t        |                    |j                  j                          |j                         d   j                         dk(  sJ |j                         d	   j                         dk(  sJ t        j                  t              5  dt         j                  d<   d d d        y # 1 sw Y   y xY w)Nconcisezdate.converterz
2020-01-01
2020-05-01r[  r   r   rn  r   ro  r   zJan 01 2020Jan 15 2020boo)r   r   r   rf  rW   r   r   r   r   r   r   r   rJ  rK  rQ   r(   r)   s      r,   test_change_converterrp    sf   %.CLL!"IIlLHEllnGCGGE299SZ()JJOO"++-666"++-555%+CLL!"llnGCGGE299SZ()JJOO"++->>>"++->>>	z	" /).%&/ / /s   .GGc                  ,   dt         j                  d<   t        j                  ddd      } t        j                         \  }}|j                  | t        j                  t        |                    |j                  j                          |j                         d   j                         dk(  sJ |j                         d	   j                         d
k(  sJ dt         j                  d<   t        j                         \  }}|j                  | t        j                  t        |                    |j                  j                          |j                         d   j                         dk(  sJ |j                         d	   j                         dk(  sJ y )NFzdate.interval_multiplesz
2020-01-10rl  r[  r   r   zJan 10 2020r   zJan 24 2020Truerm  zFeb 01 2020)r   r   r   rf  rW   r   r   r   r   r   r   ro  s      r,   test_change_interval_multiplesrs    s6   .3CLL*+IIlLHEllnGCGGE299SZ()JJOO"++->>>"++->>>.4CLL*+llnGCGGE299SZ()JJOO"++->>>"++->>>r5   c                  \   t        j                          t        j                  d       t        j                  t
        j                        5  t        j                  d      dk(  sJ t        j                  d      dk(  sJ 	 d d d        t        j                          t        j                  d       t        j                  t
        j                        5  t        j                  d      dk(  sJ t        j                  d      dk(  sJ 	 d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)	NrV   g   @ƞBAg    x%Ag    z%Ag   ƞBAr]  r   r   )	r0   r\   r]   r   r   mplMatplotlibDeprecationWarning
julian2num
num2julianr   r5   r,   test_julian2numry    s    
$$&
\"	c66	7 8   +x777  *i777	8 $$&
*+	c66	7 3  +s222  %2223 38 83 3s   5D5D"D"D+c            
         t        j                         } | j                  dt        j                        dk(  sJ | j                  dd      dk(  sJ | j                  dd      dk(  sJ | j                  dd      dk(  sJ | j                          | j                         t        j                  dddddt        j                  j                        t        j                  dddddt        j                  j                        fk(  sJ | j                  t         j                  k(  sJ d}t        j                  j                  |      }| j                  |k7  sJ | j                  d       | j                  |k(  sJ | j                           | j                  j                   t        j"                  d	d
g        | j                         t        j                  ddddd|      t        j                  ddddd|      fk(  sJ |t$        j&                  d<   t        j                         } | j                  |k(  sJ t)        j*                  t,        d      5  t        j                  d       d d d        t)        j*                  t.        d      5  t        j                  d       d d d        y # 1 sw Y   DxY w# 1 sw Y   y xY w)Nr   r   r   r   )r   rN  rK   r   Iceland
2022-01-10z
2022-01-08rF   r   r   r  z Aiceland is not a valid timezonerd  Aicelandr  z%tz must be string or tzinfo subclass.)r0   DateLocatornonsingularr   infr   datalim_to_dtr   r  r  r  rO   r   r  
set_tzinfor!  set_data_intervalr1   r   r   r   rJ  rK  	TypeError)r   tz_str
iceland_tzs      r,   test_DateLocatorr    s     "Gq"&&)V333q!$...q!$...q!$///  "$1a83D3D3H3HI$1a83D3D3H3HI'K K K K
 ::###F""6*J::###y!::###"GLL""FOO\5A5C %D E  "$1a:>$2q!J?'A A A A
  &CLL   "G::### 
z)K	L *j)*	yD
F !a ! !* *! !s   J/J;/J8;Kc                     t        j                  d      dk(  sJ t        j                  ddd      } t        j                  d|       dk(  sJ t	        j
                  t        j                  dd	g|       t	        j                  dd
g      k(        sJ t        j                  g       j                  dk(  sJ t        j                  g t        j                  ddd            j                  dk(  sJ y )Nr~      @rF   r   r   r   z2022-01)r  z2022-02g    @@r   )r0   datestr2numr   ra  r   r   r   sizerP  s    r,   test_datestr2numr  C  s    l+w666	Dr	2Bi4???66&$$	I
XXvv&'( ) ) ) b!&&!+++b(--T67R#A BBF$!L L Lr5   kwarg)r  r  offset_formatsc                     t        j                         }| ddgi}|  d}t        j                  t        |      5  t        j
                  |fi | d d d        y # 1 sw Y   y xY w)Nr  r  z argument must be a listrd  )r0   r  r   rJ  rK  rS  )r  r   r  re  s       r,   !test_concise_formatter_exceptionsr  O  sc     $$&Gb$Z Fg-.E	z	/ 7##G6v67 7 7s   AA$c                      t        j                         } t        j                  |       } |d      dk(  sJ |j                  d      dk(  sJ y )Nr  2022z2022-01-10 00:00:00)r0   r  rS  format_data_short)r   r  s     r,   test_concise_formatter_callr  Y  sM    $$&G++G4IW'''&&w/3HHHHr5   c            
      |   t        j                  t        dd      D  cg c]  } t        j                  dd|        c}       }t        j                  g d      }t         j                  j                  |d      }t        j                         \  }}|j                  ||       |j                         dk(  sJ y c c} w )Nr   r+  r   )r   r   r	   r*  rs   r   r{  )
r   r   r   r   rM   masked_greaterr   rW   r   r[   )nr$   r  mr(   r)   s         r,   test_datetime_maskedr  `  s     	q!EA(##D!Q/EFA
!A
Q"AllnGCGGAqM;;=F""" Fs   B9r  )ii c                     t        j                  t        d|  d      5  t        j                  |        d d d        y # 1 sw Y   y xY w)NzDate ordinal z	 convertsrd  )r   rJ  rK  r0   r   )r  s    r,   test_num2date_errorr  l  s:    	z=Y)G	H   s	   ?Ac                  6   t        j                  d      t        j                  dddddddt        j                  j                        k(  sJ t        j                  d	      t        j                  dddddd
t        j                  j                        k(  sJ y )Ngj<  j@i  r      r   r*  i,B rK   gq<  j@rs   )r0   r   r   r  r  r   r5   r,   test_num2date_roundoffr  r  s    ??,-1B1Bb"aAvh.?.?.C.C2E E E E ??,-1B1Bb"aAh&7&7&;&;2= = = =r5   c            
          t        j                  t        j                  dddddt         j                              } t        j                  d      } ||       dk(  sJ |j                  d        ||       dk(  sJ y )	Nr&  r   r   rK   z%Y-%b-%d %H:%Mz2011-Jan-01 00:00zPacific/Kiritimatiz2011-Jan-01 14:00)r0   r1   r   rO   DateFormatterr  )r%   r  s     r,   test_DateFormatter_settzr  z  sx    ??8,,T1aA4:JJ@ AD$$%56IT?1111 -.T?1111r5   )Xr   dateutil.tzr   dateutil.rruler   numpyr   r   
matplotlibru  r   r   matplotlib.datesrQ   r0   matplotlib.pyplotpyplotr   matplotlib.testing.decoratorsr   matplotlib.tickertickerr   r-   markparametrizer4   r;   rD   rS   r_   re   ri   r{   r   r   r   r   r   r   r   r   r   r   r  r   r   r$  r1  rD  rP  rX  r  r  r  r  r  r  r  r  r  r  r  r  r  r.  r8  r:  r>  rB  rH  rL  rQ  rU  rY  rb  ri  rp  rs  ry  r  r  r  r  r  r  r  r  )r   r   r  minur   s   00000r,   <module>r     s          ( !  : #P$  1 1 1$1aA F!2!2!24Aq!Q!G!2!2!24Aq!Q!G!I #4("3"3D!Q1a"H"3("3"3D!Q1a"H"J"3("3"3D!Q1a"H"3("3"3D!Q1a"H"J!K L M  #5 6*	6M*  #5 60	60 "9: ;
*(',8'( %&'# (# %&' ( %&'# (# %&' (#8 ,-. /.	P 89: ;0"@
K *Xh'/4T4/DEtd"EGXR ;@B?KC)C/KMXb!:?2q/J$&-JLX#:?2,G$&-GI	- 	=	=;@ LJ LJ^ HF HFV6.#b ,X%':;X"$78Xa -0XQ/Xa *-Xb!2&Xc"B'/ ..&*(4 ,Xh'-24r-BCqe#CEXR 45
 Xb!"# X" / *	9+*	94#n1#h&)RC"L ,-.	# /	#0,>/B2* 1 1  @$FN	$ 
 0h00a89s8&8h&8&8a&@&8h&8&8c&B&D EFG	G
#@/*?&3 +!\	L FH7H7I	#  45 6
=	2A! FKJGb
 Ds   UU/UU7U