
    Mh3                        S SK JrJ r   S SKrS SKrS SKrS SKrS SKJs  J	r
  S SKJr  S SKJrJrJrJrJrJrJr  S SKJr  S SKJrJr  S SKJrJrJrJr   S SK J!r!  \RF                  " S5        \RF                  " S	5      r$\RJ                  RL                  S
 5       r'S r( " S S5      r) " S S5      r* " S S5      r+ " S S5      r,\RJ                  R[                  S/ SQ5      S 5       r.g! \" a     Nf = f)    )datedatetimeN)	to_offset)IndexPeriodPeriodIndexSeries	Timestamparrays
date_range) deregister_matplotlib_convertersregister_matplotlib_converters)DayMicroMilliSecond)	convertermatplotlib.pyplotmatplotlib.datesc                  Z    Sn [         R                  SU /n[        R                  " U5        g )Nzimport matplotlib.units as units; import matplotlib.dates as mdates; n_conv = len(units.registry); import pandas as pd; pd.plotting.register_matplotlib_converters(); pd.plotting.deregister_matplotlib_converters(); assert len(units.registry) == n_conv-c)sys
executable
subprocesscheck_output)codecalls     V/var/www/html/env/lib/python3.13/site-packages/pandas/tests/plotting/test_converter.pytest_registry_mpl_resetsr   0   s,    	/ 	 NND$'DD!    c                  d    [         R                  " S5      [         R                  " S5      :X  d   eg )Nz00:01)r   time2num r    r   test_timtetonum_accepts_unicoder$   @   s&    g&)*<*<W*EEEEr    c                   j    \ rS rSr\R
                  R                  S 5       rS rS r	S r
S rS rSrg	)
TestRegistrationD   c                 f    Sn[         R                  SU/n[        R                  " U5      S:X  d   eg )Nzwimport matplotlib.units; import pandas as pd; units = dict(matplotlib.units.registry); assert pd.Timestamp not in unitsr   r   )r   r   r   
check_call)selfr   r   s      r   test_dont_register_by_default.TestRegistration.test_dont_register_by_defaultE   s7    / 	 d+$$T*a///r    c                 
   [         R                  " S5      n[        [        S5      [	        SSS9S9nUR                  5       u  p4[        5         UR                  UR                  UR                  5        UR                  5         g )Nr      2017periodsindex)pytestimportorskipr	   ranger   subplotsr   plotr3   valuesclose)r*   plts_axs        r   test_registering_no_warning,TestRegistration.test_registering_no_warningQ   s^    !!"5659Jvr$BC 	'(
"		r    c                 V   [         R                  " S5      n[        [        S5      [	        SSS9S9n[
        R                  " S 5       nUR                  5         S S S 5         [        W5      S:X  d   e UR                  5         g ! , (       d  f       N2= f! UR                  5         f = f)Nr   r.   r/   r0   r2   r   )
r4   r5   r	   r6   r   tmassert_produces_warningr8   lenr:   )r*   r;   r<   ws       r   test_pandas_plots_register+TestRegistration.test_pandas_plots_register[   s{    !!"5659Jvr$BC''-FFH .	q6Q;;IIK .- IIKs   B"B 
BB(c                 P   [         R                  " S5      n[        R                  " SS5         [        R                  " SS5         [        UR
                  ;  d   e S S S 5        [        UR
                  ;   d   e S S S 5        g ! , (       d  f       N.= f! , (       d  f       g = f)Nmatplotlib.units'plotting.matplotlib.register_convertersTF)r4   r5   cfoption_contextr
   registry)r*   unitss     r   test_matplotlib_formatters+TestRegistration.test_matplotlib_formattersg   s{    ##$67 H$O""#LeT 666 U... POTT POs#   BBB
B	B
B%c                     [         R                  " S5        [        R                  " SS5      n[         R                  " S5      n[	        [        S5      [        SSS9S9nUR                  5       u  pEU   UR                  UR                  UR                  5        S S S 5        [        5         U   UR                  UR                  UR                  5        S S S 5        UR                  5         g ! , (       d  f       NZ= f! , (       d  f       N0= f)Nr   rJ   Fr.   r/   r0   r2   )r4   r5   rK   rL   r	   r6   r   r7   r8   r3   r9   r   r:   )r*   ctxr;   r<   r=   r>   s         r   test_option_no_warning'TestRegistration.test_option_no_warnings   s    /0 I5Q!!"5659Jvr$BC GGAGGQXX&  	'(GGAGGQXX& 		 S
 Ss   3'C..'C?.
C<?
Dc                    [         R                  " S5      n[         R                  " S5      n[        UR                  5      n UR                  R	                  5         UR                  5       nXAR                  [        '   XAR                  [        '   [        5         UR                  [           ULd   e[        5         UR                  [           UL d   e UR                  R	                  5         UR                  5        H  u  pVXaR                  U'   M     g ! UR                  R	                  5         UR                  5        H  u  pVXaR                  U'   M     f = f)NrI   r   )r4   r5   dictrM   clearDateConverterr   r   r   r   items)r*   rN   datesoriginaldate_converterkvs          r   test_registry_resets%TestRegistration.test_registry_resets   s   ##$67##$67 '	&NN  ""002N'5NN8$#1NN4 *,>>$'~===,.>>$'>999 NN  " ($%q! ) NN  " ($%q! )s   BD AEr#   N)__name__
__module____qualname____firstlineno__r4   mark
single_cpur+   r?   rF   rO   rS   r_   __static_attributes__r#   r    r   r&   r&   D   s7    [[	0 	0

/"&r    r&   c                      \ rS rSr\R
                  S 5       rS rS rS r	\R                  R                  S\" SSS5      \" SSS	5      /\" SSSS
5      \" SSS	S
5      //5      S 5       r\R                  R                  S/ SQ5      S 5       r\R                  R                  SS5      S 5       r\R                  R                  S\" 5       \" 5       \" S5      /5      S 5       rS rSrg)TestDateTimeConverter   c                 ,    [         R                  " 5       $ N)r   DatetimeConverterr*   s    r   dtcTestDateTimeConverter.dtc   s    **,,r    c                 h    UR                  SS S 5      nUR                  SS S 5      nX#:X  d   S5       eg )Nz2000-01-01 12:22z/DatetimeConverter.convert should accept unicodeconvert)r*   ro   r1r2s       r   test_convert_accepts_unicode2TestDateTimeConverter.test_convert_accepts_unicode   s8    [[+T48[[+T48xJJJxr    c                    UR                  S/S S 5      S   n[        R                  [        SSS5      5      nX#:X  d   eUR                  SS S 5      nX#:X  d   eUR                  [	        SSS5      S S 5      nX#:X  d   eUR                  SS S 5      nX#:X  d   eUR                  [        S5      S S 5      nX#:X  d   eUR                  SS S 5      nX#:X  d   eUR                  SS S 5      nX#:X  d   eUR                  [        R                  " SS/5      S S 5      nUS   U:X  d   e[        S5      R                  S5      R                  S	5      nUR                  US S 5      nX#:X  d   eUR                  UR                  5       S S 5      nX#:X  d   eUR                  [        U[        S5      -
  U/5      S S 5      nUS   U:X  d   eUR                  [        U[        S5      -
  U/5      R                  5       S S 5      nUS   U:X  d   eg )
N2012-1-1r        
2012-01-012012-01-01 00:00:00+0000z2012-01-02 00:00:00+0000UTCz
US/Eastern)rs   rZ   date2numr   r   r
   nparraytz_localize
tz_convertto_pydatetimer   r   )r*   ro   rsxptss        r   test_conversion%TestDateTimeConverter.test_conversion   s   [[*tT215^^HT1a01xx[[T40xx[[dAq)46xx[[T40xx[[:.d;xx [[tT2xx[[3T4@xx[[HH02LMN

 !u{{ |$007BB<P[[T4(xx[[))+T48xx[[SVR014>!u{{[[SVR01??A4N!u{{r    c           
         SnUR                  [        SSS9S S 5      n[        R                  R	                  [        SSS95      n[
        R                  " X4US9  UR                  [        SSS9S S 5      n[
        R                  " X4US9  UR                  [        SS	S	S	S
S5      S S 5      n[
        R                  " X4US9  g )Ng&.>z2012-1-1 01:02:03r~   )tzrtolz2012-1-1 09:02:03zAsia/Hong_Kongrz   r{         )rs   r
   r   mdatesr   rB   assert_almost_equalr   )r*   ro   r   r   r   s        r   test_conversion_float+TestDateTimeConverter.test_conversion_float   s    [[#65A4N&&y1D'OP
rD1[[).>?t
 	rD1[[$1aA6dC
rD1r    r9   i  r{   r   r.   c                    UR                  US S 5      n[        R                  R                  U5      n[        R
                  " X45        UR                  US   S S 5      n[        R                  R                  US   5      nX4:X  d   eg )Nr   )rs   r   r   r   rB   assert_numpy_array_equal)r*   ro   r9   r   r   s        r   $test_conversion_outofbounds_datetime:TestDateTimeConverter.test_conversion_outofbounds_datetime   ss     [[t,&&v.
##B+[[D$/&&vay1xxr    ztime,format_expected))r   z00:00)g@z23:59:59.999999)i_ z01:00)i  z01:02:03)gfffffe@z11:02:03.200c                 J    [         R                  " S 5      " U5      nX2:X  d   eg rl   )r   TimeFormatter)r*   timeformat_expectedresults       r   test_time_formatter)TestDateTimeConverter.test_time_formatter   s%     ((.t4(((r    freq)Bmsr<   c                     Sn[        SSUS9nUR                  US S 5      n[        R                  R	                  UR                  5       5      n[        R                  " XVUS9  g )Ng&.>z
2020-01-01
   )r1   r   r   )r   rs   r   r   r   	_mpl_reprrB   r   )r*   r   ro   r   	dateindexr   r   s          r   test_dateindex_conversion/TestDateTimeConverter.test_dateindex_conversion  sV    |RdC	[[D$/&&y':':'<=
rD1r    offset2   c                     [        S5      nX1-   nUR                  US S 5      nUR                  US S 5      nXV:  d  [        U SU S35      eg )Nry   z is not less than .)r
   rs   AssertionError)r*   r   ro   ts1ts2val1val2s          r   test_resolution%TestDateTimeConverter.test_resolution  s\     
#l{{3d+{{3d+{ D6);D6!CDD r    c                    [        S5      [        S5      /nX"/nUR                  US S 5      nU Vs/ s H  oQR                  US S 5      PM     nn[        R                  " U5      U:H  R	                  5       (       d   eg s  snf )Nz
2017-01-01z
2017-01-02)r
   rs   r   r   all)r*   ro   innerdatar   xexpecteds          r   test_convert_nested)TestDateTimeConverter.test_convert_nested  sv    <()L*AB~T4.8<=1KK4.= H,113333 >s   A>r#   N)ra   rb   rc   rd   r4   fixturero   rv   r   r   re   parametrizer   r   r   r   r   r   r   r   r   r   rg   r#   r    r   ri   ri      s   ^^- -K
,\2 [[$1tD!Q/0dAq"%xaB'?@	
 [[	
	)	)
 [[V%562 72 [[X%'59'EFE GE4r    ri   c                   t    \ rS rSr\R
                  S 5       r\R
                  S 5       rS rS r	S r
S rSrg	)
TestPeriodConverteri  c                 ,    [         R                  " 5       $ rl   )r   PeriodConverterrn   s    r   pcTestPeriodConverter.pc   s    ((**r    c                 6     " S S5      nU" 5       nSUl         U$ )Nc                       \ rS rSrSrg)&TestPeriodConverter.axis.<locals>.Axisi&  r#   N)ra   rb   rc   rd   rg   r#   r    r   Axisr   &  s    r    r   D)r   )r*   r   axiss      r   r   TestPeriodConverter.axis$  s!    	 	 v	r    c                 ^    UR                  SS U5      nUR                  SS U5      nX4:X  d   eg )Nry   rr   )r*   r   r   rt   ru   s        r   rv   0TestPeriodConverter.test_convert_accepts_unicode-  s/    ZZ
D$/ZZ
D$/xxr    c                    UR                  S/S U5      S   n[        S5      R                  nX4:X  d   eUR                  SS U5      nX4:X  d   eUR                  [        SSS5      /S U5      S   nX4:X  d   eUR                  [        SSS5      S U5      nX4:X  d   eUR                  [	        S5      /S U5      S   nX4:X  d   eUR                  [	        S5      S U5      nX4:X  d   eUR                  SS U5      nX4:X  d   eUR                  SS U5      nX4:X  d   eUR                  [
        R                  " SS/S	S
9S U5      nUS   U:X  d   eg )Nry   r   rz   r{   r|   r}   z2012-01-01 00:00:00z2012-01-02 00:00:00zdatetime64[ns]dtype)rs   r   ordinalr   r
   r   r   r*   r   r   r   r   s        r   r   #TestPeriodConverter.test_conversion2  s^   ZZdD1!4J''xxZZ
D$/xxZZdAq)*D$7:xxZZT1a($5xxZZ:./t<Q?xxZZ	*-tT:xxZZdD1xxZZ2D$?xxZZHH&(=>& 
 !u{{r    c                 D    UR                  SS/S U5      nSS/nX4:X  d   eg )Nr   r{   rr   r   s        r   test_integer_passthrough,TestPeriodConverter.test_integer_passthroughV  s*    ZZAd+Vxxr    c                     SS/nUR                  X3/S U5      n[        S5       Vs/ s H  oQR                  US U5      PM     nnXF:X  d   eg s  snf )Nry   z2012-1-2r   )rs   r6   )r*   r   r   r   rt   r=   ru   s          r   r   'TestPeriodConverter.test_convert_nested\  sQ    J'ZZdD149!H=HqjjtT*H=xx >s   Ar#   N)ra   rb   rc   rd   r4   r   r   r   rv   r   r   r   rg   r#   r    r   r   r     sE    ^^+ + ^^ 
"Hr    r   c                       \ rS rSrSr\R                  R                  S/ SQ5      S 5       r\R                  R                  SSS/5      S	 5       r	S
r
g)TestTimeDeltaConverteric  zTest timedelta converterzx, decimal, format_expected))        r   z00:00:00)l    xqAsr{   z
01:06:12.3)l    62" r   z8 days 06:07:13.43)l    KVu   z09:00:23.4320c                 T    [         R                  nUR                  US US9nXS:X  d   eg )N)pos
n_decimals)r   TimeSeries_TimedeltaFormatterformat_timedelta_ticks)r*   r   decimalr   tdcr   s         r   test_format_timedelta_ticks2TestTimeDeltaConverter.test_format_timedelta_ticksf  s2     55++A4G+L(((r    view_interval)r{   r   )r   r{   c                    ^  " U4S jS5      n[         R                  " 5       nUR                  USU" 5       5        U" SS5        g )Nc                   "   > \ rS rSrU 4S jrSrg)NTestTimeDeltaConverter.test_call_w_different_view_intervals.<locals>.mock_axisiw  c                    > T$ rl   r#   )r*   r   s    r   get_view_interval`TestTimeDeltaConverter.test_call_w_different_view_intervals.<locals>.mock_axis.get_view_intervalx  s	    $$r    r#   N)ra   rb   rc   rd   r   rg   )r   s   r   	mock_axisr   w  s    % %r    r   r   r   r   )r   r   setattr)r*   r   monkeypatchr   r   s    `   r   $test_call_w_different_view_intervals;TestTimeDeltaConverter.test_call_w_different_view_intervalst  s:    	% 	% 557C5Cr    r#   N)ra   rb   rc   rd   __doc__r4   re   r   r   r   rg   r#   r    r   r   r   c  sY    "[[%	
))
 [[_vv.>? @r    r   	year_span)	g     &@   P      i  i   i  i	  i  c                    SnXS-  -   nX!-
  S-   nUS:  a  [         R                  " S5        US-  n[        R                  " U5      u  pV[        R                  " X[        S5      5      n[        [        R                  " [        R                  " U Vs/ s H  oS   PM	     sn5      SS	95      n	[        R                  " U Vs/ s H  oS   PM	     sn5      n
[        R                  " U Vs/ s H  oS
   PM	     sn5      nX   nX   nUR                  U-  S:H  nUR                  U-  S:H  nUR                  S:H  nUR                  S:H  n[        R                  " U5      (       d   e[        R                  " U5      (       d   e[        R                  " U5      (       d   e[        R                  " U5      (       d   eg s  snf s  snf s  snf )Nir   r{   -   z9the quarterly finder is only invoked if the span is >= 45QEr   z	period[Q]r   r   )r4   skipr   _get_default_annual_spacing_quarterly_finderr   r   r   PeriodArrayr   r   yearquarterr   )r   vminvmaxspannyears
min_anndef
maj_anndefr   r   quartersmajorsminorsmajor_quartersminor_quarterscheck_major_yearscheck_minor_yearscheck_major_quarterscheck_minor_quarterss                     r   test_quarterly_finderr    s    Da-D;?DbyOPAXF(DDVLZ((Yt_EF2886$:6aqT6$:;;OH XXV,VtV,-FXXV,VtV,-F%N%N&++j8A=&++j8A=)11Q6)11Q666#$$$$66#$$$$66&''''66&'''' %;,,s   G G,G
)/r   r   r   r   numpyr   r4   pandas._config.config_configconfigrK   pandas._libs.tslibsr   pandasr   r   r   r	   r
   r   r   pandas._testing_testingrB   pandas.plottingr   r   pandas.tseries.offsetsr   r   r   r   pandas.plotting._matplotlibr   ImportErrorr5   rZ   re   rf   r   r$   r&   ri   r   r   r   r  r#   r    r   <module>r     s    
   " " )    	5   ' (./ " "FW& W&t~4 ~4BA AH : &VW( X(y
  	 		s   C+ +C43C4