
    Owg                     r    d dl Zd dlZd dlmZ d dlmZmZmZm	Z	m
Z
mZ d dlmZ d Zd Zd Z G d d      Zy)	    N)NpyDatetimeUnit)OutOfBoundsDatetimeOutOfBoundsTimedeltaastype_overflowsafeis_unitlesspy_get_unit_from_dtypepy_td64_to_tdstructc                  J   t        j                  d      } t        |       rJ t        j                  d      } t        |       sJ t        j                  d      } t        |       rJ t        j                  d      } t        |       sJ d}t        j                  t
        |      5  t        t        j                  t         j                               d d d        d}t        j                  t        |      5  t        d       d d d        y # 1 sw Y   ;xY w# 1 sw Y   y xY w)	NM8[ns]
datetime64m8[ns]timedelta64z'dtype must be datetime64 or timedelta64matchz#Argument 'dtype' has incorrect typefoo)npdtyper   pytestraises
ValueErrorint64	TypeError)r   msgs     [/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/tslibs/test_np_datetime.pytest_is_unitlessr      s    HHXE5!!!HH\"EuHHXE5!!!HH]#Eu
3C	z	- (BHHRXX&'( 0C	y	, E 	( ( s   &-D8DDD"c                      t        t        j                  d            t        j                  j
                  k(  sJ t        t        j                  d            t        j                  j
                  k(  sJ t        t        j                  d            t        j                  j
                  k(  sJ t        t        j                  d            t        j                  j
                  k(  sJ t        t        j                  d            t        j                  j
                  k(  sJ t        t        j                  d            t        j                  j
                  k(  sJ t        t        j                  d            t        j                  j
                  k(  sJ t        t        j                  d            t        j                  j
                  k(  sJ t        t        j                  d	            t        j                  j
                  k(  sJ t        t        j                  d
            t        j                  j
                  k(  sJ t        t        j                  d            t        j                  j
                  k(  sJ t        t        j                  d            t        j                   j
                  k(  sJ t        t        j                  d            t        j"                  j
                  k(  sJ t        t        j                  d            t        j                  j
                  k(  sJ t        t        j                  d            t        j                  j
                  k(  sJ t        t        j                  d            t        j                  j
                  k(  sJ t        t        j                  d            t        j                  j
                  k(  sJ t        t        j                  d            t        j                  j
                  k(  sJ t        t        j                  d            t        j                  j
                  k(  sJ t        t        j                  d            t        j                  j
                  k(  sJ t        t        j                  d            t        j                  j
                  k(  sJ t        t        j                  d            t        j                  j
                  k(  sJ t        t        j                  d            t        j                  j
                  k(  sJ t        t        j                  d            t        j                  j
                  k(  sJ t        t        j                  d            t        j                   j
                  k(  sJ t        t        j                  d            t        j"                  j
                  k(  sJ y )NzM8[Y]zM8[M]zM8[W]M8[D]zM8[h]zM8[m]zM8[s]zM8[ms]M8[us]r   zM8[ps]zM8[fs]zM8[as]zm8[Y]zm8[M]zm8[W]m8[D]zm8[h]zm8[m]zm8[s]zm8[ms]m8[us]r   zm8[ps]zm8[fs]zm8[as])r   r   r   r   NPY_FR_YvalueNPY_FR_MNPY_FR_WNPY_FR_DNPY_FR_hNPY_FR_mNPY_FR_s	NPY_FR_ms	NPY_FR_us	NPY_FR_ns	NPY_FR_ps	NPY_FR_fs	NPY_FR_as     r   test_get_unit_from_dtyper1   '   s   !"((7"348P8P8V8VVVV!"((7"348P8P8V8VVVV!"((7"348P8P8V8VVVV!"((7"348P8P8V8VVVV!"((7"348P8P8V8VVVV!"((7"348P8P8V8VVVV!"((7"348P8P8V8VVVV!"((8"459R9R9X9XXXX!"((8"459R9R9X9XXXX!"((8"459R9R9X9XXXX!"((8"459R9R9X9XXXX!"((8"459R9R9X9XXXX!"((8"459R9R9X9XXXX ""((7"348P8P8V8VVVV!"((7"348P8P8V8VVVV!"((7"348P8P8V8VVVV!"((7"348P8P8V8VVVV!"((7"348P8P8V8VVVV!"((7"348P8P8V8VVVV!"((7"348P8P8V8VVVV!"((8"459R9R9X9XXXX!"((8"459R9R9X9XXXX!"((8"459R9R9X9XXXX!"((8"459R9R9X9XXXX!"((8"459R9R9X9XXXX!"((8"459R9R9X9XXXXr0   c                     d} t        | t        j                  j                        }ddddddddddd
}||k(  sJ t        | t        j                  j                        }dd	d
dddddddd
}||k(  sJ t        | t        j
                  j                        }dd	ddddddddd
}||k(  sJ t        | t        j                  j                        }ddddddddddd
}||k(  sJ y )Nl   *L r      i  i|     i )
dayshrsminsecmsusnssecondsmicrosecondsnanoseconds      "   i0  iJ	    %      i2  i i3    
   i) )r	   r   r+   r"   r*   r)   r(   )	valres1exp1res2exp2res3exp3res4exp4s	            r   test_td64_to_tdstructrP   I   s5   
CsO$=$=$C$CDDD 4<<sO$=$=$C$CDDD 4<<sO$=$=$C$CDDD 4<< sO$<$<$B$BCDD 4<<r0   c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestAstypeOverflowSafec                 T   t        j                  d      }t        j                  d      }d}t        j                  t
        |      5  t        ||d       d d d        t        j                  t
        |      5  t        ||d       d d d        y # 1 sw Y   <xY w# 1 sw Y   y xY w)N   r   ]astype_overflowsafe values.dtype and dtype must be either both-datetime64 or both-timedelta64r   TcopyF)r   aranger   r   r   r   r   selfarrr   r   s       r   test_pass_non_dt64_arrayz/TestAstypeOverflowSafe.test_pass_non_dt64_array   s    iil"2 	 ]]9C0 	7U6	7 ]]9C0 	8U7	8 	8	7 	7	8 	8s   B:BBB'c                 v   t        j                  dd      j                  d      }t        j                  d      }d}t	        j
                  t        |      5  t        ||d	       d d d        t	        j
                  t        |      5  t        ||d
	       d d d        y # 1 sw Y   <xY w# 1 sw Y   y xY w)NrT   i8r   r   r   rU   r   TrV   F)r   rX   viewr   r   r   r   r   rY   s       r   test_pass_non_dt64_dtypez/TestAstypeOverflowSafe.test_pass_non_dt64_dtype   s    ii&++G4"2 	 ]]9C0 	7U6	7 ]]9C0 	8U7	8 	8	7 	7	8 	8s   B#B/#B,/B8c                    t        j                  d      }t        j                  dd      }|t        j                  dd      z   }|j	                  |      }|j	                  |j                        }||k(  j                         rJ d}t        j                  t        |      5  t        ||       d d d        t        j                  d	      }t        ||      }|j	                  |      }	t        j                  ||	       y # 1 sw Y   RxY w)
Nr   
2262-04-05DrF   r   r_   z"Out of bounds nanosecond timestampr   r   )r   r   r   rX   astypeallr   r   r   r   tmassert_numpy_array_equal
rZ   r   dtr[   wrong	roundtripr   dtype2resultexpecteds
             r   test_astype_overflowsafe_dt64z4TestAstypeOverflowSafe.test_astype_overflowsafe_dt64   s    "]]<-299Rw// 

5!LL+	Y&++---2]].c: 	,U+	, (#$S&1::f%
##FH5	, 	,s   $DDc                 >   t        j                  d      }t        j                  dd      }|t        j                  dd      z   }|j	                  d      }|j                  |      }|j                  |j                        }||k(  j                         rJ d}t        j                  t        |      5  t        ||       d d d        t        j                  d	      }t        ||      }|j                  |      }	t        j                  ||	       y # 1 sw Y   RxY w)
Nr   rc   rd   rF   r   r_   z@Cannot convert 106752 days to timedelta64\[ns\] without overflowr   r    )r   r   r   rX   r`   re   rf   r   r   r   r   rg   rh   ri   s
             r   test_astype_overflowsafe_td64z4TestAstypeOverflowSafe.test_astype_overflowsafe_td64   s    "]]<-299Rw//hhw 

5!LL+	Y&++---Q]]/s; 	,U+	, (#$S&1::f%
##FH5	, 	,s   5DDc                 J   t        j                  ddgd      }t        j                  d      }d}t        j                  t
        |      5  t        ||d	       d d d        t        ||d
	      }|j                  |      }t        j                  ||       y # 1 sw Y   ?xY w)Ni$i  r   r_   r   z'Cannot losslessly cast '-1500 ns' to usr   F)round_okT)
r   arrayr   r   r   r   r   re   rg   rh   )rZ   r[   r   r   rn   ro   s         r   *test_astype_overflowsafe_disallow_roundingzATestAstypeOverflowSafe.test_astype_overflowsafe_disallow_rounding   s    hht}H5"7]]:S1 	<UU;	< %S%$?::e$
##FH5	< 	<s   BB"N)__name__
__module____qualname__r\   ra   rp   rr   rv   r/   r0   r   rR   rR      s    886*6,
6r0   rR   )numpyr   r   pandas._libs.tslibs.dtypesr   pandas._libs.tslibs.np_datetimer   r   r   r   r   r	   pandas._testing_testingrg   r   r1   rP   rR   r/   r0   r   <module>r      s;      6  ,YD>BT6 T6r0   