
    A>ieJ                        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
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\R>                  RA                  S	\" S
5      \4\" S
5      \4\" S
SS9\4/5      S 5       r!S r"\R>                  RA                  S\\\/5      \R>                  RA                  SS\RF                  \\$" S5      \S
SSS/	5      S 5       5       r%\R>                  RA                  S\\/5      \R>                  RA                  S/ SQ5      \R>                  RA                  S/ SQ5      S 5       5       5       r&\R>                  RA                  S/ SQ5      S 5       r'\R>                  RA                  SSS/5      S 5       r(\R>                  RA                  S/ S Q5      S! 5       r)\R>                  RA                  S"S# S$ S% /5      S& 5       r*\R>                  RA                  S'\/ S(Q4\/ S)Q4/5      S* 5       r+SS+ jr,\R>                  RA                  S'\/ S,Q4\S-/4/5      S. 5       r-\R>                  RA                  S/\," \S05      \," \S05      -   S1 S29S3 5       r.S4 S5 S6 S7 S8 S9 S: S; S<.r/\R>                  RA                  S=\0" \/Rc                  5       5      5      \R>                  RA                  S>S?S@\RF                  SA4SB\" SC5      SD4\" SE5      SD4\ " SFSGSG5      SH4\" SI5      SH4\" SISJSK9SH4\" SISLSK9SH4\ " SFSGSG5      Re                  \Rf                  " SM5      5      SH4/5      SN 5       5       r4\R>                  RA                  SO\RF                  \4\\RF                  4\Rj                  " S
5      \RF                  4/5      SP 5       r6\R>                  RA                  S=/ SQQ5      \R>                  RA                  S\
" SRSS/STSUSV9\
" SRSS/SWSUSV9\Rn                  " SRSS/STSX9\Rn                  " SRSS/\" SYSK9SX9\" SZS[/SUS\9/5      S] 5       5       r8\R>                  RA                  S=/ SQQ5      \R>                  RA                  S^\\\Rn                  /5      S_ 5       5       r9\R>                  RA                  S`Sa\Rt                  Sa4Sa\Rv                  Sa4Sa\Rx                  Sb4Sa\Rz                  Sb4Sb\Rt                  Sa4Sb\Rv                  Sa4Sb\Rx                  Sa4Sb\Rz                  Sb4/5      Sc 5       r>Sd r?Se r@\R>                  RA                  Sf\" S 5      \" S 5      R                  5       \" S 5      R                  5       \" S 5      \" S 5      R                  5       \" S 5      R                  5       \" S 5      R                  SJ5      \/5      Sg 5       rF\R>                  RA                  Sh/ SiQ5      \R>                  RA                  SjSk\R                  4Sl\R                  4Sm\R                  4Sn\R                  4/5      So 5       5       rK\R>                  RA                  Sf\R                  " Sp/Sq-  \MSX9\R                  " SqSr/SsSX9\R                  " StSu/SvSX9// SwQS29Sx 5       rNSy rO\R>                  RA                  Sz\R                  " Sq5      \R                  " Sq5      \R                  " SG5      \R                  " Sq5      \R                  " S{5      \R                  " Sq5      \R                  " S|5      \R                  " S}5      \R                  " Sr5      \R                  " 5       \Rj                  " SrS~5      \Rj                  " SS~5      \Rj                  " SS5      \Rj                  " SCS5      \Rj                  " SS5      \Rj                  " SqS5      \Rj                  " SS5      \" S5      \" S5      \" SS9\" SSS9\" SS9\" SSS9\" SS9/5      S 5       rWS rXg)    )datetime	timedeltaN)iNaT)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    [/var/www/html/land-tabula/venv/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/2000r2   )r   r   r3   r4   r   tmassert_index_equalr   dtassert_series_equalr7   )r9   r:   r;   xexpectedsers         r   test_nat_vector_field_accessrE   K   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nanr8    NATc                 &    U " U5      [         L d   eg Nr	   )rF   rG   s     r   test_identityrN   j   s    
 <3r    method)roundfloorceilr0   )s5smin5minh5hc                 D    U " S5      n[        X15      nU" U5      UL d   eg )Nr8   )r4   )rF   rO   r0   tsround_methods        r   test_round_natr\   r   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utctimetuplec                     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
ValueErrorr4   r	   )rO   msgs     r   test_nat_methods_raiserx   }   s7    6 &fX
.C	z	-V 
.	-	-s	   >
Ar2   
isoweekdayc                 d    [         R                  " [        [        U 5      " 5       5      (       d   eg rL   )r5   r6   r4   r	   rO   s    r   test_nat_methods_nanr|      s#     88GC(*++++r    )datenowreplacetoday
tz_converttz_localizec                 @    [        [        U 5      " 5       [        L d   eg rL   )r4   r	   r{   s    r   test_nat_methods_natr      s    
 3!S(((r    get_natc                     [         $ rL   rM   rB   s    r   <lambda>r      s    #r    c                     [        U 5      $ rL   r   r   s    r   r   r      s    1r    c                     [        U 5      $ rL   )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)rF   rC   	nat_namesklass_namesrB   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   callabler4   r   r   r   )rF   as_tupler   r   rB   overlapts_namesrO   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]   rR   r^   r_   r}   day_namer`   rQ   rc   fromisoformatra   rb   rd   r&   ry   
month_namer~   r   rP   re   rf   rg   rh   ri   rj   to_datetime64to_numpyto_pydatetimer   rk   r   r   rl   rm   rn   ro   rp   r2   total_secondsc                 &    [        U 5      U:X  d   eg rL   )r   )rF   rC   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)r4   __doc__r   rt   skipr	   )r   rF   rO   	klass_docnat_docs        r   test_nat_doc_stringsr   4  sy     ME&..I	f3R	
  	.vhoFGc6"**Gr    c                 
    X-   $ rL   r)   abs     r   r   r   R      AEr    c                 
    X-   $ rL   r)   r   s     r   r   r   S  r   r    c                 
    X-
  $ rL   r)   r   s     r   r   r   T      QUr    c                 
    X-
  $ rL   r)   r   s     r   r   r   U  r   r    c                 
    X-  $ rL   r)   r   s     r   r   r   V  r   r    c                 
    X-  $ rL   r)   r   s     r   r   r   W  r   r    c                 
    X-  $ rL   r)   r   s     r   r   r   X      15r    c                 
    X-  $ rL   r)   r   s     r   r   r   Y  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   rT   i  r   rh   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   rh   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   rr   div)set_opskeysget
isinstancer   joinrt   ru   	TypeErrorr	   r5   rH   )r   rG   val_typeinvalid_opsoptypsrw   rC   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   )valrC   tds      r   test_nat_rfloordiv_timedeltar     s      
A	&B9   r    )r   r   r   r   z
2011-01-01z
2011-01-02zM8[ns]rB   )dtypenamezM8[ns, US/Eastern]r   z
US/Pacific1 day2 dayr   c                 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 )NrB   r   r/   plus)r   r   r   )r	   r   kindr   r   r   r   r   r   r   arrayr   r>   assert_equal)r   rG   exp_nameexp_datarC   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	   )	r5   arangeastyper	   emptyshapefillr>   assert_numpy_array_equal)r   r   	out_dtypeotherr;   rC   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 rL   )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 rr   )r	   r   r   r   r   r5   
datetime64r   timedelta64rt   ru   rv   int64)rC   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  c                     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   )r4   r	   operatorstrip)compare_operators_no_eq_ner  opnamer   s       r   test_nat_comparisonsr!    s`     (F3&%///	6<<,	-Bc5>U"""eS>U"""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 'rr   z&' not supported between instances of 'z' and 'NaTType')r	   rt   ru   r   )r"  r&  r  
other_typesymbolr   rw   s          r   test_nat_comparisons_invalidr.  .  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(  r)  r*  r   z' not supported betweenrr   object)r5   r   r	   r>   r  r  leltgegtrt   ru   r   r   )r  rC   r;   r-  r   rw   s         r   $test_nat_comparisons_invalid_ndarrayr6  G  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 objectrr   )r   r}   r	   rt   ru   r   )fixed_now_tsr@   rw   leftrights        r   test_compare_dater;  p  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         rW   r   i  rS   iQ Dim  x   )r      )daysr      )r      r   0   c                 p    [         U -   [         L d   eU [         -   [         L d   e[         U -
  [         L d   eg rL   rM   )r<  s    r   test_nat_addsub_tdlike_scalarrI    s:    < 999r    c                 P    [         R                  " [        U 5      nU[        L d   eg rL   )r>   round_trip_pickler	   )	temp_fileps     r   test_picklerN    s    
S),A8O8r    )F)Yr   r   r  zoneinfonumpyr5   rt   pandas._libs.tslibsr   pandasr   r   r   r	   r
   r   r   r   r   r   r   pandas._testing_testingr>   pandas.corer   pandas.core.arraysr   r   r   r   markparametrizer<   rE   rH   r%  rN   r\   rx   r|   r   r   r   r   r   r   r   listr   r]   ZoneInfor   r  r   _from_sequencer  r	  addraddsubrsubr  r  r  r   r   r   r   r   r!  r2  r3  r4  r5  r.  r   r1  r6  r;  YearEnd	YearBegin
MonthBeginMonthEndDayHourMinuterI  rN  r)   r    r   <module>rg     s       $     ! ( ( 	5	=)	5	>*	C	 +.*9> 9i"@AdBFFD%,UE2uM B 9i"89#=>!FG$ H ? :$ 232 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;?	$1		(	():):<)H	I;W 6*! 7"6*r bffc]S"&&MBNN54I2663RS!! R |\2(M<(0D3	
 	$$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 !!##%!##%!!""$!""$!  '	## )+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    