o
    5c                     @   sl   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mZ d dlmZ ejdd ZG dd dZdS )    N)IncompatibleFrequency)	DataFramePeriodSeries	Timestamp
date_rangeperiod_rangeto_datetimec                  C   s0   d} t d| dd}tt| t| d|dS )zZ
    Fixture for DataFrame of ints with date_range index

    Columns are ['A', 'B'].
    2   1/1/199053speriodsfreq)ABindex)r   r   nparange)Nrng r   Z/var/www/html/gps/gps/lib/python3.10/site-packages/pandas/tests/frame/methods/test_asof.pydate_range_frame   s   r   c                	   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zej	
dedededdfedededdfgdd Zdd Zdd Zdd ZdS )TestFrameAsofc           
      C   s   |}d}t j|j|jdd df< td|d dd}||}| d	 s*J |jd
 }|jd }t|}||}| d	 sHJ |j|k|j|k @ }|| }	|	d
kd	 saJ d S )Nr
         r   r      25sr         )	r   nanlocr   r   asofnotnaalllist)
selfr   dfr   datesresultlbubmaskrsr   r   r   
test_basic   s   



zTestFrameAsof.test_basicc                 C   s   d}|j d |  }tj|j|jdd df< td|d dd}|j|dd	}||}t	|| |j|dd
gd	}||}t	|| |j|d
d	}|j
ddd |}d|j dd < |d
 |d
 j|d
< t	|| d S )N
         r   r   r   r   r   )subsetr   right)closed	      )iloccopyr   r"   r#   r   r   r$   tmassert_frame_equalresampleffillreindexastypedtype)r(   r   r   r)   r*   r+   expectedr   r   r   test_subset3   s   

zTestFrameAsof.test_subsetc                 C   s   d}|j d |  }|d}tddgtdtjd}t|| |t	dg}t
t	dgddgdd}t|| |d}|d}t|jtsNJ d S )	Nr1   z
1989-12-31r   r   )r   namerA   float64)r   columnsrA   D)r9   r:   r$   r   r   r   rE   r;   assert_series_equalr	   r   r<   	to_period
isinstancerD   r   )r(   r   r   r)   r+   rB   r   r   r   test_missingL   s   


zTestFrameAsof.test_missingc                 C   s0   |t jgdg}|t jg}t|| d S )Nr   )r   r"   r$   r;   assert_equal)r(   frame_or_seriesr+   rB   r   r   r   test_asof_all_nanse   s   z TestFrameAsof.test_asof_all_nansc                 C   s  d}|j }td|dd}ttj|dgd|}ttj|dgd}t|| td|dd}ttj|g dd|}ttj|g dd}t|| ttjdd	gdd
gddg}ttjdgdd
gd}t|| ttjdd	gdd
gdd}ttjdd
gdd}t	|| d S )N   r   r   r   r   )r   rF   )r   r   Cr       r   r   )r   rD   )
r   r   r   r   r"   r$   r;   r<   r   rH   )r(   r   r   r   r*   r+   rB   r   r   r   test_all_nansl   s     zTestFrameAsof.test_all_nanszstamp,expectedz2018-01-01 23:22:43.325+00:00rQ   )rD   z2018-01-01 22:33:20.682+01:00r    c                 C   s6   t ddgtdtdgd}||}t|| d S )Nr    rQ   z2018-01-01 21:00:05.001+00:00z2018-01-01 22:35:10.550+00:00)datar   )r   r   r$   r;   rH   )r(   stamprB   r)   r+   r   r   r   test_time_zone_aware_index   s   
z(TestFrameAsof.test_time_zone_aware_indexc                 C   sv   |}d}t j|j|jdd df< td|d dd}||}td  d	|d
< W d    d S 1 s4w   Y  d S )Nr
   r   r   r   r   r   r   r   r    rP   )r   r"   r#   r   r   r$   r;   assert_produces_warning)r(   r   r)   r   r*   r+   r   r   r   test_is_copy   s   

"zTestFrameAsof.test_is_copyc                 C   sn   d}t d|dd}ttj||d}d}tjt|d ||	d W d    d S 1 s0w   Y  d S )	Nr
   r   Hr   r   zInput has different freq)matchrG   )
r   r   r   randomrandnpytestraisesr   r$   asfreq)r(   r   r   r)   msgr   r   r   %test_asof_periodindex_mismatched_freq   s   "z3TestFrameAsof.test_asof_periodindex_mismatched_freqc                 C   sZ   t dddd}tg d|d d d}|d }||g}tdg|gd}t|| d S )	Nz
2017-01-01MSr2   )r   r   )TFTr   T)r   r   r$   r;   rH   )r(   dtisertsresrB   r   r   r   test_asof_preserves_bool_dtype   s   z,TestFrameAsof.test_asof_preserves_bool_dtypeN)__name__
__module____qualname__r0   rC   rK   rN   rR   r\   markparametrizer   r   rU   rW   r`   rg   r   r   r   r   r      s(    

r   )numpyr   r\   pandas._libs.tslibsr   pandasr   r   r   r   r   r   r	   pandas._testing_testingr;   fixturer   r   r   r   r   r   <module>   s    $	
