o
    _~#g-                     @   s  d Z ddlmZmZ ddlmZmZmZ ddlZddl	Z	ddl
mZ ddlmZ ddlmZmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZmZmZmZmZm Z  eee eeegZ!dd Z"dd Z#e	j$%de!edddedddedddeeeddd Z&e	j$j'e	j$%de!edddeeeddd Z(dd Z)dd Z*d d! Z+d"d# Z,d$d% Z-d&d' Z.d(d) Z/d*d+ Z0e	j$%d,eedd-feeddd.fe eddd/feeddd0feeddd1feeddd2fgd3d4 Z1d5d6 Z2e	j$%de!d7d8 Z3d9d: Z4e	j$%de!d;d< Z5e	j$%d=e!e	j$%d>e!d?d@ Z6e	j$%de!dAdB Z7e	j$%de!dCdD Z8e	j$%de!dEdF Z9e	j$%de!dGdH Z:e	j$%de!dIdJ Z;dS )Kz'
Tests for offsets.Tick and subclasses
    )datetime	timedelta)assumeexamplegivenN)delta_to_tick)OutOfBoundsTimedelta)	Timedelta	Timestamp)INT_NEG_999_TO_POS_999)assert_offset_equal)offsets)HourMicroMilliMinuteNanoSecondc                  C   s.   t dt d } t d}| |ksJ d S )N         )r   r   )resultexp r   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/tseries/offsets/test_ticks.pytest_apply_ticks/   s   
r   c                  C   sH   t d} t| }|tdksJ tdd}t|}|tdks"J d S )Nr      )nanoseconds)r   r   r   Dayr	   r   )deltaticktdr   r   r   test_delta_to_tick5   s   
r"   cls   r   )nmi   i,    r   c                 C   sL   | |}| |}| || }|| |ksJ | || }|| |ks$J d S )Nr   )r#   r%   r&   leftrightexpectedr   r   r   test_tick_add_sub@   s   	r+   c                 C   sn   t ||k | |}| |}||ksJ | |}||ksJ ||kr$J |dkr3| || | ks5J d S d S )Nr   )r   )r#   r%   r&   r(   r)   r   r   r   test_tick_equalityS   s   r,   c                   C   s   t t tdddtdddd t tdtddddtddd t dt  tdddtdddd t dt  tddddtddd tdtd tdksSJ tdtd t ks`J tdtdksjJ d S )N     r$   r   r   r   )r   r   r   r   r   r   r   	test_Houri   s    "$$r0   c                	   C   s   t t tdddtddddd t tdtdddddtddd t dt  tdddtddddd t dt  tdddddtddd tdtd tdksWJ tdtd t ksdJ tdt ksmJ d S Nr-   r.   r   r/   r$   r   r   )r   r   r   r   r   r   r   test_Minuteu   s   "$&&r2   c                
   C   s   t t tdddtdddddd t tdtddddddtddd t dt  tdddtdddddd t dt  tddddddtddd tdtd tdks[J tdtd t kshJ d S r1   )r   r   r   r   r   r   r   test_Second   s   $&""r3   c                   C   s  t t tdddtddddddd t tdtdddddddtddd t tdtdddtddddddd t dt  tdddtddddddd t dt  tdddddddtddd tdtd td	kssJ tdtd t ksJ d S )
Nr-   r.   r   r'   r/   r$   i  r   r   )r   r   r   r   r   r   r   test_Millisecond   s"    ""$$r4   c                   C   s2   t t tdtd t tdtdtd d S )Nz
2010-01-01z2010-01-01 00:00:00.001r/   )r   r   r
   r   r   r   r   #test_MillisecondTimestampArithmetic   s   r5   c                   C   s   t t tdddtddddddd t tdtdddddddtddd t dt  tdddtddddddd t dt  tdddddddtddd tdtd tdks_J tdtd t kslJ d S r1   )r   r   r   r   r   r   r   test_Microsecond   s   &"$$r6   c                  C   sV   t tddd} | jdksJ | td }|jdksJ td|  }|jdks)J d S )Nr-   r.   r   
   )r
   r   
nanosecondr   )	timestampr   reverse_resultr   r   r   test_NanosecondGeneric   s   r;   c                  C   s  t tddd} tt | | tdd  ttd| tdd |  tdt  | | tdd  tdt  | tdd |  tdtd tdksOJ tdtd t ks\J tdtd td	ksjJ tdtd td
ksxJ tdtd tdksJ d S )Nr-   r.   nsr/   r$   r   r   r7      i  i  )r
   r   r   r   nptimedelta64r   )r9   r   r   r   test_Nanosecond   s    r@   zkls, expectedhours)rB   minutes)rB   seconds)rB   milliseconds)rB   microseconds)rB   r   c                 C   sr   | d}t dd}|| | fD ]$}|| }t|t sJ ||ks%J || }t|t s0J ||ks6J qd S )Nr   r$   rA   )r	   to_pytimedeltato_timedelta64
isinstance)klsr*   offsetr!   otherr   r   r   r   test_tick_addition   s   
rM   c               	   C   s   t d} d}d}tjt|d+ tjt|d | j W d    n1 s&w   Y  W d    d S W d    d S 1 s>w   Y  d S )Ni ʚ;zBCannot cast 1000000000 days 00:00:00 to unit='ns' without overflowzDay.delta is deprecatedmatch)	r   r   pytestraisesr   tmassert_produces_warningFutureWarningr   )r    msgdepr_msgr   r   r   test_tick_delta_overflow   s   
"rW   c                 C   s"  | d}|| d dksJ |d | dksJ |d | dks"J ||j  dks+J ||j   dks6J |td |j tdj  ksFJ | turg|d }t|tjsVJ t|| r]J |j |j d ksgJ | jtddjk r|d }t|tjs|J t|| rJ |j |j d ksJ d S d S )	Nr7   r   r$          @r.   r'   )rD   gMbP?)	_as_pd_timedeltarH   r   rI   r   Tick
_nanos_incr	   _value)r#   offr   r   r   r   test_tick_division   s&    r^   c                  C   s`   t d} | d }t d}||ksJ t|t sJ | d }td}||ks'J t|ts.J d S )Nr$   g      ?r   g      ?i	  )r   rI   r   )r]   r   r*   r   r   r   test_tick_mul_float  s   r_   c                 C   s  | d}|j }| }d| j| jg}d| d}tjt|d d|  W d    n1 s0w   Y  tjt|d d|  W d    n1 sKw   Y  |d | dksZJ | turj|	 d | dksjJ t
d| |g| }t
dd	g}t|| d S )
Nr7   .z9unsupported operand type\(s\) for \/: 'int'|'float' and ''rN   r$   rX   g      @g      ?)rY   rH   join
__module____name__rP   rQ   	TypeErrorr   rG   r>   arrayrR   assert_numpy_array_equal)r#   r]   r   td64instance__typerU   r   r*   r   r   r   test_tick_rdiv'  s(   

rj   cls1cls2c                 C   s   | d|dks
J | d|d | dksJ | t ur*| d|d | dks*J | t u r<| dt d | dks>J d S d S )Nr   r$   )r   )rk   rl   r   r   r   test_tick_zeroB  s   rm   c                 C   s   |  | dks	J d S )Nr.   r   )r#   r   r   r   test_tick_equalitiesO  s   rn   c                 C   sN   | j  d}tjt|d |   rJ W d    d S 1 s w   Y  d S )Nz.is_anchored is deprecated rN   )rd   rR   rS   rT   is_anchored)r#   rU   r   r   r   test_tick_offsetT  s   "rp   c                 C   s|   | d}| d}|| dk sJ | d|k sJ || dks J | d|ks(J | d| dks2J | d| dks<J d S )Nr   r   r   )r#   threefourr   r   r   test_compare_ticks\  s   rs   c              	   C   s:  | d}|dkr
J d|krJ d | j| jg}d| d| d}d|f|dffD ]p\}}tjt|d ||k  W d    n1 sDw   Y  tjt|d ||k W d    n1 s_w   Y  tjt|d ||k W d    n1 szw   Y  tjt|d ||k W d    n1 sw   Y  q*d S )	N   inferfoor`   z@'<'|'<='|'>'|'>=' not supported between instances of 'str' and 'z'|'z' and 'str'rN   )rb   rc   rd   rP   rQ   re   )r#   r]   instance_typerU   r(   r)   r   r   r   test_compare_ticks_to_strsi  s2   



rx   c                 C   s   | d}|j }|| g}| tur||  |D ]&}||ks"J ||kr(J ||k r.J ||kr4J ||ks:J ||ks@J qd S )Nrt   )rY   rH   r   appendrG   )r#   r]   r!   othersrL   r   r   r   #test_compare_ticks_to_timedeltalike  s   r{   )<__doc__r   r   
hypothesisr   r   r   numpyr>   rP   pandas._libs.tslibs.offsetsr   pandas.errorsr   pandasr	   r
   pandas._testing_testingrR   pandas._testing._hypothesisr   #pandas.tests.tseries.offsets.commonr   pandas.tseriesr   pandas.tseries.offsetsr   r   r   r   r   r   tick_classesr   r"   markparametrizer+   arm_slowr,   r0   r2   r3   r4   r5   r6   r;   r@   rM   rW   r^   r_   rj   rm   rn   rp   rs   rx   r{   r   r   r   r   <module>   s     





	







