
    I j$                     x    S SK Jr  S SKrS SKrS SKJr  S SKrS SKJ	r	J
r
JrJr  S SKJr  S SKJr   " S S5      rg)    	timedeltaN)Pandas4Warning)	TimedeltaTimedeltaIndextimedelta_rangeto_timedelta)TimedeltaArrayc                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS r\R,                  R/                  S/ SQ5      S 5       rSrg)TestTimedeltaIndex   c                    [         R                  " SS5      n[         R                  " U/[        S9nSn[        R
                  " [        US9   [        U5        S S S 5        [        R
                  " [        US9   [        R                  " USS9  S S S 5        [        R
                  " [        US9   [        U5        S S S 5        g ! , (       d  f       Ns= f! , (       d  f       NM= f! , (       d  f       g = f)NNaTnsdtypez!Invalid type for timedelta scalarmatchm8[ns])np
datetime64arrayobjectpytestraises	TypeErrorr   r
   _from_sequencer	   )selfnatarrmsgs       ڂ/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/pandas/tests/indexes/timedeltas/test_constructors.pytest_array_of_dt64_nat_raises0TestTimedeltaIndex.test_array_of_dt64_nat_raises   s    mmE4(hhuF+1]]9C03 1 ]]9C0))#X> 1 ]]9C0 10 10 10 10s$   C:C1C(
C
C%(
C6c                     [         R                  " S[         R                  S9n[        USS9nUR                  R
                  R                  UL d   eg )N
   r   F)copy)r   arangeint64r   _data_ndarraybase)r   r    tdis      r"   test_int64_nocopy$TestTimedeltaIndex.test_int64_nocopy#   sB     ii"((+Su-yy!!&&#---    c                     [        SSSS9n[        USS9nUR                  UR                  :X  d   eS[        US0 5      ;  d   eg )	N1 secondi 1speriodsfreqinferr6   inferred_freq_cache)r   r   r6   getattrr   r-   results      r"   test_infer_from_tdi&TestTimedeltaIndex.test_infer_from_tdi*   sM     j%dC'2{{chh&&& gfh&CCCCr0   c                 &   [        SSSS9nSn[        R                  " [        US9   [	        USS9  S S S 5        [        R                  " [        US9   [	        UR
                  SS9  S S S 5        g ! , (       d  f       NE= f! , (       d  f       g = f)	Nr2   d   r3   r4   zMInferred frequency .* from passed values does not conform to passed frequencyr   Dr8   )r   r   r   
ValueErrorr   r*   )r   r-   r!   s      r"   test_infer_from_tdi_mismatch/TestTimedeltaIndex.test_infer_from_tdi_mismatch7   ss     j#DA. 	 ]]:S13S) 2 ]]:S13993/ 21 21 21s   A1B1
A?
Bc                    [         R                  " SSS9nSn[        R                  " [        US9   [        UR                  S5      5        S S S 5        [        R                  " [        US9   [        U5        S S S 5        [        R                  " [        US9   [        [        R                  " U5      5        S S S 5        g ! , (       d  f       N}= f! , (       d  f       Na= f! , (       d  f       g = f)Nz
2016-01-01   r5   z"cannot be converted to timedelta64r   zEurope/Brussels)	pd
date_ranger   r   r   r   tz_localizer   asarray)r   dtir!   s      r"   test_dt64_data_invalid)TestTimedeltaIndex.test_dt64_data_invalidG   s     mmL!42]]9C03??+<=> 1 ]]9C03 1 ]]9C02::c?+ 10 10 10 10s#   C-C C%
C
C"%
C3c                 j   [        SS/5      n[        SS/5      n[        R                  " X5        [        SS/5      n[        SS/5      n[        R                  " X5        [        S[        R                  /5      n[        [        SS9[        R                  /5      n[        R                  " X5        g )Ngffffff@gffffff#@   	   g       @g      "@)nanoseconds)r   tmassert_index_equalr   nanr   rI   r   r   r-   expecteds      r"   test_float64_ns_rounded*TestTimedeltaIndex.test_float64_ns_roundedW   s     c3Z(!1a&)
c, c3Z(!1a&)
c, c266]+!9#;RVV"DE
c,r0   c                 |    [        SS/SS9n[        [        SS9[        SS9/SS9n[        R                  " X5        g )Ng      ?g      @rB   unit)daysr   r   )r	   r   r   rT   rU   rW   s      r"   test_float64_unit_conversion/TestTimedeltaIndex.test_float64_unit_conversionh   s@    C;S1!C )"67x
 	c,r0   c                    [        S5      [        R                  [        S5      /n[        R                  " [        R
                  " U5      [        U5      5        [        R                  " [        R
                  " [        R                  " U5      5      [        [        R                  " U5      5      5        [        R                  [        R                  [        S5      /n[        R                  " [        R
                  " U5      [        U5      5        [        R                  " [        R
                  " [        R                  " U5      5      [        [        R                  " U5      5      5        g )N1 days3 days)
r   rI   r   rT   rU   Indexr   r   r   rV   )r   r    s     r"   "test_construction_base_constructor5TestTimedeltaIndex.test_construction_base_constructorp   s    "BFFIh,?@
bhhsm^C-@A
bhhrxx}5~bhhsm7TUvvrvvy23
bhhsm^C-@A
bhhrxx}5~bhhsm7TUr0   c           
          [        / SQ5      n[        SS[        R                  " SS5      [        SSS9[        R
                  R                  S5      /5      n[        R                  " X!5        g )N)rb   z1 days 00:00:052 daysz2 days 00:00:02z0 days 00:00:03rb   z1 days, 00:00:05rQ   rB   )r^   secondsrG   )	r   r   timedelta64r   rI   offsetsSecondrT   rU   )r   rX   r=   s      r"   test_constructor#TestTimedeltaIndex.test_constructory   sb    !
  "q#&q!,

!!!$
 	f/r0   c                     [        SSSS9n[        SS5       Vs/ s H	  nSU S3PM     nn[        U5      n[        R                  " XA5        g s  snf )	Nr3   rR   sr4      r&   P0DT0H0MS)r   ranger	   rT   rU   )r   rX   i	durationsr=   s        r"   test_constructor_iso'TestTimedeltaIndex.test_constructor_iso   sO    "4=.3Arl;lxs!_l	;i(
f/ <s   Ac                     Sn[         R                  " [        US9   [        SSS9  S S S 5        g ! , (       d  f       g = f)Nzperiods must be an integerr   rb   g      %@rH   )r   r   r   r   r   r!   s     r"   &test_timedelta_range_fractional_period9TestTimedeltaIndex.test_timedelta_range_fractional_period   s+    *]]9C0Hd3 100s   0
>c                    Sn[         R                  " [        US9   [        SSSS9  S S S 5        Sn[         R                  " [        US9   [	        S5        S S S 5        S [        S	5       5       n[	        U5      n[	        [        S	5       Vs/ s H  n[        U5      PM     sn5      n[        R                  " X55        [        R                  " / S
Q5      n[	        U5      n[        / SQSS9R                  S5      n[        R                  " X55        [	        UR                  S5      R                  5      n[        R                  " XuR                  S5      5        Sn[         R                  " [        US9   [	        / SQSS9  S S S 5        Sn[         R                  " [        US9   [        S	SS9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN~= fs  snf ! , (       d  f       Nf= f! , (       d  f       g = f)Nz#periods must be an integer, got foor   rb   foorB   )startr5   r6   z[TimedeltaIndex\(\.\.\.\) must be called with a collection of some kind, '1 days' was passedc              3   8   #    U  H  n[        U5      v   M     g 7f)Nr   ).0ru   s     r"   	<genexpr>?TestTimedeltaIndex.test_constructor_coverage.<locals>.<genexpr>   s     /Yy||Ys   r&   )rb   rh   rc   )rq   rQ   rG   r\   usr   zQInferred frequency None from passed values does not conform to passed frequency D)rb   rh   z4 daysr8   zVOf the four parameters: start, end, periods, and freq, exactly three must be specifiedr4   )r   r   r   r   r   rt   r   rT   rU   r   r   r	   as_unitasi8rC   )r   r!   genr=   ru   rX   strings	from_intss           r"   test_constructor_coverage,TestTimedeltaIndex.test_constructor_coverage   s   3]]9C0(ED 1" 	 ]]9C08$ 1 0U2Y/$!r"CA9Q<"CD
f/ ((9:(	4<<TB
f/"8#3#3D#9#>#>?	
i)9)9$)?@! 	 ]]:S19D 2& 	 ]]:S1BS1 21K 10 10 #D" 21 21s5   F<GG 8G%(G6<
G
G%
G36
Hc                 x    [        SSSSS9nUR                  S:X  d   e[        USS9nUR                  S:X  d   eg )Nrb   rq   rB   TEST)r   r5   r6   namezsomething else)r   )r   r   r   )r   idxidx2s      r"   test_constructor_name(TestTimedeltaIndex.test_constructor_name   sF    HacOxx6!!! c(89yy,,,,r0   c                    Sn[         R                  " [        US9   [        S/SS9  S S S 5        Sn[         R                  " [        US9   [        R
                  " S/SS9  S S S 5        g ! , (       d  f       NI= f! , (       d  f       g = f)Nz with no precision is not allowedr   2000rj   r   z3The 'timedelta64' dtype has no unit. Please pass in)r   r   rC   r   rI   rd   rz   s     r"   $test_constructor_no_precision_raises7TestTimedeltaIndex.test_constructor_no_precision_raises   sh     1]]:S1F8=9 2 D]]:S1HHfX]3 21	 21 21s   A+A<+
A9<
B
c                     Sn[         R                  " [        US9   [        S/SS9  S S S 5        [        S/SS9nUR                  S:X  d   eg ! , (       d  f       N,= f)Nz;Supported timedelta64 resolutions are 's', 'ms', 'us', 'ns'r   r   ztimedelta64[D]r   ztimedelta64[us]zm8[us])r   r   rC   r   r   )r   r!   r-   s      r"   'test_constructor_wrong_precision_raises:TestTimedeltaIndex.test_constructor_wrong_precision_raises   sS    K]]:S1F8+;< 2 fX->?yyH$$$ 21s   A
Ac                     [        SSS9nUR                  c   e[        US S9nUR                  b   e[        UR                  S S9nUR                  b   eg )Nrq      rH   r8   )r   r6   r   r*   r<   s      r"   test_explicit_none_freq*TestTimedeltaIndex.test_explicit_none_freq   sZ    a+xx###$/{{"""		5{{"""r0   c                     [        SSS9n[        R                  " U5      n[        U5      n[        R
                  " X15        [        R                  " U5      n[        U5      n[        R
                  " X15        g )Nrq   r   rH   )r   rI   Categoricalr   rT   rU   CategoricalIndex)r   r-   catr=   cis        r"   test_from_categorical(TestTimedeltaIndex.test_from_categorical   s\    a+nnS!$
f*  %#
f*r0   zunit,unit_depr))Ww)rB   d)minMIN)rp   rs   )hH)msMS)r   USc                    SU S3n[        SU 3SU 3/5      n[        R                  " [        US9   [        SU 3SU 3/5      nS S S 5        [        R                  " WU5        [        R                  " [        US9   [        SS/US9nS S S 5        US	;   a  UOS
n[        R                  " WUR                  U5      5        g ! , (       d  f       N= f! , (       d  f       NP= f)N'z8' is deprecated and will be removed in a future version.12r   rq   rQ   r\   )rp   r   r   rp   )r   rT   assert_produces_warningr   rU   r	   r   )r   r]   	unit_deprr!   rX   r=   r-   exp_units           r"   test_unit_deprecated'TestTimedeltaIndex.test_unit_deprecated   s     )TU!Qtf:4&z":;''cB#q_)o$FGF C
fh/''cB1vI6C C#444#
c8#3#3H#=> CB CBs   C?C
C
C$ N)__name__
__module____qualname____firstlineno__r#   r.   r>   rD   rN   rY   r_   re   rm   rw   r{   r   r   r   r   r   r   r   markparametrizer   __static_attributes__r   r0   r"   r   r      s    .D0 , -"-V0*04
(2T-	4%	#
+ [[	
??r0   r   )datetimer   numpyr   r   pandas.errorsr   pandasrI   r   r   r   r	   pandas._testing_testingrT   pandas.core.arrays.timedeltasr
   r   r   r0   r"   <module>r      s2       (    8|? |?r0   