
    ajA!                         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mZ d dlmZ ej                            d          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_tdstruct)is_numpy_devnp_version_gt2_5z*ignore:.*'generic' unit:DeprecationWarningc                  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     h/var/www/app.qaans.com/backend/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_dtyper3   ,   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Xr2   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_tdstructrR   N   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<<<<<<r2   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 )NrV   i8r   r   r   rW   r   TrX   F)r   rZ   viewr   r   r   r   r   r[   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                    t          j        d          }t          j        dd          }|t          j        dd          z   }t          st
          rIt          j        t          d          5  |	                    |           d d d            n# 1 swxY w Y   nI|	                    |          }|	                    |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DrH   r!   ra   Overflowr   z"Out of bounds nanosecond timestampr    )r   r   r   rZ   r
   r   r   r   OverflowErrorastypeallr   r   tmassert_numpy_array_equal
r\   r   dtr]   wrong	roundtripr   dtype2resultexpecteds
             r   test_astype_overflowsafe_dt64z4TestAstypeOverflowSafe.test_astype_overflowsafe_dt64   s   ""]<--29Rw//// 	2+ 	2}J??? " "

5!!!" " " " " " " " " " " " " " " JJu%%ESY//I*//111112].c::: 	, 	,U+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, (##$S&11::f%%
#FH55555s$   ,BBB DD!$D!c                    t          j        d          }t          j        dd          }|t          j        dd          z   }|                    d          }t
          st          rIt          j        t          d          5  |
                    |           d d d            n# 1 swxY w Y   nI|
                    |          }|
                    |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   re   rf   rH   r!   ra   rg   r   z@Cannot convert 106752 days to timedelta64\[ns\] without overflowr"   )r   r   r   rZ   rb   r
   r   r   r   rh   ri   rj   r   r   rk   rl   rm   s
             r   test_astype_overflowsafe_td64z4TestAstypeOverflowSafe.test_astype_overflowsafe_td64   s   ""]<--29Rw////hhw 	2+ 	2}J??? " "

5!!!" " " " " " " " " " " " " " " JJu%%ESY//I*//11111Q]/s;;; 	, 	,U+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, (##$S&11::f%%
#FH55555s$   B##B'*B'D22D69D6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   ra   r    z'Cannot losslessly cast '-1500 ns' to usr   F)round_okT)
r   arrayr   r   r   r   r   ri   rk   rl   )r\   r]   r   r   rr   rs   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^   rc   rt   rv   rz   r1   r2   r   rT   rT      s_        8 8 88 8 86 6 646 6 66
6 
6 
6 
6 
6r2   rT   )numpyr   r   pandas._libs.tslibs.dtypesr   pandas._libs.tslibs.np_datetimer   r   r   r   r   r	   pandas.compat.numpyr
   r   pandas._testing_testingrk   markfilterwarningsr   r3   rR   rT   r1   r2   r   <module>r      sE        6 6 6 6 6 6                      
       HII  JI,Y Y YD> > >B^6 ^6 ^6 ^6 ^6 ^6 ^6 ^6 ^6 ^6r2   