
    MhN                     J   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r  S SK	J
r
  S SKJrJrJrJrJrJrJrJrJrJrJr  S SKJr  S SKJr  S SKJrJrJr   " S S	5      r \RB                  RE                  S
\" S5      \4\" S5      \4\" SSS9\4/5      S 5       r#S r$\RB                  RE                  S\\\/5      \RB                  RE                  SS\RJ                  \\&" S5      \SSSS/	5      S 5       5       r'\RB                  RE                  S\\/5      \RB                  RE                  S/ SQ5      \RB                  RE                  S/ SQ5      S 5       5       5       r(\RB                  RE                  S/ SQ5      S 5       r)\RB                  RE                  SSS/5      S  5       r*\RB                  RE                  S/ S!Q5      S" 5       r+\RB                  RE                  S#S$ S% S& /5      S' 5       r,\RB                  RE                  S(\/ S)Q4\/ S*Q4/5      S+ 5       r-SS, jr.\RB                  RE                  S(\/ S-Q4\S./4/5      S/ 5       r/\RB                  RE                  S0\." \S15      \." \S15      -   S2 S39S4 5       r0S5 S6 S7 S8 S9 S: S; S< S=.r1\RB                  RE                  S>\2" \1Rg                  5       5      5      \RB                  RE                  S?S@SA\RJ                  SB4SC\" SD5      SE4\" SF5      SE4\ " SGSHSH5      SI4\" SJ5      SI4\" SJSKSL9SI4\" SJSMSL9SI4\Rh                  " SN5      Rk                  \ " SGSHSH5      5      SI4/5      SO 5       5       r6\RB                  RE                  SP\RJ                  \4\\RJ                  4\Rn                  " S5      \RJ                  4/5      SQ 5       r8\RB                  RE                  S>/ SRQ5      \RB                  RE                  S\" SSST/SUSV9\" SSST/SMSUSW9\Rr                  " SSST/SXSY9\Rr                  " SSST/\" SZSL9SY9\" S[S\/SUSV9/5      S] 5       5       r:\RB                  RE                  S>/ SRQ5      \RB                  RE                  S^\\\Rr                  /5      S_ 5       5       r;\RB                  RE                  S`Sa\Rx                  Sa4Sa\Rz                  Sa4Sa\R|                  Sb4Sa\R~                  Sb4Sb\Rx                  Sa4Sb\Rz                  Sa4Sb\R|                  Sa4Sb\R~                  Sb4/5      Sc 5       r@Sd rASe rB\RB                  RE                  Sf\" S 5      \" S 5      R                  5       \R                  " \" S 5      R                  5       \RB                  R                  \
(       + SgSh9Si9\" S 5      \" S 5      R                  5       \R                  " \" S 5      R                  5       \RB                  R                  \
(       + SjSh9Si9\" S 5      R                  SK5      \/5      Sk 5       rJ\RB                  RE                  Sf\Rn                  " S Sl5      \R                  " SmSl5      /5      Sn 5       rL\RB                  RE                  So/ SpQ5      \RB                  RE                  SqSr\R                  4Ss\R                  4St\R                  4Su\R                  4/5      Sv 5       5       rQ\RB                  RE                  Sf\R                  " Sw/Sx-  \SSY9\R                  " SxSy/SzSY9\R                  " S{S|/S}SY9// S~QS39S 5       rTS rU\RB                  RE                  S\R                  " Sx5      \R                  " Sx5      \R                  " SH5      \R                  " Sx5      \R                  " S5      \R                  " Sx5      \R                  " S5      \R                  " S5      \R                  " Sy5      \R                  " 5       \Rn                  " SyS5      \Rn                  " SS5      \Rn                  " SS5      \Rn                  " SDS5      \Rn                  " SS5      \Rn                  " SxS5      \Rn                  " SS5      \" S5      \" S5      \" SS9\" SSS9\" SS9\" SSS9\" SS9/5      S 5       r]S r^g)    )datetime	timedeltaN)iNaT)np_version_gte1p24p3)DatetimeIndexDatetimeTZDtypeIndexNaTPeriodSeries	TimedeltaTimedeltaIndex	Timestampisnaoffsets)	roperator)DatetimeArrayPeriodArrayTimedeltaArrayc                   &    \ rS rSrS rS rS rSrg)TestNaTFormatting$   c                 .    [        [        5      S:X  d   eg Nr
   )reprr
   selfs    N/var/www/html/env/lib/python3.13/site-packages/pandas/tests/scalar/test_nat.py	test_reprTestNaTFormatting.test_repr%   s    CyE!!!    c                 .    [        [        5      S:X  d   eg r   )strr
   r   s    r   test_strTestNaTFormatting.test_str(   s    3x5   r!   c                 :    [         R                  " 5       S:X  d   eg r   )r
   	isoformatr   s    r   test_isoformat TestNaTFormatting.test_isoformat+   s    }}%'''r!    N)__name__
__module____qualname____firstlineno__r   r$   r(   __static_attributes__r*   r!   r   r   r   $   s    "!(r!   r   znat,idxr
   M)freqc                 \   UR                    H`  nUS:X  a  M  [        [        U5      n[        R                  " U5      (       d   e[        X5      n[        R                  " U5      (       a  M`   e   UR
                   H,  n[        [        U5      nUSL d   e[        X5      nUSL a  M,   e   g )NweekdayF)
_field_opsgetattrr
   npisnan	_bool_ops)natidxfieldresults       r   test_nat_fieldsr=   /   s      Ie$xx$xx   e$$ r!   c            
         [        / SQ5      n [        R                   HQ  nUS:X  a  M  [        X5      n[	        U  Vs/ s H  n[        X15      PM     sn5      n[
        R                  " X$5        MS     [        U 5      n[        R                   H\  nUS:X  a  M  [        UR                  U5      nU  Vs/ s H  n[        X15      PM     nn[
        R                  " U[        U5      5        M^     [        R                   HT  n[        UR                  U5      nU  Vs/ s H  n[        X15      PM     nn[
        R                  " U[        U5      5        MV     g s  snf s  snf s  snf )N)z1/1/2000NNz1/4/2000r3   )r   r   r4   r5   r	   tmassert_index_equalr   dtassert_series_equalr8   )r:   r;   r<   xexpectedsers         r   test_nat_vector_field_accessrF   L   s%   
<
=C)) I$S9S'!+S9:
f/ * +C)) I'/23s!GA%s3
vvh'78 * (('/23s!GA%s3
vvh'78 ) : 4
 4s   E
3EE!klassvaluenanr9    NATc                 &    U " U5      [         L d   eg Nr
   )rG   rH   s     r   test_identityrO   k   s    
 <3r!   method)roundfloorceilr1   )s5smin5minh5hc                 D    U " S5      n[        X15      nU" U5      UL d   eg )Nr9   )r5   )rG   rP   r1   tsround_methods        r   test_round_natr]   s   s*    
 
uB2&L###r!   )
astimezonecombinectimedstfromordinalfromtimestampfromisocalendarisocalendarstrftimestrptimetime	timestamp	timetupletimetz	toordinaltznameutcfromtimestamputcnow	utcoffsetutctimetupleri   c                     SU  3n[         R                  " [        US9   [        [        U 5      " 5         S S S 5        g ! , (       d  f       g = f)NzNaTType does not support match)pytestraises
ValueErrorr5   r
   )rP   msgs     r   test_nat_methods_raisery   ~   s7    8 &fX
.C	z	-V 
.	-	-s	   >
Ar3   
isoweekdayc                 d    [         R                  " [        [        U 5      " 5       5      (       d   eg rM   )r6   r7   r5   r
   rP   s    r   test_nat_methods_nanr}      s#     88GC(*++++r!   )datenowreplacetoday
tz_converttz_localizec                 @    [        [        U 5      " 5       [        L d   eg rM   )r5   r
   r|   s    r   test_nat_methods_natr      s    
 3!S(((r!   get_natc                     [         $ rM   rN   rC   s    r   <lambda>r      s    #r!   c                     [        U 5      $ rM   r   r   s    r   r   r      s    1r!   c                     [        U 5      $ rM   )r   r   s    r   r   r      s    1r!   c                 r    U " S5      R                  5       S:X  d   eU " S5      R                  SS9S:X  d   eg )Nr
   nanoseconds)timespec)r'   )r   s    r   test_nat_iso_formatr      s?    
 5>##%...5>##]#;uDDDr!   zklass,expected)	normalizeto_julian_date	to_periodunit)
componentsresolution_stringto_pytimedeltato_timedelta64r   viewc                     [        [        5      n[        U 5      nU Vs/ s H$  oDU;  d  M
  UR                  S5      (       a  M"  UPM&     nnUR                  5         XQ:X  d   eg s  snf )N_)dirr
   
startswithsort)rG   rD   	nat_namesklass_namesrC   missings         r   test_missing_public_nat_methodsr      sX    . CIe*K%V+Q));qALLQTDUq+GVLLN Ws   	A$A$A$c           	         [        [        5      n[        U 5      nU Vs/ s H?  nXC;   d  M
  UR                  S5      (       a  M"  [        [	        X5      5      (       d  M=  UPMA     nnU [
        L a(  [        [        5      nU Vs/ s H  oDU;  d  M
  UPM     nnU(       a  U Vs/ s H  opU4PM     nnUR                  5         U$ s  snf s  snf s  snf )a  
Get overlapping public methods between NaT and another class.

Parameters
----------
klass : type
    The class to compare with NaT
as_tuple : bool, default False
    Whether to return a list of tuples of the form (klass, method).

Returns
-------
overlap : list
r   )r   r
   r   callabler5   r   r   r   )rG   as_tupler   r   rC   overlapts_namesrP   s           r   _get_overlap_public_nat_methodsr      s     CIe*K A 	
$%LL$5 	
:B75CT:U 	
   	y>%;g():1g;189v6?9LLNN < :s(   	CCCC	C	C	#C)'as_unitr^   rS   r_   r`   r~   day_namera   rR   rd   fromisoformatrb   rc   re   r'   rz   
month_namer   r   rQ   rf   rg   rh   ri   rj   rk   to_datetime64to_numpyto_pydatetimer   rl   r   r   rm   rn   ro   rp   rq   r3   total_secondsc                 &    [        U 5      U:X  d   eg rM   )r   )rG   rD   s     r   test_overlap_public_nat_methodsr      s    p +51X===r!   compareTc                 0    U S   R                    SU S    3$ )Nr   .   )r+   r   s    r   r   r   <  s    QqT]]O1QqTF+r!   )idsc                    U u  p[        X5      R                  nU[        :X  a  US:X  a  [        R                  " S5        US:X  a  [        R                  " SU S35        [        [
        U5      R                  nX4:X  d   eg )Nr'   zDIgnore differences with Timestamp.isoformat() as they're intentionalr   zdifferent docstring for z is intentional)r5   __doc__r   ru   skipr
   )r   rG   rP   	klass_docnat_docs        r   test_nat_doc_stringsr   6  sy     ME&..I	f3R	
  	.vhoFGc6"**Gr!   c                 
    X-   $ rM   r*   abs     r   r   r   T      AEr!   c                 
    X-   $ rM   r*   r   s     r   r   r   U  r   r!   c                 
    X-
  $ rM   r*   r   s     r   r   r   V      QUr!   c                 
    X-
  $ rM   r*   r   s     r   r   r   W  r   r!   c                 
    X-  $ rM   r*   r   s     r   r   r   X  r   r!   c                 
    X-  $ rM   r*   r   s     r   r   r   Y  r   r!   c                 
    X-  $ rM   r*   r   s     r   r   r   Z      15r!   c                 
    X-  $ rM   r*   r   s     r   r   r   [  r   r!   )left_plus_rightright_plus_leftleft_minus_rightright_minus_leftleft_times_rightright_times_leftleft_div_rightright_div_leftop_namezvalue,val_type)   scalar)g      ?floatingr   foor#   i  r   rU   i  r   ri   z
2014-01-01UTC)tzz
US/Easternz
Asia/Tokyoc                 "   S11 Sk[        [        R                  5       5      SS11 SkS.n[        U    nXR                  U[        5       5      ;   ay  US:X  a'  SU ;   a!  [	        U[
        5      (       a  S	nS
U SU S3nOUS:X  a  SR                  / SQ5      nOSn[        R                  " [        US9   U" [        U5        S S S 5        g US:X  a  SU ;   a  [        R                  nO[        nU" [        U5      UL d   eg ! , (       d  f       g = f)Nr   >   r   r   r   r   r   r   r   >   r   r   r   r   )r   r   r#   r   ri   r   timesz(Timedelta|NaTType)z'unsupported operand type\(s\) for \*: 'z' and ''r#   |)zcan only concatenate strunsupported operand typezcan't multiply sequencezCan't convert 'NaTType'zmust be str, not NaTTyper   rs   div)set_opskeysget
isinstancer   joinru   rv   	TypeErrorr
   r6   rI   )r   rH   val_typeinvalid_opsoptypsrx   rD   s           r   test_nat_arithmetic_scalarr   _  s   ( $$
 499;(*<=
K& 
gB//(CE22#7"5),,(D<TF'$qQC ((C -C]]9C0sEN 10 {"u'7vvHH#u~))) 10s   3D  
Dzval,expectedc                 *    [        SSS9nX -  UL d   eg )N      hoursminutesr   )valrD   tds      r   test_nat_rfloordiv_timedeltar     s      
A	&B9   r!   )r   r   r   r   z
2011-01-01z
2011-01-02rC   namer   r   zM8[ns]dtypez
US/Pacific1 day2 dayc                 h   Sn[         /S-  nUR                  R                  S:X  a  SU ;   a  [        X1R                  US9nO	[        X2S9nUR                  UR                  5      n[        U[        5      (       d  UR                  n[        U    nU" [         U5      n[        R                  " Xd5        g )NrC   r   r0   plusr   r   )r
   r   kindr   r   r   r   r   r   r	   arrayr   r?   assert_equal)r   rH   exp_nameexp_datarD   r   r<   s          r   test_nat_arithmetic_indexr    s    $ HuqyH{{36W#4 hhXF!(:

+HeU##>>	gBU^FOOF%r!   boxc                     U" SS/SS9nU" [         [         /SS9n[        R                  " [        U    " U[         5      U5        g )Nr   r   timedelta64[ns]r   )r
   r?   r  r   )r   r  vecbox_nats       r   test_nat_arithmetic_td64_vectorr    s@     w (9
:C3*$56GOODM#s+W5r!   zdtype,op,out_dtypezdatetime64[ns]r  c                     [         R                  " S5      R                  U 5      nU" [        U5      n[         R                  " UR
                  US9nUR                  S5        [        R                  " XE5        g )N
   r   r
   )	r6   arangeastyper
   emptyshapefillr?   assert_numpy_array_equal)r   r   	out_dtypeotherr<   rD   s         r   test_nat_arithmetic_ndarrayr    sU     IIbM  'EU^Fxx95HMM%1r!   c                  t    [         R                  R                  [        R                  R                  :X  d   eg rM   )r
   r`   r   r   r*   r!   r   test_nat_pinned_docstringsr    s$    99	 7 7777r!   c                      [         R                  " 5       n [         R                  " 5       n[        U 5      (       a  [        U5      (       d   e[         R                  " S5      n[	        U[
        R                  5      (       d   eUR                  S:X  d   e[         R                  " S5      n[	        U[
        R                  5      (       d   eUR                  S:X  d   e[         R                  " S5      n[	        U[
        R                  5      (       d   eUR                  S:X  d   e[        R                  " [        SS9   [         R                  " [
        R                  5        S S S 5        g ! , (       d  f       g = f)NzM8[s]zm8[ns]zm8[s]zNaT.to_numpy dtype must be a rs   )r
   r   r   r   r   r6   
datetime64r   timedelta64ru   rv   rw   int64)rD   r<   s     r   test_to_numpy_aliasr    s     "H\\^F>>d6ll** \\'"Ffbmm,,,,<<7"""\\(#Ffbnn----<<8###\\'"Ffbnn----<<7"""	z)H	IRXX 
J	I	Is   %E//
E=r  z3td64 doesn't return NotImplemented, see numpy#17017)reason)marksz3dt64 doesn't return NotImplemented, see numpy#17017c                     U n[        [        U5      " U5      SL d   e[        [        UR                  S5      5      nU" [        U5      SL d   eU" U[        5      SL d   eg )NFr   )r5   r
   operatorstrip)compare_operators_no_eq_ner  opnamer   s       r   test_nat_comparisonsr%    s`    : (F3&%///	6<<,	-Bc5>U"""eS>U"""r!   nsr   c                     [         U :X  a   e[         U :w  d   e[         U :  a   e[         U :  a   e[         U ::  a   e[         U :  a   eg rM   rN   )r  s    r   test_nat_comparisons_numpyr(  <  sQ     e|%<<U{?U{?e|e||r!   other_and_type)r   )r   int)       @floatsymbol_and_op<=<>=>c                    U u  p#Uu  pE[         U:X  a   eU[         :X  a   e[         U:w  d   eU[         :w  d   eSU SU S3n[        R                  " [        US9   U" [         U5        S S S 5        SU SU S3n[        R                  " [        US9   U" U[         5        S S S 5        g ! , (       d  f       NG= f! , (       d  f       g = f)Nr   z4' not supported between instances of 'NaTType' and 'rs   z&' not supported between instances of 'z' and 'NaTType')r
   ru   rv   r   )r)  r-  r  
other_typesymbolr   rx   s          r   test_nat_comparisons_invalidr5  H  s     'EJFe||%<<C<<fXI*UV
WC	y	,
3 
- fX;J<
WC	y	,
5# 
-	,	 
-	, 
-	,s   B*B;*
B8;
C	r   r   r   r  r+  g      @float64)r#   r*  r,  c                 T   [         R                  " SS/5      n[        U :H  n[        R                  " X!5        U [        :H  n[        R                  " X!5        [         R                  " SS/5      n[        U :g  n[        R                  " X!5        U [        :g  n[        R                  " X!5        S[
        R                  4S[
        R                  4S[
        R                  4S[
        R                  44 H  u  p4SU S3n[        R                  " [        US	9   U" [        U 5        S S S 5        U R                  [         R                  " S
5      :X  a  S n[        R                  " [        US	9   U" U [        5        S S S 5        M     g ! , (       d  f       Nh= f! , (       d  f       M  = f)NFTr.  r/  r0  r1  r   z' not supported betweenrs   object)r6   r  r
   r?   r  r!  leltgegtru   rv   r   r   )r  rD   r<   r4  r   rx   s         r   $test_nat_comparisons_invalid_ndarrayr=  a  s>    xx'HE\F1c\F1xxt%HE\F1c\F1 
x{{	hkk	x{{	hkk	
 &01]]9C0sEN 1 ;;"((8,,C]]9C0ucN 10 10 10s   F,F
F	
F'	c                 L   U R                  5       R                  5       nSn[        U4U[        44 H  u  p4X4:X  a   eX4:w  d   e[        R                  " [
        US9   X4:    S S S 5        [        R                  " [
        US9   X4:*    S S S 5        [        R                  " [
        US9   X4:    S S S 5        [        R                  " [
        US9   X4:    S S S 5        M     g ! , (       d  f       N= f! , (       d  f       Np= f! , (       d  f       N[= f! , (       d  f       M  = f)Nz,Cannot compare NaT with datetime.date objectrs   )r   r~   r
   ru   rv   r   )fixed_now_tsrA   rx   leftrights        r   test_compare_daterB    s     
	#	#	%	*	*	,B
8Cb	B9-=  }}]]9C0L 1]]9C0M 1]]9C0L 1]]9C0M 10 . 10000000s0   C!C2)DD!
C/	2
D 	
D	
D#	obj         rX   r   i  rT   iQ Dim  x   )r      )daysr      )r      r   0   c                 p    [         U -   [         L d   eU [         -   [         L d   e[         U -
  [         L d   eg rM   rN   )rC  s    r   test_nat_addsub_tdlike_scalarrP    s:    < 999r!   c                  N    [         R                  " [        5      n U [        L d   eg rM   )r?   round_trip_pickler
   )ps    r   test_picklerT    s    
S!A8O8r!   )F)_r   r   r!  numpyr6   ru   pytzpandas._libs.tslibsr   pandas.compat.numpyr   pandasr   r   r	   r
   r   r   r   r   r   r   r   pandas._testing_testingr?   pandas.corer   pandas.core.arraysr   r   r   r   markparametrizer=   rF   rI   r,  rO   r]   ry   r}   r   r   r   r   r   r   r   listr   timezonelocalizer   r  r   _from_sequencer  r  addraddsubrsubr  r  r  r   paramr   xfailr   r   r   r%  r  r(  r9  r:  r;  r<  r5  r  r8  r=  rB  YearEnd	YearBegin
MonthBeginMonthEndDayHourMinuterP  rT  r*   r!   r   <module>rq     sK	       $ 4     ! ( ( 	5	=)	5	>*	C	 +.*9> 9i"@AdBFFD%,UE2uM B 9i"89#=>!FG$ H ? :$ 454 I|#<=, >,
 N))
 57MNEE 	HI
	
"#"!H  (+	
X 
_%&[.1d>e1d> '	48
))T
:	; 	,    , *)****((	 D$56		4+&	4+&	$1	{+	<	 +.	<E	*K8	<L	1;?	|	$	-	-htQ.B	C[Q 6*! 7"6*r bffc]S"&&MBNN54I2663RS!! R |\2=|\2|#N$$lL%AR$$<(<0P	
 	)4&	 && R 9V9V WX6 Y	
6 	8<<)9:	9>>+;<	8<<):;	9>>+<=	HLL*:;	INN,<=	HLL*:;	INN,=>	228
0 !!##%aL'')++##((L $ 	
 	!!""$aL&&(++##((L $ 	
 	!  '-6#76# 2>>!T#:BMM%QU<V"WX Y )+WX
HKK3,tX[[.ACCUV	 Y
( 
%1F+
!Qw'
#s9-
 	   @* 	!1AARQ
q#
q#
tS!
tS!
y#&
q#
sC "##q#&B'1:;:r!   