
    G8ca                        d dl Z d dlZd dlZd dlZd dlZd dlZd dlm	Z	m
Z
mZ d dlmZ d dlmZ d dlmZ d dlmZ d Zej0                  j3                  d e j                   dddd dd       e j                   dddd dd       e j                   dddddd      g e j                   dddd dd       e j                   dddddd      g e j                   dddddd       e j                   dddd	dd      ggg      ej0                  j3                  d
g d      d               Zej0                  j3                  d
g d      d        Zej0                  j3                  dg d      d        Zd Zd Zd Z edg      d        Z  edg      d        Z! edg      d        Z" edg      d        Z#d Z$d Z% edg      d        Z&d  Z'd! Z( ed"g      d#        Z)d$ Z*d% Z+ej0                  j3                  d& e jX                  d'(       e-d)d*d+      D  cg c]  } d,| z  	 c} f e jX                  d-.       e-dd/d	      D cg c]  }d0|z  	 c}f e jX                  d+1       e-d d2d      D cg c]  }d3|z  	 c}f e jX                  d45       e-d d6      D cg c]  }d7|z  	 c}fg      d8        Z.d9 Z/e%d:        Z0e%d;        Z1d< Z2d= Z3ej0                  j3                  d> e jX                  d?@      dAf e jX                  d5      dBf e jX                  d1      dCf e jX                  d.      dDf e jX                  d(      dEf e jX                  dF(      dGf e jX                  dH(      dGfg      dI        Z4dJ Z5ej0                  j3                  d> e jX                  d'(       e-dKdLd+      D cg c]  }d,|fz  
 c}f e jX                  dM.      g dNf e jX                  dM1      g dOf e jX                  d@      g dPfg      dQ        Z6dR Z7dS Z8dT Z9dU Z: edVg      dW        Z;dX Z<dY Z=dZ Z>d[ Z?d\ Z@ej0                  j                  d]        ZBej0                  j                  d^        ZCd_ ZDd` ZEda ZFej0                  j3                  dbd e jX                  d.      fddcg e jX                  d.       e jX                  dc.      gfg      dd        ZGde ZHdf ZIdg ZJdh ZKdi ZLdj ZMdk ZNdl ZOdm ZPej0                  j3                  dndo      dp        ZQdq ZRej0                  j3                  drdsej                  fdej                  fdtej                  fdMej                  fduej                  fdvej                  ff      dw        ZYdx ZZej0                  j3                  dydz      d{        Z[d| Z\d} Z]yc c} w c c}w c c}w c c}w c c}w )~    N)_api
rc_contextstyle)image_comparisonc                  <   t        j                   ddd      } t        dd      D cg c]  }| t        j                  |      z    }}t        j                  |d      }t        j                  g d      }t        j                  d	
      }|j                  ddd      }|j                  ||      \  }|j                  ||      \  }t        j                  j                  |j                  d      |j                  d             t        j                  d	
      }|j                  ddd      }|j                  ||      \  }|j                  ||      \  }t        j                  j                  |j                  d      |j                  d             y c c}w )N     r      daysdatetime64[ns]dtype)               @      ?)
      )figsizeF)orig)datetimerange	timedeltanparraypltfigureadd_subplotplottestingassert_equal	get_xdata	get_ydata)	basextimetimenpdatafigaxhhnps	            =/usr/lib/python3/dist-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_numpyr5   "   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   r1   r2   r   nanr   r    assert_array_equal)r   r/   tmplr3   r4   s        r-   test_date2num_NaTr<   6   sk    
 
		4Aq!Q	/BOOB(D
((B;e
,C__S!FJJ!!$/r6   units)smsusnsc                     t        j                  t        j                  d|             }t        j                  |      sJ y )Nr8   )r1   r2   r   
datetime64isnan)r=   r;   s     r-   test_date2num_NaT_scalarrE   B   s+    ??2==67D88D>>r6   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_xlimr1   r2   rC   _reset_epoch_test_example	set_epochr)   r*   s     r-   test_date_emptyrQ   H   s    llnGCMMO JJr{{} &l0K L &l0K L NO $$&
\"llnGCMMO JJr{{} &l0K L &l0K L NO $$&r6   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    rL   rM   rP   s     r-   test_date_not_emptyrW   ^   s]    
**,C		BGGRHq!fHHJJr{{}r2h7r6   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   rH   )r   rI   axhliner   r   rC   r    rL   rM   r1   r2   rN   rO   rP   s     r-   test_axhliner[   g   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 $$&r6   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   rI   axhspanset_ylimr   subplots_adjustr/   tfr)   r*   s       r-   test_date_axhspanrm   {   s     
		4B	'B			4B	'BllnGCJJr2tJ4KKX''Q//X''Q//1T"r6   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	   r^     r_   r`   ra   rb   i  r   )r   r   rI   axvspanset_xlimr   autofmt_xdaterk   s       r-   test_date_axvspanrt      s     
		4B	'B			4B	'BllnGCJJr2tJ4KKX''S11X''S113r6   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 Nr]   r	   r^      r`   r
   colorlwre   r   ra   rf   )r   r   rI   rZ   ri   r   rj   rk   s       r-   test_date_axhliner{      s     
		4B	'B			4B	'BllnGCJJrAJ&KKX''Q//X''Q//1T"r6   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 )
Nro   r	   r^   r_   redr
   rx   re   r   )r   r   rI   axvlinerr   r   rs   rk   s       r-   test_date_axvliner      s     
		4B	'B			4B	'BllnGCJJr1J%KKX''Q//X''Q//1r6   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WARNINGro   r	   r^   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   rI   pytestwarnsUserWarningrr   lenstrmessager   rU   set_major_locatorr1   
DayLocatorget_major_locatorrecordsall)caplogr/   rl   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)r1   rN   rO   )thefuncs   r-   wrapperz%_new_epoch_decorator.<locals>.wrapper   s.    ((*&	((*r6   )	functoolswraps)r   r   s   ` r-   _new_epoch_decoratorr      s%    __W+ +
 Nr6   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   r1   rrulewrapperdateutilrruleYEARLYRRuleLocatorrU   r   set_major_formatterAutoDateFormatterautoscale_viewrs   )r=   r/   rl   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r6   c                      t        j                         } t        j                  dddt         j                        }t        j                  dddt         j                        }| j	                  ||       y )Nr	   )yearmonthdaytzinfo   )r1   r   r   UTCtick_values)locx1y1s      r-   test_RRuleLocator_dayranger      sR    



C			&**	EB			6::	FBOOBr6   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 )	Nre   r   i  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)r1   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Or6   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   rs   )r=   r/   rl   r)   r*   s        r-   test_DateFormatterr      s    00	NN
 
		4Aq!Q	/B			4Aq!Q	/B
**,C	BGGRHsCjG- r6   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)re   7   )      )   -   minor)which)z30 08:15z30 08:45z30 09:15z30 09:45z30 10:15N)r   rcParamsr   rI   r   rU   r   r1   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_unit9  s    Cr6   N)__name__
__module____qualname__r   r   r6   r-   _Locatorr   8  s    'r6   r   c                 J    | D cg c]  }|j                  d       c}S c c}w )Nz	%d-%m//%Y)strftime)dates_dts      r-   callable_formatting_functionzBtest_date_formatter_callable.<locals>.callable_formatting_function;  s    389RK(999    i  r      z25-12//2014)r1   r   scaledr   )r   r   	formatters      r-   test_date_formatter_callabler  6  s\    ( (: ((4I8ISh''b"567M?JJJr6   zdelta, expected(  weeks  i{  r^   z$\mathdefault{%d}$r   r       z $\mathdefault{1990{-}01{-}%02d}$hoursr_   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   r1   AutoDateLocatorcreate_dummy_axisaxisset_view_intervalr2   r   )deltar   r   r   r   r  r   s          r-   test_date_formatter_usetexr  C  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	   r   r   r	     microsecondsr         N)r   r1   r   r   r   dranger   )startendr  	dateranges       r-   test_dranger(  [  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:::r6   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  r1   r  r  r  r  r2   date1date2r   s      r-   _create_auto_date_locatorz9test_auto_date_locator.<locals>._create_auto_date_locator}  sD    ((EB!!#&&&(GHr6   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   )r0  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	  )r0  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:00r^   r  )r0  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)	r0  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:00r0  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  r   r   )r   r	   r
   r!  re   r"     re   )maxticks)r   r   r   r   r   r1   r   r  r8  r   r   MONTHLY)r/  r   resultst_deltar   r   r   s          r-   test_auto_date_locatorr<  {  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Ir6   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  r+  r,  s      r-   r/  zAtest_auto_date_locator_intmult.<locals>._create_auto_date_locator  sD    ((DA!!#&&&(GHr6   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:00r1  )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:00r2  r   )
rA  z1997-01-15 00:00:00+00:00rB  z1997-02-15 00:00:00+00:00rC  z1997-03-15 00:00:00+00:00rD  z1997-04-15 00:00:00+00:00rE  z1997-05-15 00:00:00+00:00r3  )rA  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:00rB  z1997-02-05 00:00:00+00:00z1997-02-09 00:00:00+00:00r	  )rA  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:00r^   r  )rA  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:00r4  )	rA  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:00r6  r  )z 1996-12-31 23:59:59.999500+00:00rA  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   r1   r   )r/  r:  r   r;  r   r   r   s          r-   test_auto_date_locator_intmultrH    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r6   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)r1   r  ConciseDateFormatterformat_ticksMUSECONDS_PER_DAY)r   r  	year_1996stringss       r-    test_concise_formatter_subsecondrP    sv    $$=G++G4II$$C&2222C&2222&4 5G 5555r6   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 r?  r   rI   r1   r  rK  yaxisr   r   ri   r   r   get_yticklabelsr   )r-  r.  r)   r*   r   r  ststss           r-   r/  z9test_concise_formatter.<locals>._create_auto_date_locator#  s    ,,.R((DA//8	
""7+
$$Y/
E5!

')'9'9';<r{{}<<
 =s   7CrF  r	   r  r      r^   r1  )1997FebMarAprMayJunJulAugSepOctNovDecr2  r   )
Jan15r[  rg  r\  rg  r]  rg  r^  rg  r3  )rf  05091317212529r[  rh  ri  r	  )zJan-0104:0008:0012:0016:0020:00zJan-02ro  rp  rq  rr  r  )rJ  00:0500:1000:1500:20r4  )	rJ  rh  10rg  20rm  303540r   )59.5rJ  00.501.001.502.002.5r   r   r   r   )r/  r   r   r:  r;  r   r   rO  s           r-   test_concise_formatterr  "  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?r4  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 )NrF  r	   r   )r   r   rI   r1   r  rK  rU   r   r   r   r   r   
get_offset)r;  r   r   r   r)   r*   r   r  s           r-   "test_concise_formatter_show_offsetr  S  s     
		4A	&B	gBllnGC$$&G++G4IHHw'HH  +GGRHq!fJJOO!X---r6   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 )NrF  r	   r  r  r   r  r
   r  r7  r   rZ  )r   rI   r   r   r1   r  rK  rU   r   r   r   rK   r  rr   )r)   r*   r   r   r   r  s         r-   test_offset_changesr  k  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'''r6   rX  rY  r3  )rf  $\mathdefault{05}$$\mathdefault{09}$z$\mathdefault{13}$z$\mathdefault{17}$z$\mathdefault{21}$z$\mathdefault{25}$z$\mathdefault{29}$r[  r  r  )zJan$\mathdefault{{-}01}$$\mathdefault{04{:}00}$$\mathdefault{08{:}00}$$\mathdefault{12{:}00}$$\mathdefault{16{:}00}$z$\mathdefault{20{:}00}$zJan$\mathdefault{{-}02}$r  r  r  r  )z$\mathdefault{59.5}$z$\mathdefault{00{:}00}$z$\mathdefault{00.5}$z$\mathdefault{01.0}$z$\mathdefault{01.5}$z$\mathdefault{02.0}$z$\mathdefault{02.5}$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 )NrF  r	   Tr  r  )	r   r1   r  r  r  r  r2   rK  rL  )r;  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8r6   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  )formatsrS  )	r-  r.  r)   r*   r   r  rV  rW  r  s	           r-   r/  zAtest_concise_formatter_formats.<locals>._create_auto_date_locator  s    ,,.R((DA//I	
""7+
$$Y/
E5!

')'9'9';<r{{}<<
 =   :CrF  r	   r  r  rX  rY  r^   r1  )rZ  02/199703/199704/199705/1997z06/1997z07/1997z08/1997z09/1997z10/1997z11/1997z12/1997r2  r   )
01/1997day: 15r  r  r  r  r  r  r  r  r3  )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 minr4  )	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   r:  r;  r   r   rO  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_formatsrS  )	r-  r.  r)   r*   r   r  rV  rW  r  s	           r-   r/  zBtest_concise_formatter_zformats.<locals>._create_auto_date_locator  s    ,,.R((DA//,0	
""7+
$$Y/
E5!

')'9'9';<r{{}<<
 =r  rF  r	   r  r  rX  rY  r^   r1  )z'97r[  r\  r]  r^  r_  r`  ra  rb  rc  rd  re  r2  r   )
Januaryrg  Februaryrg  Marchrg  Aprilrg  r^  rg  r3  )r  rh  ri  rj  rk  rl  rm  rn  r  rh  ri  r	  )z01-01ro  rp  rq  rr  rs  z01-02ro  rp  rq  rr  r  )00rt  ru  rv  rw  r4  )	r  rh  rx  rg  ry  rm  rz  r{  r|  r   )r}  z00.0r~  r  r  r  r  r  )	r/  r   r   r:  r;  r   r   rO  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   rI   r1   r  rK  rT  r   r   ri   r   r   rU  r   get_offset_text)	r-  r.  r  r)   r*   r   r  rV  rW  s	            r-   r/  z<test_concise_formatter_tz.<locals>._create_auto_date_locator  s    ,,.R((DA//B?	
""7+
$$Y/
E5!

')'9'9';<r{{}<<BHH,,.77999 =s   9C<rF  r	   r  r3  r	  )03:0007:0011:0015:0019:00z23:00r  r  r  r  r  r  r^   r  )r  z03:05z03:10z03:15z03:20r  r4  )	r  rh  rx  rg  ry  rm  rz  r{  r|  z1997-Jan-01 03:00r   )r}  r  r~  r  r  r  r  r
   )r   replacetimezoneutcr   )
r/  r   r:  new_tzr;  expected_stringsexpected_offsetr   rO  offsets
             r-   test_concise_formatter_tzr    s   
: 
		4A	&	.	.h6G6G6K6K	.	LB"",>
 ""2.= ""2.I# ""1-I#G& x11:;F6= )2!?'\3BFC****(((	)r6   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  r+  )r-  r.  r  r   s       r-   r/  zDtest_auto_date_locator_intmult_tz.<locals>._create_auto_date_locator;  sF    ((DRH!!#&&&(GHr6   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:00r1  )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:00r2  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:00r3  )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:00r^   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:00r4  )	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/PacificrF  r	   r  z_internal.classic_modeFr  )r   r   r   r  gettzr   r   r   r   r1   r   )	r/  r:  r  r   r;  r   r   r   rV  s	            r-   !test_auto_date_locator_intmult_tzr  :  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 rv   )r   r   rI   rZ   ri   r   invert_yaxisrj   rk   s       r-   test_date_inverted_limitr    s     
		4B	'B			4B	'BllnGCJJrAJ&KKX''Q//X''Q//1OOT"r6   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   r  !   r   )r  r5  Q r   )r%  freqperiodsg    p&ArH   )r   r  r  r1   r   r   r   r5  r2   r   rC   r   r   )
date_range
tz_convertBRUSSELSr   dtstartr   interval_daysNdt_utcdt_bxlr/   i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 )Nr   	normalize)super__sub__getattrr  
isinstancer   
mk_tzaware)r   otherrr   	localizer	__class__s        r-   r  z-test_date2num_dst.<locals>.dt_tzaware.__sub__  sl    &AQ$/F!#FK>	(((+A!X../OOA&Hr6   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::r6   c                 D    t         |   |      }| j                  |      S r  )r  
astimezoner  )r   r   r   r  s      r-   r  z0test_date2num_dst.<locals>.dt_tzaware.astimezone  s!    #F+B??2&&r6   c                 R    i }d}|D ]  }t        ||d       }||||<     | di |S )N)r   r   r   hourminutesecondr   r   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'
 == r6   )
r   r   r   __doc__r  r  r  classmethodr  __classcell__)r  s   @r-   
dt_tzawarer    s+    			;	' 
	! 
	!r6   r  c                 n    j                  |       }t        |      D cg c]
  }|||z  z    c}S c c}w r  )r  r   )r%  r  r  r  r  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_listr   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:.r6   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@@r6   )r  r  )r  r  s   ` r-   test_date2num_dst_pandasr    s    A r}}j1r6   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     r  r      )	r   r1   r   r   r   DAILYbetweenr  tzutc)	attach_tzget_tzSYDr  dtendruleactexps           r-   _test_rrulewrapperr"    s    
#
$C))$1a8#>Gh''aA6<EHNN$8$8'JD
,,w
&CT1aHKK4E4E4GHT1aHKK4E4E4GHJC #::r6   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 )Nr  )r  r   zis     r-   r  z$test_rrulewrapper.<locals>.attach_tz  s    zzz$$r6   r  r   r!  r	   r   )r  r  r   untilr   r  r
   )r"  r   r  r  r   r1   r   r   r  afterbefore_base_tzinfo	_interval)r  r  r  r  r  s        r-   test_rrulewrapperr,    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r6   c                  `    t        j                  d      } d }t        || j                         y )Npytzc                 $    |j                  |       S r  )localizer%  s     r-   r  z)test_rrulewrapper_pytz.<locals>.attach_tz  s    {{2r6   )r   importorskipr"  r  )r.  r  s     r-   test_rrulewrapper_pytzr2    s)     v&D y$--0r6   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_Yorkro   rp   r	   Tr  r   r   r#  )g{ja&Ag{jd&Ag{jtg&Ag{jNj&Ag{j*m&Ag{jp&Ag{jr&ArH   )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   r1  r  r   r0  r   r   r1   r  r  r  r  r2   r   r   rC   r    rL   r   r   r   r   allcloser   get_locator)r.  r  r  r%   r   r   r   rV  s           r-   test_yearlocator_pytzr6    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   )r1   YearLocatorr  r  r  r2   )r-  r.  r  r   s       r-   _create_year_locatorz.test_YearLocator.<locals>._create_year_locator?  sO    $$.v.!!#&&vu'='-u'=	?r6   r  r	   r  r  r^   )r$   r   r   r@  re   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:00rG  )r:  r   r:  r  	argumentsr   r   r   s           r-   test_YearLocatorr<  >  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r6   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
ValueErrorr1   r   r   r6   r-   test_DayLocatorr@  e  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	   r  r   )r   r1   r   tznamer   s    r-   test_tz_utcrE  q  s0    			4Afjj	9B99;%r6   z	x, tdeltarY   c                 <    t        j                  |       }||k(  sJ y r  )r1   num2timedelta)r%   tdeltar   s      r-   test_num2timedeltarI  v  s     
 
		a	 B<<r6   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&ArH   )r   rC   r1   r2   r   r    r!   )r   dnr   s      r-   test_datetime64_in_listrM    sm    
--
%r}}\'B	CB		B	7W%	&	|4	5
6AJJB"r6   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-01rG   datetime64[D]intrH   rK  z1970-01-01T01:00:00gUUUUUU?1970-01-01T00:00:00z1970-01-01T12:00:00g      ?)r   rC   r1   rN   	get_epochr   r>  RuntimeErrorrO   r  r    r!   r2   floatrL   )dater   s     r-   test_change_epochrV    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-04rO  r   Fr  r   r
   r   r#  zAutoDateLocator was unablematch)r   aranger1   r  	intervaldr  r  r  r2   r   r   r   )r   r   locss      r-   test_warn_notintervalsr]    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-01rO  r   r   rf  r	   rg  r   zJan 01 2020Jan 15 2020boo)r   r   r   rZ  rI   r   r   r   r   r   r   r   r>  r?  r   r)   r*   s      r-   test_change_converterrd    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-10r`  rO  r   r   zJan 10 2020r	   zJan 24 2020Truera  zFeb 01 2020)r   r   r   rZ  rI   r   r   r   r   r   r   rc  s      r-   test_change_interval_multiplesrg    s6   .3CLL*+IIlLHEllnGCGGE299SZ()JJOO"++->>>"++->>>.4CLL*+llnGCGGE299SZ()JJOO"++->>>"++->>>r6   c                     t        j                         5  t        j                          t        j                  d       t        j
                  d      dk(  sJ t        j                  d      dk(  sJ t        j                          t        j                  d       t        j
                  d      dk(  sJ t        j                  d      dk(  sJ 	 d d d        y # 1 sw Y   y xY w)	NrH   r      x%A    z%Ai  rQ  r   r   )r   'suppress_matplotlib_deprecation_warningr1   rN   rO   	epoch2num	num2epochr   r6   r-   test_epoch2numrn    s    		5	5	7 	2((*&&(222)Y666((*./&#---$	111	2 	2 	2s   B;CC#c                  x   t        j                          t        j                  d       t        j                  d      dk(  sJ t        j                  d      dk(  sJ t        j                          t        j                  d       t        j                  d      dk(  sJ t        j                  d      dk(  sJ y )	NrH   g   @ƞBAri  rj  g   ƞBArQ  r   r   )r1   rN   rO   
julian2num
num2julianr   r6   r-   test_julian2numrr    s    
$$&
\" Y'8333X&)333
$$&
*+Y'3...S!Y...r6   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   rB  r  r   Iceland
2022-01-10z
2022-01-08  r   r   r  z Aiceland is not a valid timezonerX  Aicelandr  z%tz must be string or tzinfo subclass.)r1   DateLocatornonsingularr   infr  datalim_to_dtr   r  r  r  r   r   r  
set_tzinfor  set_data_intervalr2   r   r   r   r>  r?  	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 )Nrw      @rx  r	   r   r   z2022-01)r  z2022-02g    @@r   )r1   datestr2numr   rU  r   r   r   sizerD  s    r-   test_datestr2numr  $  s    l+w666	Dr	2Bi4???66&$$	I
XXvv&'( ) ) ) b!&&!+++b(--T67R#A BBF$!L L Lr6   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 listrX  )r1   r  r   r>  r?  rK  )r  r   r  rY  s       r-   !test_concise_formatter_exceptionsr  0  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)r1   r  rK  format_data_short)r   r  s     r-   test_concise_formatter_callr  :  sM    $$&G++G4IW'''&&w/3HHHHr6   zspan, expected_locatorg{Gz?      ro   c                     t        j                  t        j                        5  t	        j
                  |       \  }}t        ||      sJ 	 d d d        y # 1 sw Y   y xY wr  )r   r   r   MatplotlibDeprecationWarningr1   date_ticker_factoryr  )spanexpected_locatorr   r   s       r-   test_date_ticker_factoryr  A  sP     
d77	8 5//5
'#34445 5 5s   'AA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!  re   r   rt  )
r   r   r   r   mamasked_greaterr   rI   r   rM   )nr%   ymr)   r*   s         r-   test_datetime_maskedr  N  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	 convertsrX  )r   r>  r?  r1   r   )r  s    r-   test_num2date_errorr  Z  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 r  gq<  j@re   )r1   r   r   r  r  r   r6   r-   test_num2date_roundoffr  `  s    ??,-1B1Bb"aAvh.?.?.C.C2E E E E ??,-1B1Bb"aAh&7&7&;&;2= = = =r6   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   r  z%Y-%b-%d %H:%Mz2011-Jan-01 00:00zPacific/Kiritimatiz2011-Jan-01 14:00)r1   r2   r   r   DateFormatterr~  )r&   r  s     r-   test_DateFormatter_settzr  h  sx    ??8,,T1aA4:JJ@ AD$$%56IT?1111 -.T?1111r6   )^r   dateutil.tzr   dateutil.rruler   numpyr   r   
matplotlibr   r   r   matplotlib.datesr   r1   matplotlib.pyplotpyplotr   matplotlib.testing.decoratorsr   matplotlib.tickertickerr   r.   markparametrizer5   r<   rE   rQ   rW   r[   rm   rt   r{   r   r   r   r   r   r   r   r   r  r   r   r  r(  r<  rH  rP  r  r  r  r  r  r  r  r  r  r  r  r  r"  r,  r.  r2  r6  r<  r@  rE  rI  rM  rV  r]  rd  rg  rn  rr  r  r  r  r  r   HourLocatorr   WeekdayLocatorMonthLocatorr9  r  r  r  r  r  )r   r   r  minur   s   00000r-   <module>r     se         . . !  : #P$  1 1 1$1aA F!2!2!24Aq!Q!G!2!2!24Aq!Q!G!I #4("3"3D!Q1a"H"3("3"3D!Q1a"H"J"3("3"3D!Q1a"H"3("3"3D!Q1a"H"J!K L M  #5 6*	6M*  #5 60	60 "9: ;
',8'( %&'# (# %&' ( %&'# (# %&' (#8 ,-. /.	P 89: ;0"@
K *Xh'/4T4/DEtd"EGXR ;@B?KC)C/KMXb!:?2q/J$&-JLX#:?2,G$&-GI	- 	=	=;@ LJ LJ^ HF HFV6.#b ,X%':;X"$78Xa -0XQ/Xa *-Xb!2&Xc"B'/ ..(4 ,Xh'-24r-BCqe#CEXR 45
 Xb!"# X" / *	9+*	94#n1#h&)RC"L ,-.	# /	#0,>/B2* 1 1  @$FN	$ 
 0h00a89s8&8h&8&8a&@&8h&8&8c&B&D EFG	G
#@/*?&
2/+!\	L FH7H7I 1!5!56f001v001v445 3 34!3!3467575	#  45 6
=	2G! FKJGx	 Ds   V3=V8*V=W/W