+
     ]i  c                   s
   ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t	H
t
 ^ RIHt ^ RIHt ^ RIHt ^ RIHt R t]P.                  P1                  R] P                   ! R^^^ ^^4      ] P                   ! R^^^ ^^4      ] P                   ! R^^^^^4      .] P                   ! R^^^ ^^4      ] P                   ! R^^^^^4      .] P                   ! R^^^^^4      ] P                   ! R^^^^^4      ...4      ]P.                  P1                  R. RfO4      R 4       4       t]P.                  P1                  R. RfO4      R	 4       t]P.                  P1                  R
. RgO4      R 4       tR tR tR tR t]! R.4      R 4       t ]! R.4      R 4       t!]! R.4      R 4       t"]! R.4      R 4       t#R t$R t%]! R.4      R 4       t&R t'R t(]! R.4      R 4       t)R  t*R! t+]P.                  P1                  R"] PX                  ! RhR#7      ]-! R$R%^4       U u. uF  p R&V ,          NK  	  up 3] PX                  ! ^R'7      ]-! ^^ ^4       Uu. uF  pR(V,          NK  	  up3] PX                  ! ^R)7      ]-! ^ ^^4       Uu. uF  pR*V,          NK  	  up3] PX                  ! ^
R+7      ]-! ^ ^4       Uu. uF  pR,V,          NK  	  up3.4      R- 4       t.R. t/]%R/ 4       t0]%R0 4       t1R1 t2R2 t3]P.                  P1                  R3] PX                  ! R4R57      R63] PX                  ! ^R+7      R73] PX                  ! ^R)7      R83] PX                  ! ^R'7      R93] PX                  ! ^R#7      R:3] PX                  ! ^R#7      R;3] PX                  ! R<R#7      R;3.4      R= 4       t4R> t5R? t6R@ t7]P.                  P1                  R3] PX                  ! RhR#7      ]-! RARB^4       Uu. uF  pR&V3,          NK  	  up3] PX                  ! ^(R'7      . RiO3] PX                  ! ^(R)7      . RjO3] PX                  ! ^R57      . RkO3.4      RC 4       t8RD t9RE t:RF t;RG t<]! RH.4      RI 4       t=RJ t>RK t?RL t@RM tARN tB]P.                  P                  RO 4       tD]P.                  P                  RP 4       tERQ tFRR tGRS tH]P.                  P1                  RT^] PX                  ! ^R'7      3^RU.] PX                  ! ^R'7      ] PX                  ! RUR'7      .3.4      RV 4       tIRW tJRX tKRY tLRZ tMR[ tNR\ tOR] tP]P.                  P1                  R^Rl4      R_ 4       tQR` tRRa tS]P.                  P1                  RbRm4      Rc 4       tTRd tURe tVR# u up i u upi u upi u upi u upi )n    N)
rc_contextstyle)image_comparisonc                  sL   \         P                   ! R ^^4      p \        ^ ^4       Uu. uF   q\         P                  ! VR7      ,           NK"  	  pp\        P                  ! VRR7      p\        P                  ! . RO4      p\
        P                  ! R	R7      pVP                  ^^^4      pVP                  W$4      w  pVP                  W44      w  p\        P                  P                  VP                  RR7      VP                  RR7      4       \
        P                  ! R	R7      pVP                  ^^^4      pVP                  WB4      w  pVP                  WC4      w  p\        P                  P                  VP                  RR7      VP                  RR7      4       R# u upi )
  Zdaysdatetime64[ns]dtype)ZfigsizeF)ZorigN)        g       @      ?)i
      )datetimerange	timedeltanparraypltfigureadd_subplotplottestingassert_equalZ	get_xdataZ	get_ydata)	basextimeZtimenpZdatafigaxZhZhnp	            B/usr/lib64/python3.14/site-packages/matplotlib/tests/test_dates.pytest_date_numpyxr      s:   T1a(D7<Q{C{!8%%1---{DCXXd"23F88L!D
**W
%C	Aq	!B		BA776 DCJJAKKUK3S]]]5NO
**W
%C	Aq	!B		BA774 DCJJAKKUK3S]]]5NO Ds   &F!t0r   r   c                 s    \         P                  ! V 4      p\        P                  ! WR 7      p\         P                  ! V4      p\        P                  P                  W$4       R# )r   N)mdatesdate2numr   r   r   r   )r   r   r   tnpnptimes   &&   r   test_date_date2num_numpyr$   "   s@     ??2D
((2
#C__S!FJJD)    c                 s&   \         P                   ! R ^^^ ^^4      p\        P                  ! V4      \        P                  .p\        P
                  ! VR.V R7      p\        P                  ! V4      p\        P                  P                  W$4       R# )r   NaTr   N)r   r    r!   r   Znanr   r   assert_array_equal)r   r   tmplr"   r#   s   &    r   test_date2num_NaTr)   6   si    
 
		4Aq!Q	/BOOB(D
((B;e
,C__S!FJJ!!$/r%   unitsc                 s    \         P                  ! \        P                  ! R V 4      4      p\        P                  ! V4      '       g   Q hR# )r&   N)r    r!   r   
datetime64Zisnan)r*   r(      & r   test_date2num_NaT_scalarr-   B   s-    ??2==67D88D>>>r%   c            
      sb   \         P                   ! R ^^4      p \        P                  P                  \	        ^4       Uu. uF(  pV \         P
                  ! ^V,          R7      ,           NK*  	  up. ROR7      p\        P                  ! V4      p\        P                  P                  \        P                  P                  V4      R4       \         P                   ! R ^^\        P                  R7      p \        P                  P                  \	        ^4       Uu. uF(  pV \         P
                  ! ^V,          R7      ,           NK*  	  up. ROR7      p\        P                  ! V4      p\        P                  P                  \        P                  P                  V4      R4       R# u upi u upi )  r   )ZmasktzinfoN)r       r1   r    r    r    r1   )FTTFFFT)r   r   mar   r   r   r    r!   r   r'   ZgetmaskUTC)r   idatesZnpdates       r   test_date2num_maskedr7   H   sF   T2r*DEEKK"'(,"*Q  2 2Q @@@"*,2G  IEooe$GJJ!!"%%--"8#)*
 T2r&**=DEEKK"'(,"*Q  2 2Q @@@"*,2G  IEooe$GJJ!!"%%--"8#)*,,s   .F'.F,c            	      sb   \         P                  ! 4       w  rVP                  4        V P                  4        \        P
                  P                  VP                  4       \        P                  ! \        P                  ! R 4      4      \        P                  ! \        P                  ! R4      4      .4       \        P                  ! 4        \        P                  ! R4       \         P                  ! 4       w  rVP                  4        V P                  4        \        P
                  P                  VP                  4       \        P                  ! \        P                  ! R 4      4      \        P                  ! \        P                  ! R4      4      .4       \        P                  ! 4        R# )
1970-01-01z
1970-01-02
0000-12-31N)r   subplotsZ
xaxis_datedraw_without_renderingr   r   assert_allcloseget_xlimr    r!   r+   _reset_epoch_test_example	set_epochr   r        r   test_date_emptyrB   \   s    llnGCMMO JJr{{} &l0K L &l0K L NO $$&
\"llnGCMMO JJr{{} &l0K L &l0K L NO $$&r%   c                  s   \         P                  ! 4       p V P                  4       pVP                  ^2^F.^^.4       VP                  P                  4        \        P                  P                  VP                  4       ^2^F.4       R# )i2   N)
r   r   r   r   xaxisZ	axis_dater   r   r<   r=   r@   rA   r   test_date_not_emptyrD   r   s]    
**,C		BGGRHq!fHHJJr{{}r2h7r%   c            	      s   \         P                  ! 4       w  rVP                  R 4       VP                  \        P
                  ! R4      \        P
                  ! R4      .^^.4       \        P                  P                  VP                  4       \        P                  ! \        P
                  ! R4      4      \        P                  ! \        P
                  ! R4      4      .4       \        P                  ! 4        \        P                  ! R4       \         P                  ! 4       w  rVP                  R 4       VP                  \        P
                  ! R4      \        P
                  ! R4      .^^.4       \        P                  P                  VP                  4       \        P                  ! \        P
                  ! R4      4      \        P                  ! \        P
                  ! R4      4      .4       \        P                  ! 4        R# )      ?z
2016-01-01z
2016-01-02r9   N)r   r:   axhliner   r   r+   r   r<   r=   r    r!   r>   r?   r@   rA   r   test_axhlinerG   {   sD   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 $$&r%   zdate_axhspan.pngc                  st   \         P                   ! R ^^4      p \         P                   ! R ^^4      p\        P                  ! 4       w  r#VP                  WRRR7       VP	                  V \         P
                  ! ^R7      ,
          V\         P
                  ! ^R7      ,           4       VP                  RR7       R# )  blue      ?Z	facecolorZalphar   ZleftN)r   r   r:   Zaxhspanset_ylimr   subplots_adjustr   tfr   r   r6   r   test_date_axhspanrQ      s     
		4B	'B			4B	'BllnGCJJrtJ4KKX''Q//X''Q//1T"r%   zdate_axvspan.pngc                  sp   \         P                   ! R ^^4      p \         P                   ! R^^4      p\        P                  ! 4       w  r#VP                  WRRR7       VP	                  V \         P
                  ! RR7      ,
          V\         P
                  ! RR7      ,           4       VP                  4        R# )    rI   rJ   rK   i  r   N)r   r   r:   Zaxvspanset_xlimr   autofmt_xdaterO   r6   r   test_date_axvspanrV      s     
		4B	'B			4B	'BllnGCJJrtJ4KKX''S11X''S113r%   zdate_axhline.pngc                  st   \         P                   ! R ^^4      p \         P                   ! R ^^4      p\        P                  ! 4       w  r#VP                  V R^R7       VP	                  V \         P
                  ! ^R7      ,
          V\         P
                  ! ^R7      ,           4       VP                  RR7       R# rH   rI   ZcolorZlwr   rJ   rL   N)r   r   r:   rF   rM   r   rN   rO   r6   r   test_date_axhlinerY      s     
		4B	'B			4B	'BllnGCJJrAJ&KKX''Q//X''Q//1T"r%   zdate_axvline.pngc                  sp   \         P                   ! R ^^4      p \         P                   ! R ^^4      p\        P                  ! 4       w  r#VP                  V R^R7       VP	                  V \         P
                  ! ^R7      ,
          V\         P
                  ! ^R7      ,           4       VP                  4        R# )rR   ZredrX   r   N)r   r   r:   ZaxvlinerT   r   rU   rO   r6   r   test_date_axvlinerZ      s     
		4B	'B			4B	'BllnGCJJr1J%KKX''Q//X''Q//1r%   c                 s   V P                  R 4       \        P                  ! R^^4      p\        P                  ! R^^4      p\        P                  ! 4       w  r4\        P
                  ! \        4      ;_uu_ 4       pVP                  W3RR7       \        V4      ^8X  g   Q hR\        V^ ,          P                  4      9   g   Q h RRR4       VP                  . . 4       VP                  P                  \        P                  ! 4       4       VP                  P!                  4       ! 4       p\        V4      R8  g   Q hV P"                  '       dO   \$        ;QJ d&    R V P"                   4       F  '       d   K   RM	  RM! R V P"                   4       4      '       g   Q h\        V P"                  4      ^ 8  g   Q hR#   + '       g   i     EL; i)	WARNINGrR   T)autoz.Attempting to set identical low and high xlimsN  c              3   sn   "   T F+  pVP                   R 8H  ;'       d    VP                  R8H  x  K-  	  R# 5i)zmatplotlib.tickerr[   N)ZnameZ	levelname)Z.0Zrecordr,   r   Z	<genexpr>Z+test_too_many_date_ticks.<locals>.<genexpr>   s7      "&$F 	**LLv/?/?9/LL$s   55F)Z	set_levelr   r   r:   pytestwarnsUserWarningrT   lenstrZmessager   rC   set_major_locatorr    
DayLocatorZget_major_locatorZrecordsall)Zcaplogr   rP   r   r   ZrecZvs   &      r   test_too_many_date_ticksrf      s`    Y			4B	'B			4B	'BllnGC	k	"	"c
RH4(3x1}}@s1v~~&' 	( ' 
#
 GGBOHHv0023
""$&Aq6D== >>>cc "&nn"&ccc "&nn"& & & & & v~~""" 
#	"	"s   ;A
F??G	c                 sF   a  \         P                  ! S 4      V 3R  l4       pV# )c                  s   < \         P                  ! 4        \         P                  ! R 4       S ! 4        \         P                  ! 4        R# )
2000-01-01N)r    r>   r?   )thefuncs   r   wrapperZ%_new_epoch_decorator.<locals>.wrapper   s.    ((*&	((*r%   )	functoolsZwraps)rh   ri      f r   _new_epoch_decoratorrl      s%    __W+ +
 Nr%   zRRuleLocator_bounds.pngc                  s   ^ RI Hu Hp  V P                  4        \        P                  ! R^^4      p\        P                  ! R^^4      p\
        P                  ! 4       p\
        P                  ! 4       pVP                  R4       VP                  W.RR.RR7       \        P                  ! \        P                  P                  R	R
7      p\        P                  ! V4      pVP                   P#                  V4       VP                   P%                  \        P&                  ! V4      4       VP)                  4        VP+                  4        R# )r    Nr]   ip  Tr	   r
   oZmarker  interval)matplotlib.testing.jpl_unitsr   	jpl_unitsregisterr   r   r   subplotset_autoscale_onr   r    rrulewrapperdateutilrruleZYEARLYRRuleLocatorrC   rc   set_major_formatterAutoDateFormatterautoscale_viewrU   )r*   r   rP   r   r   ry   locator          r   test_RRuleLocatorr      s    00	NN 
		4A	&B			4A	&B
**,C	BGGRHsCjG- 5 5DE!!%(GHHw'HH  !9!9'!BCr%   c                  s    \         P                  ! 4       p \        P                  ! ^^^\         P                  R7      p\        P                  ! ^^^\         P                  R7      pV P	                  W4       R# )r1   )yearmonthdayr0   N)r    rd   r   r3   tick_values)locZx1Zy1      r   test_RRuleLocator_dayranger      sP    



C			&**	EB			6::	FBOOBr%   c                  s   \         P                  ! \        P                  P                  ^R7      p \         P
                  ! V 4      p\        P                  ! R^^R7      p\        P                  ! R^^^R7      pRR.p\        \        \        \         P                  ! VP                  W#4      4      4      4      V8X  g   Q hR# )   rp     r   r   r   )r   r   r   microsecond2020-01-01 00:00:00+00:00z 2020-01-01 00:00:00.000001+00:00N)r    rw   rx   ry   ZSECONDLYrz   r   listmaprb   num2dater   )ry   r   d1d2expected        r   test_RRuleLocator_close_minmaxr     s      7 7!DE


e
$C			A1	5B			A1!	DB+24HC)@ABCxOOOr%   z#DateFormatter_fractionalSeconds.pngc                  s   ^ RI Hu Hp  V P                  4        \        P                  ! R^^^ ^ ^ 4      p\        P                  ! R^^^ ^ ^4      p\
        P                  ! 4       p\
        P                  ! 4       pVP                  R4       VP                  W.RR.RR7       VP                  4        VP                  4        R# )r    Ni  Tr	   r
   rm   rn   )rr   r   rs   rt   r   r   r   ru   rv   r   r}   rU   )r*   r   rP   r   r   r   r   test_DateFormatterr     s    00	NN
 
		4Aq!Q	/B			4Aq!Q	/B
**,C	BGGRHsCjG- r%   c            	     s~   R\         P                  R&   \        P                  ! R^	^^^ 4      \        P                  ! R^	^^^;4      \        P                  ! R^	^^
^4      .p . ROp\         P                  ! 4       w  r#VP	                  W4       VP
                  P                  \        P                  ! R4      4       VP                  P                  4        VP                  4        Uu. uF  qDP                  4       NK  	  pp. R	OpWV8X  g   Q hVP
                  P                  \        P                  ! 4       4       VP
                  P                  \        P                  ! R
4      4       \        P                  ! R4      pVP
                  P!                  \        P"                  ! V4      4       VP
                  P                  \        P                  ! R4      4       VP                  P                  4        VP                  RR7       Uu. uF  qDP                  4       NK  	  pp. ROpWV8X  g   Q hR# u upi u upi )z\
Test if setting the locator only will update the AutoDateFormatter to use
the new locator.
z%d %H:%Mzdate.autoformatter.minutei  Zminor)ZwhichN)r      r1   )r    i   )z30 08:00z30 08:30z30 09:00z30 09:30z30 10:00z30 10:30)r   i7   )i   i   )i   i-   )z30 08:15z30 08:45z30 09:15z30 09:45z30 10:15)r   rcParamsr   r:   r   rC   rc   r    ZMinuteLocatorcanvasdrawget_xticklabelsget_textmtickerZNullLocatorZset_minor_locatorZset_minor_formatterr|   )tr   r   r   ZtlZ
ticklabelsr   Z	decoy_loc           r   test_locator_set_formatterr   *  s   
 1;CLL,-			4B1	-			4B2	.			4BB	/	1A 	AllnGCGGAM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L*KB++-*KJLKH!!! @ Ms   (H5H:c                  s     ! R  R4      p R p\         P                  ! V ! 4       4      pWP                  R&   V! \        P                  ! R^^4      .4      R.8X  g   Q hR# )c                   s&   a  ] tR tRt o R tRtV tR# ).test_date_formatter_callable.<locals>._LocatoriL  c                s    R# )i   i )self   &r   	_get_unitZ8test_date_formatter_callable.<locals>._Locator._get_unitM  s    CZr%   r   N)__name__
__module____qualname____firstlineno__r   __static_attributes____classdictcell__)__classdict__s   @r   _Locatorr   L  s     ''r%   r   c                 sL    V  Uu. uF  q"P                  R 4      NK  	  up# u upi )z	%d-%m//%Y)Zstrftime)r5   Z_dt   && r   callable_formatting_functionZBtest_date_formatter_callable.<locals>.callable_formatting_functionO  s!    3895RK(5999   !  z25-12//2014Ni)r    r|   Zscaledr   )r   r   	formatterr   r   test_date_formatter_callabler   J  sZ    ( (: ((4I8Sh''b"567M?JJJr%   zdelta, expectedZweeks  i{  z$\mathdefault{%d}$r   z $\mathdefault{1990{-}01{-}%02d}$Zhoursz$\mathdefault{01{-}01\;%02d}$minutesz$\mathdefault{01\;00{:}%02d}$c                 s   \         P                  ! R 4       \        P                  ! R^^4      pW ,           p\        P                  ! RR7      pVP                  4        VP                  P                  \        P                  ! V4      \        P                  ! V4      4       \        P                  ! VRR7      pV! 4        Uu. uF
  qe! V4      NK  	  upV8X  g   Q hR# u upi )defaultr   Finterval_multiplesTZusetexN)
r   Zuser   r    AutoDateLocatorcreate_dummy_axisaxisset_view_intervalr!   r|   )deltar   r   r   r~   r   r   s   &&     r   test_date_formatter_usetexr   W  s     
IIi			4A	&B	B$$>GLL""6??2#68KL((>I&-i0isIcNi0H<<<0s   Cc                 sZ   \         P                   ! R^^\        P                  R7      p \         P                   ! R^^\        P                  R7      p\         P                  ! ^R7      p\	        \        P
                  ! WV4      4      ^8X  g   Q hV\         P                  ! ^R7      ,
          p\	        \        P
                  ! WV4      4      ^8X  g   Q hV\         P                  ! ^R7      ,           p\	        \        P
                  ! WV4      4      ^8X  g   Q h\         P                   ! R^^\        P                  R7      p\         P                  ! ^R7      p\        P
                  ! WV4      p\	        V4      ^8X  g   Q h\        P                  ! VR,          4      W,
          8X  g   Q hR# )z^
This test should check if drange works as expected, and if all the
rounding errors are fixed
  r/   r   ZmicrosecondsN)r   r    r3   r   ra   Zdranger   )startZendr   Z	dateranger6   r   test_dranger   o  s?   
 dAq<E


D!Qvzz
:CQ'E v}}U/0B666 ""2
2Cv}}U/0B666 ""2
2Cv}}U/0B666 

D!Qvzz
:C Q'Ee%0Iy>Q??9R=)ck:::r%   c                  s   R  p \         P                   ! R^^4      p\         P                  ! RR7      . RO.\         P                  ! ^4R7      . RO.\         P                  ! ^R7      . RO.\         P                  ! ^(R7      . RO.\         P                  ! ^(R7      . RO.\         P                  ! ^R7      . RO.\         P                  ! ^(R7      . RO.\         P                  ! RR7      . RO.3pV FN  w  r4W,           pV ! W4      p\        \        \        \
        P                  ! V! 4       4      4      4      V8X  d   KN  Q h	  \
        P                  ! R	R
7      pVP                  ^ ^^^^^^^^^^^^^/8X  g   Q h\
        P                  ! \        P                  P                  ^/R7      pVP                  ^ ^^^^^^^^^^^^^/8X  g   Q h\
        P                  ! ^R7      pVP                  ^ ^^^^^^^^^^^^^/8X  g   Q hR# )c                     \         P                  ! R R7      pVP                  4        VP                  P                  ! \         P
                  ! W.4      !   V# )Fr   r    r   r   r   r   r!   date1date2r~   r   r   _create_auto_date_locatorZ9test_auto_date_locator.<locals>._create_auto_date_locator  s@    ((EB!!#&&(GHr%   r   r   r   r   r   seconds  r   Fr   )maxticksN(  )
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)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)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:00)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:00)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)	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)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:00)r   r   r   r   rb   r    r   r   r   rx   ry   ZMONTHLY)r   r   resultst_deltar   r   r~   r   r   test_auto_date_locatorr     s    
		4A	&B""2K "",K "",. ""+K
 "",. ""2..
 ""2.. ""55]6Gp %\+B3CV__WY789XEEE %
 $$>G2q"aQAr1b!QOOOO$$x~~/E/Eq.IJG2q!QAr1b!RANNNN$$a0G1aAq!Q1aAqIIIIr%   c                  s   R  p \         P                  ! R
R7      . RO.\         P                  ! ^4R7      . RO.\         P                  ! ^R7      . RO.\         P                  ! ^(R7      . RO.\         P                  ! ^(R7      . RO.\         P                  ! ^R7      . RO.\         P                  ! ^(R7      . RO.\         P                  ! RR7      . RO.3p\         P                   ! R^^4      pV FN  w  r4W#,           pV ! W%4      p\        \        \        \
        P                  ! V! 4       4      4      4      V8X  d   KN  Q h	  R	# )c                 r   Tr   r   r   r   r   r   ZAtest_auto_date_locator_intmult.<locals>._create_auto_date_locator  s@    ((DA!!#&&(GHr%   r   r   r   r   r   r   r     Nr   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:00)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:00)
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:00)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:00)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:00)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:00)	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:00)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   rb   r    r   )r   r   r   r   r   r   r~   r   r   test_auto_date_locator_intmultr     s<    ""2K "",K "",K ""+. "",. ""2..
 ""2.. ""55g;Gz 
		4A	&B$\+B3CV__WY789XEEE %r%   c                  s   \         P                  ! R R7      p \         P                  ! V 4      pRpVP                  VVR\         P                  ,          ,           VR\         P                  ,          ,           .4      pV. RO8X  g   Q hR# )Tr   g    B@ro   i  N)00:00z00.0005z00.0009)r    r   ConciseDateFormatterformat_ticksZMUSECONDS_PER_DAY)r~   r   Z	year_1996stringsr6   r    test_concise_formatter_subsecondr   +  sv    $$=G++G4II$$C&2222C&2222&4 5G 5555r%   c                  st   R  p \         P                   ! R^^4      p\         P                  ! R
R7      \        RR^4       Uu. uF  p\        V4      NK  	  up.\         P                  ! ^4R7      . RO.\         P                  ! ^R7      . RO.\         P                  ! ^(R7      . RO.\         P                  ! ^(R7      . RO.\         P                  ! ^R7      . RO.\         P                  ! ^(R7      . RO.\         P                  ! ^R7      . RO.3pV F  w  rEW,           pV ! W4      pWu8X  d   K  Q h	  R	# u upi )c                 s   \         P                  ! 4       w  r#\        P                  ! R R7      p\        P                  ! V4      pVP
                  P                  V4       VP
                  P                  V4       VP                  W4       VP                  P                  4        VP                  4        Uu. uF  qfP                  4       NK  	  ppV# u upi r   r   r:   r    r   r   yaxisrc   r{   rM   r   r   get_yticklabelsr   )r   r   r   r   r~   r   ststs   &&      r   r   Z9test_concise_formatter.<locals>._create_auto_date_locator7  s    ,,.((DA//8	
""7+
$$Y/
E!

')'9'9';<';{{}';<
 =s   8Cr   r       r   r   r   r   Nr   )1997FebMarAprMayJunJulAugSepOctNovDec)
Jan15r   r   r   r   r   r   r   r   )r   05091317212529r   r   r   )zJan-0104:0008:0012:0016:0020:00zJan-02r  r  r  r  )r   00:0500:1000:1500:20)	r   r   10r   20r  303540)59.5r   00.501.001.502.002.5r   r   r   rb   )r   r   r   r   r   r   r   r   r   r   test_concise_formatterr  6  s9   
 
		4A	&B""2!&tT2!67!6AQ!67 "",- "", ""+ "",? ""2.= ""2.I ""1-I3G: %\+B3""" %9 8s   D5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                 s   \         P                   ! R ^^4      pW ,           p\        P                  ! 4       w  rE\        P                  ! 4       p\        P
                  ! V4      pVP                  P                  V4       VP                  P                  V4       VP                  W#.^ ^ .4       VP                  P                  4        VP                  4       V8X  g   Q hR# )r   N)r   r   r:   r    r   r   rC   rc   r{   r   r   r   
get_offset)r   r   r   r   r   r   r~   r   r   r   "test_concise_formatter_show_offsetr  g  s     
		4A	&B	BllnGC$$&G++G4IHHw'HH  +GGRHq!fJJOO!X---r%   c                  s   \         P                   ! R ^^4      p V \         P                  ! ^<R7      ,           p\        P                  ! 4       w  r#\        P
                  ! 4       p\        P                  ! V4      pVP                  P                  V4       VP                  P                  V4       VP                  4        VP                  W.^ ^ .4       VP                  P                  4        VP                  4       R8X  g   Q hR# )r   r   r  N)r   r   r   r:   r    r   r   rC   rc   r{   Zinvert_xaxisr   r   r   r  )r   r   r   r   r~   r            r   +test_concise_formatter_show_offset_invertedr!    s    			4A	&B	h  b)	)BllnGC$$&G++G4IHHw'HH  +OOGGRHq!fJJOO!Z///r%   c                  s4   \         P                   ! R ^^4      \         P                   ! R^^4      .p ^ ^.p\        P                  ! 4       w  r#VP                  W4       \        P
                  ! 4       p\        P                  ! \        RR7      ;_uu_ 4        VP                  P                  V4       RRR4       VP                  P                  e   Q hVP                  ! V !   VP                  P                  4       V8X  g   Q hR#   + '       g   i     L]; i)rR   r   zalready has a convertermatchN)r   r   r:   r   r    ZConciseDateConverterr^   r_   r`   rC   Zset_converterr*   rT   Zget_converter)r   yr   r   Zconvr   r   test_concise_converter_staysr%    s     
		4A	&(9(9$2(FGA	
AAllnGCGGAM&&(D	k)B	C	C
t$ 
D88>>!!!KKO88!!#t+++	 
D	Cs   DD	c                  s   \         P                  ! 4       w  r\        P                  ! R ^^4      pV\        P                  ! RR7      ,           p\        P
                  ! 4       p\        P                  ! V4      pVP                  P                  V4       VP                  P                  V4       VP                  W#.^ ^ .4       V P                  4        VP                  4       R8X  g   Q hVP                  W"\        P                  ! ^R7      ,           4       V P                  4        VP                  4       R8X  g   Q hVP                  V\        P                  ! ^R7      ,           V\        P                  ! ^R7      ,           4       V P                  4        VP                  4       R8X  g   Q hVP                  W"\        P                  ! RR7      ,           4       V P                  4        VP                  4       R8X  g   Q hR# )r   r  r   r  r  r   N)r   r:   r   r   r    r   r   rC   rc   r{   r   r;   r  rT   )r   r   r   r   r~   r   r   r   test_offset_changesr&    s   llnGC			4A	&B	h  s+	+B$$&G++G4IHHw'HH  +GGRHq!f !R'''KK++!445 !Z///KKX''a00X''b113 !V+++KK++#667 !R'''r%   r   r   c                 s   \         P                   ! R ^^4      pW ,           p\        P                  ! RR7      pVP                  4        VP                  P                  \        P                  ! V4      \        P                  ! V4      4       \        P                  ! VRR7      pVP                  V! 4       4      V8X  g   Q hR# )r   Tr   r   N)	r   r    r   r   r   r   r!   r   r   )r   r   r   r   r~   r      &&    r   test_concise_formatter_usetexr(    s    , 
		4A	&B	B$$=GLL""6??2#68KL++GDAI!!'),888r%   c                    a . ROoV3R lp \         P                   ! R^^4      p\         P                  ! RR7      \        RR^4       Uu. uF  p\        V4      NK  	  up.\         P                  ! ^4R7      . RO.\         P                  ! ^R7      . RO.\         P                  ! ^(R7      . RO.\         P                  ! ^(R7      . RO.\         P                  ! ^R7      . RO.\         P                  ! ^(R	7      . RO.\         P                  ! ^R	7      . RO.3pV F  w  rEW,           pV ! W4      pWu8X  d   K  Q h	  R
# u upi )%Yc                   < \         P                  ! 4       w  r#\        P                  ! R R7      p\        P                  ! VSR7      pVP
                  P                  V4       VP
                  P                  V4       VP                  W4       VP                  P                  4        VP                  4        Uu. uF  qfP                  4       NK  	  ppV# u upi )Tr   )formatsr   )	r   r   r   r   r~   r   r   r   r,  	   &&      r   r   ZAtest_concise_formatter_formats.<locals>._create_auto_date_locator  s    ,,.((DA//I	
""7+
$$Y/
E!

')'9'9';<';{{}';<
 =   ;Cr   r   r   r   r   r   r   r   N)r*  z%m/%Yzday: %d%H hr %M minr/  z	%S.%f secr   )r   02/199703/199704/199705/1997z06/1997z07/1997z08/1997z09/1997z10/1997z11/1997z12/1997)
01/1997day: 15r0  r5  r1  r5  r2  r5  r3  r5  )r4  day: 05day: 09zday: 13zday: 17zday: 21zday: 25zday: 29r0  r6  r7  )zday: 0104 hr 00 min08 hr 00 min12 hr 00 min16 hr 00 minz20 hr 00 minzday: 02r8  r9  r:  r;  )00 hr 00 minz00 hr 05 minz00 hr 10 minz00 hr 15 minz00 hr 20 min)	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 sec)z59.500000 secr<  z00.500000 secz01.000000 secz01.500000 secz02.000000 secz02.500000 secr  )	r   r   r   r   r   r   r   r   r,  	           @r   test_concise_formatter_formatsr>    sN   <G
 
		4A	&B			(	+eD	r? . ?c!f ? . 				"	% ( 	 
			% ( 	 
			$ ' 	 
		"	% ( 	
 
		B	' *9 	:			B	' * 	
 
		A	& ) 	7
G@ %\+B3""" %?.   	D=c                  r)  )r  c                 r+  )Tr   )zero_formatsr   )	r   r   r   r   r~   r   r   r   r@  r-  r   r   ZBtest_concise_formatter_zformats.<locals>._create_auto_date_locator  s    ,,.((DA//,0	
""7+
$$Y/
E!

')'9'9';<';{{}';<
 =r.  r   r   r   r   r   r   r   r   N)r  z'%yz%Bz%m-%dz%Sz%S.%fr   )z'97r   r   r   r   r   r   r   r   r   r   r   )
Januaryr   Februaryr   ZMarchr   ZAprilr   r   r   )rA  r   r   r   r   r   r  r  rB  r   r   )z01-01r  r  r  r  r  z01-02r  r  r  r  )00r  r	  r
  r  )	rC  r   r  r   r  r  r  r  r  )r  z00.0r  r  r  r  r  r  )	r   r   r   r   r   r   r   r   r@  r=  r   test_concise_formatter_zformatsrD    s@   <L 
		4A	&B""2!&tT2!67!6AQ!67 "",> "",6 ""+8 "",A ""2.: ""2.F ""1-H3G: %\+B3""" %9 8r?  c                  s   R  p \         P                   ! R^^4      P                  \         P                  P                  R7      p\         P                  ! ^(R7      . R
OR.\         P                  ! ^R7      . ROR.\         P                  ! ^(R7      . ROR.\         P                  ! ^R7      . ROR.3p\         P                  ! \         P                  ! ^R7      4      pV F)  w  rEpW,           pV ! WV4      w  rW8X  g   Q hW8X  d   K)  Q h	  R	# )c                 s   \         P                  ! 4       w  r4\        P                  ! R R7      p\        P                  ! WRR7      pVP
                  P                  V4       VP
                  P                  V4       VP                  W4       VP                  P                  4        VP                  4        Uu. uF  qwP                  4       NK  	  ppWP
                  P                  4       P                  4       3# u upi )Tr   tz)r   r:   r    r   r   r   rc   r{   rM   r   r   r   r   Zget_offset_text)	r   r   rF  r   r   r~   r   r   r   s	   &&&      r   r   Z<test_concise_formatter_tz.<locals>._create_auto_date_locatorN  s    ,,.((DA//?	
""7+
$$Y/
E!

')'9'9';<';{{}';<HH,,.77999 =s   9C<r   r/   r   r  r   r  r   z1997-Jan-01 03:00N)03:0007:0011:0015:0019:00z23:00rG  rH  rI  rJ  rK  )rG  z03:05z03:10z03:15z03:20)	rG  r   r  r   r  r  r  r  r  )r  rG  r  r  r  r  r  )r   replacetimezoneutcr   )
r   r   r   Znew_tzr   Zexpected_stringsZexpected_offsetr   r   Zoffsets
             r   test_concise_formatter_tzrO  M  s   
: 
		4A	&	.	.h6G6G6K6K	.	LB"",>
 ""2.= ""2.I# ""1-I#G& x11:;F6=2?\3BFC***(((	 7>r%   c                  s   R  p \         P                  ! RR7      . RO.\         P                  ! ^4R7      . RO.\         P                  ! ^R7      . RO.\         P                  ! ^(R7      . RO.\         P                  ! ^(R7      . RO.\         P                  ! ^R7      . RO.\         P                  ! ^(R7      . RO.3p\        P                  P	                  R4      p\         P                   ! R^^VR7      pV Fq  w  rE\        R	R
/4      ;_uu_ 4        W4,           pV ! W6V4      p\        \        \        \        P                  ! V! 4       VR7      4      4      pW8X  g   Q h RRR4       Ks  	  R#   + '       g   i     K  ; i)c                 s    \         P                  ! R VR7      pVP                  4        VP                  P                  ! \         P
                  ! W.4      !   V# )Tr   rF  r   )r   r   rF  r~   s   &&& r   r   ZDtest_auto_date_locator_intmult_tz.<locals>._create_auto_date_locatorw  sB    ((DRH!!#&&(GHr%   r   r   r   r   r   zCanada/Pacificr   r/   z_internal.classic_modeFrE  Nr   )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:00)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:00)
rQ  z1997-01-15 00:00:00-08:00rR  z1997-02-15 00:00:00-08:00rS  z1997-03-15 00:00:00-08:00rT  z1997-04-15 00:00:00-07:00rU  z1997-05-15 00:00:00-07:00)rQ  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:00rR  z1997-02-05 00:00:00-08:00z1997-02-09 00:00:00-08:00)rQ  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:00)rQ  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:00)	rQ  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:00)r   r   rx   rF  gettzr   r   r   rb   r    r   )	r   r   rF  r   r   r   r   r~   r   r   r   !test_auto_date_locator_intmult_tzrW  v  sa    ""0K "",K "",K ""+. "",. ""2..
 ""2..Y3Gj 
		+	,B			4Ab	1B$159::B/;Gc#vwyR@ABB>!>	 ;: %:::s   AE..E?zdate_inverted_limit.pngc                  s   \         P                   ! R ^^4      p \         P                   ! R ^^4      p\        P                  ! 4       w  r#VP                  V R^R7       VP	                  V \         P
                  ! ^R7      ,
          V\         P
                  ! ^R7      ,           4       VP                  4        VP                  RR7       R# rW   )r   r   r:   rF   rM   r   Zinvert_yaxisrN   rO   r6   r   test_date_inverted_limitrX    s     
		4B	'B			4B	'BllnGCJJrAJ&KKX''Q//X''Q//1OOT"r%   c           	      s    \         P                  P                  R 4      p\        P                  p\
        P
                  ! R^^^ ^ VR7      p\
        P                  ! ^!^-R7      pVP                  R,          p^pV ! WEVR7      pV! W4      p	R\        P                  ! \        P                  ! R4      4      ,           p
\        V4       Uu. uF  qW,          ,           NK  	  pp\        \        P                  ! V	4      4      pW8X  g   Q hR# u upi )	zEurope/Brusselsr   r/   )r   r   iQ )r   freqperiodsg    p&Ar9   N)rx   rF  rV  r    r3   r   r   r   r!   r   r+   r   r   )
date_range
tz_convertZBRUSSELSr3   dtstartrq   Zinterval_daysZNZdt_utcZdt_bxlr   r4   Zexpected_ordinalfZactual_ordinalfs   &&            r   _test_date2num_dstr^    s     {{  !23H
**C aQ#>G!!"b9H$$u,M	Aga@F)F	FOOBMM,$?@	@B;@8D8aq0118D6??623O/// Es   	Dc                  sb   a  ! R  R\         P                   4      oV3R lp R p\        W4       R# )c                   s^   a a ] tR tRt oRtV 3R ltV 3R ltV 3R lt]R 4       t	Rt
VtV ;t# )%test_date2num_dst.<locals>.dt_tzawarei  z
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                s   < \         SV `  V4      p\        VR R4      pVe#   \        VRR4      pVe   VP                  V4      p\	        V\
        P
                  4      '       d   V P                  V4      pV# )r0   N	normalize)super__sub__getattrr`  Z
isinstancer   
mk_tzaware)r   otherZrr0   Z	localizer	__class__s   &&   r   rb  Z-test_date2num_dst.<locals>.dt_tzaware.__sub__  so    &AQ$/F!#FK>	(((+A!X..//OOA&Hr%   c                s@   < V P                  \        SV `	  V4      4      # N)rd  ra  __add__)r   re  rf  s   &&r   rh  Z-test_date2num_dst.<locals>.dt_tzaware.__add__  s    ??57?5#9::r%   c                sD   < \         SV `  V4      pV P                  V4      # rg  )ra  
astimezonerd  )r   r0   r   rf  s   && r   ri  Z0test_date2num_dst.<locals>.dt_tzaware.astimezone  s!    #F+B??2&&r%   c                sX    / pRpV F  p\        WR4      pVf   K  WRV&   K  	  V ! R/ VB # )r   N)r   r   r   hourZminuteZsecondr   r0   r   )rc  )ZclsZdatetime_objkwargsZattrsZattrvalr'  r   rd  Z0test_date2num_dst.<locals>.dt_tzaware.mk_tzaware   s@    FE l$7?#&4L 
 == r%   r   )r   r   r   r   Z__doc__rb  rh  ri  Zclassmethodrd  r   r   Z__classcell__)rf  r   s   @@r   
dt_tzawarer_    s2     			;	' 
	! 
	! 	!r%   rm  c                 s~   < SP                  V 4      p\        V4       Uu. uF  qCWA,          ,           NK  	  up# u upi rg  )rd  r   )r   rY  rZ  r]  r4   rm  s   &&&  r   r[  Z%test_date2num_dst.<locals>.date_range  s7    ''..3Gn=n18$$n===s   :c                 sL    V  Uu. uF  q"P                  V4      NK  	  up# u upi rg  )ri  )Zdt_listr0   Zdr   r   r\  Z%test_date2num_dst.<locals>.tz_convert  s!    .56gV$g666r   N)r   r^  )r[  r\  rm  s     @r   test_date2num_dstrn    s*    .!X&& .!b>7 z.r%   c                 s@   a  V 3R  lp\        S P                  V4       R# )c                  s^   < SP                   P                  ! V !  P                  \        4      # rg  )ZDatetimeIndexr\  astypeZobject)Zargspds   *r   r\  Z,test_date2num_dst_pandas.<locals>.tz_convert$  s%    **D188@@r%   N)r^  r[  )rp  r\  rk   r   test_date2num_dst_pandasrq     s    A r}}j1r%   c           	      s   V! R 4      pV ! \         P                   ! R^^^ 4      V4      pV ! \         P                   ! R^^^ 4      V4      p\        P                  ! \        P                  P
                  VR7      pVP                  W44      p\         P                   ! R^^^\        P                  P                  4       R7      \         P                   ! R^^^\        P                  P                  4       R7      .pWg8X  g   Q hR# )Australia/Sydneyr   )rY  r]  r/   N)	r   r    rw   rx   ry   DAILYZbetweenrF  Ztzutc)	attach_tzZget_tzSYDr]  dtendruleZactZexpr   r   _test_rrulewrapperrx  *  s    
#
$C))$1a8#>Gh''aA6<EHNN$8$8'JD
,,w
&CT1aHKK4E4E4GHT1aHKK4E4E4GHJC ::r%   c            
      sl   R  p \        V \        P                  P                  4       \        P                  P                  R4      p\        P                  ! R^^^ 4      p\        P                  ! R^^^ 4      p\
        P                  ! \        P                  P                  VWR7      pVP                  V4      \        P                  ! R^^^ ^ VR7      8X  g   Q hVP                  V4      \        P                  ! R^^^ ^ VR7      8X  g   Q hVP                  V8X  g   Q hVP                  ^8X  g   Q hR# )c                 s&    V P                  VR 7      # )r/   )rL  r   Zzi   &&r   rt  Z$test_rrulewrapper.<locals>.attach_tz:  s    zzz$$r%   rr  r   )rY  r]  r0   Zuntilr/   N)rx  rx   rF  rV  r   r    rw   ry   rs  ZafterZbeforeZ_base_tzinfoZ	_interval)rt  ru  r]  rv  rw  r   r   test_rrulewrapperr{  9  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r%   c                  sb    \         P                  ! R 4      p R p\        WP                  4       R# )pytzc                 s$    VP                  V 4      # rg  )localizery  rz  r   rt  Z)test_rrulewrapper_pytz.<locals>.attach_tzS  s    {{2r%   N)r^   importorskiprx  rM  )r|  rt  rA   r   test_rrulewrapper_pytzr  N  s'     v&D y--0r%   c            
      s   \         P                  ! R 4      p V P                  R4      p\        R4       Uu. uFE  pVP	                  \
        P
                  ! R^^4      4      \
        P                  ! V4      ,           NKG  	  pp\        P                  ! RVR7      pVP                  4        VP                  P                  \        P                  ! V^ ,          4      R,
          \        P                  ! VR
,          4      R,           4       \        P                  ! . RO4      pV\        P                  ! \        P                  ! R4      4      ,           p\        P                   P#                  WT! 4       4       . ROp\%        \'        \(        \        P*                  ! V! 4       VR7      4      4      pWv8X  g   Q h\        P,                  ! VP/                  V^ ,          V^,          4      \        P                  ! . RO4      4      '       g   Q h\        P,                  ! VP1                  V^,          V^ ,          4      P/                  V^ ,          V^,          4      \        P                  ! . RO4      4      '       g   Q hR	# u upi )r|  zAmerica/New_YorkrR   rS   TrP  r
   r9   rE  Nr   )g{ja&Ag{jd&Ag{jtg&Ag{jNj&Ag{j*m&Ag{jp&Ag{jr&A)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:00)	g@g*@g:@gJ@gZ@gj@gz@g@g@)r^   r~  rM  r   r}  r   r   r    r   r   r   r   r!   r   r   r+   r   r<   r   r   rb   r   Zallcloser   Zget_locator)r|  rF  r4   r   r~   r   r   r   r   r   test_yearlocator_pytzr  Y  s   v&D	)	*B*/+	7*5Q 
X&&tQ2	3a 
! 
!*5  	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I=c            
      s   R  p \         P                   ! R^^4      p\         P                  ! R	R7      R^R^R^/. R
O.\         P                  ! R	R7      R^R^R^/. RO.\         P                  ! RR7      R^R^	R^/RR..3pV FP  w  r4pW,           pV ! W3/ VB p\        \        \        \
        P                  ! V! 4       4      4      4      V8X  d   KP  Q h	  R# )c                 s    \         P                  ! R/ VB pVP                  4        VP                  P	                  \         P
                  ! V 4      \         P
                  ! V4      4       V# )Nr   )r    ZYearLocatorr   r   r   r!   )r   r   rk  r~   s   &&, r   _create_year_locatorZ.test_YearLocator.<locals>._create_year_locator{  sO    $$.v.!!#&&vu'='-u'=	?r%   r   r   r   r   r   z1980-09-25 00:00:00+00:00z2000-09-25 00:00:00+00:00Nr   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  r   r   r   Z	argumentsr   r   r~   r   r   test_YearLocatorr  z  s     
		4A	&B""2Wa2K ""2Wa3K ""0Wa3,.IJ%G0 '."(Z&r;;CV__WY789XEEE '.r%   c                  s   \         P                  ! \        4      ;_uu_ 4        \        P                  ! RR7       RRR4       \         P                  ! \        4      ;_uu_ 4        \        P                  ! RR7       RRR4       \         P                  ! \        4      ;_uu_ 4        \        P                  ! ^ R7       RRR4       \         P                  ! \        4      ;_uu_ 4        \        P                  ! RR7       RRR4       \        P                  ! RR7       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     Lb; i)r1   rp   Ng?r
   r   g      )r^   raises
ValueErrorr    rd   r   r%   r   test_DayLocatorr    s    	z	"	"2& 
#	z	"	"4( 
#	z	"	"1% 
#	z	"	"3' 
#
s# 
#	"	"	"	"	"	"	"s/   D"%D5'E)E"D2	5E	E	E+	c                  s    \         P                   ! R ^^\        P                  R7      p V P                  4       R8X  g   Q hR# )  r/   r3   N)r   r    r3   Ztznamer       r   test_tz_utcr    s0    			4Afjj	9B99;%r%   z	x, tdeltarE   c                 sB    \         P                  ! V 4      pW!8X  g   Q hR # rg  )r    Znum2timedelta)r   Ztdeltar   r   r   test_num2timedeltar    s    
 
		a	 B<<r%   c                  sV   \         P                  ! R 4      \         P                  ! R4      .p \        P                  ! V 4      p\         P                  ! RR.4      \        P                  ! \         P                  ! R4      4      ,           p\         P
                  P                  W4       R# )rg   z
2001-01-01    H&Ag    J&Ar9   N)r   r+   r    r!   r   r   r   )r   Zdnr   r   r   test_datetime64_in_listr    sk    
--
%r}}\'B	CB		B	7W%	&	|4	5
6AJJB"r%   c                  s   \         P                  ! R 4      p \        P                  ! 4        \        P                  ! 4        \
        P                  ! \        4      ;_uu_ 4        \        P                  ! R4       RRR4       \        P                  ! 4        \        P                  ! R4       V \         P                  ! R4      ,
          P                  R4      pVP                  R4      p\         P                  P                  \        P                  ! V 4      \        V4      4       \        P                  ! 4        \        P                  ! R4       \         P                  P                  \        P                  ! V 4      R4       \        P                  ! 4        \        P                  ! R4       \         P                  P                  \        P                  ! V 4      VR,
          4       \        P                  ! 4        \        P                  ! R	4       \         P                  P                  \        P                  ! \         P                  ! R
4      4      R4       R#   + '       g   i     EL; i)rg   z
0000-01-01Nr8   datetime64[D]Zintr9   r  z1970-01-01T01:00:00z1970-01-01T00:00:00z1970-01-01T12:00:00g      ?gUUUUUU?)r   r+   r    r>   Z	get_epochr^   r  ZRuntimeErrorr?   ro  r   r   r!   Zfloatr<   )dater   rA   r   test_change_epochr    s|   ==&D $$&
	|	$	$ 	& 
%
 $$&
\"
|,
,	4	4_	EB	5	BJJFOOD159=
$$&
\"JJFOOD18<
$$&
*+JJvt4b6kB
$$&
*+JJ&;<=) 
%	$	$s   #I!!I2	c                  s   \         P                  ! R RRR7      p \        P                  ! RR7      p^.VP                  ^&   VP                  4        VP                  P                  \        P                  ! V ^ ,          4      \        P                  ! V R	,          4      4       \        P                  ! \        RR7      ;_uu_ 4        V! 4       pRRR4       R#   + '       g   i     R# ; i)
z
2001-01-10z
2001-03-04r  r   Fr   zAutoDateLocator was unabler"  Nr   )r   aranger    r   Z	intervaldr   r   r   r!   r^   r_   r`   )r5   r~   Zlocsr   r   test_warn_notintervalsr    s    IIlLHE$$>G3GaLL""6??58#<#)??59#=?	k)E	F	Fy 
G	F	F	Fs   CC*	c                  s   R \         P                  R&   \        P                  ! RRRR7      p \         P                  ! 4       w  rVP                  V \        P                  ! \        V 4      4      4       VP                  P                  4        VP                  4       ^ ,          P                  4       R8X  g   Q hVP                  4       ^,          P                  4       R8X  g   Q hR\         P                  R&   \         P                  ! 4       w  rVP                  V \        P                  ! \        V 4      4      4       VP                  P                  4        VP                  4       ^ ,          P                  4       R	8X  g   Q hVP                  4       ^,          P                  4       R
8X  g   Q h\        P                  ! \        4      ;_uu_ 4        R\         P                  R&   RRR4       R#   + '       g   i     R# ; i)Zconcisezdate.converterz
2020-01-01
2020-05-01r  r   r   r   r\   zJan 01 2020Jan 15 2020ZbooN)r   r   r   r  r:   r   ra   r   r   r   r   r^   r  r  r5   r   r   r   r   test_change_converterr    s_   %.CLL!"IIlLHEllnGCGGE299SZ()JJOO"++-666"++-555%+CLL!"llnGCGGE299SZ()JJOO"++->>>"++->>>	z	"	").%& 
#	"	"	"s   G00H	c                  sd   R \         P                  R&   \        P                  ! RRRR7      p \         P                  ! 4       w  rVP                  V \        P                  ! \        V 4      4      4       VP                  P                  4        VP                  4       ^ ,          P                  4       R8X  g   Q hVP                  4       ^,          P                  4       R8X  g   Q hR\         P                  R&   \         P                  ! 4       w  rVP                  V \        P                  ! \        V 4      4      4       VP                  P                  4        VP                  4       ^ ,          P                  4       R	8X  g   Q hVP                  4       ^,          P                  4       R
8X  g   Q hR# )Fzdate.interval_multiplesz
2020-01-10r  r  r   zJan 10 2020zJan 24 2020ZTruer  zFeb 01 2020N)r   r   r   r  r:   r   ra   r   r   r   r   r  r   r   test_change_interval_multiplesr    s2   .3CLL*+IIlLHEllnGCGGE299SZ()JJOO"++->>>"++->>>.4CLL*+llnGCGGE299SZ()JJOO"++->>>"++->>>r%   c                  s   \         P                  ! 4       p V P                  ^ \        P                  4      R8X  g   Q hV P                  ^ ^4      R8X  g   Q hV P                  ^^ 4      R8X  g   Q hV P                  ^ ^ 4      R8X  g   Q hV P                  4        V P                  4       \        P                  ! R^^^ ^ \        P                  P                  R7      \        P                  ! R^^^ ^ \        P                  P                  R7      38X  g   Q hV P                  \         P                  8X  g   Q hRp\        P                  P                  V4      pV P                  V8w  g   Q hV P                  R4       V P                  V8X  g   Q hV P                  4        V P                  P                   ! \         P"                  ! RR.4      !   V P                  4       \        P                  ! R^^^ ^ VR7      \        P                  ! R^^
^ ^ VR7      38X  g   Q hV\$        P&                  R&   \         P                  ! 4       p V P                  V8X  g   Q h\(        P*                  ! \,        RR	7      ;_uu_ 4        \         P                  ! R
R7       RRR4       \(        P*                  ! \.        RR	7      ;_uu_ 4        \         P                  ! ^R7       RRR4       R#   + '       g   i     LV; i  + '       g   i     R# ; i)r    r  r/   ZIceland
2022-01-10z
2022-01-08r.   rM  z Aiceland is not a valid timezoner"  ZAicelandrE  Nz%tz must be string or tzinfo subclass.r    r1   )ir   )r    ZDateLocatorZnonsingularr   Zinfr   Zdatalim_to_dtr   rM  rN  rF  r3   rx   rV  
set_tzinfor   Zset_data_intervalr!   r   r   r^   r  r  Z	TypeError)r~   Ztz_strZ
iceland_tzr   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!::###LL""FOO\5A5C %D E  "$1a:>$2q!J?'A A A A
  &CLL   "G::### 
z)K	L	Lj) 
M	yD
F 
Fa 
F 
F 
M	L
F 
F 
Fs   :K >K3 K0	3L	c            	      s   \         P                  ! R 4      R8X  g   Q h\        P                  ! R^^
R7      p \         P                  ! RV R7      R8X  g   Q h\        P
                  ! \         P                  ! RR.V R7      \        P                  ! RR.4      8H  4      '       g   Q h\         P                  ! . 4      P                  ^ 8X  g   Q h\         P                  ! . \        P                  ! R^^
R7      4      P                  ^ 8X  g   Q hR# )	r      @r.   r   z2022-01)r   z2022-02g    @@N)r    Zdatestr2numr   r  r   re   r   Zsizer  r  r   test_datestr2numr  E  s    l+w666	Dr	2Bi4???66&$$	I
XXvv&'( ) ) ) ) b!&&!+++b(--T67R#A BBF$!L L Lr%   kwargc                 s    \         P                  ! 4       pV R R./pV  R2p\        P                  ! \        VR7      ;_uu_ 4        \         P
                  ! V3/ VB  RRR4       R#   + '       g   i     R# ; i)r  r*  z argument must be a listr"  N)r    r   r^   r  r  r   )r  r~   rk  r#  s   &   r   !test_concise_formatter_exceptionsr  Q  s`     $$&Gb$Z Fg-.E	z	/	/##G6v6 
0	/	/	/s   A''A8	c                  s    \         P                  ! 4       p \         P                  ! V 4      pV! R 4      R8X  g   Q hVP                  R 4      R8X  g   Q hR# )r  Z2022z2022-01-10 00:00:00N)r    r   r   Zformat_data_short)r~   r   rA   r   test_concise_formatter_callr  [  sM    $$&G++G4IW'''&&w/3HHHHr%   c            
      s   \         P                  ! \        ^^4       U u. uF  p \        P                  ! R^V 4      NK  	  up 4      p\         P                  ! . RO4      p\         P                  P                  V^ 4      p\        P                  ! 4       w  rEVP                  W4       VP                  4       R8X  g   Q hR# u up i )r1   r   N)r1   r   r   i   r   r  )
r   r   r   r   r2   Zmasked_greaterr   r:   r   r=   )Znr   r$  Zmr   r   r   r   test_datetime_maskedr  b  s     	q!EA(##D!Q/EFA
!A
Q"AllnGCGGAM;;=F""" Fs   !C rl  c                 s    \         P                  ! \        R V  R2R7      ;_uu_ 4        \        P                  ! V 4       RRR4       R#   + '       g   i     R# ; i)zDate ordinal z	 convertsr"  N)r^   r  r  r    r   )rl  r   r   test_num2date_errorr  n  s8    	z=Y)G	H	H 
I	H	H	Hs   A

A	c                  sH   \         P                  ! R 4      \        P                  ! R^
^^ ^ ^R\        P                  P                  R7      8X  g   Q h\         P                  ! R4      \        P                  ! R^
^^ ^ ^\        P                  P                  R7      8X  g   Q hR# )gj<  j@i  i,B r/   gq<  j@N)r    r   r   rM  rN  r   r%   r   test_num2date_roundoffr  t  s    ??,-1B1Bb"aAvh.?.?.C.C2E E E E ??,-1B1Bb"aAh&7&7&;&;2= = = =r%   c                  s   \         P                  ! \        P                  ! R ^^^ ^ \         P                  R7      4      p \         P                  ! R4      pV! V 4      R8X  g   Q hVP                  R4       V! V 4      R8X  g   Q hR# )r   r/   z%Y-%b-%d %H:%Mz2011-Jan-01 00:00zPacific/Kiritimatiz2011-Jan-01 14:00N)r    r!   r   r3   ZDateFormatterr  )r   r   rA   r   test_DateFormatter_settzr  |  sx    ??8,,T1aA4:JJ@ AD$$%56IT?1111 -.T?1111r%   )zdatetime64[s]zdatetime64[us]zdatetime64[ms]r   )ZsZmsZusZnsr   )r   $\mathdefault{05}$$\mathdefault{09}$z$\mathdefault{13}$z$\mathdefault{17}$z$\mathdefault{21}$z$\mathdefault{25}$z$\mathdefault{29}$r   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}$)r,  r@  Zoffset_formats)ii )Wr   Zdateutil.tzrx   Zdateutil.rrulerj   Znumpyr   r^   Z
matplotlibr   r   Zmatplotlib.datesr5   r    Zmatplotlib.pyplotZpyplotr   Zmatplotlib.testing.decoratorsr   Zmatplotlib.tickerZtickerr   r   ZmarkZparametrizer$   r)   r-   r7   rB   rD   rG   rQ   rV   rY   rZ   rf   rl   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r!  r%  r&  r(  r>  rD  rO  rW  rX  r^  rn  rq  rx  r{  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  )r   r   rj  Zminur   s   00000r   <module>r     s         ( !  : #P$  1 1$1aA F!)!2!24Aq!Q!G!)!2!24Aq!Q!G!I #+"3"3D!Q1a"H"*"3"3D!Q1a"H"J"*"3"3D!Q1a"H"*"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 *h'/4T4/DE/Dtd""/DEGR ;@B?K?C)C//?KMb!:?2q/J/$&--/JL#:?2,G,$&--,GI	- 	=	=;@ LJ LJ^ HF HFV6.#b ,%':;"$78a -0Q/a *-b!2&c"B'/ ..0",.(4 ,h'-24r-BC-Bqe##-BCER 45
 b!"# " / *	9+*	94#n1#h&)RC"L ,-.	# /	#0,>/B2* 1 1  @$FN	$ 
 h00a89s8h&8&8a&@&.&8&8c&B&D EFG	G
#@/*?&+!\	L FH7H7I	#  45 6
=	2G! FKJGH Ds   U#U(7U-)U2U7