
    Owg)                         d dl mZ d dlZd dlZd dlZd dlmZ d dlm	Z
 d dlmZmZ  G d d      Z G d d      Z G d	 d
      Zy)    )	timedeltaN)	Timedelta)DatetimeArrayTimedeltaArrayc                      e Zd Z ej                  g d      d        Zej                  d        Zd Zd Zej                  j                  dej                        d        Zd	 Zd
 Zd Zd Zej                  j                  d ej&                  dd       ej&                  dd      g      d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)TestNonNano)smsus)paramsc                     |j                   S N)param)selfrequests     Z/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/arrays/test_timedeltas.pyunitzTestNonNano.unit   s    }}    c                     t        j                  dt         j                        j                  d| d      }t	        j
                  ||j                        S )N   dtypem8[])nparangeint64viewr   _simple_newr   )r   r   arrs      r   tdazTestNonNano.tda   s@    ii*//#dV1>))#SYY??r   c                    t        j                  dt         j                        j                  d| d      }t	        j
                  ||j                        }|j                  |j                  k(  sJ |d   j                  |k(  sJ y )Nr   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r    r!   s       r   test_non_nanozTestNonNano.test_non_nano   sk    ii*//#dV1>((CII>yyCII%%%1v{{d"""r   c                 2   t        j                  t        d      5  |j                  d       d d d        t	        j
                  |      }t        j                  t        d      5  |j                  d       d d d        y # 1 sw Y   TxY w# 1 sw Y   y xY w)NzSupported unitsmatchD)pytestraises
ValueErroras_unitpdIndex)r   r!   tdis      r   test_as_unit_raiseszTestNonNano.test_as_unit_raises    sv    ]]:->? 	KK	 hhsm]]:->? 	KK	 			 		 	s   B&BB
Bfieldc                     |j                   j                  d      }t        j                  ||j                        }t        ||      }t        ||      }t        j                  ||       y Nm8[ns]r   )_ndarrayastyper   r   r   getattrtmassert_numpy_array_equal)r   r!   r0   as_nanotda_nanoresultexpecteds          r   test_fieldszTestNonNano.test_fields)   sT    ,,%%h/!--gW]]Ke$8U+
##FH5r   c                     |j                   j                  d      }t        j                  ||j                        }|j                         }|j                         }t        j                  ||       y r2   )r4   r5   r   r   r   to_pytimedeltar7   r8   )r   r!   r9   r:   r;   r<   s         r   test_to_pytimedeltazTestNonNano.test_to_pytimedelta2   sX    ,,%%h/!--gW]]K##%**,
##FH5r   c                     |j                   j                  d      }t        j                  ||j                        }|j                         }|j                         }t        j                  ||       y r2   )r4   r5   r   r   r   total_secondsr7   r8   )r   r   r!   r9   r:   r;   r<   s          r   test_total_secondszTestNonNano.test_total_seconds:   sX    ,,%%h/!--gW]]K""$))+
##FH5r   c                     t        d      j                         }t        j                  t        d      g      j                         d   }||k(  sJ y )Nz2 minr   )r   rB   r,   array)r   r<   r;   s      r   "test_timedelta_array_total_secondsz.TestNonNano.test_timedelta_array_total_secondsB   sG    W%3359W-./==?B!!!r   c                 @   t        j                  dg      j                  d      }t        j                  dg      j                  d      }||z
  j                  t	        j
                  dd      z  }||z
  j                  j                         j                  }||k(  sJ y )Nz2145-11-02 06:00:00datetime64[ns]z2145-11-02 07:06:00   r	   )r,   Seriesr5   valuesr   timedelta64dtrB   )r   
start_timeend_timer<   r;   s        r   test_total_seconds_nanosecondsz*TestNonNano.test_total_seconds_nanosecondsI   s    YY 567>>?OP
99345<<=MNz)11BNN1c4JJZ'++99;BB!!!r   natNaTnsr   c                 L   ||z   }t        |t              sJ |j                  |j                  k(  sJ |j                         j	                         sJ ||z   }t        |t              sJ |j                  |j                  k(  sJ |j                         j	                         sJ y r   )
isinstancer   _cresoisnaall)r   rQ   r!   r;   s       r    test_add_nat_datetimelike_scalarz,TestNonNano.test_add_nat_datetimelike_scalarQ   s     s&-000}}

***{{}  """s&-000}}

***{{}  """r   c                    |t         j                  z   }t        |t              sJ |j                  |j                  k(  sJ |j                         j                         sJ t         j                  |z   }t        |t              sJ |j                  |j                  k(  sJ |j                         j                         sJ y r   )r,   rR   rU   r   rV   rW   rX   )r   r!   r;   s      r   test_add_pdnatzTestNonNano.test_add_pdnat_   s    rvv&.111}}

***{{}  """#&.111}}

***{{}  """r   c                 0   t        j                  d|      j                  d      }|j                  d      |z   }||z   }t        j                  ||       ||z   }t        j                  ||       |t        d      z  }|j                  |j                  z   }t        j                  ||j                        j                  d      j                  |j                        }||z   }t        j                  ||       ||z   }t        j                  ||       y )Nz
2016-01-01)tzrS   rI   r   UTC)r,   	Timestampr+   r7   assert_extension_array_equalr   r4   asm8r   r   r   tz_localize
tz_convertr]   )r   r!   tz_naive_fixturetsr<   res
exp_valuesr;   s           r   test_add_datetimelike_scalarz(TestNonNano.test_add_datetimelike_scalarl   s    \\,+;<DDTJ;;t$r)Bh
''X63h
''X6
il\\BGG+
%%j
8H8HI[Z 	 r
''9c
''9r   c                     d}||z  }t        j                  |j                  |z  |j                        }t	        j
                  ||       |j                  |j                  k(  sJ y N   r   r   r   r4   r   r7   r`   rV   r   r!   otherr;   r<   s        r   test_mul_scalarzTestNonNano.test_mul_scalar   U    u!--cllU.B#))T
''9}}

***r   c                    t        j                  t        |            }||z  }t        j                  |j
                  |z  |j                        }t        j                  ||       |j                  |j                  k(  sJ y Nr   
r   r   lenr   r   r4   r   r7   r`   rV   rm   s        r   test_mul_listlikezTestNonNano.test_mul_listlike   b    		#c(#u!--cllU.B#))T
''9}}

***r   c                 .   t        j                  t        |            }||j                  t              z  }t        j                  |j                  |z  |j                        }t        j                  ||       |j                  |j                  k(  sJ y rr   )r   r   rt   r5   objectr   r   r4   r   r7   r`   rV   rm   s        r   test_mul_listlike_objectz$TestNonNano.test_mul_listlike_object   sl    		#c(#u||F++!--cllU.B#))T
''9}}

***r   c                     d}||z  }t        j                  |j                  |z  |j                        }t	        j
                  ||       |j                  |j                  k(  sJ y rj   rl   rm   s        r   test_div_numeric_scalarz#TestNonNano.test_div_numeric_scalar   rp   r   c                     t        d      }||z  }|j                  t        j                  dd      z  }t	        j
                  ||       y )NrI   secondsr	   )r   r4   r   rL   r7   r8   rm   s        r   test_div_td_scalarzTestNonNano.test_div_td_scalar   s>    !$u<<"..C"88
##FH5r   c                    t        j                  t        |            }||z  }t        j                  |j
                  |z  |j                        }t        j                  ||       |j                  |j                  k(  sJ y rr   rs   rm   s        r   test_div_numeric_arrayz"TestNonNano.test_div_numeric_array   rv   r   c                     |j                   |j                   d   z   }||z  }|j                   |z  }t        j                  ||       y )N)r4   r7   r8   rm   s        r   test_div_td_arrayzTestNonNano.test_div_td_array   s@    s||B//u<<%'
##FH5r   c                    |j                  d      }|dz  }||z   }t        j                  ||       ||z   }t        j                  ||       |dz  }||z
  }t        j                  ||       ||z
  }t        j                  ||       y )Nr3   rk   r   )r5   r7   r`   )r   r!   r:   r<   rf   s        r   test_add_timedeltaarraylikez'TestNonNano.test_add_timedeltaarraylike   s    ::h'a<n
''X6Hn
''X6a<Hn
''X6n
''X6r   N)__name__
__module____qualname__r(   fixturer   r!   r#   r/   markparametrizer   
_field_opsr=   r@   rC   rF   rP   r   
datetime64rY   r[   rh   ro   ru   ry   r{   r   r   r   r    r   r   r   r      s    V^^,- . ^^@ @# [[Wn&?&?@6 A666"" [[eT*MBMM%,FG	#	#	#:0++++6+67r   r   c                      e Zd Zej                  j                  deej                  ej                  ddg      d        Z
d Zej                  j                  d ed       ed      j                          ed      j                         g      d	        Zej                  j                  d
d ej                  d      d ej                   d       ej$                  d      d ej&                  dd      dz  dz  dz   ej&                  d      dz  dz  dz  j)                  d       ej$                  d      j+                  d      g	      ej                  j                  dddg      d               Zy)TestTimedeltaArrayr   uint32uint64c                    t        j                  t        d      t        d      gd      }t        j                  |      t        j
                  k7  r6t        j                  t        d      5  |j                  |       d d d        y |j                  |      }|j                  j                  d      }t        j                  ||       y # 1 sw Y   y xY w)N1h2hr3   r   zDo obj.astype\('int64'\)r%   i8)r   _from_sequencer   r   r   r   r(   r)   	TypeErrorr5   r4   r   r7   r8   )r   r   r    r;   r<   s        r   test_astype_intz"TestTimedeltaArray.test_astype_int   s    ++t_io.h
 88E?bhh&y0KL "

5!"E"<<$$T*
##FH5"s   -CCc                     t        j                  ddd      j                  }t        d      |d<   |j                  J y )Nr   rk   hperiodsfreqr   )r,   timedelta_range_datar   r   )r   as     r   test_setitem_clears_freqz+TestTimedeltaArray.test_setitem_clears_freq   s7    tQS9??!vv~~r   objrI   r}   c                 ~    t        j                  ddd      }|j                  }||d<   |d   t        d      k(  sJ y )N2 Days   r   r   r   rI   r}   )r,   r   r   r   )r   r   r.   r    s       r   test_setitem_objectsz'TestTimedeltaArray.test_setitem_objects   sA       13?iiA1v1----r   rn   g      ?rR   z
2021-01-01invalid
   r   r         ʚ;rH   r'   indexTFc                 \   t        j                  dd      dz  dz  dz  }t        j                  |d      j                  }|rt        j
                  |      }d	j                  d
dg      }t        j                  t        |      5  |j                  |       d d d        y # 1 sw Y   y xY w)Nr   r   r   r   r   r   r'   )r   |z0searchsorted requires compatible dtype or scalarz<value should be a 'Timedelta', 'NaT', or array of those. Gotr%   )r   r   r,   TimedeltaIndexr   r-   joinr(   r)   r   searchsorted)r   rn   r   datar    msgs         r   test_searchsorted_invalid_typesz2TestTimedeltaArray.test_searchsorted_invalid_types   s      yy4(2-4u<3/55((3-ChhBN
 ]]9C0 	$U#	$ 	$ 	$s   B""B+N)r   r   r   r(   r   r   intr   int32r   r   r   r   to_timedelta64r?   r   r   r,   r_   r   r   	to_periodr   r   r   r   r   r      so   [[WsBHHbhh(&ST6 U6
 [[a a //1a //1	
.. [[BHHQKBMM% BLL&BIIb%*T1E9RYYr]R$&.445EFBLL&005
	
 [[WtUm4$ 5$r   r   c                   $    e Zd Zd Zd Zd Zd Zy)TestUnaryOpsc                 T   t        j                  g dd      }t        j                  |      }t        j                  g dd      }t        j                  |      }t	        |      }t        j                  ||       t        j                  |      }t        j                  ||       y )Nl  qarR       @B1r3   r   )     qarR   r   )r   rE   r   r   absr7   assert_timedelta_array_equalr   valsr    evalsr<   r;   result2s          r   test_abszTestUnaryOps.test_abs	  sz    xx<HM++D1<HM!007S
''9&&+
'':r   c                 H   t        j                  g dd      }t        j                  |      }|}t	        j
                  ||       t	        j                  ||      rJ t        j                  |      }t	        j
                  ||       t	        j                  ||      rJ y )Nr   r3   r   )r   rE   r   r   r7   r   shares_memorypositive)r   r   r    r;   r   s        r   test_poszTestUnaryOps.test_pos  s    xx<HM++D1
''4##FC000++c"
''5##GS1111r   c                 D   t        j                  g dd      }t        j                  |      }t        j                  g dd      }t        j                  |      }| }t	        j
                  ||       t        j                  |      }t	        j
                  ||       y )Nr   r3   r   )r   rR   l @B1)r   rE   r   r   r7   r   negativer   s          r   test_negzTestUnaryOps.test_neg"  sy    xx<HM++D1=XN!007
''9++c"
'':r   c                     t        j                  ddd      }|j                  }|j                   }| }t        j                  ||       t        j                  |      }t        j                  ||       y )Nr   r   r   r   )r,   r   r   r7   r   r   r   )r   r.   r    r<   r;   r   s         r   test_neg_freqzTestUnaryOps.test_neg_freq/  s_      13?iiII:
''9++c"
'':r   N)r   r   r   r   r   r   r   r   r   r   r   r     s    ;
2;
;r   r   )datetimer   numpyr   r(   pandasr,   r   pandas._testing_testingr7   pandas.core.arraysr   r   r   r   r   r   r   r   <module>r      s@         r7 r7jA$ A$H1; 1;r   