
    JEfL                         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        Z G d d      Zy)    N)IncompatibleFrequency)	DataFramePeriodSeries	Timestamp
date_rangeperiod_rangeto_datetimec                      d} t        d| d      }t        t        j                  |       t        j                  |       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rngs     ]/var/www/VTS_Report/venv/lib/python3.12/site-packages/pandas/tests/frame/methods/test_asof.pydate_range_framer      s9     	A
Z
7C299Q<biil;3GG    c                       e Zd Zd Zd Zd Zd Zd Zej                  j                  d ed       ed ed      	      f ed
       ed ed
      	      fg      d        Zd Zd Zd Zy)TestFrameAsofc                    |j                  ddi      }d}t        j                  |j                  |j                  dd df<   t        d|dz  d	      }|j                  |      }|j                         j                  d
      j                         sJ |j                  d   }|j                  d   }t        |      }|j                  |      }|j                         j                  d
      j                         sJ |j                  |k\  |j                  |k  z  }||   }	|	dk(  j                  d
      j                         sJ y )Nr   floatr         r      25sr         )
astyper   nanlocr   r   asofnotnaalllist)
selfr   dfr   datesresultlbubmaskrss
             r   
test_basiczTestFrameAsof.test_basic   s   $$c7^4')vvrxx2#$:q1u5A||~!!!$((***XXb\XXb\U||~!!!$((***"v||b'89D\b~~a $$&&&r   c                    d}|j                   d | j                         j                  ddi      }t        j                  |j
                  |j                  dd df<   t        d|dz  d	      }|j                  |d
      }|j                  |      }t        j                  ||       |j                  |ddg
      }|j                  |      }t        j                  ||       |j                  |d
      }|j                  dd      j                         j                  |      }d|j                   dd  |d   j                  |d   j                        |d<   t        j                  ||       y )N
   r   r          r   r#   r$   r   )subsetr   right)closed	      )iloccopyr'   r   r(   r)   r   r   r*   tmassert_frame_equalresampleffillreindexdtype)r.   r   r   r/   r0   r1   expecteds          r   test_subsetzTestFrameAsof.test_subset4   sD   ""2A&++-44c7^D%'VVrxx!}c!":q1u5A s+775>
fh/ Sz2775>
fh/ s+;;uW;5;;=EEeLbc ,,RW]];
fh/r   c                    d}|j                   d | j                         j                  d      }|j                  d      }t	        ddgt        d      t        j                        }t        j                  ||       |j                  t        dg            }t        t        dg      ddgd      }t        j                  ||       |j                  d      }|j                  d      }t        |j                  t               sJ y )	Nr8   float64z
1989-12-31r   r   )r   namerG   )r   columnsrG   D)r@   rA   r'   r*   r   r   r   rK   rB   assert_series_equalr
   r   rC   	to_period
isinstancerL   r   )r.   r   r   r/   r1   rH   s         r   test_missingzTestFrameAsof.test_missingN   s     ""2A&++-44Y?&*9\#:"**
 	vx0l^45|n-Sz
 	fh/ \\#&&++v...r   c                      |t         j                  g      j                  dg      } |t         j                  g      }t        j                  ||       y )Nr   )r   r(   r*   rB   assert_equal)r.   frame_or_seriesr1   rH   s       r   test_asof_all_nansz TestFrameAsof.test_asof_all_nansh   s?     !"&&*//4"BFF8,
)r   c                 h   d}|j                   }t        d|d      }t        t        j                  |dg      j                  |      }t        t        j                  |dg      }t        j                  ||       t        d|d      }t        t        j                  |g d      j                  |      }t        t        j                  |g d      }t        j                  ||       t        t        j                  dd	gdd
g      j                  dg      }t        t        j                  dgdd
g      }t        j                  ||       t        t        j                  dd	gdd
g      j                  d      }t        t        j                  dd
gd      }t        j                  ||       y )N   r   r$   r   r   )r   rM   )r   r   Cr%      r   r#   )r   rL   )
r   r   r   r   r(   r*   rB   rC   r   rO   )r.   r   r   r   r0   r1   rH   s          r   test_all_nanszTestFrameAsof.test_all_nanso   sP   
 $$:qu=266se<AA%HRVV53%@
fh/ :qu=266oFKKERRVV5/J
fh/ 266!Q#sDII1#NRVVA3c
C
fh/266!Q#sDII!L"&&c
;
vx0r   zstamp,expectedz2018-01-01 23:22:43.325+00:00rZ   )rL   z2018-01-01 22:33:20.682+01:00r%   c                     t        ddgt        d      t        d      g      }|j                  |      }t        j                  ||       y )Nr%   rZ   z2018-01-01 21:00:05.001+00:00z2018-01-01 22:35:10.550+00:00)datar   )r   r   r*   rB   rO   )r.   stamprH   r/   r1   s        r   test_time_zone_aware_indexz(TestFrameAsof.test_time_zone_aware_index   sK    " Q9:9:
 
vx0r   c                 (   |j                  ddi      }d}t        j                  |j                  |j                  dd df<   t        d|dz  d	      }|j                  |      }t        j                  d       5  d
|d<   d d d        y # 1 sw Y   y xY w)Nr   r    r   r!   r"   r   r#   r$   r   r%   rY   )	r'   r   r(   r)   r   r   r*   rB   assert_produces_warning)r.   r   r/   r   r0   r1   s         r   test_is_copyzTestFrameAsof.test_is_copy   s     $$c7^4')vvrxx2#$:q1u5A''- 	F3K	 	 	s   9BBc                 :   d}t        d|d      }t        t        j                  j	                  d      j                  |      |      }d}t        j                  t        |      5  |j                  |j                  d	             d d d        y # 1 sw Y   y xY w)
Nr   r   hr   rZ   r   zInput has different freq)matchrN   )r	   r   r   randomdefault_rngstandard_normalpytestraisesr   r*   asfreq)r.   r   r   r/   msgs        r   %test_asof_periodindex_mismatched_freqz3TestFrameAsof.test_asof_periodindex_mismatched_freq   sz    :qs;ryy,,Q/??B#N )]]0< 	%GGCJJsO$	% 	% 	%s   '!BBc                     t        ddd      }t        g d|d d       }|d   }|j                  |g      }t        dg|g      }t        j                  ||       y )	Nz
2017-01-01MSr9   )r   r   )TFTr   T)r   r   r*   rB   rO   )r.   dtisertsresrH   s         r   test_asof_preserves_bool_dtypez,TestFrameAsof.test_asof_preserves_bool_dtype   s[    D!<(CR9Whhtn4&-
sH-r   N)__name__
__module____qualname__r6   rI   rR   rV   r[   ri   markparametrizer   r   r_   rb   rm   ru    r   r   r   r      s    '*04/4*16 [[ 9:qy)HIJ
 9:qy)HIJ		
11%	.r   r   )numpyr   ri   pandas._libs.tslibsr   pandasr   r   r   r   r   r	   r
   pandas._testing_testingrB   fixturer   r   r{   r   r   <module>r      sH      5    H Hh. h.r   