
    MhA                     p    S SK J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   " S S5      r " S S5      rg)	    )	timedeltaN)IncompatibleFrequency)NaTPeriod	Timedelta	Timestampoffsetsc            
       R   \ rS rSrS rS rS rS rS r\	R                  R                  S/ SQ5      S	 5       r\	R                  R                  S
SS/5      \	R                  R                  S/ SQ5      \	R                  R                  S\R                  S4\R                  S4\R                   S4\R"                  S4/5      S 5       5       5       rS rS r\	R                  R                  S/ SQ5      S 5       r\	R                  R                  S/ SQ5      S 5       rS rS rSrg)TestPeriodArithmetic   c                    [         R                  R                  S5      nSR                  SS/5      n[        R
                  " [        US9   US-     S S S 5        Sn[        R
                  " [        US9   U[        S5      -     S S S 5        [        R
                  " [        US9   U[        R                  " S5      -     S S S 5        g ! , (       d  f       N|= f! , (       d  f       N[= f! , (       d  f       g = f)Nns|z)Python int too large to convert to C longzint too big to convertmatch   zvalue too large)
r   max	to_periodjoinpytestraisesOverflowErrorr   r	   Nano)selfpermsgs      \/var/www/html/env/lib/python3.13/site-packages/pandas/tests/scalar/period/test_arithmetic.pytest_add_overflow_raises-TestPeriodArithmetic.test_add_overflow_raises   s    mm%%d+hh;(
 ]]=4!G 5  ]]=4)A, 5]]=4',,q/! 54 54 5444s$   C5C%C*
C
C'*
C8c                 `    [        SSSSS9n[        SSSSS9nUS-   U:X  d   eSU-   U:X  d   eg )ND  r   freqyearmonthday   r   )r   per1per2s      r   test_period_add_integer,TestPeriodArithmetic.test_period_add_integer&   sF    3T:3T:ax44x4    c                    [        SSSSS9n[        SSSSS9nSR                  / SQ5      n[        R                  " [        US9   US	-     S S S 5        [        R                  " [        US9   S	U-     S S S 5        [        R                  " [        US9   X-     S S S 5        g ! , (       d  f       N\= f! , (       d  f       NF= f! , (       d  f       g = f)
Nr!   r"   r   r#   r(   r   )zunsupported operand type\(s\)zcan only concatenate strzmust be str, not Periodr   str)r   r   r   r   	TypeError)r   r*   r+   r   s       r   test_period_add_invalid,TestPeriodArithmetic.test_period_add_invalid,   s    3T:3T:hh
 ]]9C05L 1]]9C0DL 1]]9C0K 10	 100000s$   B!,B2C!
B/2
C 
Cc                     [        SSS9[        SSS9p!X-
  nUSUR                  -  :X  d   eSn[        R                  " [        US9   U[        SS	S9-
    S S S 5        g ! , (       d  f       g = f)
N2011Yr$   2007   z4Input has different freq=M from Period\(freq=Y-DEC\)r   z2007-01Mr   r$   r   r   r   )r   leftrightresultr   s        r   test_period_sub_period_annual2TestPeriodArithmetic.test_period_sub_period_annual?   sc    V#.vC0HeUZZ'''E]]0<6)#.. =<<s   A
A-c                     [        SSS9n[        SSS9nUR                  nX-
  SU-  :X  d   eX!-
  SU-  :X  d   eSn[        R                  " [        US9   U[        S	S
S9-
    S S S 5        g ! , (       d  f       g = f)N
2011-01-01r!   r7   z
2011-01-15i   z0Input has different freq=M from Period\(freq=D\)r   z2011-02r:   r;   )r   r*   r+   offr   s        r   test_period_sub_period+TestPeriodArithmetic.test_period_sub_periodH   sz    l-l-ii{cCi'''{b3h&&&A]]0<6)#.. =<<s   A--
A;n)r   r(      r9   c                     [        SU" U5      S9n[        SU" U5      S9n[        [        U5      UR                  R                  S9[        [        U5      UR                  R                  S9-
  nXC-
  U:X  d   eg )N19910905r7   19920406)r   r0   r$   base)r   tick_classesrG   p1p2expecteds         r   test_sub_n_gt_1_ticks*TestPeriodArithmetic.test_sub_n_gt_1_ticksT   sk     J\!_5J\!_5#b'5G"'',,9
 
 H$$$r.   	normalizeTFzoffset, kwd_namer&   startingMonthNweekdayc                     Ub  US0O0 nSnSn[        Xa" X440 UD6S9n[        Xq" X440 UD6S9n	[        XyR                  R                  S9[        XhR                  R                  S9-
  n
X-
  U
:X  d   eg )NrH   rJ   rK   r7   )r   r$   rL   )r   offsetkwd_namerG   rS   kwdsp1_dp2_drN   rO   rP   s              r   test_sub_n_gt_1_offsets,TestPeriodArithmetic.test_sub_n_gt_1_offsets`   s~     !) 4!}"Dva;d;<Dva;d;<$WW\\2VDww||5TTH$$$r.   c           
         S GH  n[        SUS9n[        SUS9nU[        R                  " S5      -   U:X  d   e[        R                  " S5      U-   U:X  d   e[        R                  " S5      [        R                  " S5      [        R
                  " 5       [        R                  " SS5      [        S5      4 HQ  nS	n[        R                  " [        US
9   X$-     S S S 5        [        R                  " [        US
9   XB-     S S S 5        MS     GM     S GHd  n[        SUS9n[        SUS9nU[        R                  " S5      -   U:X  d   e[        R                  " S5      U-   U:X  d   e[        SUS9nU[        R                  " S5      -   U:X  d   e[        R                  " S5      U-   U:X  d   eSR                  SS/5      n[        R                  " S5      [        R                  " S5      [        R
                  " 5       [        R                  " SS5      [        S5      4 HO  n[        R                  " [        US
9   X$-     S S S 5        [        R                  " [        US
9   XB-     S S S 5        MQ     GMg     S GHV  n[        SUS9n[        SUS9nU[        R                  " S5      -   U:X  d   e[        R                  " S5      U-   U:X  d   e[        SUS9nU[        R                  " S5      -   U:X  d   e[        R                  " S5      U-   U:X  d   e[        SUS9nU[        R                  " SS5      -   U:X  d   e[        R                  " SS5      U-   U:X  d   e[        SUS9nU[        R                  " SS5      -   U:X  d   e[        R                  " SS5      U-   U:X  d   e[        SUS9nU[        S5      -   U:X  d   e[        S5      U-   U:X  d   e[        SUS9nU[        SS9-   U:X  d   e[        SS9U-   U:X  d   eSR                  SS/5      n[        R                  " S5      [        R                  " S5      [        R
                  " 5       [        R                  " S S!5      [        S"S94 HO  n[        R                  " [        US
9   X$-     S S S 5        [        R                  " [        US
9   XB-     S S S 5        MQ     GMY     S# GHW  n[        S$US9n[        S%US9nU[        R                  " S5      -   U:X  d   e[        R                  " S5      U-   U:X  d   e[        S&US9nU[        R                  " S'5      -   U:X  d   e[        R                  " S'5      U-   U:X  d   eS(n[        S&US9nU[        R                  " S'S!5      -   U:X  d   e[        R                  " S'S!5      U-   U:X  d   e[        S)US9nU[        R                  " S*S5      -   U:X  d   e[        R                  " S*S5      U-   U:X  d   e[        S+US9nU[        S,S-9-   U:X  d   e[        S,S-9U-   U:X  d   e[        S.US9nU[        S S/S09-   U:X  d   e[        S S/S09U-   U:X  d   eSR                  SS/5      n[        R                  " S5      [        R                  " S5      [        R
                  " 5       [        R                  " S1S5      [        S"S2S394 HO  n[        R                  " [        US
9   X$-     S S S 5        [        R                  " [        US
9   XB-     S S S 5        MQ     GMZ     g ! , (       d  f       GNe= f! , (       d  f       GM  = f! , (       d  f       GN= f! , (       d  f       GM[  = f! , (       d  f       GN= f! , (       d  f       GM#  = f! , (       d  f       N= f! , (       d  f       M  = f)4Nr6   2Y3Yr5   r7   2013r(   r   m  r!   z<Input has different freq|Input cannot be converted to Periodr   r:   2M3M2011-03z2011-05z2012-03   r   Input has different freq#Input cannot be converted to Periodr!   2D3D
2011-04-01z
2011-04-06   
2011-04-02   
2011-04-03Q s
2011-03-300   hoursr9   h   rz   2h3h2011-04-01 09:00z2011-04-03 09:00z2011-04-01 12:00rH   zcannot use operands with typesz2011-04-01 10:00  z2011-04-01 11:00x   minutesz2011-04-05 12:00   daysr        ry   r   )r   r	   YearEnd	YearBegin
MonthBeginMinutenptimedelta64r   r   r   r   MonthEndr   DayHour)r   r$   r   exprD   r   s         r   test_period_add_offset+TestPeriodArithmetic.test_period_add_offsetw   s   %Dd+Cd+C++s222??1%+s222 !!!$""1% sC(# U]]#8DI E]]#8DI ED && &D.C.C))!,,333##A&,333.C))"--444##B'#-444((.9C !!!$""1% sC(# ]]#8DI E]]#8DI ED# &< &DD1CD1CQ'3...;;q>C'3...D1Cb))S000<<#c)S000D1C3//3666>>!S)C/3666D1C	3773>>>>>)S1C73>>>D1C2&#---R=3&#---D1C,,3332&,333((.9C !!!$""1% q#&# ]]#8DI E]]#8DI EDE &\ &D+$7C+$7CQ'3...;;q>C'3...+$7Ca(C///<<?S(C///2C+$7C3//3666>>!S)C/3666+$7Cc22c999>>$,s2c999+$7C3//3666S)C/3666+$7C3773>>>!S1C73>>>((.9C !!!$""1% tS)B/ ]]#8DI E]]#8DI EDG &c EDDD6 EDDDZ EDDDZ EDDDs`   \:=]](]1^^=^)#^::
]	
]
].1
^
^
^&)
^7:
_	c           
      	   SR                  SS/5      nS H  n[        SUS9nU[        R                  " S5      -
  [        SUS9:X  d   e[        R                  " S5      [        R
                  " S	5      [        R                  " 5       [        R                  " S
S5      [        S
5      4 H)  n[        R                  " [        US9   X4-
    S S S 5        M+     M     S H  n[        SUS9nU[        R                  " S5      -
  [        SUS9:X  d   eU[        R                  " S5      -
  [        SUS9:X  d   e[        R                  " S5      [        R
                  " S	5      [        R                  " 5       [        R                  " S
S5      [        S
5      4 H)  n[        R                  " [        US9   X4-
    S S S 5        M+     M     S GHm  n[        SUS9nU[        R                  " S5      -
  [        SUS9:X  d   eU[        R                  " S5      -
  [        SUS9:X  d   eU[        R                  " SS5      -
  [        SUS9:X  d   eU[        R                  " SS5      -
  [        SUS9:X  d   eU[        S5      -
  [        SUS9:X  d   eU[        SS9-
  [        SUS9:X  d   e[        R                  " S5      [        R
                  " S	5      [        R                  " 5       [        R                  " SS 5      [        S!S94 H)  n[        R                  " [        US9   X4-
    S S S 5        M+     GMp     S" GHm  n[        S#US9nU[        R                  " S5      -
  [        S$US9:X  d   eU[        R                  " S%5      -
  [        S&US9:X  d   eU[        R                  " S%S 5      -
  [        S&US9:X  d   eU[        R                  " S'S5      -
  [        S(US9:X  d   eU[        S)S*9-
  [        S+US9:X  d   eU[        SS,S-9-
  [        S.US9:X  d   e[        R                  " S5      [        R
                  " S	5      [        R                  " 5       [        R                  " S/S5      [        S!S0S194 H)  n[        R                  " [        US9   X4-
    S S S 5        M+     GMp     g ! , (       d  f       GM  = f! , (       d  f       GM=  = f! , (       d  f       GM  = f! , (       d  f       M{  = f)2Nr   ri   rj   r_   r5   r7   r(   2009r   rc   r!   r   rd   rg   2011-01rh   z2010-03rk   rn   ro   z
2011-03-27rq   z
2011-03-31ru   rs   rt   rv   rr   rw   rx   r9   rz   r{   r|   r   z2011-03-30 09:00rH   z2011-04-01 06:00r   z2011-04-01 08:00r   r   z2011-04-01 07:00r   r   z2011-03-28 06:00r   r   r   )r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r$   r   rD   s        r   test_period_sub_offset+TestPeriodArithmetic.test_period_sub_offset  su   hh*5
 &Dd+C++vf4/HHHH !!!$""1% sC(# ]]#8DI ED	 & &D.C))!,,yt0LLLL))"--	1MMMM !!!$""1% sC(# ]]#8DI ED &  &DD1CQ'6,T+JJJJb))VLt-LLLL3//6,T3RRRR	37764<    2&&D*IIII,,|$0OOOO !!!$""1% q#&# ]]#8DI ED &* &D+$7CQ'62D4+PPPPa(F3ED,QQQQ3//6:LSW3XXXXc22f"7    3//6:LSW3XXXX3776"<   
 !!!$""1% tS)B/ ]]#8DI ED &Q ED ED, ED. EDs0   R24S'SS+2
S
S
S(+
S:r$   rd   c                     [        SUS9n[        U-
  [        L d   eU[        -
  [        L d   e[        U-   [        L d   eU[        -   [        L d   eg )Nr   r7   )r   r   )r   r$   r   s      r   test_period_addsub_nat+TestPeriodArithmetic.test_period_addsub_natZ  s\     YT* SyCSyC SyCSyCr.   unit)r   usmsrt   mc                    [        SS5      n[        R                  " SU5      nX#-   [        L d   eX2-   [        L d   eX#-
  [        L d   e[        R
                  " [        SS9   X2-
    S S S 5        g ! , (       d  f       g = f)Nz
2022-06-01r!   r   zunsupported operandr   )r   r   r   r   r   r   r1   )r   r   r   nats       r   test_period_add_sub_td64_nat1TestPeriodArithmetic.test_period_add_sub_td64_natg  sq     \3'nnUD)yCyCyC]]9,ABI CBBs   $A22
B c                    [        SSS9nU[        R                  " 5       -   n[        SSS9nX#:X  d   eU[        R                  " S5      -
  n[        SSS9nX#:X  d   eSn[        R                  " [
        US9   U[        R                  " S5      -     S S S 5        [        R                  " [
        US9   U[        R                  " S5      -
    S S S 5        g ! , (       d  f       NJ= f! , (       d  f       g = f)	Nrn   r!   r7   rp   r(   ru   z-Input cannot be converted to Period\(freq=D\)r   )r   r	   r   r   r   r   r   )r   r   r>   r   r   s        r   test_period_ops_offset+TestPeriodArithmetic.test_period_ops_offsett  s    \,w{{}$\,}}w{{1~%\,}}>]]0<',,q/! = ]]0<',,q/! =< =< =<s   9C4C(
C%(
C6c                    [        S5      n[        SSS9nSn[        R                  " [        US9   X-     S S S 5        Sn[        R                  " [        US9   X!-     S S S 5        g ! , (       d  f       N7= f! , (       d  f       g = f)N2017r:   r7   z>unsupported operand type\(s\) for \+: 'Timestamp' and 'Period'r   z>unsupported operand type\(s\) for \+: 'Period' and 'Timestamp')r   r   r   r   r1   )r   tsr   r   s       r    test_period_add_timestamp_raises5TestPeriodArithmetic.test_period_add_timestamp_raises  sj    vV#&O]]9C0H 1 P]]9C0H 10	 10 10s   A'A8'
A58
B )__name__
__module____qualname____firstlineno__r   r,   r2   r?   rE   r   markparametrizerQ   r	   r   
QuarterEndr   Weekr\   r   r   r   r   r   r   __static_attributes__r   r.   r   r   r      s:   "( &/
/ [[S,/	% 0	% [[[4-8[[S,/[[__g&1t$\\9%		

% 0 9
%N`Qf [[V%67
  8
  [[V%AB
 C
""r.   r   c            
           \ rS rSrS rS rS rS rS r\	R                  R                  S\R                  " S5      S	4\R                  " \" S
S5      5      S445      S 5       rSrg)TestPeriodComparisonsi  c                     [        SS5      n[        SS5      nX:X  a   eX:w  d   eX:  d   eX::  d   eX:  a   eX:  a   eg )N2000-01r:   z2000-02r)   )r   janfebs      r    test_period_comparison_same_freq6TestPeriodComparisons.test_period_comparison_same_freq  sX    Y$Y$:~zzyyzz9}:~:r.   c                 z    [        SS5      n[        SS5      nX:X  d   eX:  d   eX::  d   eX:  a   eX:  a   eg Nr   r:   r)   )r   r<   r=   s      r   3test_period_comparison_same_period_different_objectITestPeriodComparisons.test_period_comparison_same_period_different_object  sP    i%y#&}}}}}}<<<r.   c                    [        SS5      n[        SS5      nX:X  a   eX:w  d   eSn[        R                  " [        US9   X:    S S S 5        [        R                  " [        US9   X:*    S S S 5        [        R                  " [        US9   X:    S S S 5        [        R                  " [        US9   X:    S S S 5        g ! , (       d  f       N= f! , (       d  f       Nl= f! , (       d  f       NW= f! , (       d  f       g = f)Nr   r:   z
2012-01-01r!   z0Input has different freq=D from Period\(freq=M\)r   )r   r   r   r   )r   r   r'   r   s       r   &test_period_comparison_mismatched_freq<TestPeriodComparisons.test_period_comparison_mismatched_freq  s    Y$\3':~zzA]]0<I =]]0<J =]]0<I =]]0<J =< =<<<<<<<s0   C(CC$4C5
C
C!$
C25
Dc                 ,   [        SS5      nUS:X  a   eUS:w  d   eSnSU SU 3nUS4SU44 H  u  pE[        R                  " [        US9   XE:    S S S 5        [        R                  " [        US9   XE:    S S S 5        [        R                  " [        US9   XE:    S S S 5        [        R                  " [        US9   XE:*    S S S 5        M     g ! , (       d  f       N= f! , (       d  f       Np= f! , (       d  f       N[= f! , (       d  f       M  = f)Nr   r:   r   z'(Period|int)'z#not supported between instances of z and r   )r   r   r   r1   )r   r   
int_or_perr   r<   r=   s         r   #test_period_comparison_invalid_type9TestPeriodComparisons.test_period_comparison_invalid_type  s    Y$!8|axx%
3J<uZLQ !Hq#h/KDy4 5y4 5y4 5y4 54 044444444s0   C3C"C3?D
C	"
C0	3
D	
D	c                     [        SSS9n[        S5      n[        U4U[        4[        U4U[        44 H/  u  p4X4:  a   eX4:  a   eX4:X  a   eX4:w  d   eX4::  a   eX4:  d  M/   e   g )NrB   r!   r7   )r   r   r   )r   r   r   r<   r=   s        r   test_period_comparison_nat0TestPeriodComparisons.test_period_comparison_nat  s    \,|$ #J#J"II	
KD |##|##}$$= =}$$}$$
r.   zzerodim_arr, expectedr   Fr   r:   Tc                 @    [        SS5      nX1:H  UL d   eX:H  UL d   eg r   r)   )r   zerodim_arrrP   r   s       r   (test_period_comparison_numpy_zerodim_arr>TestPeriodComparisons.test_period_comparison_numpy_zerodim_arr  s2    
 Y$"x///"x///r.   r   N)r   r   r   r   r   r   r   r   r   r   r   r   r   arrayr   r   r   r   r.   r   r   r     sk    		  $%$ [[
((1+u		3)? @$GH0	0r.   r   )datetimer   numpyr   r   pandas._libs.tslibs.periodr   pandasr   r   r   r   r	   r   r   r   r.   r   <module>r      s4       <  DS0 S0r.   