+
    :iŬ                        R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t	H
t
Ht ^ RIHt ^ RIHtHt ^ RIHt ^ RIHtHtHt ^ RIHtHt ]P4                  ! R4      t]P4                  ! R	4      tR
 tR5tR6t]],           t R t!R t"R t#R t$R t%R t&R t'R t(R t)R t*R t+R t,R t-R t.R t/R t0R t1R t2R t3 ! R R]4      t4]Pj                  t6]Pn                  t8 ! R  R!]4      t9 ! R" R#]4      t: ! R$ R%]:4      t; ! R& R']4      t< ! R( R)]<4      t= ! R* R+]4      t> ! R, R-]4      t? ! R. R/]4      t@ ! R0 R1]4      tA ! R2 R3]4      tB]CR48X  d   ]P                  ! 4        R# R# )7z0
Test np.datetime64 and np.timedelta64 support.
N)jit	vectorizenjit)numpy_version)typesconfig)TypingError)TestCasetagskip_parfors_unsupported)npdatetime_helpersnumpy_supportztimedelta64[M]ztimedelta64[Y]c                 Z    \         P                  ! V P                  4      pVP                  # N)r   
from_dtypedtypeunit)valtys   & Y/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/tests/test_npdatetime.py
value_unitr      s    		!	!#))	,B77N    c                     W,           # r    xys   &&r   add_usecaser   %   	    5Lr   c                     W,
          # r   r   r   s   &&r   sub_usecaser    (   r   r   c                     W,          # r   r   r   s   &&r   mul_usecaser"   +   r   r   c                     W,          # r   r   r   s   &&r   div_usecaser$   .   r   r   c                     W,          # r   r   r   s   &&r   floordiv_usecaser&   1   s	    6Mr   c                 
    W8H  # r   r   r   s   &&r   
eq_usecaser(   4   	    6Mr   c                 
    W8g  # r   r   r   s   &&r   
ne_usecaser+   7   r)   r   c                 
    W8  # r   r   r   s   &&r   
lt_usecaser-   :   	    5Lr   c                 
    W8*  # r   r   r   s   &&r   
le_usecaser0   =   r)   r   c                 
    W8  # r   r   r   s   &&r   
gt_usecaser2   @   r.   r   c                 
    W8  # r   r   r   s   &&r   
ge_usecaser4   C   r)   r   c                     V 5# r   r   r   s   &r   pos_usecaser7   F   	    2Ir   c                     V ) # r   r   r6   s   &r   neg_usecaser:   I   r8   r   c                     \        V 4      # r   )absr6   s   &r   abs_usecaser=   L       q6Mr   c                     \        V 4      # r   )hashr6   s   &r   hash_usecaserA   O   s    7Nr   c                     \        W4      # r   minr   s   &&r   min_usecaserE   R       q9r   c                     \        W4      # r   maxr   s   &&r   max_usecaserJ   U   rF   r   c                     \        V 4      # r   )intr6   s   &r   int_cast_usecaserM   X   r>   r   c                    a  V 3R  lpV# )c                    < V S,           # r   r   )r   consts   &r   add_constant'make_add_constant.<locals>.add_constant\   s    5yr   r   )rP   rQ   s   f r   make_add_constantrS   [   s    r   c                   B   a  ] tR t^at o RtR tR tR tR tR t	Rt
V tR# )	TestModuleHelpersz7
Test the various helpers in numba.npdatetime_helpers.
c                  a a \         P                  o\        P                  ! \        \
        4       F7  w  rS P                  S! W4      W34       S P                  S! W!4      W34       K9  	  \         F3  pS P                  S! VR 4      4       S P                  S! R V4      4       K5  	  \        R,            F  pS P                  S! W34      4       K  	  VV 3R lpV! \        4       V! \
        4       R# ) c                    < \        V 4       F?  w  rV R V  F1  pSP                  S! W24      4       SP                  S! W#4      4       K3  	  KA  	  R # r   )	enumerate
assertTrueassertFalsegroupiabfselfs   &   r   check_units_groupDTestModuleHelpers.test_can_cast_timedelta.<locals>.check_units_groupq   sF    !%(rAOOAaG,$$QqW-	 # )r   NrW   )	r   can_cast_timedelta_units	itertoolsproduct
date_units
time_unitsr[   	all_unitsrZ   )rb   r_   r`   r   rc   ra   s   f    @r   test_can_cast_timedelta)TestModuleHelpers.test_can_cast_timedeltaf   s    77%%j*=DAQqWqf-QqWqf- > DQtR[)OOAb$K(  %%DOOAdM* &	. 	*%*%r   c                  a a \         P                  o\        R	,            F  pS P                  S! W4      ^4       K  	  \         F  pS P                  S! R V4      ^4       K  	  \        P
                  ! \        \        4       F5  w  r#S P                  S! W#4      R4       S P                  S! W24      R4       K7  	  VV 3R lpV! \        4       V! \        4       S P                  S! RR4      ^4       S P                  S! RR4      ^4       S P                  S! RR4      R
4       S P                  S! RR4      R4       R# )rW   Nc                    < \        V 4       FC  w  rV R V  F5  pSP                  S! W24      ^W234       SP                  S! W#4      R 4       K7  	  KE  	  R # r   )rY   assertGreaterassertIsr\   s   &   r   rc   FTestModuleHelpers.test_timedelta_conversion.<locals>.check_units_group   sN    !%(rA&&qwA6:MM!A'40 # )r   YMWhmusre   i`'  l     !3)	r   get_timedelta_conversion_factorrk   assertEqualrg   rh   rj   ri   rq   )rb   r   r_   r`   rc   ra   s   f    @r   test_timedelta_conversion+TestModuleHelpers.test_timedelta_conversion|   s   >>%%DQt]A. &DQr4[!, %%j*=DAMM!A'4(MM!A'4( >	1 	*%*% 	3b)3f-3k23'BCr   c                `  a a \         P                  oVV 3R  lp\        P                  ! \        \
        4       F  w  r#V! W#4       K  	  \        P                  ! \        \        4       F  w  r#S! W#4       K  	  \        P                  ! \
        \        4       F  w  r#S! W#4       K  	  \        P                  ! \
        \
        4       F  w  r#S! W#4       K  	  \         FS  pS P                  S! WD4      V^^34       S P                  S! VR4      V^^34       S P                  S! RV4      R	4       KU  	  S P                  S! RR4      R	4       S P                  S! RR4      R
4       S P                  S! RR4      R4       S P                  S! RR4      R4       S P                  S! RR4      R4       S P                  S! RR4      R4       S P                  S! RR4      R4       S P                  S! RR4      R4       S P                  S! RR4      R4       S P                  S! RR4      R4       S P                  S! RR4      R4       S P                  S! RR4      R4       S P                  S! RR4      R4       S P                  S! RR4      R4       S P                  S! RR4      R4       R# )c                    < SP                  \        4      ;_uu_ 4        S! W4       R R R 4       R #   + '       g   i     R # ; ir   )assertRaisesRuntimeError)dt_unittd_unitra   rb   s   &&r   check_errorFTestModuleHelpers.test_datetime_timedelta_scaling.<locals>.check_error   s+    ""<00'# 1000s	   	2A	rW   rs   rt   ru   DsasN)rW      r   )rt      r   )rt   r   r   )r      r   )r   r   r   )r   :	 r   )r   r   r   )r        NZor   )r   r   r   )r   :   )ru   r   i
  )r   r     )ru   r   i@  )r      Y` r   )r   r   r   )r   !get_datetime_timedelta_conversionrg   rh   rj   ri   rk   rz   )rb   r   r   r   r   ra   s   f    @r   test_datetime_timedelta_scaling1TestModuleHelpers.test_datetime_timedelta_scaling   sQ   @@	$ !* 1 1*j IG) !J !* 1 1*j IGg !J ) 1 1*j IGg !J ) 1 1*j IGg !J DQt]T1aL9QtR[4A,7Qr4[*5  	2rJ/3l33l33k23k23&=>3&=>3';<4';<3&@A3&DE3&EF3&IJ3&OP3&TUr   c                   \         P                  p\         FM  pV P                  V! W"4      V4       V P                  V! R V4      V4       V P                  V! VR 4      V4       KO  	  V P                  V! R R 4      R 4       \        P
                  ! \        \        4       F  w  r4V P                  V! W44      R4       K  	  \        P
                  ! \        \        4       F  w  r4V P                  V! W44      V4       K  	  R# )rW   N)	r    combine_datetime_timedelta_unitsrk   rz   rg   rh   rj   ri   rq   )rb   ra   r   r   r   s   &    r   %test_combine_datetime_timedelta_units7TestModuleHelpers.test_combine_datetime_timedelta_units   s    ??DQt]D1Qr4[$/QtR[$/  	2rB' ) 1 1*j IGMM!G-t4 !J ) 1 1*j IGQw0': !Jr   c                   \         P                  p\         F  pV P                  V! W"4      4       K  	  RpRp\        P
                  ! W34       F  w  rVV P                  V! WV4      4       K  	  \        P
                  ! WD4       F  w  rVV P                  V! WV4      4       K  	  \        P
                  ! W44       F3  w  rVV P                  V! WV4      4       V P                  V! We4      4       K5  	  R# )rs   N)rs   rt   ru   r   )	rv   rw   r   msrx   nspsfsr   )r   	same_kindrk   rZ   rg   rh   r[   )rb   ra   uABr_   r`   s   &      r   test_same_kind TestModuleHelpers.test_same_kind   s    ((AOOAaG$  ?%%a+DAOOAaG$ ,%%a+DAOOAaG$ ,%%a+DAQqW%QqW% ,r   r   N)__name__
__module____qualname____firstlineno____doc__rl   r{   r   r   r   __static_attributes____classdictcell____classdict__s   @r   rU   rU   a   s+     &,D2%VN
;& &r   rU   c                   8   a  ] tR t^t o R tR tR tR tRtV t	R# )TestMiscCompilingc                   a  V 3R  lp\         P                  ! R4      ! \         P                  ! R4      \         P                  ! R4      4      pV! V4       RpV! V4       R# )c                    < \        V R R7      ! \        4      p\        ^R4      \        ^R4      3p\        V!  pSP	                  V! V!  V4       R# )Tnopythonr   rx   N)r   r   DTTDassertPreciseEqual)sigra   argsexpectedrb   s   &   r   _check_explicit_signaturePTestMiscCompiling.test_jit_explicit_signature.<locals>._check_explicit_signature   sH    C$'4Aa;1d+D"D)H##AtHh7r   rx   r   z5NPDatetime('us')(NPDatetime('ms'), NPTimedelta('us'))N)r   
NPDatetimeNPTimedeltarb   r   r   s   f  r   test_jit_explicit_signature-TestMiscCompiling.test_jit_explicit_signature   sL    	8 t$U%5%5d%;U=N=Nt=TU!#&E!#&r   c                   a  V 3R  lp\         P                  ! R4      ! \         P                  ! R4      \         P                  4      pV! V4       RpV! V4       R# )c                    < \        V .R R7      ! \        4      pSP                  V! \        ^4      ^4      \        ^4      4       R# )Tr   N)r   r"   r   r   )r   ra   rb   s   & r   r   VTestMiscCompiling.test_vectorize_explicit_signature.<locals>._check_explicit_signature   s6    3%$/<A ##AbeQKA7r   r   z)NPTimedelta('s')(NPTimedelta('s'), int64)N)r   r   int64r   s   f  r   !test_vectorize_explicit_signature3TestMiscCompiling.test_vectorize_explicit_signature   sE    	8 $U%6%6s%;U[[I!#&9!#&r   c                Z   a  V 3R  lpV! \        R4      4       V! \        RR4      4       R# )c                    < \        V 4      p\        R R7      ! V4      p\        ^R4      pV! V4      pSP                  V! V4      V4       R# Tr   r   NrS   r   r   r   rP   pyfuncra   r   r   rb   s   &    r   check7TestMiscCompiling.test_constant_datetime.<locals>.check   D    &u-FT"6*A1c
AayH##AaD(3r   z
2001-01-01NaTr   N)r   rb   r   s   f r   test_constant_datetime(TestMiscCompiling.test_constant_datetime   s%    	4 	bbnr   c                   a  V 3R  lpV! \        ^R4      4       V! \        RR4      4       V! \        RR4      4       R# )c                    < \        V 4      p\        R R7      ! V4      p\        ^R4      pV! V4      pSP                  V! V4      V4       R# r   r   r   s   &    r   r   8TestMiscCompiling.test_constant_timedelta.<locals>.check  r   r   r   r   N)r   r   s   f r   test_constant_timedelta)TestMiscCompiling.test_constant_timedelta  s4    	4 	bCjbSkbnr   r   N)
r   r   r   r   r   r   r   r   r   r   r   s   @r   r   r      s     ''	 	r   r   c                      a  ] tR tRt o ]! RR7      tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tRtV tR# )TestTimedeltaArithmetici  Tforceobjc                8    \        R/ V P                  B ! V4      # Nr   r   jitargsrb   r   s   &&r   r   TestTimedeltaArithmetic.jit      "T\\"6**r   c           	        a a S P                  \        4      oVV 3R  lpV! \        ^4      \        ^4      \        ^4      4       V! \        ^R4      \        ^R4      \        ^R4      4       V! \        ^R4      \        ^R4      \        RR4      4       V! \        ^R4      \        ^R4      \        ^	R4      4       V! \        R4      \        ^4      \        R4      4       V! \        RR4      \        ^R4      \        RR4      4       V! \        RR4      \        ^R4      \        RR4      4       S P                  \        \
        34      ;_uu_ 4        S! \        ^R4      \        ^R4      4       R	R	R	4       R	#   + '       g   i     R	# ; i)
c                 h   < SP                  S! W4      V4       SP                  S! W4      V4       R # r   r   r_   r`   r   ra   rb   s   &&&r   r   /TestTimedeltaArithmetic.test_add.<locals>.check  +    ##AaGX6##AaGX6r   r   rx   iBB ru   r   r   r   rt   N)r   r   r   r   	TypeErrorr   rb   r   ra   s   f @r   test_add TestTimedeltaArithmetic.test_add  s   HH[!	7 	beRUBqE"bCj"Q*bCj1bCj"Q+r'4'89bCj"Q*bCj1biA5	*bnbCj"UC.9bnbDk2eT?;	;788bCj"Q*% 9888   E<<F	c           	        a a S P                  \        4      oVV 3R  lpV! \        ^4      \        ^4      \        ^4      4       V! \        ^R4      \        ^R4      \        ^R4      4       V! \        ^R4      \        ^R4      \        RR4      4       V! \        ^R4      \        ^R4      \        ^R4      4       V! \        R4      \        ^4      \        R4      4       V! \        RR4      \        ^R4      \        RR4      4       V! \        RR4      \        ^R4      \        RR4      4       S P                  \        \
        34      ;_uu_ 4        S! \        ^R4      \        ^R4      4       R	R	R	4       R	#   + '       g   i     R	# ; i)
c                 j   < SP                  S! W4      V4       SP                  S! W4      V) 4       R # r   r   r   s   &&&r   r   /TestTimedeltaArithmetic.test_sub.<locals>.check-  s-    ##AaGX6##AaGhY7r   r   rx   i- ru   r   r   r   rt   N)r   r    r   r   r   r   r   s   f @r   test_sub TestTimedeltaArithmetic.test_sub+  s   HH[!	8 	beRUBqE"bCj"Q*bCj1bCj"Q+r'4'89bCj"Q*bCj1biA5	*bnbCj"UC.9bnbDk2eT?;	;788bCj"Q*% 9888r   c                  a a S P                  \        4      oVV 3R  lpV! \        ^4      \        P                  ! ^4      \        ^4      4       V! \        ^4      ^\        ^4      4       V! \        ^R4      ^\        ^R4      4       V! \        RR4      ^\        RR4      4       V! \        ^4      R\        ^
4      4       V! \        R4      R\        R4      4       V! \        ^R4      R\        RR4      4       V! \        R4      R\        ^
4      4       V! \        RR4      R\        RR4      4       V! \        ^R4      \        R4      \        RR4      4       V! \        R	R4      ^\        ^ R4      4       R# )
c                 h   < SP                  S! W4      V4       SP                  S! W4      V4       R # r   r   r   s   &&&r   r   /TestTimedeltaArithmetic.test_mul.<locals>.check@  r   r   r   r         ?nanNig      l            )r   r"   r   npuint32floatr   s   f @r   test_mul TestTimedeltaArithmetic.test_mul>  s   HH[!	7
 	beRYYq\2a5)beQ1bDk1bDk*boq"UD/2beS"R&!bfc2c7#bDk4C/bfdBrF#botRt_5bDk5<E49bor2a;/r   c                  a aa S P                  \        4      oS P                  \        4      oVVV 3R  lpV! \        R	R4      \        P
                  ! ^4      \        R
R4      4       V! \        ^4      ^\        ^4      4       V! \        R	R4      ^\        R
R4      4       V! \        RR4      ^\        RR4      4       V! \        ^R4      ^ \        RR4      4       V! \        RR4      ^ \        RR4      4       V! \        ^4      R\        ^4      4       V! \        RR4      R\        RR4      4       V! \        RR4      R\        RR4      4       V! \        ^R4      R\        RR4      4       V! \        RR4      R\        RR4      4       V! \        ^R4      \        R4      \        RR4      4       V! \        RR4      \        R4      \        RR4      4       R# )c                 h   < SP                  S! W4      V4       SP                  S! W4      V4       R # r   r   )r_   r`   r   divfloordivrb   s   &&&r   r   /TestTimedeltaArithmetic.test_div.<locals>.checkW  s+    ##CIx8##HQNH=r   r   r   g      ?r   g      @g        r   Nr   r   )r   r$   r&   r   r   r   r   )rb   r   r   r  s   f @@r   test_div TestTimedeltaArithmetic.test_divT  sg   hh{#88,-	>
 	bTlBIIaL"R,7beQ1bTlAr"d|,boq"UD/2bDk1bo.boq"UD/2beS"R&!bTlCB.bosBudO4bDk35$0bosBudO4bDk5<E49bouU|Rt_=r   c           	     h  a a S P                  \        4      oVV 3R  lpV! \        ^4      \        ^4      R
4       V! \        ^R4      \        ^R4      R4       V! \        ^R4      \        ^R4      R4       V! \        ^4      \        ^ 4      \        R4      4       V! \        R4      \        ^ 4      \        R4      4       V! \        ^ 4      \        ^ 4      \        R4      4       V! \        R4      \        ^4      \        R4      4       V! \        ^4      \        R4      \        R4      4       V! \        R4      \        ^ 4      \        R4      4       S P	                  \
        \        34      ;_uu_ 4        S! \        ^R4      \        ^R4      4       R	R	R	4       R	#   + '       g   i     R	# ; i)c                 8   < SP                  S! W4      V4       R # r   r   )r_   r`   r   r   rb   s   &&&r   r   ;TestTimedeltaArithmetic.test_homogeneous_div.<locals>.checkn  s    ##CIx8r   rx   r   z+infz-infr   natrt   r   Ng@gQFoZc?g:@r   )r   r$   r   r   r   r   r   )rb   r   r   s   f @r   test_homogeneous_div,TestTimedeltaArithmetic.test_homogeneous_divl  s'   hh{#	9 	beRUG$bDk2a;
3bDk2a;
3beRUE&M*bfbeU6]+beRUE%L)biAe-beRYe-biAe-	;7881c
Bq#J' 9888s   8F  F1	c           	       a aa S P                  \        4      oS P                  \        4      oVVV 3R  lpV! \        ^4      \        ^4      R4       V! \        ^4      \        ^4      R4       V! \        ^R4      \        ^R4      R4       V! \        ^R4      \        ^R4      R4       V! \        RR4      \        ^R4      R4       V! \        RR4      \        ^R4      R4       V! \        ^R4      \        ^R4      R4       V! \        R4      \        R4      R4       V! \        RR4      \        RR4      R4       V! \        R4      \        ^4      R4       \        R8  d]   V! \        ^R4      \        R	R
4      R4       V! \        ^R4      \        RR
4      R4       V! \        RR4      \        RR
4      R4       R# S P                  \        \        34      ;_uu_ 4        S! \        ^R4      \        R	R
4      4       RRR4       S P                  \        \        34      ;_uu_ 4        S! \        ^R4      \        R	R
4      4       RRR4       R#   + '       g   i     L[; i  + '       g   i     R# ; i)c                 R  < TpV'       * p\         P                  ! V 4      '       g   \         P                  ! V 4      '       d   R pRpSP                  S! W4      V4       SP                  S! W4      V4       SP                  S! W4      V4       SP                  S! W4      V4       R# FTNr   isnatr   )r_   r`   r   expected_valnot_expected_valeqnerb   s   &&&  r   r   1TestTimedeltaArithmetic.test_eq_ne.<locals>.check  s    #L#+| xx{{bhhqkk$#' ##BqHl;##BqHl;##BqH.>?##BqH.>?r   FTr   i  r   rs   rt   Natm  r   in  r   ru   N)r      )r   r(   r+   r   r   r   r   r   )rb   r   r  r  s   f @@r   
test_eq_ne"TestTimedeltaArithmetic.test_eq_ne  s   XXj!XXj!	@ 	beRUE"beRUD!bCj"Q*e,bCj"Q*d+bsmR3Z/btnbCj$/bCj"R+t,biED)bor%~t4biA&7""Q*bclE2"Q*bclE2"UC."UC.$7 ""I{#;<<2a:r#s|, =""I{#;<<2a:r#s|, =< =<<<<s   $I-I(I%	(I9	c           	       a aa S P                  \        4      oS P                  \        4      oVVV 3R  lpV! \        ^4      \        ^4      R4       V! \        ^4      \        ^4      R4       V! \        ^4      \        ^4      R4       V! \        ^R4      \        ^R4      R4       V! \        ^R4      \        ^R4      R4       V! \        ^R4      \        ^R4      R4       V! \        ^R4      \        ^=R4      R4       V! \        ^R4      \        ^<R4      R4       V! \        R4      \        R4      R4       V! \        RR4      \        RR4      R4       V! \        R4      \        R4      R4       S P	                  \
        \        34      ;_uu_ 4        S! \        ^R4      \        RR	4      4       R
R
R
4       S P	                  \
        \        34      ;_uu_ 4        S! \        ^R4      \        RR	4      4       R
R
R
4       S P	                  \
        \        34      ;_uu_ 4        S! \        RR4      \        RR	4      4       R
R
R
4       S P	                  \
        \        34      ;_uu_ 4        S! \        RR4      \        RR	4      4       R
R
R
4       R
#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R
# ; i)c                    < TpV'       * p\         P                  ! V 4      '       g   \         P                  ! V 4      '       d   R pR pSP                  S! W4      V4       SP                  S! W4      V4       R# FNr  )r_   r`   r   r  r  geltrb   s   &&&  r   r   1TestTimedeltaArithmetic.test_lt_ge.<locals>.check  s_    #L#+| xx{{bhhqkk$#( ##BqHl;##BqH.>?r   TFr   rw   r  r   rs   r  r   Nr    )r   r-   r4   r   r   r   r   )rb   r   r  r   s   f @@r   
test_lt_ge"TestTimedeltaArithmetic.test_lt_ge  s   XXj!XXj!	@ 	beRUD!beRUE"beRUE"bCj"Q*d+bCj"Q*e,bCj"Q*e,bCj"R+t,bCj"R+u-biEE*bor%~u5biJ.	;788r!Sz2c3<( 9	;788r!Sz2c3<( 9 	;788r%~r%~. 9	;788r%~r%~. 98 9888 98888s0   J"J/+K4KJ,	/J?	K	K&	c           	       a aa S P                  \        4      oS P                  \        4      oVVV 3R  lpV! \        ^4      \        ^4      R4       V! \        ^4      \        ^4      R4       V! \        ^4      \        ^4      R4       V! \        ^R4      \        ^R4      R4       V! \        ^R4      \        ^R4      R4       V! \        ^R4      \        ^R4      R4       V! \        ^R4      \        ^=R4      R4       V! \        ^R4      \        ^<R4      R4       V! \        ^R4      \        ^;R4      R4       V! \        R4      \        R4      R4       V! \        RR4      \        RR4      R4       V! \        R4      \        R4      R4       S P	                  \
        \        34      ;_uu_ 4        S! \        ^R4      \        RR	4      4       R
R
R
4       S P	                  \
        \        34      ;_uu_ 4        S! \        ^R4      \        RR	4      4       R
R
R
4       S P	                  \
        \        34      ;_uu_ 4        S! \        RR4      \        RR	4      4       R
R
R
4       S P	                  \
        \        34      ;_uu_ 4        S! \        RR4      \        RR	4      4       R
R
R
4       R
#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R
# ; i)c                    < TpV'       * p\         P                  ! V 4      '       g   \         P                  ! V 4      '       d   R pR pSP                  S! W4      V4       SP                  S! W4      V4       R# r  r  )r_   r`   r   r  r  gtlerb   s   &&&  r   r   1TestTimedeltaArithmetic.test_le_gt.<locals>.check  s_    #L#+| xx{{bhhqkk$#( ##BqHl;##BqH.>?r   TFr   rw   r  r   rs   r  r   Nr   r"  )r   r0   r2   r   r   r   r   )rb   r   r'  r(  s   f @@r   
test_le_gt"TestTimedeltaArithmetic.test_le_gt  s   XXj!XXj!
	@ 	beRUD!beRUD!beRUE"bCj"Q*d+bCj"Q*d+bCj"Q*e,bCj"R+t,bCj"R+t,bCj"R+u-biED)bor%~t4biJ.	;788r!Sz2c3<( 9	;788r!Sz2c3<( 9 	;788r%~r%~. 9	;788r%~r%~. 98 9888 98888s0   7J: K	K K3:K
	K	 K0	3L	c                  a a S P                  \        4      oVV 3R  lpV! \        ^4      4       V! \        R4      4       V! \        ^R4      4       V! \        RR4      4       V! \        R4      4       V! \        RR4      4       R# )c                 :   < SP                  S! V 4      V 54       R # r   r   )r_   posrb   s   &r   r   /TestTimedeltaArithmetic.test_pos.<locals>.check      ##CFQB/r   r   r   Nr   )r   r7   r   )rb   r   r.  s   f @r   test_pos TestTimedeltaArithmetic.test_pos  d    hh{#	0 	bebfbDkbTlbibor   c                  a a S P                  \        4      oVV 3R  lpV! \        ^4      4       V! \        R4      4       V! \        ^R4      4       V! \        RR4      4       V! \        R4      4       V! \        RR4      4       R# )c                 :   < SP                  S! V 4      V ) 4       R # r   r   )r_   negrb   s   &r   r   /TestTimedeltaArithmetic.test_neg.<locals>.check  r0  r   r   r   Nr   )r   r:   r   )rb   r   r6  s   f @r   test_neg TestTimedeltaArithmetic.test_neg  r3  r   c                  a a S P                  \        4      oVV 3R  lpV! \        ^4      4       V! \        R4      4       V! \        ^R4      4       V! \        RR4      4       V! \        R4      4       V! \        RR4      4       R# )c                 J   < SP                  S! V 4      \        V 4      4       R # r   )r   r<   r_   ra   rb   s   &r   r   /TestTimedeltaArithmetic.test_abs.<locals>.check      ##AaD#a&1r   r   r   Nr   )r   r=   r   r   s   f @r   test_abs TestTimedeltaArithmetic.test_abs  sd    HH[!	2 	bebfbDkbTlbibor   c                  a a S P                  \        4      oVV 3R  lpRpRp\        W#,           \        3\	        V4      ,          \
        3\	        V4      ,          ,           4       F  w  rEV! V! V!  4       K  	  \        R8  d_   S P                  \        4      ;_uu_ 4       pS! \        ^4      4       RRR4       S P                  R\        XP                  4      4       R# R#   + '       g   i     L9; i)c                 ~  < \         R8  d   V P                  P                  R8X  d   R# SP                  P	                  RR4      '       d.   SP                  S! V 4      V P                  \        4      4       R# SP                  S! V 4      \        V 4      4       R# SP                  S! V 4      \        V 4      4       R# )   timedelta64Nr   FrC  rC  )	r   r   namer   getr   astyperL   r@   r<  s   &r   r   0TestTimedeltaArithmetic.test_hash.<locals>.check  s    &
 77<<=0
 <<##J66++AaD!((3-@++AaD$q':''!d1g6r   NzCan't hash generic timedelta64))   )r   )rJ  r   )r   r   )   r   )rC  r   )rC  ru   )rC  rs   )rJ  ru   )r  r   )'  r   )r   r   )r   r   )r   r   )r  ))2014)2016)2000)2014-02)2014-03)2014-04)2016-02)
2000-12-31)
2014-01-16)
2014-01-05)
2014-01-07)
2014-01-06)
2014-02-02)
2014-02-27)
2014-02-16)
2014-03-01)2000-01-01T01:02:03.002Z)2000-01-01T01:02:03ZrN  rE  )r   rA   zipr   lenr   r   r   
ValueErrorassertInstr	exception)rb   r   TD_CASESDT_CASEScasetypraisesra   s   f      @r   	test_hash!TestTimedeltaArithmetic.test_hash  s    HH\"	7&B9 X0 US]2bUS]5JJLID#t*L F""":..&"Q% /MM:C@P@P<QR #..s   #C&&C6	c                J  a aa S P                  S4      oVV V3R  lp\        ^ 4      \        ^4      \        ^4      \        R4      3\        ^ R4      \        ^R4      \        ^R4      \        RR4      33 F*  p\        P                  ! W34       F  w  rEV! WE4       K  	  K,  	  R# )c                 D   < SP                  S! W4      S! W4      4       R # r   r   r_   r`   ra   rb   usecases   &&r   r   4TestTimedeltaArithmetic._test_min_max.<locals>.checkH      ##AaGWQ];r   r   r   N)r   r   rg   rh   rb   rq  r   casesr_   r`   ra   s   ff    @r   _test_min_max%TestTimedeltaArithmetic._test_min_maxF  s    HHW	< UBqE2a5"U),3ZAsR3ZE3@
E "))%7a 8	
r   c                0    V P                  \        4       R # r   rv  rE   rb   s   &r   test_min TestTimedeltaArithmetic.test_minR      ;'r   c                0    V P                  \        4       R # r   rv  rJ   rz  s   &r   test_max TestTimedeltaArithmetic.test_maxU  r}  r   r   N)r   r   r   r   dictr   r   r   r   r   r  r  r  r#  r*  r1  r8  r?  rl  rv  r{  r  r   r   r   s   @r   r   r     si     D!G+&&&&0,>0(()-V%/N%/N


'SR
(( (r   r   c                   8   a  ] tR tRt o ]! RR7      tR tRtV tR# )TestTimedeltaArithmeticNoPythoniY  Tr   c                  a a S P                  \        4      oVV 3R  lpR F%  w  r#V! \        W#4      P                  R4      4       K'  	  R F#  pV! \	        V4      P                  R4      4       K%  	  S P                  \        RR7      ;_uu_ 4        S! \	        R4      4       RRR4       R#   + '       g   i     R# ; i)	c                 J   < SP                  S! V 4      \        V 4      4       R # r   )r   rL   r<  s   &r   r   <TestTimedeltaArithmeticNoPython.test_int_cast.<locals>.check_  r>  r   ztimedelta64[ns]rO  datetime64[ns])msgN))rJ  r   )r   r   )i0u  r   )i r   )r   rs   )rO  rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r`  z;Only datetime64[ns] can be converted, but got datetime64[y])r   rM   r   rH  r   r   r   )rb   r   deltar   timera   s   f    @r   test_int_cast-TestTimedeltaArithmeticNoPython.test_int_cast]  s    HH%&	25MU"U/(():;<5-D
 "T(//"234- { 2A C C bjMC C C Cs   B..B?	r   N)	r   r   r   r   r  r   r  r   r   r   s   @r   r  r  Y  s     D!G r   r  c                      a  ] tR tRt o ]! RR7      tR t]P                  R 4       t	R t
R tR tR	 tR
 tR tR tRtV tR# )TestDatetimeArithmeticis  Tr   c                8    \        R/ V P                  B ! V4      # r   r   r   s   &&r   r   TestDatetimeArithmetic.jitw  r   r   c              #     "   \         P                  ! 4       ;_uu_ 4        \         P                  ! R R\        R7       Rx  RRR4       R#   + '       g   i     R# ; i5i)ignorez-Implicitly casting between incompatible kinds)messagecategoryN)warningscatch_warningsfilterwarningsDeprecationWarningrz  s   &r   silence_numpy_warnings-TestDatetimeArithmetic.silence_numpy_warningsz  s@      $$&&##H,[-?A 	 '&&&s   A "A
A A		A c                R
  a aa S P                  \        4      oS P                  \        4      oVV V3R lpV! \        R4      \	        ^R4      \        R4      4       V! \        R4      \	        ^R4      \        R4      4       V! \        R4      \	        ^R4      \        RR4      4       V! \        R4      \	        ^R	4      \        R
4      4       V! \        R4      \	        RR	4      \        R4      4       V! \        R4      \	        ^R4      \        R4      4       V! \        R4      \	        ^R4      \        R4      4       V! \        R4      \	        ^R	4      \        R4      4       V! \        RR4      \	        ^R4      \        RR4      4       V! \        R4      \	        ^R	4      \        R4      4       V! \        R4      \	        ^R	4      \        R4      4       V! \        R4      \	        ^R4      \        R4      4       V! \        R4      \	        ^R4      \        R4      4       V! \        R4      \	        ^R4      \        R4      4       R" EF$  pR# EF  p\        W#,           4      p\	        ^R	4      \	        ^R4      \	        ^dR	4      \	        RR	4      \	        R$R	4      \	        R%R	4      \	        ^dR4      \	        RR4      \	        R$R4      \	        R%R4      \	        ^dR4      \	        RR4      \	        R$R4      \	        R%R4      3 Fd  pS P                  S! WE4      WE,           WE34       S P                  S! WT4      WE,           WE34       S P                  S! WE) 4      WE,           WE34       Kf  	  EK  	  EK'  	  V! \        R4      \	        ^4      \        R4      4       V! \        RR4      \	        ^R4      \        RR4      4       V! \        RR4      \	        ^R4      \        RR4      4       V! \        R4      \	        RR4      \        RR4      4       V! \        R 4      \	        RR4      \        RR	4      4       V! \        RR4      \	        RR4      \        RR4      4       SS3 F  pS P                  \        \        34      ;_uu_ 4        V! \        ^R 4      \	        ^R4      4       R!R!R!4       S P                  \        \        34      ;_uu_ 4        V! \        ^R 4      \	        ^R4      4       R!R!R!4       K  	  R!#   + '       g   i     L_; i  + '       g   i     K  ; i)&zA
Test `datetime64 + timedelta64` and `datetime64 - timedelta64`.
c                 @  < SP                  4       ;_uu_ 4        SP                  S! W4      W V34       SP                  S! W4      W V34       SP                  S! W) 4      W V34       SP                  W,           V4       R R R 4       R #   + '       g   i     R # ; ir   r  r   )r_   r`   r   addrb   subs   &&&r   r   <TestDatetimeArithmetic.test_add_sub_timedelta.<locals>.check  s}    ,,..''A	8VD''A	8VD''Ar
H!fE''x8 /...s   A(BB	rO  rs   rP  rt   rS  ru   rW  r   rX  rQ  r  rV  rR  rU  rT  z
2014-02-03rY  r[  r^  z
2012-02-02z
2012-02-29z
2012-02-16r`  rv   z2000-01-01T03:02:03Zr   r_  rL  r   r   
2014-01-01N)6006016048011900190422002300230424006001)rW   -01-12irM  )	r   r   r    r   r   rz   r   r   r   )	rb   r   dt_str	dt_suffixdttdra   r  r  s	   f      @@r   test_add_sub_timedelta-TestDatetimeArithmetic.test_add_sub_timedelta  s    hh{#hh{#	9 	bj"Q*bj1bj"Q*bm4bj"Q*bs&;<bj"Q*b&67bj"S#,<(89bmR3ZI7bmR3ZI7bmR3ZL)9:bs#R3ZL#1FGb2sR-=>b2sR-=>b1c
B|,<=b'("Q*b9O6PQb'("Q+r:T7UV'F 0	*+a:r!Szc3<E3dC="VS/c3<E3dC="VS/c3<E3dC="VS/;B $$S["'B8D$$S["'B8D$$SS\27RHE; 0'" 	biA5	*bnbCj"UC.9bnbDk2eT?;bj"UC."UC.9b5#5#?bnbor%? sA""I{#;<<"Q%r!Sz2 =""I{#;<<"Q%r!Sz2 =< <<<<<s   TTTT&c                    . ROp. ROp\         P                  ! W4       UUu. uF  w  r4\        W4,           4      NK  	  pppYQ Uu. uF  p\        VR4      NK  	  up,          pV# u uppi u upi )r  ru   )r  r  r  196819691973rQ  200420052100r  2401)rW   r  r  z-02-28z-12-31z-01-05T12:30:56Zz-01-05T12:30:56.008Z)rg   rh   r   )rb   dt_yearsdt_suffixesr_   r`   dtsr   s   &      r   datetime_samples'TestDatetimeArithmetic.datetime_samples  sh    CC'0'8'8'OP'OVar!%y'OPH-Hq1c
H--
 Q-s   A%A+c           	     z  a a S P                  \        4      oRV V3R llpV! \        R4      \        R4      \        RR4      4       V! \        R4      \        R4      \        RR4      4       V! \        R	4      \        R
4      \        RR4      4       V! \        RR4      \        R4      \        RR4      4       V! \        RR4      \        R4      \        RR4      4       V! \        R4      \        R4      \        R4      4       S P	                  4       ;_uu_ 4        S P                  4       p\        P                  ! W"4       FV  w  r4\        P                  ! \        V4      \        V4      4      '       g   K6  S P                  S! W44      W4,
          W434       KX  	  RRR4       R#   + '       g   i     R# ; i)z!
Test `datetime64 - datetime64`.
Nc                 "  < SP                  4       ;_uu_ 4        SP                  S! W4      W,
          W34       SP                  S! W4      W,
          W34       SP                  W,
          V4       R R R 4       R #   + '       g   i     R # ; ir   r  )r_   r`   r   rb   r  s   &&&r   r   >TestDatetimeArithmetic.test_datetime_difference.<locals>.check  sg    ,,..''A	151&A''A	151&A''x8	 /...s   AA==B	rO  2017rs   rR  z2017-01rt   z
2014-02-28z
2015-03-01r   r   rQ  z
2000-01-01r   r  ii)r   r    r   r   r  r  rg   rh   r   r   r   r   )rb   r   r  r_   r`   r  s   f    @r   test_datetime_difference/TestDatetimeArithmetic.test_datetime_difference  s;    hh{#	9 	9 	bj"V*bSk2bmR	]BsCL9b< 0"T3-@bnbj"UC.9bnb.5#?biEBuI.((**'')C!))#3*44Z]JqMRR''A	151&A 4 +***s   BF))F:	c           
       a a	a
aaaaa S P                  \        4      o
S P                  \        4      oS P                  \        4      oS P                  \        4      oS P                  \
        4      oS P                  \        4      oV
VVVVVV 3R  lo	V	VVVV 3R lpS	! \        R4      \        R4      R4       S	! \        R4      \        R4      R4       S	! \        R4      \        R4      R4       S	! \        R4      \        RR4      R4       S	! \        R4      \        RR4      R4       S	! \        R4      \        RR4      R4       S	! \        R	4      \        R
R4      R4       S	! \        RR4      \        RR4      R4       S	! \        RR4      \        RR4      R4       V! \        RR4      \        R4      R4       S	! \        R4      \        R4      R4       S P                  4       pV F  pVP                  P                  P                  R4      ^,          RR p\        P                  V4      p\        WU^,            pV F  pVP                  RV,          4      p\        P                   ! \#        V4      \#        V4      4      '       g   KL  S	! W8R4       V! W8\$        P&                  ! ^V4      ,           R4       V! V\$        P&                  ! ^V4      ,
          VR4       K  	  K  	  R# )c           	      $  < TpV'       * p\         P                  ! V 4      '       g   \         P                  ! V4      '       d   R pRpSP                  S! W4      W34       SP                  S! W4      W34       SP                  S! W4      W34       SP                  S! W4      W34       SP                  S	! W4      W34       SP                  S! W4      W34       SP                  S	! W4      W34       SP                  S! W4      W34       SP                  4       ;_uu_ 4        SP	                  S! W4      W0W34       SP	                  S! W4      W0W34       SP	                  S
! W4      W@W34       SP	                  S
! W4      W@W34       V'       d   SP                  S! W4      W34       SP                  S! W4      W34       SP                  S! W4      W34       SP                  S! W4      W34       SP                  S	! W4      W34       SP                  S! W4      W34       SP                  S	! W4      W34       SP                  S! W4      W34       SP	                  W8H  V4       RRR4       R#   + '       g   i     R# ; ir  )r   r  r[   r  r   rZ   )r_   r`   r   r  r  r  r  r'  r(  r   r  rb   s   &&&  r   check_eq9TestDatetimeArithmetic.test_comparisons.<locals>.check_eq  s'   #L#+| xx{{bhhqkk$#'   AA62  AA62  AA62  AA62  AA62  AA62  AA62  AA62,,..''1,A@PQ''1,A@PQ''12BDTU''12BDTUOOBqHqf5OOBqHqf5OOBqHqf5OOBqHqf5$$RXv6$$RXv6$$RXv6$$RXv6''=# /...s   'EI>>J	c           	      @  < TpV'       * p\         P                  ! V 4      '       g   \         P                  ! V4      '       d   R pR pS
P                  4       ;_uu_ 4        S
P                  \        4      pS
P                  V! W4      W0W34       S
P                  S! W4      W0W34       S
P                  S! W4      W@W34       S
P                  S	! W4      W@W34       V'       d
   S! WR 4       S
P                  W8  V4       RRR4       R#   + '       g   i     R# ; ir  )r   r  r  r   r-   r   )r_   r`   r   r  r  r   r  r  r'  r(  rb   s   &&&   r   check_lt9TestDatetimeArithmetic.test_comparisons.<locals>.check_lt  s    #L#+| xx{{bhhqkk$#( ,,..XXj)''1,A@PQ''1,A@PQ''12BDTU''12BDTUQ5)''|< /...s   B#DD	rO  r  Fz2014-01Tr  ru   z
2014-01-02rZ  z2014-01-01T00:01:00Zr   z2014-01-01T00:01Zrw   z2014-01-01T00:01:01Zr   rs   [NzM8[%s]r  )r   r(   r+   r-   r0   r2   r4   r   r  r   re  splitrk   indexrH  r   r   r   r   rD  )rb   r  r  r_   a_unitr^   unitsr   r`   r  r  r  r'  r(  r   r  s   f        @@@@@@@r   test_comparisons'TestDatetimeArithmetic.test_comparisons  sN   XXj!XXj!XXj!XXj!XXj!XXj!#	> #	>J	= 	=, 	FRZ/FR	]D1FR-t4FRc2D9I< 5t<L!2lC#8%@L!2lC#8$?*C0$c*D	2*C0$c*E	3 	E3FT2EBuIt, ##%AWW[[&&s+A.s3F'Aa!$EHHX_-*44Z]5?]D Dt$q$ 77>R^^At44a>  r   c                R  a aa S P                  S4      oVV V3R  lp\        ^ R4      \        ^R4      \        ^R4      \        RR4      3\        ^ R4      \        ^R4      \        ^R4      \        RR4      33 F*  p\        P                  ! W34       F  w  rEV! WE4       K  	  K,  	  R# )c                 D   < SP                  S! W4      S! W4      4       R # r   r   rp  s   &&r   r   3TestDatetimeArithmetic._test_min_max.<locals>.checkQ  rs  r   r   r   r   N)r   r   rg   rh   rt  s   ff    @r   rv  $TestDatetimeArithmetic._test_min_maxO  s    HHW	< 4["Q+r!T{BudOD3ZAsR3ZE3@
E "))%7a 8	
r   c                0    V P                  \        4       R # r   ry  rz  s   &r   r{  TestDatetimeArithmetic.test_min[  r}  r   c                0    V P                  \        4       R # r   r  rz  s   &r   r  TestDatetimeArithmetic.test_max^  r}  r   r   N)r   r   r   r   r  r   r   
contextlibcontextmanagerr  r  r  r  r  rv  r{  r  r   r   r   s   @r   r  r  s  sZ     D!G+  ?3BB6d?L
(( (r   r  c                   (    ] tR tRt]! RR7      tRtR# )TestDatetimeArithmeticNoPythonia  Tr   r   N)r   r   r   r   r  r   r   r   r   r   r  r  a  s    D!Gr   r  c                   D   a  ] tR tRt o RtR	R ltR tR	R ltR tRt	V t
R# )
TestMetadataScalingFactorif  zZ
Tests than non-1 scaling factors are not supported in datetime64
and timedelta64 dtypes.
Nc                    Vf   RR/p\        R/ VB ! \        4      pV P                  V! \        RR4      \        R4      4      4       R # )Nr   TrO  10Y2010r   )r   r(   rZ   r   rb   r   r  s   && r   test_datetime'TestMetadataScalingFactor.test_datetimel  s?    ?!4(G^7^J'2fe,bj9:r   c                    V P                  4       ;_uu_ 4        V P                  R R/R7       RRR4       R#   + '       g   i     R# ; ir   T)r   N)assertTypingErrorr  rz  s   &r   test_datetime_npm+TestMetadataScalingFactor.test_datetime_npmr  s6    ##%%
4'89 &%%%	   8A		c           	         Vf   RR/p\        R/ VB ! \        4      pV P                  V! \        ^R4      \        ^R4      4      4       R # )Nr   Tr  rs   r   )r   r(   rZ   r   r  s   && r   test_timedelta(TestMetadataScalingFactor.test_timedeltav  s@    ?!4(G^7^J'2a<B56r   c                    V P                  4       ;_uu_ 4        V P                  R R/R7       RRR4       R#   + '       g   i     R# ; ir  )r  r  rz  s   &r   test_timedelta_npm,TestMetadataScalingFactor.test_timedelta_npm|  s6    ##%%D(9: &%%%r  r   r   )r   r   r   r   r   r  r  r  r  r   r   r   s   @r   r  r  f  s#     
;:7; ;r   r  c                   &   a  ] tR tRt o R tRtV tR# )TestDatetimeDeltaOpsi  c                   R pTp\        V4      p\        P                  ! ^\        4      \        P                  ! ^\        4      3\        P                  ! ^\        4      \        P                  ! ^\        4      3\        P                  ! ^\        4      \        P                  ! ^\        4      3\        P                  ! ^\        4      \        P                  ! ^\        4      3\        P                  ! ^\        4      ^3\        P                  ! ^\        4      \        P                  ! ^\        P
                  4      3\        P                  ! ^\        4      \        P                  ! ^\        P                  4      3.pV F7  w  rVV P                  \        P                  ! V! WV4      V! WV4      4      4       K9  	  R# )z3
Test the division of a timedelta by numeric types
c                     W,          # r   r   )r_   r`   s   &&r   arr_div.TestDatetimeDeltaOps.test_div.<locals>.arr_div  s	    5Lr   N)	r   r   onesTIMEDELTA_MTIMEDELTA_Yr   float64rZ   array_equal)rb   r  py_funccfunc
test_casesr_   r`   s   &      r   r  TestDatetimeDeltaOps.test_div  s   	 WWWQ$bgga&=>WWQ$bgga&=>WWQ$bgga&=>WWQ$bgga&=>WWQ$a(WWQ$bgga&:;WWQ$bgga&<=

 DAOOBNN71=%+FG r   r   N)r   r   r   r   r  r   r   r   s   @r   r  r    s     H Hr   r  c                      a  ] tR tRt o R tR t]R 4       tR t]R 4       t	R t
R tR	 tR
 tR tR tR tR tR tR tR t]R 4       t]R 4       t]R 4       t]R 4       tR tRtV tR# )TestDatetimeArrayOpsi  c           
     $  a V3R lp\         P                  ! \         P                  ! R4      \         P                  ! R4      \         P                  ! R4      \         P                  ! R4      .RR7      p\         P                  ! \         P                  ! R4      \         P                  ! R4      \         P                  ! R4      \         P                  ! R4      .RR7      pTp\        VR	7      ! V4      pV\         P                  ! R
4      3V\         P                  ! R
4      3V\         P                  ! R4      3V\         P                  ! R4      3.pS\         P
                  J dn   VP                  \         P                  ! R
4      V3\         P                  ! R
4      V3\         P                  ! R4      V3\         P                  ! R4      V3.4       V F7  w  rV P                  \         P                  ! V! W4      V! W4      4      4       K9  	  R# )zI
Test the addition/subtraction of a datetime array with a timedelta type
c                    < S! W4      # r   r   r_   r`   	operations   &&r   impl6TestDatetimeArrayOps._test_td_add_or_sub.<locals>.impl  s    Q?"r   
2011-01-01
1971-02-02
2021-03-03
2004-12-07r  r   zdatetime64[D]parallel  Ni*)	r   array
datetime64r   rD  r  extendrZ   r  )rb   r  r  r  arr_onearr_twor  r  r  r_   r`   s   &f&        r   _test_td_add_or_sub(TestDatetimeArrayOps._test_td_add_or_sub  s   	# ((l3l3l3l3	
 ./ ((l3l3l3l3	
 -. h'-bnnT*+bnnT*+bnnV,-bnnV,-	

 %w/%w/'1'1	  DAOOBNN71=%+FG r   c                F    V P                  \        P                  R 4       R# r  r  r   r  rz  s   &r   test_add_td TestDatetimeArrayOps.test_add_td  s      /r   c                F    V P                  \        P                  R 4       R# TNr  rz  s   &r   test_add_td_parallel)TestDatetimeArrayOps.test_add_td_parallel  s      .r   c                F    V P                  \        P                  R 4       R# r  r  r   subtractrz  s   &r   test_sub_td TestDatetimeArrayOps.test_sub_td  s      e4r   c                F    V P                  \        P                  R 4       R# r"  r&  rz  s   &r   test_sub_td_parallel)TestDatetimeArrayOps.test_sub_td_parallel  s      d3r   c           	       a \         V3R l4       pSP                  p\        P                  ! RV R24      pV P	                  \
        \        3V4      ;_uu_ 4        V! \        P                  ! \        P                  ! R4      .RR7      \        P                  ! RR4      4       R	R	R	4       R	#   + '       g   i     R	# ; i)
z}
Tests that attempting to add/sub a datetime64 and timedelta64
with types that cannot be cast raises a reasonable exception.
c                    < S! W4      # r   r   r
  s   &&r   r  <TestDatetimeArrayOps._test_add_sub_td_no_match.<locals>.impl  s    Q?"r   zufunc 'z<' is not supported between datetime64[ns] and timedelta64[M]r  r  r  r  rt   N)r   r   reescapeassertRaisesRegexr   r   r   r  r  rD  )rb   r  r  fnamer   s   &f   r   _test_add_sub_td_no_match.TestDatetimeArrayOps._test_add_sub_td_no_match  s    
 
	# 
	# ""99w /B B D##[)$<hGG"--57/1tC( HGGGs   A
B//C 	c                D    V P                  \        P                  4       R # r   )r4  r   r  rz  s   &r   test_add_td_no_match)TestDatetimeArrayOps.test_add_td_no_match  s    &&rvv.r   c                D    V P                  \        P                  4       R # r   )r4  r   r'  rz  s   &r   test_sub_td_no_match)TestDatetimeArrayOps.test_sub_td_no_match  s    &&r{{3r   c                   \         P                  ! \        ^ R4      \        ^R4      \        ^R4      \        ^R4      .4      \         P                  ! \        RR4      \        RR4      \        RR4      \        RR4      \        RR4      .4      \         P                  ! \        RR4      \        RR4      \        RR4      \        RR4      \        RR4      .4      \         P                  ! \        RR4      \        RR4      \        RR4      \        RR4      \        RR4      \        RR4      .4      \         P                  ! \        RR4      \        RR4      \        RR4      \        RR4      \        RR4      \        RR4      .4      \         P                  ! \        RR4      \        RR4      .4      \         P                  ! \        RR4      \        RR4      \        RR4      .4      \         P                  ! \        ^R4      \        ^R4      \        ^R4      \        ^R4      .4      \         P                  ! \        ^R4      \        ^R4      \        ^R4      \        ^R4      .4      \         P                  ! \        RR4      \        ^R4      \        ^R4      \        ^R4      \        ^R4      .4      \         P                  ! \        ^R4      \        ^R4      \        ^R4      \        ^R4      \        RR4      .4      \         P                  ! \        RR4      .4      \         P                  ! \        RR4      \        RR4      \        RR4      .4      .pV# )	    r   r  r  z
1900-01-01r  r  r   r   )r   r  r   r   )rb   r  s   & r   _get_testcases#TestDatetimeArrayOps._get_testcases  s   HH1d1d1d1d	  HH<&<&<&<&<&  HH<%<%<%<%<%  HH<&<&<&<&<&5$  HH5$<&<&<&<&<&  HH<&5$  HH5$5$5$ 
 HH1d1d1d1d	  HH1c
1c
1c
1c
	  HH5$1d1d1d1d  HH1d1d1d1d5$  HH5$  HH5$5$5$ WP

b r   c                   a V'       d   S\         P                  J d   R  pM
R pMV3R lpTp\        VR7      ! V4      pV P                  4       pV F  pV! V4      p	V! V4      p
\         P                  ! V	4      '       g   \         P                  ! V
4      '       dM   V P                  \         P                  ! V	4      4       V P                  \         P                  ! V
4      4       K  V P                  W4       K  	  R# )c                 "    V P                  4       # r   rC   arrs   &r   r  0TestDatetimeArrayOps._test_min_max.<locals>.impl>      779$r   c                 "    V P                  4       # r   rH   rB  s   &r   r  rD  A  rE  r   c                    < S! V 4      # r   r   )rC  r  s   &r   r  rD  D  s     ~%r   r  N)r   rD   r   r>  r  rZ   rz   )rb   r  r  methodr  r  r  r  rC  py_resc_ress   &f&&       r   rv  "TestDatetimeArrayOps._test_min_max;  s    BFF"%%& h'-((*
CS\F#JExx288E?? 010  / r   c                4    V P                  \        R R 4       R# r  )rv  rD   rz  s   &r   test_min_func"TestDatetimeArrayOps.test_min_funcT      3u-r   c                H    V P                  \        P                  R R 4       R# r  rv  r   rD   rz  s   &r   test_np_min_func%TestDatetimeArrayOps.test_np_min_funcW      2665%0r   c                H    V P                  \        P                  R R4       R# r  rQ  rz  s   &r   test_min_method$TestDatetimeArrayOps.test_min_methodZ      2665$/r   c                4    V P                  \        R R 4       R# r  )rv  rI   rz  s   &r   test_max_func"TestDatetimeArrayOps.test_max_func]  rO  r   c                H    V P                  \        P                  R R 4       R# r  rv  r   rI   rz  s   &r   test_np_max_func%TestDatetimeArrayOps.test_np_max_func`  rT  r   c                H    V P                  \        P                  R R4       R# r  r]  rz  s   &r   test_max_method$TestDatetimeArrayOps.test_max_methodc  rX  r   c                H    V P                  \        P                  R R4       R# TFNrQ  rz  s   &r   test_min_func_parallel+TestDatetimeArrayOps.test_min_func_parallelf      2664/r   c                H    V P                  \        P                  R R 4       R# r"  rQ  rz  s   &r   test_min_method_parallel-TestDatetimeArrayOps.test_min_method_parallelj      2664.r   c                H    V P                  \        P                  R R4       R# rd  r]  rz  s   &r   test_max_func_parallel+TestDatetimeArrayOps.test_max_func_paralleln  rg  r   c                H    V P                  \        P                  R R 4       R# r"  r]  rz  s   &r   test_max_method_parallel-TestDatetimeArrayOps.test_max_method_parallelr  rk  r   c           	       a  ^RI HpHpHp WV.pV Uu. uF  p\	        V4      NK  	  ppV 3R lpS P                  4       p\        WF4       F  w  rV F  p\        P                  ! V4      p\        ^\        ^VP                  4      ^,           4       FS  p\        P                  P                  ^ VP                  V4      pW,          pV^8X  d   Vw  pV! WW4       V! WW4       KU  	  K  	  K  	  R# u upi )r   )searchsortedsearchsorted_leftsearchsorted_rightc                 J   < V ! W#4      pV! W#4      pSP                  WE4       R # r   r   )r   r  r_   vr   gotrb   s   &&&&  r   r   >TestDatetimeArrayOps.test_searchsorted_datetime.<locals>.check}  s#    a|H+C##H2r   N)test_np_functionsrs  rt  ru  r   r>  ra  r   sortrangerD   sizerandomrandint)rb   rs  rt  ru  pyfunc_listfn
cfunc_listr   ru  r   r  rC  nidxvsrw  s   f               r   test_searchsorted_datetime/TestDatetimeArrayOps.test_searchsorted_datetimev  s    	
 	
 $8JK(34"c"g
4	3
 ##% 9MFggclq#a"2Q"67A))++Asxx;CBAv fS4&1 8  : 5s   C3r   N)r   r   r   r   r  r  r   r#  r(  r+  r4  r7  r:  r>  rv  rM  rR  rV  rZ  r^  ra  re  ri  rm  rp  r  r   r   r   s   @r   r  r    s     $HL0 / /5 4 4&/4Rh02.10.10 0 0 / / 0 0 / /2 2r   r  c                   &   a  ] tR tRt o R tRtV tR# )TestDatetimeTypeOpsi  c                *  a  \         R  4       p\         R 4       p\         R 4       p\        P                  ! ^R4      p\        P                  ! ^R4      pWT,
          pV 3R lpVVV.pVVV.p	\        P                  ! W4       F  w  rV! W4       K  	  R# )c                 "    \        V \        4      # r   )
isinstancecomplexr_   s   &r   
is_complex@TestDatetimeTypeOps.test_isinstance_datetime.<locals>.is_complex  s    a))r   c                 6    \        V \        P                  4      # r   )r  r   r  r  s   &r   is_datetimeATestDatetimeTypeOps.test_isinstance_datetime.<locals>.is_datetime  s    a//r   c                 6    \        V \        P                  4      # r   )r  r   rD  r  s   &r   is_timedeltaBTestDatetimeTypeOps.test_isinstance_datetime.<locals>.is_timedelta  s    a00r   r   c                   < SP                  V P                   R \        V4      P                   R24      ;_uu_ 4        V ! V4      pV P                  V4      pSP	                  W#4       RRR4       R#   + '       g   i     R# ; i)()N)subTestr   typer  rz   )jit_funcr   rx  expectrb   s   &&  r   r   ;TestDatetimeTypeOps.test_isinstance_datetime.<locals>.check  sh    !2!2 31T!W5E5E4FaHIIqk!))!,  - JIIIs   +A33B	N)r   r   r  rg   rh   )rb   r  r  r  dt_adt_btd_cr   fnsr   r  args   f           r   test_isinstance_datetime,TestDatetimeTypeOps.test_isinstance_datetime  s    		* 
	*		0 
	0		1 
	1 }}Q%}}Q%{	. 
 

 !((3GB"N 4r   r   N)r   r   r   r   r  r   r   r   s   @r   r  r    s        r   r  c                   &   a  ] tR tRt o R tRtV tR# )TestDatetimeIssuesi  c                V   \         R  4       p\        P                  ! RRR7      pV P                  \        4      ;_uu_ 4       pV! V4       RRR4       XP
                  P                  ^ ,          pRpV P                  WT4       RpV P                  Wd4       R#   + '       g   i     LU; i)c                     V ^,           # )r   r   r6   s   &r   ra   1TestDatetimeIssues.test_10y_issue_9585.<locals>.f  s    q5Lr   r  zdatetime64[10Y]r  Nz
argument 0z(Unsupported array dtype: datetime64[10Y])r   r   r  r   r   rf  r   rd  )rb   ra   rC  er  argument_indexunsupported_types   &      r   test_10y_issue_9585&TestDatetimeIssues.test_10y_issue_9585  s    		 
	 hhv%67{++qcF , ++""1%%n.E&0 ,+s   	BB(	r   N)r   r   r   r   r  r   r   r   s   @r   r  r    s     1 1r   r  __main__)rs   rt   )ru   r   rv   rw   r   r   rx   r   r   r   r   )Er   r  rg   r0  unittestr  numpyr   numbar   r   r   numba.np.numpy_supportr   
numba.corer   r   numba.core.errorsr   numba.tests.supportr	   r
   r   numba.npr   r   r   r  r  r   ri   rj   rk   r   r    r"   r$   r&   r(   r+   r-   r0   r2   r4   r7   r:   r=   rA   rE   rJ   rM   rS   rU   rD  r   r  r   r   r   r  r  r  r  r  r  r  r  r   mainr   r   r   <module>r     s     	    & & 0 $ ) G G 6hh'(hh'(
 
J
#	s& s&l ^^]]3 3lE(h E(P
&= 4l(X l(\"%; "
; ;6H8 H.t28 t2p!( !H1 1( zMMO r   