
    h                     l
   S SK r S SKrS SKrS SKrS SKrS SKrS SKJ	r	J
r
  S SKJr  S SKJr  S SKJr  S SKJr  S r\R.                  R1                  S\ R                   " SSSS SS5      \ R                   " SSSS SS5      \ R                   " SSSSSS5      /\ R                   " SSSS SS5      \ R                   " SSSSSS5      /\ R                   " SSSSSS5      \ R                   " SSSS	SS5      ///5      \R.                  R1                  S
/ SQ5      S 5       5       r\R.                  R1                  S
/ SQ5      S 5       r\R.                  R1                  S/ SQ5      S 5       rS rS rS rS r\" S/5      S 5       r \" S/5      S 5       r!\" S/5      S 5       r"\" S/5      S 5       r#S r$S r%\" S/5      S  5       r&S! r'S" r(\" S#/5      S$ 5       r)S% r*S& r+\R.                  R1                  S'\ RX                  " S(S)9\-" S*S+S,5       V s/ s H  n S-U -  PM
     sn 4\ RX                  " S.S/9\-" SS0S	5       Vs/ s H  nS1U-  PM
     sn4\ RX                  " S,S29\-" S S3S5       Vs/ s H  nS4U-  PM
     sn4\ RX                  " S5S69\-" S S75       Vs/ s H  nS8U-  PM
     sn4/5      S9 5       r.S: r/\%S; 5       r0\%S< 5       r1S= r2S> r3\R.                  R1                  S?\ RX                  " S@SA9SB4\ RX                  " SS69SC4\ RX                  " SS29SD4\ RX                  " SS/9SE4\ RX                  " SS)9SF4\ RX                  " SGS)9SH4\ RX                  " SIS)9SH4/5      SJ 5       r4SK r5SL r6SM r7\R.                  R1                  S?\ RX                  " S(S)9\-" SNSOS,5       Vs/ s H	  nS-U4-  PM     sn4\ RX                  " SPS/9/ SQQ4\ RX                  " SPS29/ SRQ4\ RX                  " SSA9/ SSQ4/5      ST 5       r8SU r9SV r:SW r;SX r<\" SY/5      SZ 5       r=S[ r>S\ r?S] r@S^ rAS_ rB\R.                  R                  S` 5       rD\R.                  R                  Sa 5       rESb rFSc rGSd rH\R.                  R1                  SeS\ RX                  " SS/94SSf/\ RX                  " SS/9\ RX                  " SfS/9/4/5      Sg 5       rISh rJSi rKSj rLSk rMSl rNSm rOSn rP\R.                  R1                  SoSp5      Sq 5       rQSr rRSs rS\R.                  R1                  StSu5      Sv 5       rTSw rUSx rVgs  sn f s  snf s  snf s  snf s  snf )y    N)
rc_contextstyle)image_comparisonc                     [         R                   " SSS5      n [        SS5       Vs/ s H  o[         R                  " US9-   PM     nn[        R                  " USS9n[        R                  " / SQ5      n[
        R                  " S	S
9nUR                  SSS5      nUR                  X$5      u  nUR                  X45      u  n[        R                  R                  UR                  SS9UR                  SS95        [
        R                  " S	S
9nUR                  SSS5      nUR                  XB5      u  nUR                  XC5      u  n[        R                  R                  UR                  SS9UR                  SS95        g s  snf )N     r      daysdatetime64[ns]dtype)        g       @      ?)
      )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	            M/var/www/html/env/lib/python3.13/site-packages/matplotlib/tests/test_dates.pytest_date_numpyxr,      s7   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   r   r	   r   )zdatetime64[s]zdatetime64[us]zdatetime64[ms]r   c                     [         R                  " U 5      n[        R                  " XS9n[         R                  " U5      n[        R                  R                  X$5        g )Nr   )mdatesdate2numr   r   r   r   )r-   r   r$   tnpnptimes        r+   test_date_date2num_numpyr3   "   s@     ??2D
((2
#C__S!FJJD)    c                    [         R                   " SSSSSS5      n[        R                  " U5      [        R                  /n[        R
                  " US/U S9n[        R                  " U5      n[        R                  R                  X$5        g )Nr   r   r   NaTr   )r   r/   r0   r   nanr   r   assert_array_equal)r   r-   tmplr1   r2   s        r+   test_date2num_NaTr:   6   si    
 
		4Aq!Q	/BOOB(D
((B;e
,C__S!FJJ!!$/r4   units)smsusnsc                     [         R                  " [        R                  " SU 5      5      n[        R                  " U5      (       d   eg )Nr6   )r/   r0   r   
datetime64isnan)r;   r9   s     r+   test_date2num_NaT_scalarrC   B   s-    ??2==67D88D>>>r4   c            
      &   [         R                   " SSS5      n [        R                  R                  [	        S5       Vs/ s H  nU [         R
                  " SU-  S9-   PM     sn/ SQS9n[        R                  " U5      n[        R                  R                  [        R                  R                  U5      S	5        [         R                   " SSS[        R                  S
9n [        R                  R                  [	        S5       Vs/ s H  nU [         R
                  " SU-  S9-   PM     sn/ SQS9n[        R                  " U5      n[        R                  R                  [        R                  R                  U5      S	5        g s  snf s  snf )N           r   r
   )r   r   r   r   r   r   r   )mask)FTTFFFTtzinfo)r   r   mar   r   r   r/   r0   r   r8   getmaskUTC)r"   idatesnpdatess       r+   test_date2num_maskedrR   H   s@   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            	      `   [         R                  " 5       u  pUR                  5         U R                  5         [        R
                  R                  UR                  5       [        R                  " [        R                  " S5      5      [        R                  " [        R                  " S5      5      /5        [        R                  " 5         [        R                  " S5        [         R                  " 5       u  pUR                  5         U R                  5         [        R
                  R                  UR                  5       [        R                  " [        R                  " S5      5      [        R                  " [        R                  " S5      5      /5        [        R                  " 5         g )N
1970-01-01z
1970-01-02
0000-12-31)r   subplots
xaxis_datedraw_without_renderingr   r   assert_allcloseget_xlimr/   r0   rA   _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 $$&r4   c                     [         R                  " 5       n U R                  5       nUR                  SS/SS/5        UR                  R                  5         [        R                  R                  UR                  5       SS/5        g )N2   F   r   r   )
r   r   r   r   xaxis	axis_dater   r   rY   rZ   r]   s     r+   test_date_not_emptyrd   r   s]    
**,C		BGGRHq!fHHJJr{{}r2h7r4   c            	         [         R                  " 5       u  pUR                  S5        UR                  [        R
                  " S5      [        R
                  " S5      /SS/5        [        R                  R                  UR                  5       [        R                  " [        R
                  " S5      5      [        R                  " [        R
                  " S5      5      /5        [        R                  " 5         [        R                  " S5        [         R                  " 5       u  pUR                  S5        UR                  [        R
                  " S5      [        R
                  " S5      /SS/5        [        R                  R                  UR                  5       [        R                  " [        R
                  " S5      5      [        R                  " [        R
                  " S5      5      /5        [        R                  " 5         g )N      ?z
2016-01-01z
2016-01-02r   r   rU   )r   rV   axhliner   r   rA   r   rY   rZ   r/   r0   r[   r\   r]   s     r+   test_axhlinerh   {   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 $$&r4   zdate_axhspan.pngc                  J   [         R                   " SSS5      n [         R                   " SSS5      n[        R                  " 5       u  p#UR                  XSSS9  UR	                  U [         R
                  " SS	9-
  U[         R
                  " SS	9-   5        UR                  SS
9  g )N  r         blue      ?	facecoloralpha   r
   left)r   r   rV   axhspanset_ylimr   subplots_adjustr-   tfr'   r(   s       r+   test_date_axhspanrz      s     
		4B	'B			4B	'BllnGCJJrtJ4KKX''Q//X''Q//1T"r4   zdate_axvspan.pngc                  L   [         R                   " SSS5      n [         R                   " SSS5      n[        R                  " 5       u  p#UR                  XSSS9  UR	                  U [         R
                  " S	S
9-
  U[         R
                  " S	S
9-   5        UR                  5         g )N  r   rk     rl   rm   rn   ro   i  r
   )r   r   rV   axvspanset_xlimr   autofmt_xdaterx   s       r+   test_date_axvspanr      s     
		4B	'B			4B	'BllnGCJJrtJ4KKX''S11X''S113r4   zdate_axhline.pngc                  J   [         R                   " SSS5      n [         R                   " SSS5      n[        R                  " 5       u  p#UR                  U SSS9  UR	                  U [         R
                  " SS	9-
  U[         R
                  " SS	9-   5        UR                  S
S9  g Nrj   r   rk      rm   r	   colorlwrr   r
   rn   rs   )r   r   rV   rg   rv   r   rw   rx   s       r+   test_date_axhliner      s     
		4B	'B			4B	'BllnGCJJrAJ&KKX''Q//X''Q//1T"r4   zdate_axvline.pngc                  L   [         R                   " SSS5      n [         R                   " SSS5      n[        R                  " 5       u  p#UR                  U SSS9  UR	                  U [         R
                  " SS	9-
  U[         R
                  " SS	9-   5        UR                  5         g )
Nr|   r   rk   rl   redr	   r   rr   r
   )r   r   rV   axvliner   r   r   rx   s       r+   test_date_axvliner      s     
		4B	'B			4B	'BllnGCJJr1J%KKX''Q//X''Q//1r4   c                    U R                  S5        [        R                  " SSS5      n[        R                  " SSS5      n[        R                  " 5       u  p4[        R
                  " [        5       nUR                  X4SS9  [        U5      S:X  d   eS[        US   R                  5      ;   d   e S S S 5        UR                  / / 5        UR                  R                  [        R                  " 5       5        UR                  R!                  5       " 5       n[        U5      S	:  d   eU R"                  (       a!  [%        S
 U R"                   5       5      (       d   e[        U R"                  5      S:  d   eg ! , (       d  f       N= f)NWARNINGr|   r   rk   T)autoz.Attempting to set identical low and high xlimsr     c              3   l   #    U  H*  nUR                   S :H  =(       a    UR                  S:H  v   M,     g7f)zmatplotlib.tickerr   N)name	levelname).0records     r+   	<genexpr>+test_too_many_date_ticks.<locals>.<genexpr>   s4      "&$F 	**Lv/?/?9/LL$s   24)	set_levelr   r   rV   pytestwarnsUserWarningr   lenstrmessager   rb   set_major_locatorr/   
DayLocatorget_major_locatorrecordsall)caplogr-   ry   r'   r(   recvs          r+   test_too_many_date_ticksr      s?    Y			4B	'B			4B	'BllnGC	k	"c
RH4(3x1}}@s1v~~&' 	( ' 
#
 GGBOHHv0023
""$&Aq6D== >>c "&nn"& & & & & v~~""" 
#	"s   3AE==
Fc                 F   ^  [         R                  " T 5      U 4S j5       nU$ )Nc                     > [         R                  " 5         [         R                  " S5        T " 5         [         R                  " 5         g )N
2000-01-01)r/   r[   r\   )thefuncs   r+   wrapper%_new_epoch_decorator.<locals>.wrapper   s.    ((*&	((*r4   )	functoolswraps)r   r   s   ` r+   _new_epoch_decoratorr      s%    __W+ +
 Nr4   zRRuleLocator_bounds.pngc                     SS K Js  Jn   U R                  5         [        R                  " SSS5      n[        R                  " SSS5      n[
        R                  " 5       n[
        R                  " 5       nUR                  S5        UR                  X/SS/SS	9  [        R                  " [        R                  R                  S
S9n[        R                  " U5      nUR                   R#                  U5        UR                   R%                  [        R&                  " U5      5        UR)                  5         UR+                  5         g )Nr   r   r   ip  Tr   r   omarker  interval)matplotlib.testing.jpl_unitsr   	jpl_unitsregisterr   r   r   subplotset_autoscale_onr   r/   rrulewrapperdateutilrruleYEARLYRRuleLocatorrb   r   set_major_formatterAutoDateFormatterautoscale_viewr   )r;   r-   ry   r'   r(   r   locators          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r4   c                      [         R                  " 5       n [        R                  " SSS[         R                  S9n[        R                  " SSS[         R                  S9nU R	                  X5        g )Nr   )yearmonthdayrK      )r/   r   r   rN   tick_values)locx1y1s      r+   test_RRuleLocator_dayranger      sP    



C			&**	EB			6::	FBOOBr4   c                  p   [         R                  " [        R                  R                  SS9n [         R
                  " U 5      n[        R                  " SSSS9n[        R                  " SSSSS9nSS/n[        [        [        [         R                  " UR                  X#5      5      5      5      U:X  d   eg )	Nrr   r     r   r   r   r   )r   r   r   microsecond2020-01-01 00:00:00+00:00z 2020-01-01 00:00:00.000001+00:00)r/   r   r   r   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)@ABCxOOOr4   z#DateFormatter_fractionalSeconds.pngc                     SS K Js  Jn   U R                  5         [        R                  " SSSSSS5      n[        R                  " SSSSSS5      n[
        R                  " 5       n[
        R                  " 5       nUR                  S5        UR                  X/SS/SS9  UR                  5         UR                  5         g )	Nr   i  r   Tr   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   )r;   r-   ry   r'   r(   s        r+   test_DateFormatterr     s    00	NN
 
		4Aq!Q	/B			4Aq!Q	/B
**,C	BGGRHsCjG- r4   c            	      v   S[         R                  S'   [        R                  " SSSSS5      [        R                  " SSSSS5      [        R                  " SSSS	S5      /n / S
Qn[         R                  " 5       u  p#UR	                  X5        UR
                  R                  [        R                  " S5      5        UR                  R                  5         UR                  5        Vs/ s H  oDR                  5       PM     nn/ SQnXV:X  d   eUR
                  R                  [        R                  " 5       5        UR
                  R                  [        R                  " S5      5        [        R                  " S5      nUR
                  R!                  [        R"                  " U5      5        UR
                  R                  [        R                  " S5      5        UR                  R                  5         UR                  SS9 Vs/ s H  oDR                  5       PM     nn/ SQnXV:X  d   egs  snf s  snf )z\
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)rr   7   )rF      )rG   -   minor)which)z30 08:15z30 08:45z30 09:15z30 09:45z30 10:15N)r   rcParamsr   rV   r   rb   r   r/   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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   (H1
H6c                       " S S5      n S n[         R                  " U " 5       5      nXR                  S'   U" [        R                  " SSS5      /5      S/:X  d   eg )	Nc                       \ rS rSrS rSrg).test_date_formatter_callable.<locals>._LocatoriL  c                     g)Ni )selfs    r+   	_get_unit8test_date_formatter_callable.<locals>._Locator._get_unitM  s    Cr4   r   N)__name__
__module____qualname____firstlineno__r   __static_attributes__r   r4   r+   _Locatorr   L  s    'r4   r  c                 N    U  Vs/ s H  o"R                  S5      PM     sn$ s  snf )Nz	%d-%m//%Y)strftime)rP   _dts      r+   callable_formatting_functionBtest_date_formatter_callable.<locals>.callable_formatting_functionO  s!    3895RK(5999   "i  rF      z25-12//2014)r/   r   scaledr   )r  r  	formatters      r+   test_date_formatter_callabler  J  sZ    ( (: ((4I8Sh''b"567M?JJJr4   zdelta, expected(  weeks  i{  rk   z$\mathdefault{%d}$r   r
       z $\mathdefault{1990{-}01{-}%02d}$hoursrl   z$\mathdefault{01{-}01\;%02d}$r   minutes   z$\mathdefault{01\;00{:}%02d}$c                    [         R                  " S5        [        R                  " SSS5      nX -   n[        R                  " SS9nUR                  5         UR                  R                  [        R                  " U5      [        R                  " U5      5        [        R                  " USS9nU" 5        Vs/ s H
  oe" U5      PM     snU:X  d   eg s  snf )Ndefaultr  r   Finterval_multiplesTusetex)
r   user   r/   AutoDateLocatorcreate_dummy_axisaxisset_view_intervalr0   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   9Cc                     [         R                   " SSS[        R                  S9n [         R                   " SSS[        R                  S9n[         R                  " SS9n[	        [        R
                  " XU5      5      S:X  d   eU[         R                  " SS9-
  n[	        [        R
                  " XU5      5      S:X  d   eU[         R                  " SS9-   n[	        [        R
                  " XU5      5      S:X  d   e[         R                   " SSS[        R                  S9n[         R                  " S	S9n[        R
                  " XU5      n[	        U5      S
:X  d   e[        R                  " US   5      X-
  :X  d   eg)z^
This test should check if drange works as expected, and if all the
rounding errors are fixed
  r   rJ   r   r     microsecondsr        N)r   r/   rN   r   r   dranger   )startendr(  	dateranges       r+   test_dranger6  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:::r4   c                     S n [         R                   " SSS5      n[         R                  " SS9/ SQ/[         R                  " SS9/ SQ/[         R                  " S	S
9/ SQ/[         R                  " SS
9/ SQ/[         R                  " SS9/ SQ/[         R                  " SS9/ SQ/[         R                  " SS9/ SQ/[         R                  " SS9/ SQ/4nU HI  u  p4X-   nU " X5      n[        [        [        [
        R                  " U" 5       5      5      5      U:X  a  MI   e   [
        R                  " SS9nUR                  SSSSSSSS.:X  d   e[
        R                  " [        R                  R                  S0S9nUR                  SSSSSSSS.:X  d   e[
        R                  " SS9nUR                  SSSSSSSS.:X  d   eg ) Nc                     [         R                  " SS9nUR                  5         UR                  R                  " [         R
                  " X/5      6   U$ )NFr  r/   r$  r%  r&  r'  r0   date1date2r   s      r+   _create_auto_date_locator9test_auto_date_locator.<locals>._create_auto_date_locator  s@    ((EB!!#&&(GHr4   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   )r?  z1990-02-01 00:00:00+00:00z1990-03-01 00:00:00+00:00z1990-04-01 00:00:00+00:00z1990-05-01 00:00:00+00:00z1990-06-01 00:00:00+00:00z1990-07-01 00:00:00+00:00z1990-08-01 00:00:00+00:00z1990-09-01 00:00:00+00:00z1990-10-01 00:00:00+00:00z1990-11-01 00:00:00+00:00z1990-12-01 00:00:00+00:00   r
   )z1990-01-05 00:00:00+00:00z1990-01-26 00:00:00+00:00z1990-02-16 00:00:00+00:00z1990-03-09 00:00:00+00:00z1990-03-30 00:00:00+00:00z1990-04-20 00:00:00+00:00z1990-05-11 00:00:00+00:00(   )z1990-01-03 00:00:00+00:00z1990-01-10 00:00:00+00:00z1990-01-17 00:00:00+00:00z1990-01-24 00:00:00+00:00z1990-01-31 00:00:00+00:00z1990-02-07 00:00:00+00:00r  )r?  z1990-01-01 04:00:00+00:00z1990-01-01 08:00:00+00:00z1990-01-01 12:00:00+00:00z1990-01-01 16:00:00+00:00z1990-01-01 20:00:00+00:00z1990-01-02 00:00:00+00:00z1990-01-02 04:00:00+00:00z1990-01-02 08:00:00+00:00z1990-01-02 12:00:00+00:00z1990-01-02 16:00:00+00:00rk   r  )r?  z1990-01-01 00:05:00+00:00z1990-01-01 00:10:00+00:00z1990-01-01 00:15:00+00:00z1990-01-01 00:20:00+00:00seconds)	r?  z1990-01-01 00:00:05+00:00z1990-01-01 00:00:10+00:00z1990-01-01 00:00:15+00:00z1990-01-01 00:00:20+00:00z1990-01-01 00:00:25+00:00z1990-01-01 00:00:30+00:00z1990-01-01 00:00:35+00:00z1990-01-01 00:00:40+00:00  r-  )z 1989-12-31 23:59:59.999500+00:00r?  z 1990-01-01 00:00:00.000500+00:00z 1990-01-01 00:00:00.001000+00:00z 1990-01-01 00:00:00.001500+00:00z 1990-01-01 00:00:00.002000+00:00Fr  r  rF   r   )r   r   r	   r/  rr   r0  rH   rr   )maxticks)r   r   r   r   r   r/   r   r$  rF  r   r   MONTHLY)r=  r   resultst_deltar   r   r   s          r+   test_auto_date_locatorrJ    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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Ir4   c                  L   S n [         R                  " SS9/ SQ/[         R                  " SS9/ SQ/[         R                  " SS9/ S	Q/[         R                  " S
S9/ SQ/[         R                  " S
S9/ SQ/[         R                  " SS9/ SQ/[         R                  " S
S9/ SQ/[         R                  " SS9/ SQ/4n[         R                   " SSS5      nU HI  u  p4X#-   nU " X%5      n[        [        [        [
        R                  " U" 5       5      5      5      U:X  a  MI   e   g )Nc                     [         R                  " SS9nUR                  5         UR                  R                  " [         R
                  " X/5      6   U$ NTr  r9  r:  s      r+   r=  Atest_auto_date_locator_intmult.<locals>._create_auto_date_locator  s@    ((DA!!#&&(GHr4   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:00rA  r
   )
rP  z1997-01-15 00:00:00+00:00rQ  z1997-02-15 00:00:00+00:00rR  z1997-03-15 00:00:00+00:00rS  z1997-04-15 00:00:00+00:00rT  z1997-05-15 00:00:00+00:00rB  )rP  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:00rQ  z1997-02-05 00:00:00+00:00z1997-02-09 00:00:00+00:00r  )rP  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:00rk   r  )rP  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:00rC  )	rP  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:00rE  r-  )z 1996-12-31 23:59:59.999500+00:00rP  z 1997-01-01 00:00:00.000500+00:00z 1997-01-01 00:00:00.001000+00:00z 1997-01-01 00:00:00.001500+00:00z 1997-01-01 00:00:00.002000+00:00  r   r   r   r   r   r   r/   r   )r=  rH  r   rI  r   r   r   s          r+   test_auto_date_locator_intmultrW    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 %r4   c                      [         R                  " SS9n [         R                  " U 5      nSnUR                  UUS[         R                  -  -   US[         R                  -  -   /5      nU/ SQ:X  d   eg )NTr  g    B@r   i  )00:00z00.0005z00.0009)r/   r$  ConciseDateFormatterformat_ticksMUSECONDS_PER_DAY)r   r  	year_1996stringss       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5r4   c                  :   S n [         R                   " SSS5      n[         R                  " SS9[        SSS5       Vs/ s H  n[        U5      PM     sn/[         R                  " S	S9/ S
Q/[         R                  " SS9/ SQ/[         R                  " SS9/ SQ/[         R                  " SS9/ SQ/[         R                  " SS9/ SQ/[         R                  " SS9/ SQ/[         R                  " SS9/ SQ/4nU H  u  pEX-   nU " X5      nXu:X  a  M   e   g s  snf )Nc                    [         R                  " 5       u  p#[        R                  " SS9n[        R                  " U5      nUR
                  R                  U5        UR
                  R                  U5        UR                  X5        UR                  R                  5         UR                  5        Vs/ s H  ofR                  5       PM     nnU$ s  snf rM  r   rV   r/   r$  rZ  yaxisr   r   rv   r   r   get_yticklabelsr   )r;  r<  r'   r(   r   r  ststss           r+   r=  9test_concise_formatter.<locals>._create_auto_date_locator7  s    ,,.((DA//8	
""7+
$$Y/
E!

')'9'9';<';{{}';<
 =   5CrU  r   r  r      rk   r@  )1997FebMarAprMayJunJulAugSepOctNovDecrA  r
   )
Jan15rl  rx  rm  rx  rn  rx  ro  rx  rB  )rw  05091317212529rl  ry  rz  r  )zJan-0104:0008:0012:0016:0020:00zJan-02r  r  r  r  r  )rY  00:0500:1000:1500:20rC  )	rY  ry  10rx  20r~  303540r   )59.5rY  00.501.001.502.002.5r   r   r   r   )r=  r   r   rH  rI  r   r   r^  s           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   Dzt_delta, expectedg{Gz?rC  z1997-Jan-01 00:00z1997-Jan-01 00:011997-Jan-011997-Jan-021997-Jan      c                    [         R                   " SSS5      nX -   n[        R                  " 5       u  pE[        R                  " 5       n[        R
                  " U5      nUR                  R                  U5        UR                  R                  U5        UR                  X#/SS/5        UR                  R                  5         UR                  5       U:X  d   eg )NrU  r   r   )r   r   rV   r/   r$  rZ  rb   r   r   r   r   r   
get_offset)rI  r   r   r   r'   r(   r   r  s           r+   "test_concise_formatter_show_offsetr  g  s     
		4A	&B	BllnGC$$&G++G4IHHw'HH  +GGRHq!fJJOO!X---r4   c                     [         R                   " SSS5      n U [         R                  " SS9-   n[        R                  " 5       u  p#[        R
                  " 5       n[        R                  " U5      nUR                  R                  U5        UR                  R                  U5        UR                  5         UR                  X/SS/5        UR                  R                  5         UR                  5       S:X  d   eg )NrU  r   <   r
   r   r  )r   r   r   rV   r/   r$  rZ  rb   r   r   invert_xaxisr   r   r   r  )r   r   r'   r(   r   r  s         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///r4   c                     [         R                   " SSS5      [         R                   " SSS5      /n SS/n[        R                  " 5       u  p#UR                  X5        [        R
                  " 5       n[        R                  " [        SS9   UR                  R                  U5        S S S 5        UR                  R                  b   eUR                  " U 6   UR                  R                  5       U:X  d   eg ! , (       d  f       NW= f)	Nr|   r   r   r   rk   r   zalready has a convertermatch)r   r   rV   r   r/   ConciseDateConverterr   r   r   rb   set_converterr;   r   get_converter)r#   yr'   r(   convs        r+   test_concise_converter_staysr    s     
		4A	&(9(9$2(FGA	
AAllnGCGGAM&&(D	k)B	C
t$ 
D88>>!!!KKO88!!#t+++	 
D	Cs   C88
Dc                     [         R                  " 5       u  p[        R                  " SSS5      nU[        R                  " SS9-   n[        R
                  " 5       n[        R                  " U5      nUR                  R                  U5        UR                  R                  U5        UR                  X#/SS/5        U R                  5         UR                  5       S:X  d   eUR                  X"[        R                  " SS9-   5        U R                  5         UR                  5       S:X  d   eUR                  U[        R                  " S	S9-   U[        R                  " S
S9-   5        U R                  5         UR                  5       S:X  d   eUR                  X"[        R                  " SS9-   5        U R                  5         UR                  5       S:X  d   eg )NrU  r   r  r  r   r  r	   r  rH   r   rk  )r   rV   r   r   r/   r$  rZ  rb   r   r   r   rX   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  +GGRHq!f !R'''KK++!445 !Z///KKX''a00X''b113 !V+++KK++#667 !R'''r4   ri  rj  rB  )rw  $\mathdefault{05}$$\mathdefault{09}$z$\mathdefault{13}$z$\mathdefault{17}$z$\mathdefault{21}$z$\mathdefault{25}$z$\mathdefault{29}$rl  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                 n   [         R                   " SSS5      nX -   n[        R                  " SS9nUR                  5         UR                  R                  [        R                  " U5      [        R                  " U5      5        [        R                  " USS9nUR                  U" 5       5      U:X  d   eg )NrU  r   Tr  r!  )	r   r/   r$  r%  r&  r'  r0   rZ  r[  )rI  r   r   r   r   r  s         r+   test_concise_formatter_usetexr    s    , 
		4A	&B	B$$=GLL""6??2#68KL++GDAI!!'),888r4   c                  J  ^ / SQmU4S jn [         R                   " SSS5      n[         R                  " SS9[        SSS	5       Vs/ s H  n[        U5      PM     sn/[         R                  " S
S9/ SQ/[         R                  " SS9/ SQ/[         R                  " SS9/ SQ/[         R                  " SS9/ SQ/[         R                  " S	S9/ SQ/[         R                  " SS9/ SQ/[         R                  " SS9/ SQ/4nU H  u  pEX-   nU " X5      nXu:X  a  M   e   g s  snf )N)%Yz%m/%Yzday: %d%H hr %M minr  z	%S.%f secc                   > [         R                  " 5       u  p#[        R                  " SS9n[        R                  " UTS9nUR
                  R                  U5        UR
                  R                  U5        UR                  X5        UR                  R                  5         UR                  5        Vs/ s H  ofR                  5       PM     nnU$ s  snf )NTr  )formatsrb  )	r;  r<  r'   r(   r   r  re  rf  r  s	           r+   r=  Atest_concise_formatter_formats.<locals>._create_auto_date_locator  s    ,,.((DA//I	
""7+
$$Y/
E!

')'9'9';<';{{}';<
 =rh  rU  r   r  r  ri  rj  rk   r@  )rk  02/199703/199704/199705/1997z06/1997z07/1997z08/1997z09/1997z10/1997z11/1997z12/1997rA  r
   )
01/1997day: 15r  r  r  r  r  r  r  r  rB  )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 minrC  )	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  )	r=  r   r   rH  rI  r   r   r^  r  s	           @r+   test_concise_formatter_formatsr    sN   <G
 
		4A	&B			(	+eD	r? . ?c!f ? . 				"	% ( 	 
			% ( 	 
			$ ' 	 
		"	% ( 	
 
		B	' *9 	:			B	' * 	
 
		A	& ) 	7
G@ %\+B3""" %?.   D c                  J  ^ / SQmU4S jn [         R                   " SSS5      n[         R                  " SS9[        SSS	5       Vs/ s H  n[        U5      PM     sn/[         R                  " S
S9/ SQ/[         R                  " SS9/ SQ/[         R                  " SS9/ SQ/[         R                  " SS9/ SQ/[         R                  " S	S9/ SQ/[         R                  " SS9/ SQ/[         R                  " SS9/ SQ/4nU H  u  pEX-   nU " X5      nXu:X  a  M   e   g s  snf )N)r  z'%yz%Bz%m-%dz%Sz%S.%fc                   > [         R                  " 5       u  p#[        R                  " SS9n[        R                  " UTS9nUR
                  R                  U5        UR
                  R                  U5        UR                  X5        UR                  R                  5         UR                  5        Vs/ s H  ofR                  5       PM     nnU$ s  snf )NTr  )zero_formatsrb  )	r;  r<  r'   r(   r   r  re  rf  r  s	           r+   r=  Btest_concise_formatter_zformats.<locals>._create_auto_date_locator  s    ,,.((DA//,0	
""7+
$$Y/
E!

')'9'9';<';{{}';<
 =rh  rU  r   r  r  ri  rj  rk   r@  )z'97rl  rm  rn  ro  rp  rq  rr  rs  rt  ru  rv  rA  r
   )
Januaryrx  Februaryrx  Marchrx  Aprilrx  ro  rx  rB  )r  ry  rz  r{  r|  r}  r~  r  r  ry  rz  r  )z01-01r  r  r  r  r  z01-02r  r  r  r  r  )00r  r  r  r  rC  )	r  ry  r  rx  r  r~  r  r  r  r   )r  z00.0r  r  r  r  r  r  )	r=  r   r   rH  rI  r   r   r^  r  s	           @r+   test_concise_formatter_zformatsr    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 n [         R                   " SSS5      R                  [         R                  R                  S9n[         R                  " SS9/ SQS/[         R                  " S	S
9/ SQS/[         R                  " SS9/ SQS/[         R                  " SS9/ SQS/4n[         R                  " [         R                  " SS95      nU H#  u  pEnX-   nU " XU5      u  pX:X  d   eX:X  a  M#   e   g )Nc                    [         R                  " 5       u  p4[        R                  " SS9n[        R                  " XRS9nUR
                  R                  U5        UR
                  R                  U5        UR                  X5        UR                  R                  5         UR                  5        Vs/ s H  owR                  5       PM     nnXR
                  R                  5       R                  5       4$ s  snf )NTr  tz)r   rV   r/   r$  rZ  rc  r   r   rv   r   r   rd  r   get_offset_text)	r;  r<  r  r'   r(   r   r  re  rf  s	            r+   r=  <test_concise_formatter_tz.<locals>._create_auto_date_locatorN  s    ,,.((DA//?	
""7+
$$Y/
E!

')'9'9';<';{{}';<HH,,.77999 =s   3C7rU  r   rJ   rB  r  )03:0007:0011:0015:0019:00z23:00r  r  r  r  r  r  rk   r  )r  z03:05z03:10z03:15z03:20r  rC  )	r  ry  r  rx  r  r~  r  r  r  z1997-Jan-01 03:00r   )r  r  r  r  r  r  r  r	   )r   replacetimezoneutcr   )
r=  r   rH  new_tzrI  expected_stringsexpected_offsetr   r^  offsets
             r+   test_concise_formatter_tzr  M  s   
: 
		4A	&	.	.h6G6G6K6K	.	LB"",>
 ""2.= ""2.I# ""1-I#G& x11:;F6=2?\3BFC***(((	 7>r4   c                     S n [         R                  " SS9/ SQ/[         R                  " SS9/ SQ/[         R                  " SS9/ S	Q/[         R                  " S
S9/ SQ/[         R                  " S
S9/ SQ/[         R                  " SS9/ SQ/[         R                  " S
S9/ SQ/4n[        R                  R	                  S5      n[         R                   " SSSUS9nU Ha  u  pE[        SS05         X4-   nU " X6U5      n[        [        [        [        R                  " U" 5       US95      5      nX:X  d   e S S S 5        Mc     g ! , (       d  f       Mu  = f)Nc                     [         R                  " SUS9nUR                  5         UR                  R                  " [         R
                  " X/5      6   U$ )NTr   r  r9  )r;  r<  r  r   s       r+   r=  Dtest_auto_date_locator_intmult_tz.<locals>._create_auto_date_locatorw  sB    ((DRH!!#&&(GHr4   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:00rA  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:00rB  )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:00rk   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:00rC  )	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/PacificrU  r   rJ   z_internal.classic_modeFr  )r   r   r   r  gettzr   r   r   r   r/   r   )	r=  rH  r  r   rI  r   r   r   re  s	            r+   !test_auto_date_locator_intmult_tzr  v  s[    ""0K "",K "",K ""+. "",. ""2..
 ""2..Y3Gj 
		+	,B			4Ab	1B$159:B/;Gc#vwyR@ABB>!>	 ;: %::s   1AE
E	zdate_inverted_limit.pngc                  j   [         R                   " SSS5      n [         R                   " SSS5      n[        R                  " 5       u  p#UR                  U SSS9  UR	                  U [         R
                  " SS	9-
  U[         R
                  " SS	9-   5        UR                  5         UR                  S
S9  g r   )r   r   rV   rg   rv   r   invert_yaxisrw   rx   s       r+   test_date_inverted_limitr    s     
		4B	'B			4B	'BllnGCJJrAJ&KKX''Q//X''Q//1OOT"r4   c           	         [         R                  R                  S5      n[        R                  n[
        R
                  " SSSSSUS9n[
        R                  " SSS	9nUR                  S
-  nSnU " XEUS9nU" X5      n	S[        R                  " [        R                  " S5      5      -   n
[        U5       Vs/ s H	  oX-  -   PM     nn[        [        R                  " U	5      5      nX:X  d   eg s  snf )NzEurope/Brusselsr  r	   r   r   rJ   !   r   )r  rD  iQ r   )r3  freqperiodsg    p&ArU   )r   r  r  r/   rN   r   r   rD  r0   r   rA   r   r   )
date_range
tz_convertBRUSSELSrN   dtstartr   interval_daysNdt_utcdt_bxlr-   rO   expected_ordinalf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18D6??623O/// Es   8C1c                  `   ^  " S S[         R                   5      mU4S jn S n[        X5        g )Nc                   T   ^  \ rS rSrSrU 4S jrU 4S jrU 4S jr\S 5       r	Sr
U =r$ )%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                    > [         TU ]  U5      n[        USS 5      nUb!  [        USS 5      nUb  UR                  U5      n[	        U[
        R
                  5      (       a  U R                  U5      nU$ )NrK   	normalize)super__sub__getattrr	  
isinstancer   
mk_tzaware)r   otherrrK   	localizer	__class__s        r+   r  -test_date2num_dst.<locals>.dt_tzaware.__sub__  so    &AQ$/F!#FK>	(((+A!X..//OOA&Hr4   c                 @   > U R                  [        TU ]	  U5      5      $ N)r  r
  __add__)r   r  r  s     r+   r  -test_date2num_dst.<locals>.dt_tzaware.__add__  s    ??57?5#9::r4   c                 D   > [         TU ]  U5      nU R                  U5      $ r  )r
  
astimezoner  )r   rK   r
  r  s      r+   r  0test_date2num_dst.<locals>.dt_tzaware.astimezone  s!    #F+B??2&&r4   c                 V    0 nSnU H  n[        XS 5      nUc  M  XRU'   M     U " S0 UD6$ )N)r   r   r   hourminutesecondr   rK   r   )r  )clsdatetime_objkwargsattrsattrvals         r+   r  0test_date2num_dst.<locals>.dt_tzaware.mk_tzaware   s@    FE l$7?#&4L 
 == r4   r   )r  r  r  r  __doc__r  r  r  classmethodr  r  __classcell__)r  s   @r+   
dt_tzawarer    s+    			;	' 
	! 
	!r4   r)  c                 p   > TR                  U 5      n[        U5       Vs/ s H	  oCXA-  -   PM     sn$ s  snf r  )r  r   )r3  r  r  r  rO   r)  s        r+   r  %test_date2num_dst.<locals>.date_range  s4    ''..3Gn=n18$n===s   3c                 N    U  Vs/ s H  o"R                  U5      PM     sn$ s  snf r  )r  )dt_listrK   ds      r+   r  %test_date2num_dst.<locals>.tz_convert  s!    .56gV$g666r  )r   r  )r  r  r)  s     @r+   test_date2num_dstr0    s*    .!X&& .!b>7 z.r4   c                 >   ^  U 4S jn[        T R                  U5        g )Nc                  \   > TR                   R                  " U 6 R                  [        5      $ r  )DatetimeIndexr  astypeobject)argspds    r+   r  ,test_date2num_dst_pandas.<locals>.tz_convert$  s%    **D188@@r4   )r  r  )r7  r  s   ` r+   test_date2num_dst_pandasr9     s    A r}}j1r4   c           	         U" S5      nU " [         R                   " SSSS5      U5      nU " [         R                   " SSSS5      U5      n[        R                  " [        R                  R
                  US9nUR                  X45      n[         R                   " SSSS[        R                  R                  5       S9[         R                   " SSS	S
[        R                  R                  5       S9/nXg:X  d   eg )NAustralia/Sydneyr   r/  r   r   )r  r     rJ   r      )	r   r/   r   r   r   DAILYbetweenr  tzutc)	attach_tzget_tzSYDr  dtendruleactexps           r+   _test_rrulewrapperrH  *  s    
#
$C))$1a8#>Gh''aA6<EHNN$8$8'JD
,,w
&CT1aHKK4E4E4GHT1aHKK4E4E4GHJC ::r4   c            
      P   S n [        U [        R                  R                  5        [        R                  R                  S5      n[        R                  " SSSS5      n[        R                  " SSSS5      n[
        R                  " [        R                  R                  UXS9nUR                  U5      [        R                  " SSSSSUS	9:X  d   eUR                  U5      [        R                  " SSS
SSUS	9:X  d   eUR                  U:X  d   eUR                  S:X  d   eg )Nc                      U R                  US9$ )NrJ   )r  r
  zis     r+   rA  $test_rrulewrapper.<locals>.attach_tz:  s    zzz$$r4   r;  r   r/  r   r   )r  r  rK   untilr   rJ   r	   )rH  r   r  r  r   r/   r   r   r>  afterbefore_base_tzinfo	_interval)rA  rC  r  rD  rE  s        r+   test_rrulewrapperrS  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r4   c                  `    [         R                  " S5      n S n[        XR                  5        g )Npytzc                 $    UR                  U 5      $ r  )localizerK  s     r+   rA  )test_rrulewrapper_pytz.<locals>.attach_tzS  s    {{2r4   )r   importorskiprH  r  )rU  rA  s     r+   test_rrulewrapper_pytzrZ  N  s'     v&D y--0r4   c            
         [         R                  " S5      n U R                  S5      n[        S5       Vs/ s HA  nUR	                  [
        R
                  " SSS5      5      [
        R                  " U5      -   PMC     nn[        R                  " SUS9nUR                  5         UR                  R                  [        R                  " US   5      S	-
  [        R                  " US
   5      S	-   5        [        R                  " / SQ5      nU[        R                  " [        R                  " S5      5      -   n[        R                   R#                  XT" 5       5        / SQn[%        ['        [(        [        R*                  " U" 5       US95      5      nXv:X  d   e[        R,                  " UR/                  US   US   5      [        R                  " / SQ5      5      (       d   e[        R,                  " UR1                  US   US   5      R/                  US   US   5      [        R                  " / SQ5      5      (       d   eg s  snf )NrU  zAmerica/New_Yorkr|   r}   r   Tr  r   r   r1  )g{ja&Ag{jd&Ag{jtg&Ag{jNj&Ag{j*m&Ag{jp&Ag{jr&ArU   )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   rY  r  r   rW  r   r   r/   r$  r%  r&  r'  r0   r   r   rA   r   rY   r   r   r   r   allcloser   get_locator)rU  r  rO   r#   r   r   r   re  s           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 n [         R                   " SSS5      n[         R                  " SS9SSSS./ SQ/[         R                  " SS9SS	S
S./ SQ/[         R                  " SS9SSSS.SS//4nU HK  u  p4nX-   nU " X40 UD6n[        [        [        [
        R                  " U" 5       5      5      5      U:X  a  MK   e   g )Nc                     [         R                  " S0 UD6nUR                  5         UR                  R	                  [         R
                  " U 5      [         R
                  " U5      5        U$ )Nr   )r/   YearLocatorr%  r&  r'  r0   )r;  r<  r!  r   s       r+   _create_year_locator.test_YearLocator.<locals>._create_year_locator{  sO    $$.v.!!#&&vu'='-u'=	?r4   r  r   r  r  rk   )r"   r   r   rO  rr   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:00rV  )rb  r   rH  r(  	argumentsr   r   r   s           r+   test_YearLocatorre  z  s     
		4A	&B""2a2K ""2a3K ""0a3,.IJ%G0 '."(Z&r;;CV__WY789XEEE '.r4   c                  l   [         R                  " [        5         [        R                  " SS9  S S S 5        [         R                  " [        5         [        R                  " SS9  S S S 5        [         R                  " [        5         [        R                  " SS9  S S S 5        [         R                  " [        5         [        R                  " SS9  S S S 5        [        R                  " SS9  g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N|= f! , (       d  f       NV= f)Nr1  r   g      r   g?r   )r   raises
ValueErrorr/   r   r   r4   r+   test_DayLocatorri    s    	z	"2& 
#	z	"4( 
#	z	"1% 
#	z	"3' 
#
s# 
#	"	"	"	"	"	"	"s/   C2D	D D%2
D 
D
D"%
D3c                  z    [         R                   " SSS[        R                  S9n U R                  5       S:X  d   eg )N  r   rJ   rN   )r   r/   rN   tznamer
  s    r+   test_tz_utcrn    s0    			4Afjj	9B99;%r4   z	x, tdeltarf   c                 >    [         R                  " U 5      nX!:X  d   eg r  )r/   num2timedelta)r#   tdeltar
  s      r+   test_num2timedeltarr    s    
 
		a	 B<<r4   c                  L   [         R                  " S5      [         R                  " S5      /n [        R                  " U 5      n[         R                  " SS/5      [        R                  " [         R                  " S5      5      -   n[         R
                  R                  X5        g )Nr   z
2001-01-01    H&Ag    J&ArU   )r   rA   r/   r0   r   r   r   )r
  dnr   s      r+   test_datetime64_in_listrv    sk    
--
%r}}\'B	CB		B	7W%	&	|4	5
6AJJB"r4   c                     [         R                  " S5      n [        R                  " 5         [        R                  " 5         [
        R                  " [        5         [        R                  " S5        S S S 5        [        R                  " 5         [        R                  " S5        U [         R                  " S5      -
  R                  S5      nUR                  S5      n[         R                  R                  [        R                  " U 5      [        U5      5        [        R                  " 5         [        R                  " S5        [         R                  R                  [        R                  " U 5      S5        [        R                  " 5         [        R                  " S5        [         R                  R                  [        R                  " U 5      US	-
  5        [        R                  " 5         [        R                  " S
5        [         R                  R                  [        R                  " [         R                  " S5      5      S5        g ! , (       d  f       GN= f)Nr   z
0000-01-01rT   datetime64[D]intrU   rt  z1970-01-01T01:00:00gUUUUUU?z1970-01-01T00:00:00z1970-01-01T12:00:00g      ?)r   rA   r/   r[   	get_epochr   rg  RuntimeErrorr\   r4  r   r   r0   floatrY   )dater
  s     r+   test_change_epochr~    sv   ==&D $$&
	|	$ 	& 
%
 $$&
\"
|,
,	4	4_	EB	5	BJJFOOD159=
$$&
\"JJFOOD18<
$$&
*+JJvt4b6kB
$$&
*+JJ&;<=) 
%	$s   I
Ic                     [         R                  " SSSS9n [        R                  " SS9nS/UR                  S'   UR                  5         UR                  R                  [        R                  " U S	   5      [        R                  " U S
   5      5        [        R                  " [        SS9   U" 5       nS S S 5        g ! , (       d  f       g = f)Nz
2001-01-10z
2001-03-04rx  r   Fr  r   r	   r   r1  zAutoDateLocator was unabler  )r   aranger/   r$  	intervaldr%  r&  r'  r0   r   r   r   )rP   r   locss      r+   test_warn_notintervalsr    s    IIlLHE$$>G3GaLL""6??58#<#)??59#=?	k)E	Fy 
G	F	Fs   .B??
Cc                     S[         R                  S'   [        R                  " SSSS9n [         R                  " 5       u  pUR                  U [        R                  " [        U 5      5      5        UR                  R                  5         UR                  5       S   R                  5       S:X  d   eUR                  5       S	   R                  5       S
:X  d   eS[         R                  S'   [         R                  " 5       u  pUR                  U [        R                  " [        U 5      5      5        UR                  R                  5         UR                  5       S   R                  5       S:X  d   eUR                  5       S	   R                  5       S:X  d   e[        R                  " [        5         S[         R                  S'   S S S 5        g ! , (       d  f       g = f)Nconcisezdate.converterz
2020-01-01
2020-05-01rx  r   r   rw  r   rx  r   zJan 01 2020Jan 15 2020boo)r   r   r   r  rV   r   r   r   r   r   r   r   rg  rh  rP   r'   r(   s      r+   test_change_converterr    sY   %.CLL!"IIlLHEllnGCGGE299SZ()JJOO"++-666"++-555%+CLL!"llnGCGGE299SZ()JJOO"++->>>"++->>>	z	").%& 
#	"	"s   3G
Gc                  4   S[         R                  S'   [        R                  " SSSS9n [         R                  " 5       u  pUR                  U [        R                  " [        U 5      5      5        UR                  R                  5         UR                  5       S   R                  5       S:X  d   eUR                  5       S	   R                  5       S
:X  d   eS[         R                  S'   [         R                  " 5       u  pUR                  U [        R                  " [        U 5      5      5        UR                  R                  5         UR                  5       S   R                  5       S:X  d   eUR                  5       S	   R                  5       S:X  d   eg )NFzdate.interval_multiplesz
2020-01-10r  rx  r   r   zJan 10 2020r   zJan 24 2020Truer  zFeb 01 2020)r   r   r   r  rV   r   r   r   r   r   r   r  s      r+   test_change_interval_multiplesr    s2   .3CLL*+IIlLHEllnGCGGE299SZ()JJOO"++->>>"++->>>.4CLL*+llnGCGGE299SZ()JJOO"++->>>"++->>>r4   c                     [         R                  " 5       n U R                  S[        R                  5      S:X  d   eU R                  SS5      S:X  d   eU R                  SS5      S:X  d   eU R                  SS5      S:X  d   eU R                  5         U R                  5       [        R                  " SSSSS[        R                  R                  S9[        R                  " SSSSS[        R                  R                  S94:X  d   eU R                  [         R                  :X  d   eSn[        R                  R                  U5      nU R                  U:w  d   eU R                  S5        U R                  U:X  d   eU R                  5         U R                  R                   " [         R"                  " S	S
/5      6   U R                  5       [        R                  " SSSSSUS9[        R                  " SSSSSUS94:X  d   eU[$        R&                  S'   [         R                  " 5       n U R                  U:X  d   e[(        R*                  " [,        SS9   [         R                  " SS9  S S S 5        [(        R*                  " [.        SS9   [         R                  " SS9  S S S 5        g ! , (       d  f       NE= f! , (       d  f       g = f)Nr   r   r   r   )r   rk  rJ   r   Iceland
2022-01-10z
2022-01-08rE   r   r   r  z Aiceland is not a valid timezoner  Aicelandr  z%tz must be string or tzinfo subclass.)r/   DateLocatornonsingularr   infr%  datalim_to_dtr   r  r  r  rN   r   r  
set_tzinfor&  set_data_intervalr0   r   r   r   rg  rh  	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!::###LL""FOO\5A5C %D E  "$1a:>$2q!J?'A A A A
  &CLL   "G::### 
z)K	Lj) 
M	yD
Fa 
F 
F 
M	L
F 
Fs   J,J=,
J:=
Kc            	         [         R                  " S5      S:X  d   e[        R                  " SSSS9n [         R                  " SU S9S:X  d   e[        R
                  " [         R                  " SS	/U S9[        R                  " SS
/5      :H  5      (       d   e[         R                  " / 5      R                  S:X  d   e[         R                  " / [        R                  " SSSS95      R                  S:X  d   eg )Nr      @rE   r   r   r   z2022-01)r  z2022-02g    @@r   )r/   datestr2numr   r}  r   r   r   sizerm  s    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r4   kwarg)r  r  offset_formatsc                     [         R                  " 5       nU SS/0nU  S3n[        R                  " [        US9   [         R
                  " U40 UD6  S S S 5        g ! , (       d  f       g = f)Nr  r  z argument must be a listr  )r/   r$  r   rg  rh  rZ  )r  r   r!  r  s       r+   !test_concise_formatter_exceptionsr  Q  sZ     $$&Gb$Z Fg-.E	z	/##G6v6 
0	/	/s   A
A)c                      [         R                  " 5       n [         R                  " U 5      nU" S5      S:X  d   eUR                  S5      S:X  d   eg )Nr  2022z2022-01-10 00:00:00)r/   r$  rZ  format_data_short)r   r  s     r+   test_concise_formatter_callr  [  sM    $$&G++G4IW'''&&w/3HHHHr4   c            
         [         R                  " [        SS5       V s/ s H  n [        R                  " SSU 5      PM     sn 5      n[         R                  " / SQ5      n[         R                  R                  US5      n[        R                  " 5       u  pEUR                  X5        UR                  5       S:X  d   eg s  sn f )Nr   r0  r   )r   r   r	   r/  rr   r   r  )
r   r   r   r   rL   masked_greaterr   rV   r   rZ   )nr#   r  mr'   r(   s         r+   test_datetime_maskedr  b  s     	q!EA(##D!Q/EFA
!A
Q"AllnGCGGAM;;=F""" Fs   "B?r$  )ii c                     [         R                  " [        SU  S3S9   [        R                  " U 5        S S S 5        g ! , (       d  f       g = f)NzDate ordinal z	 convertsr  )r   rg  rh  r/   r   )r$  s    r+   test_num2date_errorr  n  s2    	z=Y)G	H 
I	H	Hs	   >
Ac                  6   [         R                  " S5      [        R                  " SSSSSSS[        R                  R                  S9:X  d   e[         R                  " S	5      [        R                  " SSSSSS
[        R                  R                  S9:X  d   eg )Ngj<  j@i  r      r   r/  i,B rJ   gq<  j@rr   )r/   r   r   r  r  r   r4   r+   test_num2date_roundoffr  t  s    ??,-1B1Bb"aAvh.?.?.C.C2E E E E ??,-1B1Bb"aAh&7&7&;&;2= = = =r4   c                      [         R                  " [        R                  " SSSSS[         R                  S95      n [         R                  " S5      nU" U 5      S:X  d   eUR                  S5        U" U 5      S:X  d   eg )	Nr+  r   r   rJ   z%Y-%b-%d %H:%Mz2011-Jan-01 00:00zPacific/Kiritimatiz2011-Jan-01 14:00)r/   r0   r   rN   DateFormatterr  )r$   r  s     r+   test_DateFormatter_settzr  |  sx    ??8,,T1aA4:JJ@ AD$$%56IT?1111 -.T?1111r4   )Wr   dateutil.tzr   dateutil.rruler   numpyr   r   
matplotlibr   r   matplotlib.datesrP   r/   matplotlib.pyplotpyplotr   matplotlib.testing.decoratorsr   matplotlib.tickertickerr   r,   markparametrizer3   r:   rC   rR   r^   rd   rh   rz   r   r   r   r   r   r   r   r   r   r   r  r   r   r)  r6  rJ  rW  r_  r  r  r  r  r  r  r  r  r  r  r  r  r0  r9  rH  rS  rU  rZ  r^  re  ri  rn  rr  rv  r~  r  r  r  r  r  r  r  r  r  r  r  )r   r   r  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   T;T"(T'T,T1