
    g                     
   d dl Z d dlZd dlZd dlZd dlZd dlZd dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZ d Zej.                  j1                  d e j                   dddd dd       e j                   dddd dd       e j                   dddddd      g e j                   dddd dd       e j                   dddddd      g e j                   dddddd       e j                   dddd	dd      ggg      ej.                  j1                  d
g d      d               Zej.                  j1                  d
g d      d        Zej.                  j1                  dg d      d        Zd Zd Zd Zd Z edg      d        Z  edg      d        Z! edg      d        Z" edg      d        Z#d Z$d Z% edg      d         Z&d! Z'd" Z( ed#g      d$        Z)d% Z*d& Z+ej.                  j1                  d' e jX                  d()       e-d*d+d,      D  cg c]  } d-| z  	 c} f e jX                  d./       e-dd0d	      D cg c]  }d1|z  	 c}f e jX                  d,2       e-d d3d      D cg c]  }d4|z  	 c}f e jX                  d56       e-d d7      D cg c]  }d8|z  	 c}fg      d9        Z.d: Z/e%d;        Z0e%d<        Z1d= Z2d> Z3ej.                  j1                  d? e jX                  d@A      dBf e jX                  d6      dCf e jX                  d2      dDf e jX                  d/      dEf e jX                  d)      dFf e jX                  dG)      dHf e jX                  dI)      dHfg      dJ        Z4dK Z5dL Z6dM Z7ej.                  j1                  d? e jX                  d()       e-dNdOd,      D cg c]  }d-|fz  
 c}f e jX                  dP/      g dQf e jX                  dP2      g dRf e jX                  dA      g dSfg      dT        Z8dU Z9dV Z:dW Z;dX Z< edYg      dZ        Z=d[ Z>d\ Z?d] Z@d^ ZAd_ ZBej.                  j                  d`        ZDej.                  j                  da        ZEdb ZFdc ZGdd ZHej.                  j1                  ded e jX                  d/      fddfg e jX                  d/       e jX                  df/      gfg      dg        ZIdh ZJdi ZKdj ZLdk ZMdl ZNdm ZOdn ZPej.                  j1                  dodp      dq        ZQdr ZRds ZSej.                  j1                  dtdu      dv        ZTdw ZUdx ZVyc c} w c c}w c c}w c c}w c c}w )y    N)
rc_contextstyle)image_comparisonc                  <   t        j                   ddd      } t        dd      D cg c]  }| t        j                  |      z    }}t        j                  |d      }t        j                  g d      }t        j                  d	
      }|j                  ddd      }|j                  ||      \  }|j                  ||      \  }t        j                  j                  |j                  d      |j                  d             t        j                  d	
      }|j                  ddd      }|j                  ||      \  }|j                  ||      \  }t        j                  j                  |j                  d      |j                  d             y c c}w )N     r      daysdatetime64[ns]dtype)        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	            X/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/matplotlib/tests/test_dates.pytest_date_numpyxr,      s@   T1a(D7<Q{C!D8%%1--CDCXXd"23F88L!D
**W
%C	Aq	!B	t	BA7764 DCJJAKKUK3S]]]5NO
**W
%C	Aq	!B	t	BA774 DCJJAKKUK3S]]]5NO Ds    Ft0r   r   r   r	   r   )zdatetime64[s]zdatetime64[us]zdatetime64[ms]r   c                     t        j                  |       }t        j                  | |      }t        j                  |      }t        j                  j                  ||       y )Nr   )mdatesdate2numr   r   r   r   )r-   r   r$   tnpnptimes        r+   test_date_date2num_numpyr3   "   sD     ??2D
((2U
#C__S!FJJD&)    c                    t        j                   dddddd      }t        j                  |      t        j                  g}t        j
                  |dg|       }t        j                  |      }t        j                  j                  ||       y )Nr   r   r   NaTr   )r   r/   r0   r   nanr   r   assert_array_equal)r   r-   tmplr1   r2   s        r+   test_date2num_NaTr:   6   sk    
 
		4Aq!Q	/BOOB(D
((B;e
,C__S!FJJ!!$/r4   units)smsusnsc                     t        j                  t        j                  d|             }t        j                  |      sJ y )Nr6   )r/   r0   r   
datetime64isnan)r;   r9   s     r+   test_date2num_NaT_scalarrC   B   s+    ??2==67D88D>>r4   c            
      ,   t        j                   ddd      } t        j                  j                  t	        d      D cg c]  }| t        j
                  d|z        z     c}g d      }t        j                  |      }t        j                  j                  t        j                  j                  |      d	       t        j                   dddt        j                  
      } t        j                  j                  t	        d      D cg c]  }| t        j
                  d|z        z     c}g d      }t        j                  |      }t        j                  j                  t        j                  j                  |      d	       y c c}w c c}w )N           r   r
   )r   r   r   r   r   r   r   )mask)FTTFFFTtzinfo)r   r   mar   r   r   r/   r0   r   r8   getmaskUTC)r"   idatesnpdatess       r+   test_date2num_maskedrR   H   s6   T2r*DEEKK"'(,  2 2Q @@ ,2G  IEooe$GJJ!!"%%--"8#)*
 T2r&**=DEEKK"'(,  2 2Q @@ ,2G  IEooe$GJJ!!"%%--"8#)*,,s   #F#Fc            	      J   t        j                         \  } }|j                          | j                          t        j
                  j                  |j                         t        j                  t	        j                  d            t        j                  t	        j                  d            g       t        j                          t        j                  d       t        j                         \  } }|j                          | j                          t        j
                  j                  |j                         t        j                  t	        j                  d            t        j                  t	        j                  d            g       t        j                          y )N
1970-01-01z
1970-01-02
0000-12-31)r   subplots
xaxis_datedraw_without_renderingr   r   assert_allcloseget_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                     t        j                         } | j                         }|j                  ddgddg       |j                  j                          t        j                  j                  |j                         ddg       y )N2   F   r   r   )
r   r   r   r   xaxis	axis_dater   r   rY   rZ   r]   s     r+   test_date_not_emptyrd   r   s]    
**,C		BGGRHq!fHHJJr{{}r2h7r4   c            	         t        j                         \  } }|j                  d       |j                  t	        j
                  d      t	        j
                  d      gddg       t        j                  j                  |j                         t        j                  t	        j
                  d            t        j                  t	        j
                  d            g       t        j                          t        j                  d       t        j                         \  } }|j                  d       |j                  t	        j
                  d      t	        j
                  d      gddg       t        j                  j                  |j                         t        j                  t	        j
                  d            t        j                  t	        j
                  d            g       t        j                          y )N      ?z
2016-01-01z
2016-01-02r   r   rU   )r   rV   axhliner   r   rA   r   rY   rZ   r/   r0   r[   r\   r]   s     r+   test_axhlinerh   {   sH   llnGCJJsOGGR]]<("--*EFAOJJr{{} &l0K L &l0K L NO $$&
\"llnGCJJsOGGR]]<("--*EFAOJJr{{} &l0K L &l0K L NO $$&r4   zdate_axhspan.pngc                  \   t        j                   ddd      } t        j                   ddd      }t        j                         \  }}|j                  | |dd       |j	                  | t        j
                  d	      z
  |t        j
                  d	      z          |j                  d
       y )N  r         blue      ?	facecoloralpha   r
   left)r   r   rV   axhspanset_ylimr   subplots_adjustr-   tfr'   r(   s       r+   test_date_axhspanrz      s     
		4B	'B			4B	'BllnGCJJr2tJ4KKX''Q//X''Q//1T"r4   zdate_axvspan.pngc                  X   t        j                   ddd      } t        j                   ddd      }t        j                         \  }}|j                  | |dd       |j	                  | t        j
                  d	
      z
  |t        j
                  d	
      z          |j                          y )N  r   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JJr2tJ4KKX''S11X''S113r4   zdate_axhline.pngc                  Z   t        j                   ddd      } t        j                   ddd      }t        j                         \  }}|j                  | dd       |j	                  | t        j
                  d	      z
  |t        j
                  d	      z          |j                  d
       y 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                  V   t        j                   ddd      } t        j                   ddd      }t        j                         \  }}|j                  | dd       |j	                  | t        j
                  d	      z
  |t        j
                  d	      z          |j                          y )
Nr|   r   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                    | j                  d       t        j                  ddd      }t        j                  ddd      }t        j                         \  }}t	        j
                  t              5 }|j                  ||fd       t        |      dk(  sJ dt        |d   j                        v sJ 	 d d d        |j                  g g        |j                  j                  t        j                                 |j                  j!                                }t        |      d	kD  sJ | j"                  rt%        d
 | j"                  D              sJ t        | j"                        dkD  sJ y # 1 sw Y   xY w)NWARNINGr|   r   rk   T)autoz.Attempting to set identical low and high xlimsr     c              3   \   K   | ]$  }|j                   d k(  xr |j                  dk(   & yw)zmatplotlib.tickerr   N)name	levelname).0records     r+   	<genexpr>z+test_too_many_date_ticks.<locals>.<genexpr>   s5      "& 	**Lv/?/?9/LL"&s   *,)	set_levelr   r   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      sG    Y			4B	'B			4B	'BllnGC	k	" (c
RH4(3x1}}@s1v~~&' 	( '(
 GGBOHHv0023$""$&Aq6D== >>c "&nn"& & & & v~~"""( (s   0AE..E7c                 B     t        j                          fd       }|S )Nc                      t        j                          t        j                  d                 t        j                          y )N
2000-01-01)r/   r[   r\   )thefuncs   r+   wrapperz%_new_epoch_decorator.<locals>.wrapper   s.    ((*&	((*r4   )	functoolswraps)r   r   s   ` r+   _new_epoch_decoratorr      s%    __W+ +
 Nr4   zRRuleLocator_bounds.pngc                     dd l mc m}  | j                          t	        j                  ddd      }t	        j                  ddd      }t        j                         }t        j                         }|j                  d       |j                  ||gddgd	       t        j                  t        j                  j                  d
      }t        j                  |      }|j                   j#                  |       |j                   j%                  t        j&                  |             |j)                          |j+                          y )Nr   r   r   ip  Tr   r   omarker  interval)matplotlib.testing.jpl_unitsr   	jpl_unitsregisterr   r   r   subplotset_autoscale_onr   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GGRHsCjG- 5 5DE!!%(GHHw'HH  !9!9'!BCr4   c                      t        j                         } t        j                  dddt         j                        }t        j                  dddt         j                        }| j	                  ||       y )Nr   )yearmonthdayrK      )r/   r   r   rN   tick_values)locx1y1s      r+   test_RRuleLocator_dayranger      sR    



C			&**	EB			6::	FBOOBr4   c                  x   t        j                  t        j                  j                  d      } t        j
                  |       }t        j                  ddd      }t        j                  dddd      }ddg}t        t        t        t        j                  |j                  ||                        |k(  sJ y )	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R)@ABCxOOOr4   z#DateFormatter_fractionalSeconds.pngc                     dd l mc m}  | j                          t	        j                  dddddd      }t	        j                  dddddd      }t        j                         }t        j                         }|j                  d       |j                  ||gddgd       |j                          |j                          y )	Nr   i  r   Tr   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   )r;   r-   ry   r'   r(   s        r+   test_DateFormatterr     s    00	NN
 
		4Aq!Q	/B			4Aq!Q	/B
**,C	BGGRHsCjG- r4   c            	      d   dt         j                  d<   t        j                  ddddd      t        j                  ddddd      t        j                  dddd	d      g} g d
}t        j                         \  }}|j	                  | |       |j
                  j                  t        j                  d             |j                  j                          |j                         D cg c]  }|j                          }}g d}||k(  sJ |j
                  j                  t        j                                |j
                  j                  t        j                  d             t        j                  d      }|j
                  j!                  t        j"                  |             |j
                  j                  t        j                  d             |j                  j                          |j                  d      D cg c]  }|j                          }}g d}||k(  sJ yc c}w c c}w )zh
    Test if setting the locator only will update the AutoDateFormatter to use
    the new locator.
    z%d %H:%Mzdate.autoformatter.minutei  	         r   ;   r   )r   r	   r   )r   r   )z30 08:00z30 08:30z30 09:00z30 09:30z30 10:00z30 10:30)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GGAqMHHv33G<=JJOO*,*<*<*>?B"++-?J?4H!!!HHw2245HHv33G<=$$X.IHH  !9!9)!DEHHv33H=>JJOO*,*<*<7*<*KLB"++-LJLKH!!! @ Ms   %H(H-c                       G d d      } d }t        j                   |              }||j                  d<    |t        j                  ddd      g      dgk(  sJ y )	Nc                       e Zd Zd Zy).test_date_formatter_callable.<locals>._Locatorc                      y)Ni )selfs    r+   	_get_unitz8test_date_formatter_callable.<locals>._Locator._get_unitM  s    Cr4   N)__name__
__module____qualname__r   r   r4   r+   _Locatorr   L  s    'r4   r  c                 J    | D cg c]  }|j                  d       c}S c c}w )Nz	%d-%m//%Y)strftime)rP   _dts      r+   callable_formatting_functionzBtest_date_formatter_callable.<locals>.callable_formatting_functionO  s    389RK(999    i  rF      z25-12//2014)r/   r   scaledr   )r  r  	formatters      r+   test_date_formatter_callabler  J  s\    ( (: ((4I8I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                    t        j                  d       t        j                  ddd      }|| z   }t        j                  d      }|j                          |j                  j                  t        j                  |      t        j                  |             t        j                  |d      } |       D cg c]
  } ||       c}|k(  sJ y c c}w )Ndefaultr  r   Finterval_multiplesTusetex)
r   user   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	eB$$>GLL""6??2#68KL((>I&-i0sIcN0H<<<0s   :Cc                     t        j                   dddt        j                        } t        j                   dddt        j                        }t        j                  d      }t	        t        j
                  | ||            dk(  sJ |t        j                  d      z
  }t	        t        j
                  | ||            dk(  sJ |t        j                  d      z   }t	        t        j
                  | ||            dk(  sJ t        j                   dddt        j                        }t        j                  d	      }t        j
                  | ||      }t	        |      d
k(  sJ t        j                  |d         ||z
  k(  sJ y)zj
    This test should check if drange works as expected, and if all the
    rounding errors are fixed
      r   rJ   r   r     microsecondsr	        N)r   r/   rN   r   r   dranger   )startendr"  	dateranges       r+   test_dranger0  o  sI   
 dAq<E


D!Qvzz
:CQ'E v}}UC/0B666 ""2
2Cv}}UC/0B666 ""2
2Cv}}UC/0B666 

D!Qvzz
:C Q'EeS%0Iy>Q??9R=)cEk:::r4   c            
         d } t        j                   ddd      }t        j                  d      g dgt        j                  d      g dgt        j                  d	
      g dgt        j                  d
      g dgt        j                  d      g dgt        j                  d      g dgt        j                  d      g dgt        j                  d      g dgf}|D ]I  \  }}||z   } | ||      }t        t        t        t        j                   |                         |k(  rIJ  t        j                  d      }|j                  ddddddddk(  sJ t        j                  t        j                  j                  di      }|j                  ddddddddk(  sJ t        j                  d      }|j                  ddddddddk(  sJ y ) Nc                     t        j                  d      }|j                           |j                  j                  t        j
                  | |g        |S )NFr  r/   r  r  r   r!  r0   date1date2r   s      r+   _create_auto_date_locatorz9test_auto_date_locator.<locals>._create_auto_date_locator  sD    ((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   )r8  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  )r8  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  )r8  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)	r8  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:00r8  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   r*  rH   rr   )maxticks)r   r   r   r   r   r/   r   r  r?  r   r   MONTHLY)r7  r   resultst_deltar   r   r   s          r+   test_auto_date_locatorrC    s    
		4A	&B""2K "",K "",. ""+K
 "",. ""2..
 ""2.. ""55]6Gp % F'\+B3CV__WY789XEEEF
 $$>G2"rbQOOOO$$x~~/E/Eq.IJG2!rbRANNNN$$a0G1qQ1qIIIIr4   c            
      h   d } t        j                  d      g dgt        j                  d      g dgt        j                  d      g d	gt        j                  d
      g dgt        j                  d
      g dgt        j                  d      g dgt        j                  d
      g dgt        j                  d      g dgf}t        j                   ddd      }|D ]I  \  }}||z   } | ||      }t        t        t        t        j                   |                         |k(  rIJ  y )Nc                     t        j                  d      }|j                           |j                  j                  t        j
                  | |g        |S NTr  r3  r4  s      r+   r7  zAtest_auto_date_locator_intmult.<locals>._create_auto_date_locator  sD    ((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:00r9  )1997-01-01 00:00:00+00:001997-02-01 00:00:00+00:001997-03-01 00:00:00+00:001997-04-01 00:00:00+00:001997-05-01 00:00:00+00:00z1997-06-01 00:00:00+00:00z1997-07-01 00:00:00+00:00z1997-08-01 00:00:00+00:00z1997-09-01 00:00:00+00:00z1997-10-01 00:00:00+00:00z1997-11-01 00:00:00+00:00z1997-12-01 00:00:00+00:00r:  r
   )
rH  z1997-01-15 00:00:00+00:00rI  z1997-02-15 00:00:00+00:00rJ  z1997-03-15 00:00:00+00:00rK  z1997-04-15 00:00:00+00:00rL  z1997-05-15 00:00:00+00:00r;  )rH  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:00rI  z1997-02-05 00:00:00+00:00z1997-02-09 00:00:00+00:00r  )rH  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  )rH  z1997-01-01 00:05:00+00:00z1997-01-01 00:10:00+00:00z1997-01-01 00:15:00+00:00z1997-01-01 00:20:00+00:00r<  )	rH  z1997-01-01 00:00:05+00:00z1997-01-01 00:00:10+00:00z1997-01-01 00:00:15+00:00z1997-01-01 00:00:20+00:00z1997-01-01 00:00:25+00:00z1997-01-01 00:00:30+00:00z1997-01-01 00:00:35+00:00z1997-01-01 00:00:40+00:00r>  r'  )z 1996-12-31 23:59:59.999500+00:00rH  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   )r7  rA  r   rB  r   r   r   s          r+   test_auto_date_locator_intmultrO    sI    ""2K "",K "",K ""+. "",. ""2..
 ""2.. ""55g;Gz 
		4A	&B$ F'\+B3CV__WY789XEEEFr4   c                      t        j                  d      } t        j                  |       }d}|j                  ||dt         j                  z  z   |dt         j                  z  z   g      }|g dk(  sJ y )NTr  g    B@r   i  )00:00z00.0005z00.0009)r/   r  ConciseDateFormatterformat_ticksMUSECONDS_PER_DAY)r   r  	year_1996stringss       r+    test_concise_formatter_subsecondrW  +  sv    $$=G++G4II$$C&2222C&2222&4 5G 5555r4   c            
      T   d } t        j                   ddd      }t        j                  d      t        ddd      D cg c]  }t        |       c}gt        j                  d	      g d
gt        j                  d      g dgt        j                  d      g dgt        j                  d      g dgt        j                  d      g dgt        j                  d      g dgt        j                  d      g dgf}|D ]  \  }}||z   } | ||      }||k(  rJ  y c c}w )Nc                    t        j                         \  }}t        j                  d      }t        j                  |      }|j
                  j                  |       |j
                  j                  |       |j                  | |       |j                  j                          |j                         D cg c]  }|j                          }}|S c c}w rF  r   rV   r/   r  rR  yaxisr   r   rv   r   r   get_yticklabelsr   )r5  r6  r'   r(   r   r  ststss           r+   r7  z9test_concise_formatter.<locals>._create_auto_date_locator7  s    ,,.R((DA//8	
""7+
$$Y/
E5!

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

')'9'9';<r{{}<<
 =   :CrM  r   r  r  r_  r`  rk   r9  )ra  02/199703/199704/199705/1997z06/1997z07/1997z08/1997z09/1997z10/1997z11/1997z12/1997r:  r
   )
01/1997day: 15r  r  r  r  r  r  r  r  r;  )r  day: 05day: 09zday: 13zday: 17zday: 21zday: 25zday: 29r  r  r  r  )zday: 0104 hr 00 min08 hr 00 min12 hr 00 min16 hr 00 minz20 hr 00 minzday: 02r  r  r  r  r  )00 hr 00 minz00 hr 05 minz00 hr 10 minz00 hr 15 minz00 hr 20 minr<  )	r  z05.000000 secz10.000000 secz15.000000 secz20.000000 secz25.000000 secz30.000000 secz35.000000 secz40.000000 secr   )z59.500000 secr  z00.500000 secz01.000000 secz01.500000 secz02.000000 secz02.500000 secr  )	r7  r   r   rA  rB  r   r   rV  r  s	           @r+   test_concise_formatter_formatsr    sQ   <G
 
		4A	&B			(	+eD	r? .c!f . 				"	% ( 	 
			% ( 	 
			$ ' 	 
		"	% ( 	
 
		B	' *9 	:			B	' * 	
 
		A	& ) 	7
G@ % #'\+B3("""#?.   D,c            
      b   g dfd} t        j                   ddd      }t        j                  d      t        ddd	      D cg c]  }t        |       c}gt        j                  d
      g dgt        j                  d      g dgt        j                  d      g dgt        j                  d      g dgt        j                  d	      g dgt        j                  d      g dgt        j                  d      g dgf}|D ]  \  }}||z   } | ||      }||k(  rJ  y c c}w )N)r  z'%yz%Bz%m-%dz%Sz%S.%fc                    t        j                         \  }}t        j                  d      }t        j                  |      }|j
                  j                  |       |j
                  j                  |       |j                  | |       |j                  j                          |j                         D cg c]  }|j                          }}|S c c}w )NTr  )zero_formatsrZ  )	r5  r6  r'   r(   r   r  r]  r^  r  s	           r+   r7  zBtest_concise_formatter_zformats.<locals>._create_auto_date_locator  s    ,,.R((DA//,0	
""7+
$$Y/
E5!

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

')'9'9';<r{{}<<BHH,,.77999 =s   9C<rM  r   rJ   r;  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  r<  )	r  ro  r  rn  r  rt  r  r  r  z1997-Jan-01 03:00r   )r  r  r  r  r  r  r  r	   )r   replacetimezoneutcr   )
r7  r   rA  new_tzrB  expected_stringsexpected_offsetr   rV  offsets
             r+   test_concise_formatter_tzr  M  s   
: 
		4A	&	.	.h6G6G6K6K	.	LB"",>
 ""2.= ""2.I# ""1-I#G& x11:;F6= )2!?'\3BFC****(((	)r4   c                     d } t        j                  d      g dgt        j                  d      g dgt        j                  d      g d	gt        j                  d
      g dgt        j                  d
      g dgt        j                  d      g dgt        j                  d
      g dgf}t        j                  j	                  d      }t        j                   ddd|      }|D ]e  \  }}t        ddi      5  ||z   } | |||      }t        t        t        t        j                   |       |                  }||k(  sJ 	 d d d        g y # 1 sw Y   rxY w)Nc                     t        j                  d|      }|j                           |j                  j                  t        j
                  | |g        |S )NTr  r  r3  )r5  r6  r  r   s       r+   r7  zDtest_auto_date_locator_intmult_tz.<locals>._create_auto_date_locatorw  sF    ((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:00r9  )1997-01-01 00:00:00-08:001997-02-01 00:00:00-08:001997-03-01 00:00:00-08:001997-04-01 00:00:00-08:001997-05-01 00:00:00-07:00z1997-06-01 00:00:00-07:00z1997-07-01 00:00:00-07:00z1997-08-01 00:00:00-07:00z1997-09-01 00:00:00-07:00z1997-10-01 00:00:00-07:00z1997-11-01 00:00:00-08:00z1997-12-01 00:00:00-08:00r:  r
   )
r  z1997-01-15 00:00:00-08:00r  z1997-02-15 00:00:00-08:00r  z1997-03-15 00:00:00-08:00r  z1997-04-15 00:00:00-07:00r  z1997-05-15 00:00:00-07:00r;  )r  z1997-01-05 00:00:00-08:00z1997-01-09 00:00:00-08:00z1997-01-13 00:00:00-08:00z1997-01-17 00:00:00-08:00z1997-01-21 00:00:00-08:00z1997-01-25 00:00:00-08:00z1997-01-29 00:00:00-08:00r  z1997-02-05 00:00:00-08:00z1997-02-09 00:00:00-08:00r  )r  z1997-01-01 04:00:00-08:00z1997-01-01 08:00:00-08:00z1997-01-01 12:00:00-08:00z1997-01-01 16:00:00-08:00z1997-01-01 20:00:00-08:00z1997-01-02 00:00:00-08:00z1997-01-02 04:00:00-08:00z1997-01-02 08:00:00-08:00z1997-01-02 12:00:00-08:00z1997-01-02 16:00:00-08: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:00r<  )	r  z1997-01-01 00:00:05-08:00z1997-01-01 00:00:10-08:00z1997-01-01 00:00:15-08:00z1997-01-01 00:00:20-08:00z1997-01-01 00:00:25-08:00z1997-01-01 00:00:30-08:00z1997-01-01 00:00:35-08:00z1997-01-01 00:00:40-08:00zCanada/PacificrM  r   rJ   z_internal.classic_modeFr  )r   r   r   r  gettzr   r   r   r   r/   r   )	r7  rA  r  r   rB  r   r   r   r]  s	            r+   !test_auto_date_locator_intmult_tzr  v  ss    ""0K "",K "",K ""+. "",. ""2..
 ""2..Y3Gj 
		+	,B			4Ab	1B$ "159: 	"gB/B;Gc#vwyR@ABB>!>		" 	""	" 	"s   A
EE!	zdate_inverted_limit.pngc                  z   t        j                   ddd      } t        j                   ddd      }t        j                         \  }}|j                  | dd       |j	                  | t        j
                  d	      z
  |t        j
                  d	      z          |j                          |j                  d
       y r   )r   r   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                    t         j                  j                  d      }t        j                  }t        j
                  ddddd|      }t        j                  dd	      }|j                  d
z  }d} | |||      } |||      }	dt        j                  t        j                  d            z   }
t        |      D cg c]
  }|
||z  z    }}t        t        j                  |	            }||k(  sJ y c c}w )NzEurope/Brusselsr  r	   r   r   rJ   !   r   )r  r=  iQ r   )r-  freqperiodsg    p&ArU   )r   r  r  r/   rN   r   r   r=  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gHa@F)F	FOOBMM,$?@	@B;@8Daq=01DD6??623O//// Es   ?C6c                  `     G d dt         j                         fd} d }t        | |       y )Nc                   F     e Zd ZdZ fdZ fdZ fdZed        Z xZ	S )%test_date2num_dst.<locals>.dt_tzawarez
        This bug specifically occurs because of the normalization behavior of
        pandas Timestamp objects, so in order to replicate it, we need a
        datetime-like object that applies timezone normalization after
        subtraction.
        c                     t         |   |      }t        |dd       }| t        |dd       }||j                  |      }t	        |t
        j
                        r| j                  |      }|S )NrK   	normalize)super__sub__getattrr  
isinstancer   
mk_tzaware)r   otherrrK   	localizer	__class__s        r+   r  z-test_date2num_dst.<locals>.dt_tzaware.__sub__  sl    &AQ$/F!#FK>	(((+A!X../OOA&Hr4   c                 @    | j                  t        | 	  |            S N)r  r  __add__)r   r  r  s     r+   r  z-test_date2num_dst.<locals>.dt_tzaware.__add__  s    ??57?5#9::r4   c                 D    t         |   |      }| j                  |      S r  )r  
astimezoner  )r   rK   r  r  s      r+   r
  z0test_date2num_dst.<locals>.dt_tzaware.astimezone  s!    #F+B??2&&r4   c                 R    i }d}|D ]  }t        ||d       }||||<     | di |S )N)r   r   r   hourminutesecondr   rK   r   )r  )clsdatetime_objkwargsattrsattrvals         r+   r  z0test_date2num_dst.<locals>.dt_tzaware.mk_tzaware   sI    FE  'lD$7?#&F4L'
 == r4   )
r   r   r   __doc__r  r  r
  classmethodr  __classcell__)r  s   @r+   
dt_tzawarer    s+    			;	' 
	! 
	!r4   r  c                 n    j                  |       }t        |      D cg c]
  }|||z  z    c}S c c}w r  )r  r   )r-  r  r  r  rO   r  s        r+   r  z%test_date2num_dst.<locals>.date_range  s4    ''..3Gn=1t8$===s   2c                 J    | D cg c]  }|j                  |       c}S c c}w r  )r
  )dt_listrK   ds      r+   r  z%test_date2num_dst.<locals>.tz_convert  s    .56V$666r  )r   r  )r  r  r  s     @r+   test_date2num_dstr    s,    .!X&& .!b>7 z:.r4   c                 <      fd}t         j                  |       y )Nc                  \     j                   j                  |  j                  t              S r  )DatetimeIndexr  astypeobject)argspds    r+   r  z,test_date2num_dst_pandas.<locals>.tz_convert$  s'    *r**D188@@r4   )r  r  )r$  r  s   ` r+   test_date2num_dst_pandasr%     s    A r}}j1r4   c           	          |d      } | t        j                   dddd      |      } | t        j                   dddd      |      }t        j                  t        j                  j
                  |      }|j                  ||      }t        j                   ddddt        j                  j                               t        j                   ddd	d
t        j                  j                               g}||k(  sJ y )NAustralia/Sydneyr   r)  r   r   )r  r     rJ   r      )	r   r/   r   r   r   DAILYbetweenr  tzutc)	attach_tzget_tzSYDr  dtendruleactexps           r+   _test_rrulewrapperr4  *  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            	      R   d } t        | t        j                  j                         t        j                  j                  d      }t	        j                  dddd      }t	        j                  dddd      }t        j                  t        j                  j                  |||      }|j                  |      t	        j                  ddddd|	      k(  sJ |j                  |      t	        j                  ddd
dd|	      k(  sJ |j                  |k(  sJ |j                  dk(  sJ y )Nc                 &    | j                  |      S )NrJ   )r  r  zis     r+   r-  z$test_rrulewrapper.<locals>.attach_tz:  s    zzz$$r4   r'  r   r)  r   r   )r  r  rK   untilr   rJ   r	   )r4  r   r  r  r   r/   r   r   r*  afterbefore_base_tzinfo	_interval)r-  r/  r  r0  r1  s        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r4   c                  `    t        j                  d      } d }t        || j                         y )Npytzc                 $    |j                  |       S r  )localizer7  s     r+   r-  z)test_rrulewrapper_pytz.<locals>.attach_tzS  s    {{2r4   )r   importorskipr4  r  )r@  r-  s     r+   test_rrulewrapper_pytzrD  N  s)     v&D y$--0r4   c            
      j   t        j                  d      } | j                  d      }t        d      D cg c]>  }|j	                  t        j
                  ddd            t        j                  |      z   @ }}t        j                  d|      }|j                          |j                  j                  t        j                  |d         d	z
  t        j                  |d
         d	z          t        j                  g d      }|t        j                  t        j                  d            z   }t        j                   j#                  | |              g d}t%        t'        t(        t        j*                   |       |                  }||k(  sJ t        j,                  |j/                  |d   |d         t        j                  g d            sJ t        j,                  |j1                  |d   |d         j/                  |d   |d         t        j                  g d            sJ y c c}w )Nr@  zAmerica/New_Yorkr|   r}   r   Tr  r   r   r+  )g{ja&Ag{jd&Ag{jtg&Ag{jNj&Ag{j*m&Ag{jp&Ag{jr&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   rC  r  r   rB  r   r   r/   r  r  r   r!  r0   r   r   rA   r   rY   r   r   r   r   allcloser   get_locator)r@  r  rO   r#   r   r   r   r]  s           r+   test_yearlocator_pytzrH  Y  s   v&D	)	*B*/+	7%& 
X&&tQ2	3a 
! 	7A 	7$$DGLL""6??1Q4#8#<#)??1R5#9##=?
 N 	OA 	
FOOBMM,788AJJq'),JH 
c#vwyR89	:B>>;;w**1Q416	9    ;;w**1Q416BB1Q41Nxx	  +	7s   AH0c            
         d } t        j                   ddd      }t        j                  d      ddddg dgt        j                  d      dd	d
dg dgt        j                  d      ddddddggf}|D ]K  \  }}}||z   } | ||fi |}t        t        t        t        j                   |                         |k(  rKJ  y )Nc                     t        j                  di |}|j                          |j                  j	                  t        j
                  |       t        j
                  |             |S )Nr   )r/   YearLocatorr  r   r!  r0   )r5  r6  r  r   s       r+   _create_year_locatorz.test_YearLocator.<locals>._create_year_locator{  sO    $$.v.!!#&&vu'='-u'=	?r4   r  r   r  r  rk   )r"   r   r   rG  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:00rN  )rL  r   rA  r"  	argumentsr   r   r   s           r+   test_YearLocatorrN  z  s     
		4A	&B""2a2K ""2a3K ""0a3,.IJ%G0 '. F"y(%Z&r2;;CV__WY789XEEEFr4   c                  P   t        j                  t              5  t        j                  d       d d d        t        j                  t              5  t        j                  d       d d d        t        j                  t              5  t        j                  d       d d d        t        j                  t              5  t        j                  d       d d d        t        j                  d       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   pxY w# 1 sw Y   DxY w)Nr+  r   g      r   g?r   )r   raises
ValueErrorr/   r   r   r4   r+   test_DayLocatorrR    s    	z	" '2&'	z	" )4()	z	" &1%&	z	" (3'(
s#' ') )& &( (s/   C8D
DD8DDDD%c                  |    t        j                   dddt        j                        } | j                         dk(  sJ y )N  r   rJ   rN   )r   r/   rN   tznamer  s    r+   test_tz_utcrW    s0    			4Afjj	9B99;%r4   z	x, tdeltarf   c                 <    t        j                  |       }||k(  sJ y r  )r/   num2timedelta)r#   tdeltar  s      r+   test_num2timedeltar[    s     
 
		a	 B<<r4   c                  B   t        j                  d      t        j                  d      g} t        j                  |       }t        j                  ddg      t        j                  t        j                  d            z   }t         j
                  j                  ||       y )Nr   z
2001-01-01    H&Ag    J&ArU   )r   rA   r/   r0   r   r   r   )r  dnr   s      r+   test_datetime64_in_listr_    sm    
--
%r}}\'B	CB		B	7W%	&	|4	5
6AJJB"r4   c                     t        j                  d      } t        j                          t        j                          t        j                  t              5  t        j                  d       d d d        t        j                          t        j                  d       | t        j                  d      z
  j                  d      }|j                  d      }t         j                  j                  t        j                  |       t        |             t        j                          t        j                  d       t         j                  j                  t        j                  |       d       t        j                          t        j                  d       t         j                  j                  t        j                  |       |d	z
         t        j                          t        j                  d
       t         j                  j                  t        j                  t        j                  d            d       y # 1 sw Y   xY w)Nr   z
0000-01-01rT   datetime64[D]intrU   r]  z1970-01-01T01:00:00gUUUUUU?z1970-01-01T00:00:00z1970-01-01T12:00:00g      ?)r   rA   r/   r[   	get_epochr   rP  RuntimeErrorr\   r!  r   r   r0   floatrY   )dater  s     r+   test_change_epochrg    s}   ==&D $$&
	|	$ ' 	&'
 $$&
\"
|,
,	4	4_	EB	5	BJJFOOD159=
$$&
\"JJFOOD18<
$$&
*+JJvt4b6kB
$$&
*+JJ&;<=)' 's   H==Ic                     t        j                  ddd      } t        j                  d      }dg|j                  d<   |j                          |j                  j                  t        j                  | d	         t        j                  | d
                t        j                  t        d      5   |       }d d d        y # 1 sw Y   y xY w)Nz
2001-01-10z
2001-03-04ra  r   Fr  r   r	   r   r+  zAutoDateLocator was unabler  )r   aranger/   r  	intervaldr  r   r!  r0   r   r   r   )rP   r   locss      r+   test_warn_notintervalsrl    s    IIlLHE$$>G3GaLL""6??58#<#)??59#=?	k)E	F y  s   2CCc                     dt         j                  d<   t        j                  ddd      } t        j                         \  }}|j                  | t        j                  t        |                    |j                  j                          |j                         d   j                         dk(  sJ |j                         d	   j                         d
k(  sJ dt         j                  d<   t        j                         \  }}|j                  | t        j                  t        |                    |j                  j                          |j                         d   j                         dk(  sJ |j                         d	   j                         dk(  sJ t        j                  t              5  dt         j                  d<   d d d        y # 1 sw Y   y xY w)Nconcisezdate.converterz
2020-01-01
2020-05-01ra  r   r   rm  r   rn  r   zJan 01 2020Jan 15 2020boo)r   r   r   ri  rV   r   r   r   r   r   r   r   rP  rQ  rP   r'   r(   s      r+   test_change_converterrs    sf   %.CLL!"IIlLHEllnGCGGE299SZ()JJOO"++-666"++-555%+CLL!"llnGCGGE299SZ()JJOO"++->>>"++->>>	z	" /).%&/ / /s   .GGc                  ,   dt         j                  d<   t        j                  ddd      } t        j                         \  }}|j                  | t        j                  t        |                    |j                  j                          |j                         d   j                         dk(  sJ |j                         d	   j                         d
k(  sJ dt         j                  d<   t        j                         \  }}|j                  | t        j                  t        |                    |j                  j                          |j                         d   j                         dk(  sJ |j                         d	   j                         dk(  sJ y )NFzdate.interval_multiplesz
2020-01-10ro  ra  r   r   zJan 10 2020r   zJan 24 2020Truerp  zFeb 01 2020)r   r   r   ri  rV   r   r   r   r   r   r   rr  s      r+   test_change_interval_multiplesrv    s6   .3CLL*+IIlLHEllnGCGGE299SZ()JJOO"++->>>"++->>>.4CLL*+llnGCGGE299SZ()JJOO"++->>>"++->>>r4   c            
         t        j                         } | j                  dt        j                        dk(  sJ | j                  dd      dk(  sJ | j                  dd      dk(  sJ | j                  dd      dk(  sJ | j                          | j                         t        j                  dddddt        j                  j                        t        j                  dddddt        j                  j                        fk(  sJ | j                  t         j                  k(  sJ d}t        j                  j                  |      }| j                  |k7  sJ | j                  d       | j                  |k(  sJ | j                           | j                  j                   t        j"                  d	d
g        | j                         t        j                  ddddd|      t        j                  ddddd|      fk(  sJ |t$        j&                  d<   t        j                         } | j                  |k(  sJ t)        j*                  t,        d      5  t        j                  d       d d d        t)        j*                  t.        d      5  t        j                  d       d d d        y # 1 sw Y   DxY w# 1 sw Y   y xY w)Nr   r   r   r   )r   rT  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   rP  rQ  	TypeError)r   tz_str
iceland_tzs      r+   test_DateLocatorr    s     "Gq"&&)V333q!$...q!$...q!$///  "$1a83D3D3H3HI$1a83D3D3H3HI'K K K K
 ::###F""6*J::###y!::###"GLL""FOO\5A5C %D E  "$1a:>$2q!J?'A A A A
  &CLL   "G::### 
z)K	L *j)*	yD
F !a ! !* *! !s   J/J;/J8;Kc                     t        j                  d      dk(  sJ t        j                  ddd      } t        j                  d|       dk(  sJ t	        j
                  t        j                  dd	g|       t	        j                  dd
g      k(        sJ t        j                  g       j                  dk(  sJ t        j                  g t        j                  ddd            j                  dk(  sJ y )Nr{      @rE   r   r   r   z2022-01)r  z2022-02g    @@r   )r/   datestr2numr   rf  r   r   r   sizerV  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                     t        j                         }| ddgi}|  d}t        j                  t        |      5  t        j
                  |fi | d d d        y # 1 sw Y   y xY w)Nr  r  z argument must be a listr  )r/   r  r   rP  rQ  rR  )r  r   r  r  s       r+   !test_concise_formatter_exceptionsr  Q  sc     $$&Gb$Z Fg-.E	z	/ 7##G6v67 7 7s   AA$c                      t        j                         } t        j                  |       } |d      dk(  sJ |j                  d      dk(  sJ y )Nr  2022z2022-01-10 00:00:00)r/   r  rR  format_data_short)r   r  s     r+   test_concise_formatter_callr  [  sM    $$&G++G4IW'''&&w/3HHHHr4   c            
      |   t        j                  t        dd      D  cg c]  } t        j                  dd|        c}       }t        j                  g d      }t         j                  j                  |d      }t        j                         \  }}|j                  ||       |j                         dk(  sJ y c c} w )Nr   r*  r   )r   r   r	   r)  rr   r   rx  )
r   r   r   r   rL   masked_greaterr   rV   r   rZ   )nr#   r  mr'   r(   s         r+   test_datetime_maskedr  b  s     	q!EA(##D!Q/EFA
!A
Q"AllnGCGGAqM;;=F""" Fs   B9r  )ii c                     t        j                  t        d|  d      5  t        j                  |        d d d        y # 1 sw Y   y xY w)NzDate ordinal z	 convertsr  )r   rP  rQ  r/   r   )r  s    r+   test_num2date_errorr  n  s:    	z=Y)G	H   s	   ?Ac                  6   t        j                  d      t        j                  dddddddt        j                  j                        k(  sJ t        j                  d	      t        j                  dddddd
t        j                  j                        k(  sJ y )Ngj<  j@i  r      r   r)  i,B 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            
          t        j                  t        j                  dddddt         j                              } t        j                  d      } ||       dk(  sJ |j                  d        ||       dk(  sJ y )	Nr%  r   r   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#  r0  rC  rO  rW  r  r  r  r  r  r  r  r  r  r  r  r  r  r%  r4  r>  r@  rD  rH  rN  rR  rW  r[  r_  rg  rl  rs  rv  r  r  r  r  r  r  r  r  )r   r   r  minur   s   00000r+   <module>r     s         ( !  : #P$  1 1 1$1aA F!2!2!24Aq!Q!G!2!2!24Aq!Q!G!I #4("3"3D!Q1a"H"3("3"3D!Q1a"H"J"3("3"3D!Q1a"H"3("3"3D!Q1a"H"J!K L M  #5 6*	6M*  #5 60	60 "9: ;
*(',8'( %&'# (# %&' ( %&'# (# %&' (#8 ,-. /.	P 89: ;0"@
K *Xh'/4T4/DEtd"EGXR ;@B?KC)C/KMXb!:?2q/J$&-JLX#:?2,G$&-GI	- 	=	=;@ LJ LJ^ HF HFV6.#b ,X%':;X"$78Xa -0XQ/Xa *-Xb!2&Xc"B'/ ..0",.(4 ,Xh'-24r-BCqe#CEXR 45
 Xb!"# X" / *	9+*	94#n1#h&)RC"L ,-.	# /	#0,>/B2* 1 1  @$FN	$ 
 0h00a89s8&8h&8&8a&@&8h&8&8c&B&D EFG	G
#@/*?&+!\	L FH7H7I	#  45 6
=	2G! FKJGH Ds   U>U	+UU6U