o
    _~#gK'                     @   sZ   d dl m Z mZ d dlZd dlZd dlZd dlmZ d dlm	Z
 G dd dZdd ZdS )    )datetime	timedeltaN	Timestampc                   @   s   e Zd Zdd Zdd Zejdddgdd	 Zd
d Z	dd Z
dd Zejdddgdd Zdd Zdd Zdd Zdd Zdd ZdS )TestTimestampComparisonc                 C   s"   t d}t|}||ksJ d S )Nz
1066-10-14)np
datetime64r   )selfdtts r   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/scalar/timestamp/test_comparisons.pytest_compare_non_nano_dt64   s   
z2TestTimestampComparison.test_compare_non_nano_dt64c                 C   sN  t d}t d}tj|j|jggdd}||k}tjddggtd}t|| ||k}t|| ||k}t||  ||k}t||  ||k }t|| ||k }t|tjddggtd ||k}t|tjddggtd ||k}t||  ||k}t|tjddggtd ||k}t|tjddggtd d S )Nz
2021-01-01z
2019-04-05M8[ns]dtypeTF)r   r   arrayasm8booltmassert_numpy_array_equal)r	   r   ts2arrresultexpectedr   r   r   test_comparison_dt64_ndarray   s0    z4TestTimestampComparison.test_comparison_dt64_ndarrayreverseTFc           
      C   s   t ddd}tj|j|jgdd}||}}|r||}}|tju r8tjddgtd}|||}t|| d S |tj	u rStjddgtd}|||}t|| d S d}	t
jt|	d	 ||| W d    d S 1 smw   Y  d S )
N2021-01-01 00:00:00.00000UTCtzr   r   FT/Cannot compare tz-naive and tz-aware timestampsmatch)r   r   r   r   operatoreqr   r   r   nepytestraises	TypeError)
r	   r   comparison_opr   r   leftrightr   r   msgr   r   r   $test_comparison_dt64_ndarray_tzaware:   s"   





"z<TestTimestampComparison.test_comparison_dt64_ndarray_tzawarec                 C   s  t ddd}t ddd}t d}tj||gtd}||k}tjddgtd}||k s.J tj||g||ggtd}||k}tjddgddggtd}|j|jksTJ ||k s\J tj|gtd}d	}tjt	|d
 ||k  W d    d S 1 s}w   Y  d S )Nz2011-01-03 00:00:00-0500z
US/Easternr   z2011-01-01 00:00:00-0500z2011-01-01 00:00:00r   FTr!   r"   )
r   r   r   objectr   allshaper'   r(   r)   )r	   r   othernaiver   resr   r-   r   r   r   test_comparison_object_arrayP   s"   
"z4TestTimestampComparison.test_comparison_object_arrayc                 C   s   d}t |}||ksJ ||krJ ||k rJ ||ksJ ||kr$J ||ks*J tddd}||ks6J ||kr<J ||k rBJ ||ksHJ ||krNJ ||ksTJ t |d }||ks`J ||ksfJ ||k slJ ||ksrJ ||ksxJ ||ks~J d S )Nl     |%*x i        d   )r   r   )r	   stampvalr2   r   r   r   test_comparisonh   s,   z'TestTimestampComparison.test_comparisonc                 C   s   t d}|dkr
J |dkrJ |dkrJ |g krJ |ddikr$J |tdkr-J |tdkr6J |dks<J |dksBJ |dksHJ |g ksNJ |ddiksVJ |tdks_J |tdkshJ d S )Nz20130101 12:01:02foog      $@   )r   r   float64int64)r	   r:   r   r   r   test_compare_invalid   s   z,TestTimestampComparison.test_compare_invalidr    Nz
US/Pacificc              	   C   s*  t d|d}|  }d}||f||ffD ]|\}}||kr J ||ks&J tjt|d ||k  W d    n1 s<w   Y  tjt|d ||k W d    n1 sWw   Y  tjt|d ||k W d    n1 srw   Y  tjt|d ||k W d    n1 sw   Y  qd S )Nr   r   z+Cannot compare Timestamp with datetime.dater"   )r   to_pydatetimedater'   r(   r)   )r	   r    r   r
   r-   r+   r,   r   r   r   test_compare_date   s(   



z)TestTimestampComparison.test_compare_datec                 C   s   t d}t d|d}d}||krJ ||ksJ tjt|d ||k  W d    n1 s.w   Y  tjt|d ||k W d    n1 sIw   Y  tjt|d ||k W d    n1 sdw   Y  tjt|d ||k W d    n1 sw   Y  ||krJ ||ksJ tjt|d ||k  W d    n1 sw   Y  tjt|d ||k W d    n1 sw   Y  tjt|d ||k W d    n1 sw   Y  tjt|d ||k W d    n1 sw   Y  || krJ | |krJ d S )Nz	3/12/2012r   r!   r"   )r   r'   r(   r)   rA   )r	   utc_fixtureabr-   r   r   r   "test_cant_compare_tz_naive_w_aware   sB   







z:TestTimestampComparison.test_cant_compare_tz_naive_w_awarec                 C   s   t tddd}td}td}dddd	d
dd}| D ].\}}tt|}tt|}|||}	|||}
|
|	ks<J |||}	|||}
|
|	ksLJ qd S )Ni        nownatltgtleger%   r&   )rM   rL   rO   rN   r%   r&   )r   r   r   r   itemsgetattrr$   )r	   lhsrhsrK   opsr+   r,   left_fright_fr   r   r   r   r   test_timestamp_compare_scalars   s   





z6TestTimestampComparison.test_timestamp_compare_scalarsc                 C   s   t d}|tjkrJ |tdddkrJ |tdddkrJ |tjks&J |tdddks0J |tdddks:J |tdddksDJ |tdddksNJ |tdddk sXJ |tdddksbJ t jjdd}|tdd t jk suJ d S )Nz
2012-01-01i@  r=   i
  F)warn)microseconds)r   r   minrA   r   )r	   r9   r2   r   r   r   *test_timestamp_compare_with_early_datetime   s   zBTestTimestampComparison.test_timestamp_compare_with_early_datetimec                 C   s   t dd}t tjd}tj|ksJ t tjd}tj|ks&J |tjk s-J tj|| k s6J tddd}tj|k sCJ |tjksJJ tj|k sQJ |tjksXJ tddd}tj|kseJ |tjk slJ tj|kssJ |tjk szJ d S )Nr=   uszM8[us]i'  	   )r   timedelta64r   r   rZ   astypemaxr   )r	   r\   r2   r   r   r   test_timestamp_compare_oob_dt64   s"   z7TestTimestampComparison.test_timestamp_compare_oob_dt64c                 C   s`   |}t dd}t |}|jdksJ ||k }|t du s!J ||k}|t du s.J d S )Nz
2016-01-01nsr   TF)r   r   r   ndimbool_)r	   fixed_now_tsr   dt64r   r   r   r   r   test_compare_zerodim_array  s   
z2TestTimestampComparison.test_compare_zerodim_array)__name__
__module____qualname__r   r   r'   markparametrizer.   r5   r;   r@   rC   rG   rW   r[   ra   rg   r   r   r   r   r      s    $

r   c                     s~   G  fddd   } t d}| |f|| ffD ]$\}}||ks&||k s&J ||ks0||ks0J ||kr6J ||ks<J qd S )Nc                       sF   e Zd Zdd Z fddZ fddZdd Zd	ef fd
dZdS )z7test_rich_comparison_with_unsupported_type.<locals>.Infc                 S      dS )NFr   r	   or   r   r   __lt__#     z>test_rich_comparison_with_unsupported_type.<locals>.Inf.__lt__c                    
   t | S N
isinstancern   Infr   r   __le__&     
z>test_rich_comparison_with_unsupported_type.<locals>.Inf.__le__c                    s   t |  S rs   rt   rn   rv   r   r   __gt__)  s   z>test_rich_comparison_with_unsupported_type.<locals>.Inf.__gt__c                 S   rm   )NTr   rn   r   r   r   __ge__,  rq   z>test_rich_comparison_with_unsupported_type.<locals>.Inf.__ge__returnc                    rr   rs   rt   )r	   r2   rv   r   r   __eq__/  ry   z>test_rich_comparison_with_unsupported_type.<locals>.Inf.__eq__N)	rh   ri   rj   rp   rx   rz   r{   r   r}   r   rv   r   r   rw   "  s    rw   z
2018-11-30r   )inf	timestampr+   r,   r   rv   r   *test_rich_comparison_with_unsupported_type  s   r   )r   r   r$   numpyr   r'   pandasr   pandas._testing_testingr   r   r   r   r   r   r   <module>   s      