
    bMh                     z    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dS )	    N)NpyDatetimeUnit)OutOfBoundsDatetimeOutOfBoundsTimedeltaastype_overflowsafeis_unitlesspy_get_unit_from_dtypepy_td64_to_tdstructc                  x   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            n# 1 swxY w Y   d}t          j        t          |          5  t          d           d d d            d S # 1 swxY w Y   d S )	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     d/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/tslibs/test_np_datetime.pytest_is_unitlessr      s   HXE5!!!!!H\""EuHXE5!!!!!H]##Eu
3C	z	-	-	- ( (BHRX&&'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 0C	y	,	,	,  E                 s$   2,C**C.1C.D//D36D3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 d S )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   '   s4   !"(7"3"3448P8VVVVV!"(7"3"3448P8VVVVV!"(7"3"3448P8VVVVV!"(7"3"3448P8VVVVV!"(7"3"3448P8VVVVV!"(7"3"3448P8VVVVV!"(7"3"3448P8VVVVV!"(8"4"4559R9XXXXX!"(8"4"4559R9XXXXX!"(8"4"4559R9XXXXX!"(8"4"4559R9XXXXX!"(8"4"4559R9XXXXX!"(8"4"4559R9XXXXX ""(7"3"3448P8VVVVV!"(7"3"3448P8VVVVV!"(7"3"3448P8VVVVV!"(7"3"3448P8VVVVV!"(7"3"3448P8VVVVV!"(7"3"3448P8VVVVV!"(7"3"3448P8VVVVV!"(8"4"4559R9XXXXX!"(8"4"4559R9XXXXX!"(8"4"4559R9XXXXX!"(8"4"4559R9XXXXX!"(8"4"4559R9XXXXX!"(8"4"4559R9XXXX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 d S )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   sE   
CsO$=$CDDD D 4<<<<sO$=$CDDD D 4<<<<sO$=$CDDD D 4<<<< sO$<$BCCD D 4<<<<<<r0   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestAstypeOverflowSafec                 p   t          j        d          }t          j        d          }d}t          j        t
          |          5  t          ||d           d d d            n# 1 swxY w Y   t          j        t
          |          5  t          ||d           d d d            d S # 1 swxY w Y   d S )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   s9   ill""2 	 ]9C000 	7 	7U6666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 ]9C000 	8 	8U7777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s$   A%%A),A)B++B/2B/c                    t          j        dd                              d          }t          j        d          }d}t	          j        t          |          5  t          ||d	           d d d            n# 1 swxY w Y   t	          j        t          |          5  t          ||d
	           d d d            d S # 1 swxY w Y   d S )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   sN   i&&&++G44""2 	 ]9C000 	7 	7U6666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 ]9C000 	8 	8U7777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s$   A::A>A> C  CCc                 B   t          j        d          }t          j        dd          }|t          j        dd          z   }|                    |          }|                    |j                  }||k                                    rJ d}t          j        t          |          5  t          ||           d d d            n# 1 swxY w Y   t          j        d	          }t          ||          }|                    |          }	t          j        ||	           d S )
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   sH   ""]<--29Rw//// 

5!!LL++	Y&++-----2].c::: 	, 	,U+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, (##$S&11::f%%
#FH55555s   )CC
C
c                 l   t          j        d          }t          j        dd          }|t          j        dd          z   }|                    d          }|                    |          }|                    |j                  }||k                                    rJ d}t          j        t          |          5  t          ||           d d d            n# 1 swxY w Y   t          j        d	          }t          ||          }|                    |          }	t          j        ||	           d S )
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   sY   ""]<--29Rw////hhw 

5!!LL++	Y&++-----Q]/s;;; 	, 	,U+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, (##$S&11::f%%
#FH55555s   >CC"Cc                 d   t          j        ddgd          }t          j        d          }d}t          j        t
          |          5  t          ||d	           d d d            n# 1 swxY w Y   t          ||d
	          }|                    |          }t          j	        ||           d S )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    ht}H555""7]:S111 	< 	<UU;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< %S%$???::e$$
#FH55555s   
A))A-0A-N)__name__
__module____qualname__r\   ra   rp   rr   rv   r/   r0   r   rR   rR      s_        8 8 88 8 86 6 6*6 6 6,
6 
6 
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 6 6 6 6 6                       ,Y Y YD> > >BT6 T6 T6 T6 T6 T6 T6 T6 T6 T6r0   